Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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.
''')
Ejemplo n.º 6
0
    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'))
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
    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")))
Ejemplo n.º 9
0
 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
Ejemplo n.º 10
0
 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
Ejemplo n.º 11
0
    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.
''')
Ejemplo n.º 12
0
    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'))
Ejemplo n.º 13
0
    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.
"""
        )
Ejemplo n.º 14
0
    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.
''')
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
    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")
Ejemplo n.º 17
0
 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"
Ejemplo n.º 18
0
    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()
Ejemplo n.º 19
0
    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()
Ejemplo n.º 20
0
 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"