diff options
| author | Clayton G. Hobbs <clay@lakeserv.net> | 2016-02-16 13:14:28 -0500 |
|---|---|---|
| committer | Clayton G. Hobbs <clay@lakeserv.net> | 2016-02-16 13:14:28 -0500 |
| commit | 1c2928ff1a68db1f0408e02138121e8ac1253239 (patch) | |
| tree | 8b62e00c0f6a30d4f14acb86caf9336f68dab8c4 /recognizer.py | |
| parent | b95f1154291f6af9e95193b442abc61e9d457fcc (diff) | |
Reorganize classes into a "kayleevc" package
That's "Kaylee Voice Command" if you didn't figure it out. I think everything still works properly, but I'll do more testing later to verify.
Diffstat (limited to 'recognizer.py')
| -rw-r--r-- | recognizer.py | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/recognizer.py b/recognizer.py deleted file mode 100644 index b54c055..0000000 --- a/recognizer.py +++ /dev/null @@ -1,69 +0,0 @@ -# This is part of Kaylee -# -- this code is licensed GPLv3 -# Copyright 2015-2016 Clayton G. Hobbs -# Portions Copyright 2013 Jezra - -import os.path -import sys - -import gi -gi.require_version('Gst', '1.0') -from gi.repository import GObject, Gst -GObject.threads_init() -Gst.init(None) - - -class Recognizer(GObject.GObject): - __gsignals__ = { - 'finished' : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, - (GObject.TYPE_STRING,)) - } - - def __init__(self, config): - GObject.GObject.__init__(self) - self.commands = {} - - src = config.options.microphone - if src: - audio_src = 'alsasrc device="hw:{0},0"'.format(src) - else: - audio_src = 'autoaudiosrc' - - # Build the pipeline - cmd = ( - audio_src + - ' ! audioconvert' + - ' ! audioresample' + - ' ! pocketsphinx lm=' + config.lang_file + ' dict=' + - config.dic_file + ' configured=true' + - ' ! appsink sync=false' - ) - try: - self.pipeline = Gst.parse_launch(cmd) - except Exception as e: - print(e.message) - print("You may need to install gstreamer1.0-pocketsphinx") - raise e - - # Process results from the pipeline with self.result() - bus = self.pipeline.get_bus() - bus.add_signal_watch() - bus.connect('message::element', self.result) - - def listen(self): - self.pipeline.set_state(Gst.State.PLAYING) - - def pause(self): - self.pipeline.set_state(Gst.State.PAUSED) - - def result(self, bus, msg): - msg_struct = msg.get_structure() - # Ignore messages that aren't from pocketsphinx - msgtype = msg_struct.get_name() - if msgtype != 'pocketsphinx': - return - - # If we have a final command, send it for processing - command = msg_struct.get_string('hypothesis') - if command != '' and msg_struct.get_boolean('final')[1]: - self.emit("finished", command) |