支持被压缩的wav,缺点是准确率低
import json
import wave
from vosk import Model, KaldiRecognizer
from pydub import AudioSegment
from pydub.utils import make_chunks
def recognize_wave(model, file_path):
print(111)
# 打开WAV音频文件
with wave.open(file_path, 'rb') as wf:
print(1)
rate = wf.getframerate() # 采样率
frames = wf.readframes(wf.getnframes()) # 读取所有帧
rec = KaldiRecognizer(model, rate)
rec.SetWords(True)
str_ret = ""
# 识别音频数据
if rec.AcceptWaveform(frames):
result = json.loads(rec.Result())
if 'text' in result:
str_ret += result['text']
result = json.loads(rec.FinalResult())
if 'text' in result:
str_ret += result['text']
str_ret = "".join(str_ret.split())
return str_ret
if __name__ == "__main__":
# 设置原始音频文件路径和新的采样率
file_path = '87622-1.wav'
new_sampling_rate = 44100 # 假设我们想要改变为44.1kHz
# 加载音频
audio = AudioSegment.from_file(file_path)
# 设置新的采样率
audio.set_frame_rate(new_sampling_rate)
# 保存新的音频文件
audio.export('output1234.wav', format='wav')
model = Model("vosk-model-cn-0.22")
file_path = 'output1234.wav' # 请确保文件名和路径正确
res = recognize_wave(model, file_path)
print(res)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix