Issues 14 - Fixing PEP8 line break at 80

pull/45/head
Jonathan D'Orleans 2016-05-24 21:37:07 -04:00
parent 41027edc89
commit 406e5dcdcd
2 changed files with 41 additions and 20 deletions

View File

@ -25,7 +25,8 @@ import speech_recognition as sr
from mycroft.client.speech.local_recognizer import LocalRecognizer
from mycroft.client.speech.mic import MutableMicrophone, Recognizer
from mycroft.client.speech.recognizer_wrapper import RemoteRecognizerWrapperFactory
from mycroft.client.speech.recognizer_wrapper import \
RemoteRecognizerWrapperFactory
from mycroft.client.speech.word_extractor import WordExtractor
from mycroft.configuration.config import ConfigurationManager
from mycroft.messagebus.message import Message
@ -80,7 +81,8 @@ class AudioConsumer(threading.Thread):
MIN_AUDIO_SIZE = 1.0 # In seconds, the minimum audio size to be sent to remote STT
def __init__(self, state, queue, emitter, wakeup_recognizer, mycroft_recognizer, remote_recognizer):
def __init__(self, state, queue, emitter, wakeup_recognizer,
mycroft_recognizer, remote_recognizer):
threading.Thread.__init__(self)
self.daemon = True
self.queue = queue
@ -97,12 +99,14 @@ class AudioConsumer(threading.Thread):
@staticmethod
def _audio_length(audio):
return float(len(audio.frame_data)) / (audio.sample_rate * audio.sample_width)
return float(len(audio.frame_data)) / (
audio.sample_rate * audio.sample_width)
def read_audio(self):
timer = Stopwatch()
audio = self.queue.get()
self.metrics.timer("mycroft.recognizer.audio.length_s", self._audio_length(audio))
self.metrics.timer("mycroft.recognizer.audio.length_s",
self._audio_length(audio))
self.queue.task_done()
timer.start()
@ -126,14 +130,18 @@ class AudioConsumer(threading.Thread):
hyp = self.mycroft_recognizer.transcribe(audio.frame_data, self.metrics)
if self.mycroft_recognizer.contains(hyp):
extractor = WordExtractor(audio, self.mycroft_recognizer, self.metrics)
extractor = WordExtractor(audio, self.mycroft_recognizer,
self.metrics)
timer.lap()
extractor.calculate_range()
self.metrics.timer("mycroft.recognizer.extractor.time_s", timer.lap())
self.metrics.timer("mycroft.recognizer.extractor.time_s",
timer.lap())
audio_before = extractor.get_audio_data_before()
self.metrics.timer("mycroft.recognizer.audio_extracted.length_s", self._audio_length(audio_before))
self.metrics.timer("mycroft.recognizer.audio_extracted.length_s",
self._audio_length(audio_before))
audio_after = extractor.get_audio_data_after()
self.metrics.timer("mycroft.recognizer.audio_extracted.length_s", self._audio_length(audio_after))
self.metrics.timer("mycroft.recognizer.audio_extracted.length_s",
self._audio_length(audio_after))
SessionManager.touch()
payload = {
@ -169,22 +177,27 @@ class AudioConsumer(threading.Thread):
"""
def target():
self.emitter.emit("speak", Message("speak", metadata={'utterance': utterance,
'session': SessionManager.get().session_id}))
self.emitter.emit("speak",
Message("speak", metadata={'utterance': utterance,
'session': SessionManager.get().session_id}))
threading.Thread(target=target).start()
def _create_remote_stt_runnable(self, audio, utterances):
def runnable():
try:
text = self.remote_recognizer.transcribe(audio, metrics=self.metrics).lower()
text = self.remote_recognizer.transcribe(audio,
metrics=self.metrics).lower()
except sr.UnknownValueError:
pass
except sr.RequestError as e:
logger.error("Could not request results from Speech Recognition service; {0}".format(e))
logger.error(
"Could not request results from Speech Recognition service; {0}".format(
e))
except CerberusAccessDenied as e:
logger.error("AccessDenied from Cerberus proxy.")
self.__speak("Your device is not registered yet. To start pairing, login at cerberus.mycroft.ai")
self.__speak(
"Your device is not registered yet. To start pairing, login at cerberus.mycroft.ai")
utterances.append("pair my device")
else:
logger.debug("STT: " + text)
@ -232,10 +245,12 @@ class RecognizerLoop(pyee.EventEmitter):
device_index=None,
lang=core_config.get('lang')):
pyee.EventEmitter.__init__(self)
self.microphone = MutableMicrophone(sample_rate=sample_rate, device_index=device_index)
self.microphone = MutableMicrophone(sample_rate=sample_rate,
device_index=device_index)
self.microphone.CHANNELS = channels # FIXME - channels are not been used
self.mycroft_recognizer = LocalRecognizer(sample_rate, lang)
self.wakeup_recognizer = LocalRecognizer(sample_rate, lang, "wake up") # TODO - localization
self.wakeup_recognizer = LocalRecognizer(sample_rate, lang,
"wake up") # TODO - localization
self.remote_recognizer = Recognizer()
self.state = RecognizerLoopState()
@ -252,7 +267,8 @@ class RecognizerLoop(pyee.EventEmitter):
self,
self.wakeup_recognizer,
self.mycroft_recognizer,
RemoteRecognizerWrapperFactory.wrap_recognizer(self.remote_recognizer)).start()
RemoteRecognizerWrapperFactory.wrap_recognizer(
self.remote_recognizer)).start()
def stop(self):
self.state.running = False

View File

@ -15,7 +15,9 @@ class WordExtractor:
self.begin = 0
self.end = self.audio_size
self.precision = int(self.audio_size * self.PRECISION_RATE)
self.silence_data = self.create_silence(self.SILENCE_SECS, self.audio.sample_rate, self.audio.sample_width)
self.silence_data = self.create_silence(self.SILENCE_SECS,
self.audio.sample_rate,
self.audio.sample_width)
self.metrics = metrics
def __add(self, is_begin, value):
@ -46,8 +48,11 @@ class WordExtractor:
def get_audio_data_before(self):
byte_data = self.audio.frame_data[0:self.begin] + self.silence_data
return AudioData(byte_data, self.audio.sample_rate, self.audio.sample_width)
return AudioData(byte_data, self.audio.sample_rate,
self.audio.sample_width)
def get_audio_data_after(self):
byte_data = self.silence_data + self.audio.frame_data[self.end:self.audio_size]
return AudioData(byte_data, self.audio.sample_rate, self.audio.sample_width)
byte_data = self.silence_data + self.audio.frame_data[
self.end:self.audio_size]
return AudioData(byte_data, self.audio.sample_rate,
self.audio.sample_width)