如何快速在本地跑起离线语音识别:Vosk 从零上手完整指南
2026/9/14 7:41:38 网站建设 项目流程

如何快速在本地跑起离线语音识别: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 多种语言的音频转成文字,适合想把"语音转文字"能力装进自己软件、脚本或设备里的开发者。

🎯 先对号入座:你正踩中这些场景吗

会议室断网了,你需要把讨论内容变成可检索的文字;你在做语音助手,又不想把用户录音上传到云端;还有一批采访录音要批量出字幕,按量付费的在线接口让你犹豫。这些情况都指向同一个要求:识别引擎必须跑在本地。Vosk 就是为此设计的——模型约 50 MB,加载进内存即可连续转写,小到树莓派、Android 手机都能带动。

📦 两条命令跑起来:安装到第一次转写

Python 用户只需要装两个依赖:

pip install vosk sounddevice

前者是识别模块,后者负责从声卡读取音频。模型在代码里按语言名指定即可,比如en-us表示美式英语,下载后解压成本地文件夹就能加载。转写一个本地 WAV 文件的最小脚本是 python/example/test_simple.py:加载模型、创建识别器、循环喂音频帧、打印结果,不到 40 行。

⚙️ Vosk 真正能帮你干的四件事

1. 流式识别,边说边出字

不用等录完再转。音频按几十毫秒一帧喂进去,过程中随时能拿到"部分结果",句子结束自动输出最终文本。这适合"话音刚落就要看到文字"的交互,比如实时字幕条和语音输入框。

2. 20+ 语言与方言开箱即用

英语、印度英语、中文、西班牙语、法语、德语、葡萄牙语、俄语、日语、阿拉伯语等 20 多种语言都有现成模型,而且列表还在扩充。产品要进多个市场时,换模型就行,业务代码不用动。

3. 词表可限定 + 说话人识别

可以传入一个候选短语列表,让识别器只在这个范围内输出,做智能家居指令、设备唤醒词时准确率很稳;也可以挂一个说话人模型,为每段语音提取"声纹"向量,据此区分录音里是谁在说话。对应示例在 python/example/test_words.py 和 python/example/test_speaker.py。

4. 从小设备到服务器集群

同一个 C++ 核心(接口定义见 src/vosk_api.h)被封装进各语言。个人设备上跑流式单路识别;服务器上有批量接口(BatchModel / BatchRecognizer),配合 test_gpu_batch.py 这类脚本做大批量离线转写。

💻 动手示例:Python 实时麦克风转写

核心套路是:建模型 → 建识别器 → 在音频回调里调AcceptWaveform,看返回是完整句子还是部分结果,总共十几行:

import sounddevice as sd from vosk import Model, KaldiRecognizer model = Model(lang="en-us") rec = KaldiRecognizer(model, 16000) def callback(indata, frames, time, status): if rec.AcceptWaveform(bytes(indata)): print(rec.Result()) # 一句话结束 else: print(rec.PartialResult()) # 过程中的部分结果 sd.RawInputStream(samplerate=16000, blocksize=8000, dtype="int16", channels=1, callback=callback).start()

跑起来后对着麦克风说话,每说完一句就打印一句转写。想保存录音或指定输入设备,完整写法在 python/example/test_microphone.py;要把视频直接变成 SRT 字幕,python/example/test_srt.py 用 ffmpeg 取音频流后一步生成。

其他平台同样有现成入口:Java 与 Android 各有一个可构建的 demo(java/README.md、android/README.md),Kotlin 多平台支持看 kotlin/,Node.js 提供麦克风、文件、字幕等 5 个 demo(nodejs/demo/),C# 与 Go 也都有示例工程(csharp/demo/、go/example/),Ruby 封装在 ruby/。

🗂️ 它最顺手的四个业务场景

  • 会议与讲座转写:长时间录音持续喂帧,句末自动切分,散会前就能拿到全文初稿,后续检索和整理都靠这份文本。
  • 视频字幕制作:音频流进、带时间戳的 SRT 或 WebVTT 出,直播和离线视频都能覆盖,模板脚本已备好。
  • 本地语音助手:唤醒之后在端上做命令识别,用户语音不离开设备,隐私合规压力小。
  • 多人访谈整理:挂上说话人模型,每句自动标注说话人,多人录音不用人工对时间线。

🧩 进阶:让模型更懂你的领域

通用模型在专业领域(医疗、法律、内部术语)准确率不够时,有两条路。一条是轻量路线:限定候选词表、调整句末检测策略,不动模型先榨出提升;另一条是训练路线,仓库的 training/ 目录提供了基于 Kaldi 的完整流水线:数据准备、特征提取、声学模型训练、TDNN chain 模型、解码与 WER 评测,按run.sh的阶段参数逐步跑即可。

📚 资源导航

  • 各语言模块说明:python/README.md、java/README.md、go/README.md
  • 全部示例代码:python/example/,16 个脚本覆盖麦克风、文件、字幕、说话人、数字规范化等
  • 核心 C 接口:src/vosk_api.h,所有语言绑定都从它派生

如果只是想先看到效果,pip install vosk之后直接跑 Python 示例,十分钟以内就能听到第一句转写出来。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询