Chrono / test.py
fikriazain's picture
git init
45c30cf
import vosk
import pyaudio
import json
import requests
model_path = "model/vosk-model-en-us-0.42-gigaspeech/vosk-model-en-us-0.42-gigaspeech"
# Initialize the model with model-path
model = vosk.Model(model_path)
rec = vosk.KaldiRecognizer(model, 16000)
print("Ready to record")
while True:
print("Ready")
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16,
channels=1,
rate=16000,
input=True,
frames_per_buffer=8192)
data = stream.read(8192)
if rec.AcceptWaveform(data):#accept waveform of input voice
# Parse the JSON result and get the recognized text
res = rec.Result()
try:
res = json.loads(res)#Turn to json object
except:
continue
#Turn to json object
recognized_text = res['text']
print(f"User: {recognized_text}")
url = "http://127.0.0.1:5007/query"
json = {
"input_text": recognized_text,
}
req = requests.post(url, json=json)
print(f"Bot: {req.json()['output']}")
if "terminate" in recognized_text.lower():
print("Termination keyword detected. Stopping...")
break