diff options
author | flavio <fdanesse@gmail.com> | 2012-07-31 01:15:42 (GMT) |
---|---|---|
committer | flavio <fdanesse@gmail.com> | 2012-07-31 01:15:42 (GMT) |
commit | f6eaafd6f873187fcf5ff41478f15aea6281775e (patch) | |
tree | fa12a91d9d2a8d79fabeaf50ee7cdaf83d7a73c4 /espeak_gst.py | |
parent | da1f7c1f44bb4826775892d68db1abb0d2c09a1b (diff) |
Returning to Gstreamer 1.0 - Redefining Pipeline Elements
Diffstat (limited to 'espeak_gst.py')
-rw-r--r-- | espeak_gst.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/espeak_gst.py b/espeak_gst.py index 4da4f9d..9f159c5 100644 --- a/espeak_gst.py +++ b/espeak_gst.py @@ -17,7 +17,9 @@ import logging logger = logging.getLogger('speak') -import gst +import gi +gi.require_version('Gst', '1.0') +from gi.repository import Gst import espeak PITCH_MAX = 200 @@ -26,32 +28,31 @@ RATE_MAX = 200 class AudioGrabGst(espeak.BaseAudioGrab): def speak(self, status, text): - # XXX workaround for http://bugs.sugarlabs.org/ticket/1801 if not [i for i in unicode(text, 'utf-8', errors='ignore') \ if i.isalnum()]: return - + self.make_pipeline('espeak name=espeak ! wavenc') src = self.pipeline.get_by_name('espeak') - + pitch = int(status.pitch) - 120 rate = int(status.rate) - 120 - + logger.debug('pitch=%d rate=%d voice=%s text=%s' % (pitch, rate, status.voice.name, text)) - + src.props.text = text src.props.pitch = pitch src.props.rate = rate src.props.voice = status.voice.name - + self.restart_sound_device() def voices(): out = [] - for i in gst.element_factory_make('espeak').props.voices: + for i in Gst.element_factory_make('espeak').props.voices: name, language, dialect = i #if name in ('en-rhotic','english_rp','english_wmids'): # these voices don't produce sound |