Zuerst installierst du die erforderlichen Pakete.
python -m pip install vosk sounddevice
Dann ladest du ein Sprachmodell herunter, z.B deutsch
curl https://alphacephei.com/vosk/models/vosk-model-small-de-0.15.zip -o vosk-model-small-de-0.15.zip
Hier ist ein Beispiel Script.
import sounddevice as sd
import queue
import sys
import json
from vosk import Model, KaldiRecognizer
# Modellpfad (Ordner entpackt)
MODEL_PATH = "vosk-model-small-de-0.15"
# Audiokonfiguration
samplerate = 16000 # Muss zu Modell passen
device = None # None = Standardgerät verwenden
# Queue für Audioaufnahme
q = queue.Queue()
# Callback für SoundDevice
def callback(indata, frames, time, status):
if status:
print(f"Fehler: {status}", file=sys.stderr)
q.put(bytes(indata))
# Lade das Modell
print("Lade Sprachmodell...")
model = Model(MODEL_PATH)
recognizer = KaldiRecognizer(model, samplerate)
recognizer.SetWords(True)
# Starte den Stream
with sd.RawInputStream(samplerate=samplerate, blocksize=8000, device=device, dtype='int16', channels=1, callback=callback):
print("Sprich etwas ins Mikrofon... (Strg+C zum Beenden)")
try:
while True:
data = q.get()
if recognizer.AcceptWaveform(data):
result = json.loads(recognizer.Result())
print("Erkannt:", result.get("text", ""))
else:
partial = json.loads(recognizer.PartialResult())
print("Teil:", partial.get("partial", ""))
except KeyboardInterrupt:
print("\nBeendet")