diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2009-03-08 23:19:34 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@member.fsf.org> | 2009-03-08 23:19:34 (GMT) |
commit | 18296c8d83f9ae63c7aaf0128f091da896c1e2f7 (patch) | |
tree | 190cae329c8cfed35fe51af4fd13409132ce0812 /readtoolbar.py | |
parent | 9d1e3592b54fec7e06dd9ffd18c3cd5cb7f334b1 (diff) |
Isolate speech-dispatcher code
Diffstat (limited to 'readtoolbar.py')
-rw-r--r-- | readtoolbar.py | 48 |
1 files changed, 10 insertions, 38 deletions
diff --git a/readtoolbar.py b/readtoolbar.py index 51f2af9..c0237ea 100644 --- a/readtoolbar.py +++ b/readtoolbar.py @@ -32,9 +32,6 @@ from sugar.graphics.toggletoolbutton import ToggleToolButton import speech -if speech.supported: - import speechd - class ReadToolbar(gtk.Toolbar): __gtype_name__ = 'ReadToolbar' @@ -242,17 +239,7 @@ class SpeechToolbar(gtk.Toolbar): gtk.Toolbar.__init__(self) voicebar = gtk.Toolbar() self.activity = None - voices = [] - - try: - client = speechd.SSIPClient('readetextstest') - voices = client.list_synthesis_voices() - client.close() - except: - print 'speech dispatcher not started' - self.sorted_voices = [] - for voice in voices: - self.sorted_voices.append(voice) + self.sorted_voices = speech.voice() self.sorted_voices.sort(self.compare_voices) default = 0 for voice in self.sorted_voices: @@ -324,42 +311,27 @@ class SpeechToolbar(gtk.Toolbar): def voice_changed_cb(self, combo): self.selected_voice = combo.props.value if self.activity != None: - self.say(self.selected_voice[0]) + speech.say(self.selected_voice[0]) def pitch_adjusted_cb(self, get, data=None): - self.say(_("pitch adjusted")) + speech.say(_("pitch adjusted")) def rate_adjusted_cb(self, get, data=None): - self.say(_("rate adjusted")) + speech.say(_("rate adjusted")) def set_activity(self, activity): self.activity = activity - def say(self, words): - try: - client = speechd.SSIPClient('readetextstest') - client.set_rate(int(self.rateadj.value)) - client.set_pitch(int(self.pitchadj.value)) - client.set_language(self.selected_voice[1]) - client.speak(words) - client.close() - except: - print 'speech dispatcher not running' - def _play_cb(self, widget, images): widget.set_icon_widget(images[int(widget.get_active())]) if widget.get_active(): if speech.done: - self.et = speech.EspeakThread(self._stop_cb) - words_on_page = self.activity.add_word_marks() - self.et.set_words_on_page(words_on_page) - self.et.set_activity(self.activity) - self.et.set_speech_options(self.selected_voice, - int(self.pitchadj.value), int(self.rateadj.value)) - self.et.start() + speech.highlight_cb = activity.highlight_next_word + speech.reset_cb = activity.reset_play_button + speech.voice = self.selected_voice + speech.pitch = self.pitchadj.value + speech.rate = self.rateadj.value + speech.play() else: speech.done = True - - def _stop_cb(self): - self.play_btn.set_active(False) |