Skip to content
Snippets Groups Projects
main.py 2.18 KiB
#!/usr/bin/env python2

import sys
import os

# set to location of libgstkaldionline2.so
os.environ['GST_PLUGIN_PATH'] = './asr/'
os.environ['GTK_THEME'] = 'light'

# import gtk stuff
from threading import Thread
import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst, Gtk, Gdk
GObject.threads_init()
Gdk.threads_init()
Gst.init(None)

# make sure ctrl-c works
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

# import local stuff
import confirm, asr, action, section, xmlview_widgets
import levenstein

class ScriptedASR(Gtk.Window):
    def __init__(self, xml_filename):
        super(ScriptedASR, self).__init__()

        self.connect("destroy", self.quit)
        self.set_default_size(800,600)
        self.set_border_width(10)
        self.set_title('ScriptedASR [%s]' % xml_filename)
        vbox = Gtk.VBox()

        self.sections = section.SectionManager()
        vbox.pack_start(self.sections, False, True, 5)

        self.xmlview = xmlview_widgets.XmlView(xml_filename)
        vbox.pack_start(self.xmlview, True, True, 5)

        self.confirmer = confirm.ConfirmationBox()
        vbox.pack_start(self.confirmer, False, True, 5)

        self.actions = action.ActionView()
        vbox.pack_start(self.actions, False, True, 5)

        self.sections.set_confirmer(self.confirmer)
        self.actions.set_confirmer(self.confirmer)

        # transcript view
        self.asr = asr.ASR(self.hyp_changed)
        vbox.pack_start(self.asr, False, True, 5)

        self.add(vbox)
        self.show_all()

        self.confirmer.hide()

        # load css style
        style_provider = Gtk.CssProvider()
        style_provider.load_from_data(open('data/style.css', 'rb').read())
        Gtk.StyleContext.add_provider_for_screen( Gdk.Screen.get_default(), style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

    def hyp_changed(self, hyp):
        hyp = ' '.join(hyp).replace('[noise]', ' ').split()
        print 'ASR:', hyp

    def quit(self, window):
        Gtk.main_quit()


if __name__ == '__main__':
    xml_filename = 'data/homeostasis_sept2014.xml'
    if len(sys.argv) > 1:
        xml_filename = sys.argv[1]
    app = ScriptedASR(xml_filename)
    Gtk.main()