瀏覽代碼

upgrade to faster_whisper 1.0.3

Kolja Beigel 9 月之前
父節點
當前提交
9767e878ec
共有 2 個文件被更改,包括 58 次插入56 次删除
  1. 57 55
      RealtimeSTT/audio_recorder.py
  2. 1 1
      requirements.txt

+ 57 - 55
RealtimeSTT/audio_recorder.py

@@ -517,69 +517,71 @@ class AudioToTextRecorder:
                 for _ in range(len(self.wake_words_list))
             ]
 
-            match self.wakeword_backend:
-                case 'pvp' | 'pvporcupine':
-                    try:
-                        self.porcupine = pvporcupine.create(
-                            keywords=self.wake_words_list,
-                            sensitivities=self.wake_words_sensitivities
-                        )
-                        self.buffer_size = self.porcupine.frame_length
-                        self.sample_rate = self.porcupine.sample_rate
+            if self.wakeword_backend in {'pvp', 'pvporcupine'}:
 
-                    except Exception as e:
-                        logging.exception(
-                            "Error initializing porcupine "
-                            f"wake word detection engine: {e}"
-                        )
-                        raise
+                try:
+                    self.porcupine = pvporcupine.create(
+                        keywords=self.wake_words_list,
+                        sensitivities=self.wake_words_sensitivities
+                    )
+                    self.buffer_size = self.porcupine.frame_length
+                    self.sample_rate = self.porcupine.sample_rate
 
-                    logging.debug(
-                        "Porcupine wake word detection engine initialized successfully"
+                except Exception as e:
+                    logging.exception(
+                        "Error initializing porcupine "
+                        f"wake word detection engine: {e}"
                     )
+                    raise
 
-                case 'oww' | 'openwakeword' | 'openwakewords':
-                    openwakeword.utils.download_models()
+                logging.debug(
+                    "Porcupine wake word detection engine initialized successfully"
+                )
 
-                    try:
-                        if openwakeword_model_paths:
-                            model_paths = openwakeword_model_paths.split(',')
-                            self.owwModel = Model(
-                                wakeword_models=model_paths,
-                                inference_framework=openwakeword_inference_framework
-                            )
-                            logging.info(
-                                "Successfully loaded wakeword model(s): "
-                                f"{openwakeword_model_paths}"
-                            )
-                        else:
-                            self.owwModel = Model(
-                                inference_framework=openwakeword_inference_framework)
-                        
-                        self.oww_n_models = len(self.owwModel.models.keys())
-                        if not self.oww_n_models:
-                            logging.error(
-                                "No wake word models loaded."
-                            )
-   
-                        for model_key in self.owwModel.models.keys():
-                            logging.info(
-                                "Successfully loaded openwakeword model: "
-                                f"{model_key}"
-                            )
+        elif self.wakeword_backend in {'oww', 'openwakeword', 'openwakewords'}:
+                
+            openwakeword.utils.download_models()
 
-                    except Exception as e:
-                        logging.exception(
-                            "Error initializing openwakeword "
-                            f"wake word detection engine: {e}"
-                        )
-                        raise
+            try:
+                if openwakeword_model_paths:
+                    model_paths = openwakeword_model_paths.split(',')
+                    self.owwModel = Model(
+                        wakeword_models=model_paths,
+                        inference_framework=openwakeword_inference_framework
+                    )
+                    logging.info(
+                        "Successfully loaded wakeword model(s): "
+                        f"{openwakeword_model_paths}"
+                    )
+                else:
+                    self.owwModel = Model(
+                        inference_framework=openwakeword_inference_framework)
+                
+                self.oww_n_models = len(self.owwModel.models.keys())
+                if not self.oww_n_models:
+                    logging.error(
+                        "No wake word models loaded."
+                    )
 
-                    logging.debug(
-                        "Open wake word detection engine initialized successfully"
+                for model_key in self.owwModel.models.keys():
+                    logging.info(
+                        "Successfully loaded openwakeword model: "
+                        f"{model_key}"
                     )
-                case _:
-                    logging.exception("Wakeword engine {} unknown/unsupported. Please specify one of: pvporcupine, openwakeword.")
+
+            except Exception as e:
+                logging.exception(
+                    "Error initializing openwakeword "
+                    f"wake word detection engine: {e}"
+                )
+                raise
+
+            logging.debug(
+                "Open wake word detection engine initialized successfully"
+            )
+        
+        else:
+            logging.exception(f"Wakeword engine {self.wakeword_backend} unknown/unsupported. Please specify one of: pvporcupine, openwakeword.")
 
 
         # Setup voice activity detection model WebRTC

+ 1 - 1
requirements.txt

@@ -1,5 +1,5 @@
 PyAudio==0.2.14
-faster-whisper==1.0.2
+faster-whisper==1.0.3
 pvporcupine==1.9.5
 webrtcvad==2.0.10
 halo==0.0.31