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.5.tar.gz (9.1 kB view details)

Uploaded Source

File details

Details for the file python-espeak-ng-0.6.5.tar.gz.

File metadata

  • Download URL: python-espeak-ng-0.6.5.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.5.tar.gz
Algorithm Hash digest
SHA256 5515ec26c9264ee5ae9554bf8d283db4e06961940fb6c4c7a9bcfe6693acb48d
MD5 9191c70b04f8fe055186bb84e7234f04
BLAKE2b-256 5846a6a844693cfece25353ba320f1a0cc8bef3bc26204d3306fd6311fce382d

See more details on using hashes here.

Supported by

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