#!/usr/bin/env python3
from vosk import Model, KaldiRecognizer, SetLogLevel
import sys
import os
import wave
SetLogLevel(0)
if not os.path.exists("model"):
print ("Please download the model from https://alphacephei.com/vosk/models and unpack as 'model' in the current folder.")
exit (1)
wf = wave.open("3.wav", "rb")
if wf.getnchannels() != 1 or wf.getsampwidth() != 2 or wf.getcomptype() != "NONE":
print ("Audio file must be WAV format mono PCM.")
exit (1)
model = Model("model")
rec = KaldiRecognizer(model, wf.getframerate())
num = 0
while True:
data = wf.readframes(256)
# print(data)
if len(data) == 0:
break
if rec.AcceptWaveform(data):
print(rec.Result())
else:
print("第{}貞".format(num))
print(rec.PartialResult())
num = num + 1
print(rec.FinalResult())
結果
第111貞
{
"partial" : ""
}
第112貞
{
"partial" : ""
}
第113貞
{
"partial" : ""
}
第114貞
{
"partial" : "小"
}
第115貞
{
"partial" : "小"
}
第116貞
{
"partial" : "小"
}
第117貞
{
"partial" : "小"
}
第118貞
{
"partial" : "小"
}
第119貞
{
"partial" : "小"
}
第120貞
{
"partial" : "小"
}
第121貞
{
"partial" : "小"
}
第122貞
{
"partial" : "小"
}
第123貞
{
"partial" : "小"
}
第124貞
{
"partial" : "小"
}
第125貞
{
"partial" : "小"
}
第126貞
{
"partial" : "小"
}
第127貞
{
"partial" : "小記"
}
第128貞
{
"partial" : "小記"
}
第129貞
{
"partial" : "小記"
}
第130貞
{
"partial" : "小記"
}
更多內容請參考
https://github.com/LiuXinyu12378/vosk-api
https://alphacephei.com/vosk/models
