def __init__(self, fname, version): self._config = config() self._db = sqlite3.connect(fname) createtable = False if not self.tableexist('version'): # create version table if not self.createversiontable(version) createtable = True elif len(self._db.execute(u"select text from version where text = '%s';" % (version,)).fetchall()) == 0: # check version self._db.execute(u'drop table version;') self.createversiontable(version) createtable = True if createtable == True: if self.tableexist('data'): self._db.execute(u'drop table data;') self.createdatatable() dic = VoxforgeDict(self._config._julius_dict_en) for t, vs in dic._dict.iteritems(): for v in vs: self.register(t.lower(), v, 'ARPAbet') del dic dic = JuliusDict(self._config._julius_dict_ja) for t, vs in dic._dict.iteritems(): for v in vs: self.register(t, v, 'KANA') del dic self._db.commit()
def __init__(self, fname, version): self._config = config() self._db = sqlite3.connect(fname) createtable = False if not self.tableexist('version'): # create version table if not self.createversiontable(version) createtable = True elif len( self._db.execute( u"select text from version where text = '%s';" % (version, )).fetchall()) == 0: # check version self._db.execute(u'drop table version;') self.createversiontable(version) createtable = True if createtable == True: if self.tableexist('data'): self._db.execute(u'drop table data;') self.createdatatable() dic = VoxforgeDict(self._config._julius_dict_en) for t, vs in dic._dict.iteritems(): for v in vs: self.register(t.lower(), v, 'ARPAbet') del dic dic = JuliusDict(self._config._julius_dict_ja) for t, vs in dic._dict.iteritems(): for v in vs: self.register(t, v, 'KANA') del dic self._db.commit()
def main(): outfile = sys.stdout encoding = locale.getpreferredencoding() conf = config() sys.stdout = codecs.getwriter(encoding)(sys.stdout, errors="replace") sys.stderr = codecs.getwriter(encoding)(sys.stderr, errors="replace") parser = utils.MyParser(version=__version__, usage="%prog [grammarfile]", description=__doc__, epilog=__examples__) parser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help=_('output verbose information')) parser.add_option('-r', '--target-rule', dest='targetrule', action="store", type="string", help=_('specify target rule id')) parser.add_option('-g', '--gui', dest='guimode', action="store_true", default=False, help=_('show file open dialog in GUI')) try: opts, args = parser.parse_args() except optparse.OptionError, e: print >> sys.stderr, 'OptionError:', e sys.exit(1)
def __init__(self, file, prop=None, rebuild_lexicon=False): self._config = config() self._filename = file self._rules = {} self._lang = "en" self._rootrule = None self._lex = None self._node = None self._rebuild_lexicon = rebuild_lexicon self._prop = prop if prop: if prop.getProperty("julius.3rdparty_dir"): self._config.julius(prop.getProperty("julius.3rdparty_dir")) try: doc = etree.parse(file) doc.xinclude() self._node = doc.getroot() except etree.XMLSyntaxError as e: print("[error] invalid xml syntax") print(e) except IOError as e: print("[error] IO error: unable to open file ", file) print(e) self.parse(self._node)
def __init__(self): VoiceSynthBase.__init__(self) self._conf = config() self._args = (("td", "tree-dur.inf"), ("tf", "tree-lf0.inf"), ("tm", "tree-mgc.inf"), ("md", "dur.pdf"), ("mf", "lf0.pdf"), ("mm", "mgc.pdf"), ("df", "lf0.win1"), ("df", "lf0.win2"), ("df", "lf0.win3"), ("dm", "mgc.win1"), ("dm", "mgc.win2"), ("dm", "mgc.win3"), ("ef", "tree-gv-lf0.inf"), ("em", "tree-gv-mgc.inf"), ("cf", "gv-lf0.pdf"), ("cm", "gv-mgc.pdf"), ("k", "gv-switch.inf")) cmdarg = [] cmdarg.append(self._conf._openjtalk_bin) (stdoutstr, stderrstr) = subprocess.Popen(cmdarg, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() self._copyrights = [] for l in stderrstr.replace('\r', '').split('\n\n'): if l.count('All rights reserved.') > 0: self._copyrights.append(l) self._copyrights.append( '''The Nitech Japanese Speech Database "NIT ATR503 M001" released by HTS Working Group (http://hts.sp.nitech.ac.jp/) Copyright (C) 2003-2011 Nagoya Institute of Technology Some rights reserved. ''') self._copyrights.append('''HTS Voice "Mei (Normal)" released by MMDAgent Project Team (http://www.mmdagent.jp/) Copyright (C) 2009-2011 Nagoya Institute of Technology Some rights reserved. ''')
def __init__(self, prop): VoiceSynthBase.__init__(self) self._conf = config() self._args = () self._sampling_rate = 0 self._frame_period = 0 self._all_pass = -1 self._postfiltering_coefficent = 0.0 self._speed_rate = 1.0 self._addtional_half_tone = 0.0 self._threshold = 0.5 self._gv_spectrum = 1.0 self._gv_log_f0 = 1.0 self._volume = 0.0 if prop.getProperty("openjtalk.3rdparty_dir"): self._conf.openjtalk(prop.getProperty("openjtalk.3rdparty_dir")) if prop.getProperty("openjtalk.top_dir"): self._conf.openjtalk_top(prop.getProperty("openjtalk.top_dir")) if prop.getProperty("openjtalk.sox_dir"): self._conf.sox_top(prop.getProperty("openjtalk.sox_dir")) openjtalk_bin = prop.getProperty("openjtalk.bin") if not openjtalk_bin: openjtalk_bin = self._conf._openjtalk_bin if prop.getProperty("openjtalk.phonemodel_male_ja"): self._conf._openjtalk_phonemodel_male_ja = prop.getProperty( "openjtalk.phonemodel_male_ja") if prop.getProperty("openjtalk.phonemodel_female_ja"): self._conf._openjtalk_phonemodel_female_ja = prop.getProperty( "openjtalk.phonemodel_female_ja") cmdarg = [openjtalk_bin] (stdoutstr, stderrstr) = subprocess.Popen(cmdarg, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() # # Read Copyright Files of Phonemodels # self._copyrights = [] for l in stderrstr.replace('\r', '').split('\n\n'): if l.count('All rights reserved.') > 0: self._copyrights.append(l) # # read copyright self._copyrights.append( utils.read_file_contents('hts_voice_copyright.txt')) self._copyrights.append( utils.read_file_contents('mmdagent_mei_copyright.txt'))
def __init__(self, language='jp', rtc=''): threading.Thread.__init__(self) self._config = config() self._platform = platform.system() self._callbacks = [] self._buffer = [] self.audio_segment = [] self._sample_width = 2 self._frame_rate = 16000 self._channels = 1 self._min_silence = 150 self._silence_thr = -10
def __init__(self, manager): OpenRTM_aist.DataFlowComponentBase.__init__(self, manager) self._config = config() self._j = None self._copyrights = [] self._copyrights.append( utils.read_file_contents( os.path.join(self._config._basedir, "doc", "julius_copyright.txt"))) self._copyrights.append( utils.read_file_contents( os.path.join(self._config._basedir, "doc", "voxforge_copyright.txt")))
def __init__(self, file): self._config = config() self._filename = file self._rules = {} self._lang = "en" self._rootrule = None self._lex = None self._node = None try: doc = etree.parse(file) doc.xinclude() self._node = doc.getroot() except etree.XMLSyntaxError, e: print "[error] invalid xml syntax" print e
def __init__(self): VoiceSynthBase.__init__(self) self._config = config() self._cmdline = [self._config._festival_bin, '--pipe'] self._cmdline.extend(self._config._festival_opt) self._copyrights = [] self._copyrights.append('''The Festival Speech Synthesis System (http://www.cstr.ed.ac.uk/projects/festival/) Copyright (C) 1996-2006 Centre for Speech Technology Research, University of Edinburgh, UK All rights reserved. ''') self._copyrights.append( '''Diphone Synthesizer Voice for American English released by Alan W Black and Kevin Lenzo (http://www.cstr.ed.ac.uk/projects/festival/) Copyright (C) 1998 Centre for Speech Technology Research, University of Edinburgh, UK All rights reserved. ''')
def __init__(self, prop): VoiceSynthBase.__init__(self) self._config = config() if prop.getProperty("festival.3rdparty_dir"): self._config.festival(prop.getProperty("festival.3rdparty_dir")) if prop.getProperty("festival.top_dir"): self._config.festival_top(prop.getProperty("festival.top_dir")) self._cmdline = [self._config._festival_bin, '--pipe'] self._cmdline.extend(self._config._festival_opt) self._copyrights = [] self._copyrights.append( utils.read_file_contents('festival_copyright.txt')) self._copyrights.append( utils.read_file_contents('diphone_copyright.txt'))
def __init__(self): VoiceSynthBase.__init__(self) self._config = config() self._cmdline = [self._config._festival_bin, "--pipe"] self._cmdline.extend(self._config._festival_opt) self._copyrights = [] self._copyrights.append( """The Festival Speech Synthesis System (http://www.cstr.ed.ac.uk/projects/festival/) Copyright (C) 1996-2006 Centre for Speech Technology Research, University of Edinburgh, UK All rights reserved. """ ) self._copyrights.append( """Diphone Synthesizer Voice for American English released by Alan W Black and Kevin Lenzo (http://www.cstr.ed.ac.uk/projects/festival/) Copyright (C) 1998 Centre for Speech Technology Research, University of Edinburgh, UK All rights reserved. """ )
def __init__(self): VoiceSynthBase.__init__(self) self._conf = config() self._args = (("td", "tree-dur.inf"), ("tf", "tree-lf0.inf"), ("tm", "tree-mgc.inf"), ("md", "dur.pdf"), ("mf", "lf0.pdf"), ("mm", "mgc.pdf"), ("df", "lf0.win1"), ("df", "lf0.win2"), ("df", "lf0.win3"), ("dm", "mgc.win1"), ("dm", "mgc.win2"), ("dm", "mgc.win3"), ("ef", "tree-gv-lf0.inf"), ("em", "tree-gv-mgc.inf"), ("cf", "gv-lf0.pdf"), ("cm", "gv-mgc.pdf"), ("k", "gv-switch.inf")) cmdarg = [] cmdarg.append(self._conf._openjtalk_bin) (stdoutstr, stderrstr) = subprocess.Popen(cmdarg, stdout = subprocess.PIPE, stderr = subprocess.PIPE).communicate() self._copyrights = [] for l in stderrstr.replace('\r', '').split('\n\n'): if l.count('All rights reserved.') > 0: self._copyrights.append(l) self._copyrights.append('''The Nitech Japanese Speech Database "NIT ATR503 M001" released by HTS Working Group (http://hts.sp.nitech.ac.jp/) Copyright (C) 2003-2011 Nagoya Institute of Technology Some rights reserved. ''') self._copyrights.append('''HTS Voice "Mei (Normal)" released by MMDAgent Project Team (http://www.mmdagent.jp/) Copyright (C) 2009-2011 Nagoya Institute of Technology Some rights reserved. ''')
def main(): outfile = sys.stdout encoding = locale.getpreferredencoding() conf = config() sys.stdout = codecs.getwriter(encoding)(sys.stdout, errors = "replace") sys.stderr = codecs.getwriter(encoding)(sys.stderr, errors = "replace") parser = utils.MyParser(version=__version__, usage="%prog [grammarfile]", description=__doc__, epilog=__examples__) parser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help=_('output verbose information')) parser.add_option('-r', '--target-rule', dest='targetrule', action="store", type="string", help=_('specify target rule id')) parser.add_option('-g', '--gui', dest='guimode', action="store_true", default=False, help=_('show file open dialog in GUI')) try: opts, args = parser.parse_args() except optparse.OptionError, e: print >>sys.stderr, 'OptionError:', e sys.exit(1)
def __init__(self, language='jp', rtc=''): threading.Thread.__init__(self) self._config = config() self._running = False self._platform = platform.system() self._gotinput = False self._lang = language self._memsize = "large" #self._memsize = "medium" self._logdir = tempfile.mkdtemp() self._callbacks = [] self._grammars = {} self._firstgrammar = True self._activegrammars = {} self._prevdata = '' self._jconf_file = "" self._mode = 'grammar' #self._jcode = 'euc_jp' self._jcode = 'utf-8' self._p = None self._modulesocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._audiosocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._audiohost = "localhost" self._audioport = 0 self._modulehost = "localhost" self._moduleport = 0 if rtc: self._mode = rtc._mode prop = rtc._properties if prop.getProperty("julius.3rdparty_dir"): self._config.julius(prop.getProperty("julius.3rdparty_dir")) if prop.getProperty("julius.runkit_dir"): self._config.julius_runkit( prop.getProperty("julius.runkit_dir")) if prop.getProperty("julius.voxforge_dir"): self._config.julius_voxforge( prop.getProperty("julius.voxforge_dir")) if os.path.isfile(rtc._jconf_file[0]): self._jconf_file = rtc._jconf_file[0] ########################################################### if self._mode != "client": self.setupSubprocess() print("command line: %s" % " ".join(self._cmdline)) print(self._cmdline) self._p = subprocess.Popen(self._cmdline) self._running = True ##################################################### # # Connect to Julius (try ten times) time.sleep(1) print("connecting to ports") for retry in range(0, 10): try: self._modulesocket.connect( (self._modulehost, self._moduleport)) except socket.error: time.sleep(1) continue break for retry in range(0, 10): try: self._audiosocket.connect((self._audiohost, self._audioport)) except socket.error: time.sleep(1) continue break # # for grammar mode if self._mode != 'dictation': self._modulesocket.sendall("INPUTONCHANGE TERMINATE\n") print("JuliusWrap started")
def __init__(self, language='jp'): threading.Thread.__init__(self) self._config = config() self._running = False self._platform = platform.system() self._gotinput = False self._lang = language self._memsize = "large" #self._memsize = "medium" self._logdir = tempfile.mkdtemp() self._callbacks = [] self._grammars = {} self._firstgrammar = True self._activegrammars = {} self._prevdata = '' self._modulesocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._audiosocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._cmdline = [] self._cmdline.append(self._config._julius_bin) if self._lang in ('ja', 'jp'): self._cmdline.extend(['-h', self._config._julius_hmm_ja]) self._cmdline.extend(['-hlist', self._config._julius_hlist_ja]) self._cmdline.extend( ["-dfa", os.path.join(self._config._basedir, "dummy.dfa")]) self._cmdline.extend( ["-v", os.path.join(self._config._basedir, "dummy.dict")]) self._cmdline.extend(["-sb", "80.0"]) elif self._lang == 'de': self._cmdline.extend(['-h', self._config._julius_hmm_de]) self._cmdline.extend(['-hlist', self._config._julius_hlist_de]) self._cmdline.extend( ["-dfa", os.path.join(self._config._basedir, "dummy-en.dfa")]) self._cmdline.extend( ["-v", os.path.join(self._config._basedir, "dummy-en.dict")]) self._cmdline.extend(["-sb", "160.0"]) else: self._cmdline.extend(['-h', self._config._julius_hmm_en]) self._cmdline.extend(['-hlist', self._config._julius_hlist_en]) self._cmdline.extend( ["-dfa", os.path.join(self._config._basedir, "dummy-en.dfa")]) self._cmdline.extend( ["-v", os.path.join(self._config._basedir, "dummy-en.dict")]) self._cmdline.extend(["-sb", "160.0"]) self._audioport = self.getunusedport() self._moduleport = self.getunusedport() self._cmdline.extend( ["-input", "adinnet", "-adport", str(self._audioport)]) self._cmdline.extend(["-module", str(self._moduleport)]) if self._memsize == "large": self._cmdline.extend( ["-b", "-1", "-b2", "120", "-s", "1000", "-m", "2000"]) else: self._cmdline.extend( ["-b", "-1", "-b2", "80", "-s", "500", "-m", "1000"]) self._cmdline.extend(["-n", "5", "-output", "5"]) self._cmdline.extend(["-pausesegment", "-rejectshort", "200"]) self._cmdline.extend(["-nostrip"]) #self._cmdline.extend(["-multipath"]) self._cmdline.extend( ["-spmodel", "sp", "-iwsp", "-iwsppenalty", "-70.0"]) self._cmdline.extend([ "-penalty1", "5.0", "-penalty2", "20.0", "-iwcd1", "max", "-gprune", "safe" ]) self._cmdline.extend(["-record", self._logdir]) self._cmdline.extend(["-smpFreq", "16000"]) self._cmdline.extend(["-forcedict"]) #self._cmdline.extend(["-nolog"]) print "command line: %s" % " ".join(self._cmdline) self._running = True self._p = subprocess.Popen(self._cmdline) print "connecting to ports" for retry in range(0, 10): try: self._modulesocket.connect(("localhost", self._moduleport)) except socket.error: time.sleep(1) continue break for retry in range(0, 10): try: self._audiosocket.connect(("localhost", self._audioport)) except socket.error: time.sleep(1) continue break self._modulesocket.sendall("INPUTONCHANGE TERMINATE\n") print "JuliusWrap started"
def __init__(self, *args, **kwargs): self._config = config() # initialize main window gtk.Window.__init__(self, *args, **kwargs) self._filename = None self._data = None self._uimanager = gtk.UIManager() actiongroup = gtk.ActionGroup('Actions') actiongroup.add_actions(( ('Open', gtk.STOCK_OPEN, None, None, None, self.open_file), ('Save', gtk.STOCK_SAVE, None, None, None, self.save_file), ('SaveAs', gtk.STOCK_SAVE_AS, None, None, None, self.save_file_as), ('Format', gtk.STOCK_INDENT, None, None, None, self.format_data), )) self._uimanager.insert_action_group(actiongroup, 0) self._uimanager.add_ui_from_string(self.ui) self._toolbar = self._uimanager.get_widget('/ToolBar') accelgroup = self._uimanager.get_accel_group() self.add_accel_group(accelgroup) self.connect('delete_event', self.quit) self.connect('destroy', self.quit) self._xdot = MyDotWindow() self._xdot.connect('delete_event', self.quit) # intialize XML code view self._sourcebuf = gtksourceview2.Buffer( language=gtksourceview2.language_manager_get_default( ).get_language('xml')) self._sourceview = gtksourceview2.View(self._sourcebuf) self._sourceview.connect('key-press-event', self.keypressevent) self._sourceview.connect('key-release-event', self.keyreleaseevent) self._sourceview.set_show_line_numbers(True) self._sourceview.set_show_line_marks(True) self._sourceview.set_auto_indent(True) self._sourceview.set_indent_on_tab(True) self._sourceview.set_insert_spaces_instead_of_tabs(True) self._sourceview.set_tab_width(2) self._sourceview.modify_font(pango.FontDescription('Monospace 10')) self._sw = gtk.ScrolledWindow() self._sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self._sw.add(self._sourceview) # initialize information view self._infolabel = gtk.Label() self._infolabel.set_line_wrap(True) # layout main window self._vbox = gtk.VBox() self._vbox.pack_start(self._toolbar, False) self._vbox.pack_start(self._sw) self._vbox.pack_start(self._infolabel, False, False) self.add(self._vbox) self.set_size_request(400, 400) self.resize(600, 520) schemafile = os.path.join(basedir, 'grammar.xsd') xmlschema_doc = etree.parse(schemafile) self._xmlschema = etree.XMLSchema(xmlschema_doc) self.update_title()
def __init__(self, *args, **kwargs): self._config = config() # initialize main window gtk.Window.__init__(self, *args, **kwargs) self._filename = None self._data = None self._uimanager = gtk.UIManager() actiongroup = gtk.ActionGroup('Actions') actiongroup.add_actions(( ('Open', gtk.STOCK_OPEN, None, None, None, self.open_file), ('Save', gtk.STOCK_SAVE, None, None, None, self.save_file), ('SaveAs', gtk.STOCK_SAVE_AS, None, None, None, self.save_file_as), ('Format', gtk.STOCK_INDENT, None, None, None, self.format_data), )) self._uimanager.insert_action_group(actiongroup, 0) self._uimanager.add_ui_from_string(self.ui) self._toolbar = self._uimanager.get_widget('/ToolBar') accelgroup = self._uimanager.get_accel_group() self.add_accel_group(accelgroup) self.connect('delete_event', self.quit) self.connect('destroy', self.quit) self._xdot = MyDotWindow() self._xdot.connect('delete_event', self.quit) # intialize XML code view self._sourcebuf = gtksourceview2.Buffer(language=gtksourceview2.language_manager_get_default().get_language('xml')) self._sourceview = gtksourceview2.View(self._sourcebuf) self._sourceview.connect('key-press-event', self.keypressevent) self._sourceview.connect('key-release-event', self.keyreleaseevent) self._sourceview.set_show_line_numbers(True) self._sourceview.set_show_line_marks(True) self._sourceview.set_auto_indent(True) self._sourceview.set_indent_on_tab(True) self._sourceview.set_insert_spaces_instead_of_tabs(True) self._sourceview.set_tab_width(2) self._sourceview.modify_font(pango.FontDescription('Monospace 10')) self._sw = gtk.ScrolledWindow() self._sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self._sw.add(self._sourceview) # initialize information view self._infolabel = gtk.Label() self._infolabel.set_line_wrap(True) # layout main window self._vbox = gtk.VBox() self._vbox.pack_start(self._toolbar, False) self._vbox.pack_start(self._sw) self._vbox.pack_start(self._infolabel, False, False) self.add(self._vbox) self.set_size_request(400, 400) self.resize(600, 520) schemafile = os.path.join(basedir, 'grammar.xsd') xmlschema_doc = etree.parse(schemafile) self._xmlschema = etree.XMLSchema(xmlschema_doc) self.update_title()
def __init__(self, language='jp'): threading.Thread.__init__(self) self._config = config() self._running = False self._platform = platform.system() self._gotinput = False self._lang = language self._memsize = "large" #self._memsize = "medium" self._logdir = tempfile.mkdtemp() self._callbacks = [] self._grammars = {} self._firstgrammar = True self._activegrammars = {} self._prevdata = '' self._modulesocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._audiosocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._cmdline = [] self._cmdline.append(self._config._julius_bin) if self._lang in ('ja', 'jp'): self._cmdline.extend(['-h', self._config._julius_hmm_ja]) self._cmdline.extend(['-hlist', self._config._julius_hlist_ja]) self._cmdline.extend(["-dfa", os.path.join(self._config._basedir, "dummy.dfa")]) self._cmdline.extend(["-v" , os.path.join(self._config._basedir, "dummy.dict")]) self._cmdline.extend(["-sb", "80.0"]) elif self._lang == 'de': self._cmdline.extend(['-h', self._config._julius_hmm_de]) self._cmdline.extend(['-hlist', self._config._julius_hlist_de]) self._cmdline.extend(["-dfa", os.path.join(self._config._basedir, "dummy-en.dfa")]) self._cmdline.extend(["-v", os.path.join(self._config._basedir, "dummy-en.dict")]) self._cmdline.extend(["-sb", "160.0"]) else: self._cmdline.extend(['-h', self._config._julius_hmm_en]) self._cmdline.extend(['-hlist', self._config._julius_hlist_en]) self._cmdline.extend(["-dfa", os.path.join(self._config._basedir, "dummy-en.dfa")]) self._cmdline.extend(["-v", os.path.join(self._config._basedir, "dummy-en.dict")]) self._cmdline.extend(["-sb", "160.0"]) self._audioport = self.getunusedport() self._moduleport = self.getunusedport() self._cmdline.extend(["-input", "adinnet", "-adport", str(self._audioport)]) self._cmdline.extend(["-module", str(self._moduleport)]) if self._memsize == "large": self._cmdline.extend(["-b", "-1", "-b2", "120", "-s", "1000" ,"-m", "2000"]) else: self._cmdline.extend(["-b", "-1", "-b2", "80", "-s", "500" ,"-m", "1000"]) self._cmdline.extend(["-n", "5", "-output", "5"]) self._cmdline.extend(["-pausesegment", "-rejectshort", "200"]) self._cmdline.extend(["-nostrip"]) #self._cmdline.extend(["-multipath"]) self._cmdline.extend(["-spmodel", "sp", "-iwsp", "-iwsppenalty", "-70.0"]) self._cmdline.extend(["-penalty1", "5.0", "-penalty2", "20.0", "-iwcd1", "max", "-gprune", "safe"]) self._cmdline.extend(["-record", self._logdir]) self._cmdline.extend(["-smpFreq", "16000"]) self._cmdline.extend(["-forcedict"]) #self._cmdline.extend(["-nolog"]) print "command line: %s" % " ".join(self._cmdline) self._running = True self._p = subprocess.Popen(self._cmdline) print "connecting to ports" for retry in range(0, 10): try: self._modulesocket.connect(("localhost", self._moduleport)) except socket.error: time.sleep(1) continue break for retry in range(0, 10): try: self._audiosocket.connect(("localhost", self._audioport)) except socket.error: time.sleep(1) continue break self._modulesocket.sendall("INPUTONCHANGE TERMINATE\n") print "JuliusWrap started"