Python C extension for the eSpeak NG speech synthesizer
Project description
This is a modified version of python-espeak (previous version here). It is a Python binding over the eSpeak speech synthesizer C library and does not simply make calls to the espeak
binary.
Changes
Some highlights of the modifications.
- File output instead of only playback (
espeak.init(playing=False)
). - Support for multiple instances of speakers (the
espeak.Espeak
class). They have to take turns and not simultaneously speak. - Easily setup multiple callbacks (
espeak.add_callback
). - Wave file content sent through callbacks (for
playing=False
only since this is how the C library works). - Slightly more uniform bindings in some places (
espeak.const
). - Optional start and end position for synthesis.
Unfortunately some of the renamings make this version not backwards compatible. (Maybe this library should be named differently. I will try to contact the original author about that. Their email "rainct ubuntu com" seems defunct.) The big one is that espeak.init()
now has to be called before anything else.
Compatibility
This library should (still) work with both Python 2 and 3.
Installation
Requires espeak
and its libraries to be installed espeak/speak_lib.h
should be in your include path somewhere. Install with
python setup.py install
or python setup.py build
to get the library in the build
without installation.
Examples
Simple usage
import espeak
espeak.init()
speaker = espeak.Espeak()
speaker.say("Hello world")
speaker.rate = 300
speaker.say("Faster hello world")
See espeak.const['parameter']
for all the values other than rate
that can be changes.
Callback usage
def print_callback(*args):
print args
import espeak
espeak.init()
speaker = espeak.Espeak()
speaker.add_callback(print_callback)
speaker.say("Hello world")
This should print something like
('', 2, 1, 0, 0, None)
('', 0, 1, 0, 0, None)
('', 1, 1, 5, 0, None)
('', 0, 1, 5, 0, None)
('', 1, 7, 5, 0, None)
('', 0, 7, 5, 0, None)
('', 5, 11, 0, 0, None)
('', 0, 11, 0, 0, None)
Callback format
The arguments of callback functions are wave_file_fragment, event, current_pos, length, num_samples, name
.
event
can be reverse looked up in (or compare to)espeak.const['event']
.wave_file_fragment
is a piece of a wave file (only inplayback=False
mode, otherwise its always the empty string).current_pos
isevent->text_position
fromspeak_lib
the C librarylength
isevent->length
fromspeak_lib
num_samples
isevent->length
fromspeak_lib
name
is either(event->id).name
forplay
andmark
events,event->id.number
(forsample_rate
events) orNone
otherwise.
Licence
GPL v3. See COPYING
for full text.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file python-espeak-ng-0.6.6.tar.gz
.
File metadata
- Download URL: python-espeak-ng-0.6.6.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d3ceee4e9b86ad0d6a1d5e8c34578c5d56d5048f3b4498766aa369cc3c2b1e5 |
|
MD5 | e972f866c49a1d86fe72ee2d4d303acf |
|
BLAKE2b-256 | f7a4c0f1e9a931445a08f5f3f4d3b0e31ad4198b1140b354a9b759e5520a4df2 |