ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Vosk 离线语音识别完整教程:如何在本地把音频快速转成文字

Vosk 离线语音识别完整教程:如何在本地把音频快速转成文字 Vosk 离线语音识别完整教程如何在本地把音频快速转成文字【免费下载链接】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 离线语音识别工具包就是干这个的识别全程在你自己的机器上跑断网照常工作支持 20 多种语言从树莓派、Android 手机到服务器集群都能部署。它由 C 内核驱动源码在 src/对 Python、Java、Node.js、C#、Go、Rust 等语言提供了现成绑定语言模型只有 50MB 左右加载后提供流式识别的低延迟响应还能做字幕生成和说话人区分。 上手路径安装、下载模型、跑出第一段文字先装 Python 包。它内部通过 CFFI 加载 libvosk 动态库Windows、Linux、macOS 都直接可用pip install vosk git clone https://gitcode.com/GitHub_Trending/vo/vosk-api克隆仓库是为了拿示例代码后面每一步都能对照着改。模型不用手动下载解压——Model(langen-us)会自动拉取对应语言的 small 版模型解压后缓存到~/.cache/vosk下次启动直接复用。核心流程就这么十来行from vosk import Model, KaldiRecognizer import wave model Model(langen-us) wf wave.open(audio.wav, rb) rec KaldiRecognizer(model, wf.getframerate()) while (data : wf.readframes(4000)): if rec.AcceptWaveform(data): print(rec.Result())readframes(4000)是每次喂 4000 个采样识别器一收到完整句子就返回True你打印Result()即可文件读完再调一次rec.FinalResult()收尾。也可以跳过自己写直接运行仓库里的官方示例python python/example/test_simple.py 你的音频.wav体验完整效果。能力拆解Vosk 替你解决了什么流式识别不等整段音频结束边说边出字做实时字幕或语音助手时最不能忍的是说完等三秒。Vosk 的识别器是流式的音频可以一小块一小块喂进去来自麦克风、ffmpeg 管道都行句子中间的过渡内容随时能用PartialResult()拿到你不用攒齐整个文件。想听麦克风实时转写的效果可以看 python/example/test_microphone.pyNode.js 侧对应 nodejs/demo/test_microphone.js。 一键产出 SRT / WebVTT 字幕识别结果里每个词自带start/end时间戳Python 绑定把它包装成了SrtResult(stream)把音频流丢进去它自动按每行 7 个词切分、拼出带时间轴的完整字幕。打开 python/example/test_srt.py 你会发现它只用了十几行——ffmpeg 把任意视频转成 16k 单声道 s16le 后管道进去最后print(rec.SrtResult(stream))就是成品字幕。要 WebVTT 格式就看 python/example/test_webvtt.py。批量识别多路并发还能上 GPU一段一段跑太慢时换BatchModelBatchRecognizer这套批量接口模型一次加载多路音频共享配合GpuInit()还能启用 GPU。Python 版完整示例在 python/example/test_gpu_batch.pyGo 版在 go/batch_example/test_batch.go——注意它用的是NewBatchModel而不是普通NewModel加载方式和普通识别器不同。说话人识别知道是谁在说除了说了什么你往往还关心谁说的。加载一个说话人声纹模型SpkModel挂到识别器上结果里就会附带说话人信息可以直接用来做会议记录里的分轨。用法见 python/example/test_speaker.py 和 nodejs/demo/test_speaker.js。️ 实用建议格式、断句与日志先确认音频格式再谈识别。识别器只吃单声道 PCM 的 WAV官方示例开头就会检查声道数、位宽和压缩方式不达标直接报错退出。手里是 MP3 或视频文件照 python/example/test_ffmpeg.py 的思路用 ffmpeg 转成-ar 16000 -ac 1 -f s16le再喂进去一步到位。断句快慢是可以调的。识别器靠端点检测判断这句话说完了。SetEndpointerMode提供 SHORT / LONG / VERY_LONG 等档位也可以用SetEndpointerDelays(0.5, 0.3, 10.0)微调开始、停顿、最大时长三个阈值。语音助手要秒回就调短长独白怕被截断就调长参数效果对照见 python/example/test_ep.py。日志和内存各管各的。调试完成后用SetLogLevel(-1)把日志关掉输出更干净。模型约 50MB 会整体驻留内存设备吃紧就选 small 模型Python 按lang取模型时默认就是 small。做语音指令、菜单选择这类场景还可以用SetGrammar把词表限定到几个候选项里准确率会明显提升。资源导航仓库里最该看的几个地方Python 示例集python/example/19 个按场景命名的脚本字幕、说话人、GPU 批量、麦克风、NLSML 导出、Colab 教程等是最全的学习入口命令行转写器python/vosk/transcriber/封装好的批量转写工具带进度条Go 示例go/example/单路与 go/batch_example/批量 GPUNode.js 示例nodejs/demo/含 ffmpeg 管道、异步调用Java / Android / iOSjava/demo/、android/lib/、ios/移动端绑定各带工程其他语言csharp/demo/、kotlin/、ruby/、rust/Rust 目录内是绑定说明文档C 核心 APIsrc/ 的vosk_api.h所有语言绑定最终都调到这里训练流程training/想微调自己语言的模型从这里入手收尾Vosk 的价值很直接语音数据不出你的机器一条命令装好跨十几个平台通用。下一步建议很简单——克隆仓库后挑一段 30 秒的录音跑一遍python/example/test_simple.py亲眼看看流式出字的速度再按你需要的语言换一个模型名继续。【免费下载链接】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),仅供参考
返回列表