Browse Source

[Feature]-> Wrapper to manager multiple STT [Refactoring]-> Project package architecture refactoring

monf 8 years ago
parent
commit
fd47b1276d

+ 0 - 35
core/Utils.py

@@ -1,38 +1,3 @@
-import yaml
-import os
-
-
-def get_settings():
-    """
-    Load settings.yml file
-    :return:
-    """
-    filename = "settings.yml"
-    return _load_yaml_file(filename)
-
-
-def get_brain():
-    """
-    Load brain.yml file
-    :return:
-    """
-    filename = "../brain.yml"
-    return _load_yaml_file(filename)
-
-
-def _load_yaml_file(file_to_load):
-    """
-    Load settings file
-    :return:
-    """
-    # Load settings. Will be used to convert slot number into GPIO pin number
-    __location__ = os.path.realpath(
-        os.path.join(os.getcwd(), os.path.dirname(__file__)))
-    with open(os.path.join(__location__, file_to_load)) as ymlfile:
-        cfg = yaml.load(ymlfile)
-    return cfg
-
-
 def my_import(name):
     components = name.split('.')
     mod = __import__(components[0])

+ 39 - 0
stt/Google/Google.py

@@ -0,0 +1,39 @@
+import speech_recognition as sr
+from core.OrderListener import OrderListener
+
+
+class GoogleSpeechRecognition(OrderListener):
+
+    def __init__(self, main_controller=None):
+        OrderListener.__init__(self, main_controller)
+        self.listen()
+
+    def listen(self):
+        """
+        Start recording the microphone
+        :return:
+        """
+        # obtain audio from the microphone
+        r = sr.Recognizer()
+        with sr.Microphone() as source:
+            # listen for 1 second to calibrate the energy threshold for ambient noise levels
+            r.adjust_for_ambient_noise(source)
+            print("Say something!")
+            audio = r.listen(source)
+
+        # recognize speech using Google Speech Recognition
+        try:
+            # for testing purposes, we're just using the default API key
+            # to use another API key, use `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")`
+            # instead of `r.recognize_google(audio)`
+            captured_audio = r.recognize_google(audio, key=None, language="fr-FR")
+            print "Google Speech Recognition thinks you said %s" % captured_audio
+            self._analyse_audio(captured_audio)
+
+        except sr.UnknownValueError:
+            print("Google Speech Recognition could not understand audio")
+        except sr.RequestError as e:
+            print("Could not request results from Google Speech Recognition service; {0}".format(e))
+
+    def _analyse_audio(self, audio):
+        self.main_controller.analyse_order(audio)

+ 0 - 0
stt/snowboy/__init__.py → stt/Google/__init__.py


+ 0 - 0
trigger/__init__.py


+ 0 - 0
trigger/snowboy/__init__.py


+ 0 - 0
stt/snowboy/_snowboydetect.so → trigger/snowboy/_snowboydetect.so


+ 0 - 0
stt/snowboy/resources/GlaDOS.pmdl → trigger/snowboy/resources/GlaDOS.pmdl


+ 0 - 0
stt/snowboy/resources/common.res → trigger/snowboy/resources/common.res


+ 0 - 0
stt/snowboy/resources/ding.wav → trigger/snowboy/resources/ding.wav


+ 0 - 0
stt/snowboy/resources/dong.wav → trigger/snowboy/resources/dong.wav


+ 0 - 0
stt/snowboy/resources/jarviss.pmdl → trigger/snowboy/resources/jarviss.pmdl


+ 0 - 0
stt/snowboy/resources/snowboy.umdl → trigger/snowboy/resources/snowboy.umdl


+ 6 - 4
stt/snowboy/snowboydecoder.py → trigger/snowboy/snowboydecoder.py

@@ -1,12 +1,14 @@
 #!/usr/bin/env python
 
 import collections
-import pyaudio
-import snowboydetect
+import logging
+import os
 import time
 import wave
-import os
-import logging
+
+import pyaudio
+
+import snowboydetect
 
 logging.basicConfig()
 logger = logging.getLogger("snowboy")

+ 0 - 0
stt/snowboy/snowboydetect.py → trigger/snowboy/snowboydetect.py