Python Vosk speech recognition добавление словаря
Каким образом можно добавить словарь распознавающих слов в Vosk python. Мне нужно распознавать определенный, конечный набор слов/команд, а не всю речь. Подскажите как это реализовать? Я знаю что есть документация, но я не могу ничего понять от туда. Буду благодарен если опишите весь процесс пошагово.
Ответы (1 шт):
Автор решения: SAtan
→ Ссылка
#!/usr/bin/env python3
import sys
import json
import os
import pyaudio
from vosk import Model, KaldiRecognizer
model = Model("c:\\py\\vosk-model-en-us-0.22")
# Large vocabulary free form recognition
# You can specify the possible word list
rec = KaldiRecognizer(model, 16000, '["one","two","five"]')
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16,
channels=1,
rate=16000,
input=True,
frames_per_buffer=8000)
stream.start_stream()
output_txt_filename="text.txt"
print("Listening...")
emptyCount=0
text=""
while True:
data = stream.read(4000)
if len(data) == 0:
break
if rec.AcceptWaveform(data):
print("waveform accepted")
res = json.loads(rec.Result())
print("result:", res['text'])
if res['text']!="":
with open(output_txt_filename, "w") as wwf:
wwf.write(res['text'])
wwf.close()
res = json.loads(rec.FinalResult())
print("Listened: " + res['text'])