Vosk离线语音识别:5分钟本地跑通语音转文字
Vosk离线语音识别5分钟本地跑通语音转文字【免费下载链接】vosk-apiOffline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node项目地址: https://gitcode.com/GitHub_Trending/vo/vosk-api想把会议录音变成文字又不想把音频传到第三方服务器Vosk 这套离线语音识别工具包能让语音转文字整个环节留在你本机断网照常工作。Vosk 本地语音转文字工具包断网可用、模型只有 50MB最快速通装库放模型两步到位先说清三步输入、操作、得到。输入一台装好 Python 3 的电脑Windows、macOS、Linux 都行 一条 16kHz 单声道的 WAV 音频会议录音用 ffmpeg 转一下就是操作pip install vosk装库再从官网模型页挑你要的语言20 多种都有含中英法德俄等下载约 50MB 的模型包解压到比如models/en得到一个能 import 的 Python 包加一个随时可加载的模型目录模型是识别器的大脑一个语言一个包路径记牢后面所有代码都靠它指向。没有 pip 的机器先补 Python 环境这里不展开。装完跑一句 import 验证不报错就算通pip install vosk两个核心场景 装完之后最值得先跑通的是这两件事。场景一会议录音转文字你想做什么手上有一段访谈或会议录音要一份完整文字稿。怎么做思路很简单——把音频切成小片喂给识别器识别器每攒够一句就吐出一次结果这就是流式识别边读边出字不用等整段放完from vosk import Model, KaldiRecognizer import wave model Model(models/en) # 你解压的模型目录 wf wave.open(meeting.wav, rb) rec KaldiRecognizer(model, wf.getframerate()) while True: data wf.readframes(4000) if len(data) 0: break if rec.AcceptWaveform(data): print(rec.Result())你会得到什么终端里按句滚出文字想留底就把 print 改成写文件。想要更强的实时感循环里加一句rec.PartialResult()能拿到识别器还没断句的草稿结果收尾再打印一次rec.FinalResult()把最后没断完的一句也拿到手。能直接抄的完整版本在 python/example/test_simple.py。场景二给视频生成SRT字幕你想做什么有个讲座视频想配一份 SRT 字幕播放器能直接加载的那种 CC 文件。怎么做先用 ffmpeg 把声音从视频里抽出来、压成 16kHz 单声道流Vosk 的SrtResult接口能直接吐出对齐好时间戳的字幕省掉手动对时间轴的苦活import subprocess from vosk import Model, KaldiRecognizer model Model(models/en) rec KaldiRecognizer(model, 16000) cmd [ffmpeg, -loglevel, quiet, -i, talk.mp4, -ar, 16000, -ac, 1, -f, s16le, -] with subprocess.Popen(cmd, stdoutsubprocess.PIPE).stdout as out: print(rec.SrtResult(out)) # 带时间轴的字幕文本你会得到什么一段00:00:01,000 -- 00:00:05,240格式的字幕存成.srt文件VLC、剪辑软件都能直接加载。参考实现就是仓库里 python/example/test_srt.py 那十几行代码。边界与取舍它擅长什么隐私敏感场合音频全程不出本机、资源受限设备50MB 模型树莓派、安卓手机都跑得动也能横向扩到服务器集群、对话类产品流式接口延迟极低边说边出字。做离线语音识别时Vosk 在断网环境下基本是绕不开的选择。要留意的追极致精度时它不如云端那批大模型专业术语和带口音的长句容易翻车输入只认 16kHz/16位/单声道MP3、视频都得先过 ffmpeg模型按语言分开中文内容请加载中文模型别指望一个包打天下。一句话取舍云端方案拿流量换精度Vosk 拿一点准确率换隐私离线部署场景下后者更划算。踩坑速查 现象模型加载报错或一直转圈 →原因路径给的是 zip 而不是解压后的目录 →解法解压后指向文件夹根路径。现象识别结果是乱码或空白 →原因音频不是 16kHz/16位/单声道 →解法ffmpeg -i in.mp3 -ar 16000 -ac 1 out.wav转一下。现象说中文却只出英文 →原因加载了英文模型 →解法下载对应语言的模型多语言程序里各建一个 Model 切换。现象小设备上识别跟不上语速 →原因模型规格偏大 →解法换官方最小规格模型实时性优先。现象终端被调试日志刷屏 →原因默认日志级别太吵 →解法代码开头加SetLogLevel(-1)静音。下一步如果你主要做会议转录先把场景一的代码跑通再接麦克风实时输入也不迟。不想手写代码的话项目里自带命令行转录工具见 python/vosk/transcriber/Go、Java、Node、Kotlin 等语言绑定也都在仓库里翻得到。【免费下载链接】vosk-apiOffline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node项目地址: https://gitcode.com/GitHub_Trending/vo/vosk-api创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考