Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-04-28 16:15:20 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-04-28 16:15:20 (GMT)
commitc9b1ac16ba7058d775401fb458cc705bf9a41d31 (patch)
tree2699ec9f9e520211b33fb0030604c0a22e06764c
parent66307d2f6fa7c011c750588f708cfc1deff74e1c (diff)
Support new gst-espeak
-rw-r--r--Speak.activity/voice.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/Speak.activity/voice.py b/Speak.activity/voice.py
index 256bbf0..340f6df 100644
--- a/Speak.activity/voice.py
+++ b/Speak.activity/voice.py
@@ -29,6 +29,9 @@ import gst
import re, os
from gettext import gettext as _
+import logging
+logger = logging.getLogger('speak')
+
# Lets trick gettext into generating entries for the voice names we expect espeak to have
# If espeak actually has new or different names then they won't get translated, but they
# should still show up in the interface.
@@ -87,13 +90,16 @@ def allVoices():
if len(_allVoices) == 0:
try:
for i in gst.element_factory_make('espeak').props.voices:
- name, language = i.split(':')
+ name, language, dialect = i
if name in ('en-rhotic','english_rp','english_wmids'):
# these voices don't produce sound
continue
voice = Voice(language, name)
_allVoices[voice.friendlyname] = voice
- except:
+ except Exception, e:
+ logger.warning('Can not find gst-espeak, ' \
+ 'fallback to espeak command: %s' % e)
+
result = subprocess.Popen(["espeak", "--voices"], stdout=subprocess.PIPE).communicate()[0]
for line in result.split('\n'):
m = re.match(r'\s*\d+\s+([\w-]+)\s+([MF])\s+([\w_-]+)\s+(.+)', line)