Metadata-Version: 2.1
Name: python-polly
Version: 0.1.0
Summary: Wrapper for AWS Polly with segmentation, playback queue and client-server setup
Home-page: https://github.com/krisfris/python-polly
Author: Kris
Author-email: 31852063+krisfris@users.noreply.github.com
License: UNKNOWN
Platform: UNKNOWN
Description-Content-Type: text/markdown
Requires-Dist: requests
Requires-Dist: click
Provides-Extra: server
Requires-Dist: appdirs ; extra == 'server'
Requires-Dist: pyaudio ; extra == 'server'
Requires-Dist: nltk ; extra == 'server'
Requires-Dist: boto3 ; extra == 'server'
Requires-Dist: werkzeug ; extra == 'server'
Requires-Dist: json-rpc ; extra == 'server'
Requires-Dist: pyqt5 ; extra == 'server'

# python-polly

python-polly is a simple wrapper around AWS's text-to-speech service Polly.

Features are:

* Cache requests to AWS Polly locally
* Tokenize input text into sentences or words in order to maximize usage of cache
* Playback queue for audio output
* Client-server setup to support concurrent output by multiple applications

## Setup

```
pip install --user python-polly[server]
```

Most of the dependencies are only required by the server so I put them in as an extra option.
To get the dependencies for the server use `python-polly[server]` otherwise just `python-polly`.

## Usage

### Server

Start the server. Default port is 6000.

```
polly server
```

### Client

#### CLI

```
polly say "hello world"
```

#### Python

```
import polly.client
polly.client.say('hello world')
```

#### Any other JSON-RPC client e.g. cURL

```
curl -d '{"id": "null", "jsonrpc": "2.0", "method": "say", "params": ["hello", "Joanna", "sentence", true]}' localhost:6000
```

## Links
### Playback
https://people.csail.mit.edu/hubert/pyaudio/docs/#example-callback-mode-audio-i-o  
https://github.com/spatialaudio/python-sounddevice/blob/master/examples/play_long_file.py


