deaf_comm / app /services /speech_recognition_service.py
Fred-Rcky's picture
Upload folder using huggingface_hub
4fa0613 verified
Raw
History Blame Contribute Delete
1.19 kB
import os
import json
import vosk
class SpeechRecognitionService:
def __init__(self, model_path=None):
if model_path is None:
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
model_path = os.path.join(base_dir, "models", "vosk-model-small-en-us-0.15")
if not os.path.exists(model_path):
raise FileNotFoundError(f"Vosk model not found at {model_path}")
print(f"Loading Vosk model from {model_path}...")
self.model = vosk.Model(model_path)
def transcribe(self, audio_data, samplerate):
recognizer = vosk.KaldiRecognizer(self.model, samplerate)
if recognizer.AcceptWaveform(audio_data):
result = json.loads(recognizer.Result())
return result.get("text", "")
else:
partial = json.loads(recognizer.PartialResult())
return partial.get("partial", "")
def transcribe_full(self, audio_data, samplerate):
recognizer = vosk.KaldiRecognizer(self.model, samplerate)
recognizer.AcceptWaveform(audio_data)
result = json.loads(recognizer.FinalResult())
return result.get("text", "")