import wave
import json
from vosk import Model, KaldiRecognizer
# 音频文件路径,需替换成实际音频文件的路径
audio_file_path = 'output.wav'
# 模型路径
model_path = r"C:\Users\13940\voskmodels\vosk-model-cn-0.22"
# 打开音频文件
wf = wave.open(audio_file_path, "rb")
# 检查音频文件参数
if wf.getnchannels() != 1 or wf.getsampwidth() != 2 or wf.getcomptype() != "NONE":
print("音频文件必须是单声道、16位、无压缩的 WAV 格式。")
exit(1)
# 加载 Vosk 模型
model = Model(model_path)
rec = KaldiRecognizer(model, wf.getframerate())
while True:
data = wf.readframes(4000)
if len(data) == 0:
break
if rec.AcceptWaveform(data):
result = json.loads(rec.Result())
print(result["text"])
# 获取最终识别结果
final_result = json.loads(rec.FinalResult())
print(final_result["text"])
# 关闭音频文件
wf.close()
语言模型下载地址https://alphacephei.com/vosk/models