恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

从 0 到 1 训练 Vosk 离线语音识别模型:Kaldi 流程完整实操

  • 首页
  • 资讯中心
  • /
  • 从 0 到 1 训练 Vosk 离线语音识别模型:Kaldi 流程完整实操

相关资讯

STM32蓝牙机械键盘DIY:矩阵扫描、BLE HID与低功耗实现 2026/9/11 7:07:24
Backstage 事件审计系统(Event Auditor / AuditorService)设计解析:从 BEP-0011 到核心服务的落地实现 2026/9/11 7:07:24
.NET字符串内存管理与性能优化实战 2026/9/11 7:02:24

最新资讯

各类教育管理系统扫码签到功能盘点整理
2026河北统招专升本线上课怎么挑?头部网课实力盘点与避坑指南
新闻媒体资源怎么找?曜道媒介发稿平台提供10万+传播资源
ComfyUI模型量化实战:显存、精度与速度的工程平衡术
AirLLM实战:单卡4GB显存无损运行70B大模型
电商竞争分析实战:从竞品定义到策略落地的完整方法论

今日推荐

YOLO烟盒数据集目标检测训练全流程:标注校验、格式转换与模型复现
HuffPost新闻数据集解析:JSONL加载与时间感知分类实战
Budibase 本地开发环境搭建与运行指南:从全新克隆到 dev 栈启动的完整实践

本周热门

超人会飞不算本事:系统稳定依赖清晰规则与边界设计
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
基于CNN的调制信号识别:MATLAB实现时频图分类实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

从 0 到 1 训练 Vosk 离线语音识别模型:Kaldi 流程完整实操

发布时间:2026/9/11 7:07:24
从 0 到 1 训练 Vosk 离线语音识别模型:Kaldi 流程完整实操 从 0 到 1 训练 Vosk 离线语音识别模型Kaldi 流程完整实操【免费下载链接】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-api 仓库的 training/ 目录里就藏着一套完整的 Kaldi 训练流水线可以给你自己领域的口音训出专属声学模型推理全程离线。原理速览Vosk 管推理Kaldi 管训练vosk-api 本体是推理侧的绑定层src/ 里的 C 核心声学模型、识别器、语言模型被包装成 Python、Java、C#、Node 等接口让树莓派到服务器都能本地跑转写。训练是另一回事。training/ 目录搭在 Kaldi 之上整条流水线分三层特征提取把波形转成 MFCC可以理解为给声音拍照——每帧 40 个 mel 滤波器组的能量压缩成 40 维系数向量mfcc.conf 里设定了 20Hz 低切与 -400Hz 高切。声学模型先训 GMMmono → tri1 → tri2 → tri3产出帧级对齐再在其基础上训 TDNN chain 模型。run_tdnn.sh 定义了 512 维 TDNN 层瓶颈 96 维网络输入还拼接 40 维 i-vector相当于给每段话贴一张说话人档案卡让模型顺着说话人做自适应。语言模型解码先用小 LM tgsmall 建图再用 tgmed 重打分。官方 RESULTS.txt 显示这一步单独把 WER 从 14.10% 拉到 12.67%。这套组合的价值在于分工Kaldi 负责训练的重活vosk-api 负责把模型包成能跑在手机、树莓派上的流式识别器结果完全离线。最小可运行路径5 个 stage 跑完整条流水线git clone https://gitcode.com/GitHub_Trending/vo/vosk-api cd vosk-api/training bash run.sh --stage 0 --stop_stage 0 # 下载 LibriSpeech 语言模型转换数据 bash run.sh --stage 1 --stop_stage 2 # 建音素词典 提取 MFCC 特征 bash run.sh --stage 3 --stop_stage 4 # GMM 对齐 TDNN 训练最耗时 bash run.sh --stage 5 --stop_stage 5 # 解码 大 LM 重打分自动打印 WER bash RESULTS # 汇总各 decode 目录的最优 WER前提是装好 Kaldi 且 training/ 下的 path.sh 指向正确的 KALDI_ROOT见 training/README.md。各 stage 分工stage做什么关键文件0下载 LibriSpeech train-clean-5 与语言模型转数据local/data_prep.sh1建音素词典生成 langlocal/prepare_dict.sh2MFCC CMVN 特征提取conf/mfcc.conf3GMM 训练与强制对齐mono → tri3run.sh stage 3 代码块4TDNN chain 模型训练local/chain/run_tdnn.sh5解码 LM 重打分 WERRESULTSstage 编号的含义是某代码块只在编号落在 --stage 与 --stop_stage 之间时执行。所以 TDNN 训练中途挂了用 --stage 4 单独重跑训练即可不用重做特征提取。换上自己的语料不用 LibriSpeech 时语料要摆成 data_prep.sh 要求的结构my-corpus/ ├── SPEAKERS.TXT # 格式说话人ID | m 或 f竖线分隔 └── train-clean-5/ └── 1089/ # 说话人目录名必须纯整数 └── 74747/ # 章节目录名也必须纯整数 ├── 1089-74747-00000000.flac └── 1089-74747.trans.txt # 每行utterance ID 文本ID 与 flac 同名bash local/data_prep.sh my-corpus/train-clean-5 data/train # 生成 wav.scp / text / utt2spk / spk2gender末尾自带 validate 校验注意 wav.scp 里存的是flac -c -d -s解码管道命令不是 wav 文件路径——音频在训练机上现解。 调优与边界先读懂 WER再对号入座WER 一行怎么读RESULTS.txt 的两行分别是重打分前后的 WER方括号里是总错误数 / 参考词总数dev-clean-2 共 20138 词ins / del / sub 依次为插入、删除、替换。2138 个替换远多于插入删除之和说明继续压 WER 的优先动作是补领域音频而不是堆语言模型。常见坑对照表现象原因解法报 Please install flac on ALL worker nodeswav.scp 存的是 flac 管道命令训练机要现场解码所有训练机装 flac不是只在准备数据那台装unexpected subdirectory name 或转写条数不一致说话人/章节目录名非纯整数或 SPEAKERS.TXT 不是 ID|性别 竖线格式目录名改整数SPEAKERS.TXT 的 ID 与目录名逐个核对首解 WER 偏高解码图只用了小 LM tgsmall保留 stage 5 的 tgmed rescore 步骤不够再调 --beam默认 13.0与 post-decode-acwtCPU 上训练时间漫长cmd.sh 里 cuda_cmd 默认 run.plGPU 没启用GPU 机器改成 queue.pl --gpu 1需 Kaldi 的 SGE/queue 环境想换自定义词表prepare_dict.sh 写死读取 librispeech-lexicon.txt自己改该脚本的词典输入再重跑 stage 1还有一个容易踩的误导vosk_builder.py 不是用来导出你训好的模型的它只编译 python/vosk 的 CFFI 绑定。把 Kaldi 训练成果打包成可分发的 vosk 模型流程在这个仓库之外。 收尾能带走什么声学模型落在 exp/chain/tdnn评估入口是 bash RESULTS参考指标rescore 后 WER 12.67%LibriSpeech dev-clean-2模型打包完成后Python 侧只需两行接入官方 small 模型包约 50 MB可离线部署from vosk import Model, KaldiRecognizer import wave wf wave.open(test.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.FinalResult())边界提醒仓库内没有模型打包工具exp/chain/tdnn 是 Kaldi 格式分发用的 vosk 模型 zip 需要走仓库外的打包流程。【免费下载链接】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),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号