Skip to main content

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 in playback=False mode, otherwise its always the empty string).
  • current_pos is event->text_position from speak_lib the C library
  • length is event->length from speak_lib
  • num_samples is event->length from speak_lib
  • name is either
    • (event->id).name for play and mark events,
    • event->id.number (for sample_rate events) or
    • None otherwise.

Licence

GPL v3. See COPYING for full text.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-espeak-ng-0.6.6.tar.gz (9.1 kB view details)

Uploaded Source

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

Hashes for python-espeak-ng-0.6.6.tar.gz
Algorithm Hash digest
SHA256 0d3ceee4e9b86ad0d6a1d5e8c34578c5d56d5048f3b4498766aa369cc3c2b1e5
MD5 e972f866c49a1d86fe72ee2d4d303acf
BLAKE2b-256 f7a4c0f1e9a931445a08f5f3f4d3b0e31ad4198b1140b354a9b759e5520a4df2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page