summaryrefslogtreecommitdiff
path: root/client/mic.py
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2014-07-23 21:21:17 -0700
committerschneefux <schneefux+commit@schneefux.xyz>2014-07-23 21:21:17 -0700
commit2c55f4da462383ee6c7b89ea44e5c40cd5badf0c (patch)
tree078672f2b221cfb7d0aa765f438002a277914c9f /client/mic.py
parent8a5e5ed385a5c467260c2f1b20816a66cebfc1c6 (diff)
downloadjasper-client-2c55f4da462383ee6c7b89ea44e5c40cd5badf0c.tar.gz
jasper-client-2c55f4da462383ee6c7b89ea44e5c40cd5badf0c.zip
Google STT works on OS X
Diffstat (limited to 'client/mic.py')
-rw-r--r--client/mic.py33
1 files changed, 13 insertions, 20 deletions
diff --git a/client/mic.py b/client/mic.py
index f4b70df..48f14de 100644
--- a/client/mic.py
+++ b/client/mic.py
@@ -10,19 +10,12 @@ import pyaudio
import alteration
-# quirky bug where first import doesn't work
-try:
- import pocketsphinx as ps
-except:
- import pocketsphinx as ps
-
-
class Mic:
speechRec = None
speechRec_persona = None
- def __init__(self, speaker, lmd, dictd, lmd_persona, dictd_persona, lmd_music=None, dictd_music=None):
+ def __init__(self, speaker, passive_stt_engine, active_stt_engine):
"""
Initiates the pocketsphinx instance.
@@ -34,13 +27,8 @@ class Mic:
dictd_persona -- filename of the 'Persona' dictionary (.dic)
"""
self.speaker = speaker
- hmdir = "/usr/local/share/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k"
-
- if lmd_music and dictd_music:
- self.speechRec_music = ps.Decoder(hmm = hmdir, lm = lmd_music, dict = dictd_music)
- self.speechRec_persona = ps.Decoder(
- hmm=hmdir, lm=lmd_persona, dict=dictd_persona)
- self.speechRec = ps.Decoder(hmm=hmdir, lm=lmd, dict=dictd)
+ self.passive_stt_engine = passive_stt_engine
+ self.active_stt_engine = active_stt_engine
def transcribe(self, audio_file_path, PERSONA_ONLY=False, MUSIC=False):
"""
@@ -210,7 +198,8 @@ class Mic:
write_frames.close()
# check if PERSONA was said
- transcribed = self.transcribe(AUDIO_FILE, PERSONA_ONLY=True)
+ #transcribed = self.transcribe(AUDIO_FILE, PERSONA_ONLY=True)
+ transcribed = self.passive_stt_engine.transcribe(AUDIO_FILE, PERSONA_ONLY=True)
if PERSONA in transcribed:
return (THRESHOLD, PERSONA)
@@ -223,7 +212,8 @@ class Mic:
"""
AUDIO_FILE = "active.wav"
- RATE = 16000
+ #RATE = 16000
+ RATE = 44100
CHUNK = 1024
LISTEN_TIME = 12
@@ -232,7 +222,8 @@ class Mic:
if not os.path.exists(AUDIO_FILE):
return None
- return self.transcribe(AUDIO_FILE)
+ #return self.transcribe(AUDIO_FILE)
+ return self.active_stt_engine.transcribe(AUDIO_FILE)
# check if no threshold provided
if THRESHOLD == None:
@@ -285,9 +276,11 @@ class Mic:
# os.system("sox "+AUDIO_FILE+" temp.wav vol 20dB")
if MUSIC:
- return self.transcribe(AUDIO_FILE, MUSIC=True)
+ #return self.transcribe(AUDIO_FILE, MUSIC=True)
+ return self.active_stt_engine.transcribe(AUDIO_FILE, MUSIC=True)
- return self.transcribe(AUDIO_FILE)
+ #return self.transcribe(AUDIO_FILE)
+ return self.active_stt_engine.transcribe(AUDIO_FILE)
def say(self, phrase, OPTIONS=" -vdefault+m3 -p 40 -s 160 --stdout > say.wav"):
# alter phrase before speaking