ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Whisper 微调指南:如何让语音识别模型听懂你的行业黑话

2026/8/29 11:52:23 拓冰建站 浏览量
Whisper 微调指南:如何让语音识别模型听懂你的行业黑话 Whisper 微调指南如何让语音识别模型听懂你的行业黑话【免费下载链接】whisperRobust Speech Recognition via Large-Scale Weak Supervision项目地址: https://gitcode.com/GitHub_Trending/whisp/whisper客服录音里型号 X7-Pro被转成型号 7pro、手术录音里的药名全部打错通常不是模型不够大而是缺一次领域适配。下面是 Whisper 微调与语音识别模型定制的完整流程用 10 小时自己的录音让通用语音识别模型学会你的术语。Whisper 微调的本质不换翻译官只搞一周岗前培训微调不是重新训一个模型相当于给全能翻译官做一周岗前培训听力和语法编码器把 30 秒音频变成特征向量解码器逐 token 生成文本都是现成的你只让它背熟你公司的术语、口音和语速。改动集中在网络后段所以收敛快代价大约是一张卡跑一晚。语音识别模型定制选型规格跟着数据量和显存走模型规格参数量最低显存微调fp16梯度累积适合谁tiny / tiny.en39 M6 GB先跑通流程验证数据管道base / base.en74 M8 GB数据少于 10 小时快速试错small / small.en244 M12 GB10~30 小时数据12 GB 显存的甜点medium / medium.en769 M16 GB30 小时以上中文数据的主力24 GB 卡large / large-v31.55 B40 GB数据量大、精度要求高A100/H100turbo809 M24 GB推理速度敏感场景编码器基本冻结微调上限低于 medium表内显存是全量微调的估算冻结编码器只训解码器还能再省一半。如果你有 10 小时中文数据 24 GB 显存选 medium 稳——它在中文短音频上的特征提取已够用large 的边际收益在 10 小时数据时基本吃不到只有 12 GB 显存就先跑 small验证完数据质量再升规格纯英文场景选 .en 变体词表小一半解码更快。硬件门槛一行说清GPU 12 GB 显存起步24 GB 更从容 / 内存 32 GB / 磁盘 100 GB 可用空间数据 checkpoint 日志。语音识别模型定制的数据准备格式、清洗清单与 10 小时门槛说白了数据质量是微调的上限超参只能把你带到数据质量的 80 分带不到 100 分。数据从哪来自录成本最低但麦克风、距离、背景噪音要和真实部署场景一致否则学到的是不存在的环境。业务录音最有价值但先走隐私合规脱敏、审批或匿名化⚠️省了这步后面全白搭。标注平台适合放量用双标 第三方仲裁控制拼写一致率。开源数据集当通用能力底料按约 7:3 与领域数据混合防止模型忘了怎么说话。格式最稳的是两列 CSVJSON 列表同结构也行一行一条音频audio,text audio/0001.wav,这是第一个音频文件的转录文本 audio/0002.wav,请把 X7-Pro 的规格书发到我的邮箱按 train / val / test 切成三份建议 8:1:1路径写成相对路径别用绝对路径——换台机器训练就全崩。清洗清单统一重采样到 16 kHz模型特征提取就是按 16 kHz 做的混入 44.1 kHz 音频会直接错位去首尾静音和长无声段长静音会让解码器脑补出不存在的话文本统一小写、标点全半角风格标注风格混用会让模型在该不该带标点上反复横跳单说话人、单条 ≤30 秒超过的按自然停顿切开30 秒是模型单次输入的窗口抽 10 条人耳核对音频和文本是否对齐错位是头号杀手比任何超参都致命数据量门槛10 小时起步30 小时以上效果明显。只有 2 小时录音时要么先微调 small小数据下小模型收益更稳不容易过拟合到垃圾要么先用标注平台 开源数据把量凑上去再训 medium。三个常见坑坑表现解法标注不一致同一术语两个标注员写出两种拼法建一份别名术语表训练前统一映射方言混杂普通话和方言录音混在一个集里按地区分层或先只收普通话数据方言单独一轮背景噪音开放办公区、机器轰鸣源头降噪实在要用混入 20%~30% 干净数据压制幻觉Whisper 微调训练实操跑 medium 的关键配置与监控第 1 步环境搭建。两行搞定装完后import whisper能过就算成功git clone https://gitcode.com/GitHub_Trending/whisp/whisper cd whisper pip install -e . pip install transformers datasets accelerate jiwer librosa第 2 步数据加载与预处理。用 datasets 库读三份 CSV预处理做三件事音频重采样到 16 kHzWhisperProcessor 把音频切成 30 秒窗口并提取 mel 频谱文本标签 tokenize 后把 padding 位置置为 -100让损失函数忽略填充。整条管道用 map 批处理并缓存到磁盘。另外注意 decoder prompt 要锁死 language 和 tasktranscribe多语言模型不加这个约束会给你翻译而不是转写。第 3 步训练参数。下面是 medium 30 小时中文数据的验证组合参数建议值为什么这么设learning_rate1e-5 ~ 2e-5全量微调的安全区再大 1 个 epoch 就过拟合再小 10 个 epoch 也爬不动per_device_train_batch_size1~8按显存定一条 30 秒音频是 3000 个 mel 帧24 GB 卡跑 medium 大约 8 起步12 GB 就设 1gradient_accumulation_steps4等效大 batch 但显存按 batch 1 算小显存的关键num_train_epochs8~12实际大概率早停先给上限再砍fp16 / bf16开速度翻倍、显存减半A100 优先 bf16溢出更少warmup_ratio0.03前几步稳定梯度避免 loss 开头飙高第 4 步启动训练。核心就两行调用trainer Trainer( modelmodel, argstraining_args, train_datasetds[train], eval_datasetds[val], processing_classprocessor, compute_metricscompute_metrics, ) trainer.train()其中 model 是加载的预训练 checkpoint用与目标同规格的如 openai/whisper-mediumcompute_metrics 里用 jiwer 算 WER。第 5 步监控。别急着调参先看三样东西train loss 整体平滑下降、没有持续尖峰eval WER 才是真北极星连续 2 个 epoch 不降就是拐点train loss 还在降而 eval WER 开始反弹——过拟合了直接停加载 eval WER 最低的那个 checkpointload_best_model_at_end 会自动帮你留好。评估与调优WER 合格线与三层调优路径WER词错误率替换删除插入÷ 参考词数英文 0.15 算能用 0.1 算好中文切词不稳看 CER字符错误率更直观 0.10 可上线。更有用的判断同一个测试集先跑一遍未微调的基线微调后 WER 降 30% 以上才算这次微调有效 ✅ 如果基线和新模型差距不大问题多半在数据不在超参。调优按三层递进别跳层数据侧优先级最高加数据 重新清洗 数据增强加噪、变速、频谱增广各能抹平一部分分布差异。超参侧过拟合就降学习率、加 warmup、上早停欠拟合就加 epoch确认训练/验证 WER 都在动。模型侧换更大规格30 小时以上数据才有意义或冻结编码器只训解码器——小数据下这招能保住预训练特征不塌。训练翻车别慌对号入座症状大概率原因解法CUDA out of memorybatch 太大、没做梯度累积batch 降到 1 加大累积步数开 fp16/bf16loss 高且震荡不收敛学习率过大或音频-文本错位降到 1e-5先查 -100 填充和 10 条抽检train loss 降、eval WER 反升过拟合数据不够早停取最佳 checkpoint加数据或增强推理慢、不满足实时beam 太大、模型过大改贪心解码num_beams1、fp16、或降级规格微调后的模型落地部署保存、推理与三条加速训练结束 Trainer 会把 eval WER 最低的 checkpoint 存在输出目录手动再对 model 和 processor 各存一份 save_pretrained 就齐了。推理最小可用代码from transformers import WhisperForConditionalGeneration, WhisperProcessor import librosa processor WhisperProcessor.from_pretrained(./whisper-finetuned) model WhisperForConditionalGeneration.from_pretrained( ./whisper-finetuned, torch_dtypetorch.float16, device_mapcuda ) inputs processor(*librosa.load(test.wav, sr16000), sampling_rate16000, return_tensorspt).to(cuda) print(processor.batch_decode(model.generate(inputs.input_features, num_beams1), skip_special_tokensTrue)[0])三条加速各一句话fp16 / int8 量化推理约快一倍、精度损失几乎无感导出 ONNX Runtime 再提速 30% 以上CPU 部署尤其划算批处理一次塞多条音频GPU 利用率比逐条跑高得多。习惯命令行的话还可以把 checkpoint 导出成 .pt 格式用本仓库命令行入口 whisper/main.py 跑python -m whisper your.wav --model your.pt --language zh天然支持多文件批量转写。只有 2 小时、只有一张 3090快速启动只有 2 小时抽 20 条录音small 模型跑 3 个 epoch先验证 WER 是否往对的方向走。只有一张 3090medium fp16 梯度累积30 小时数据一晚上能训完。跑通之后再考虑流式推理或多任务微调同时输出时间戳。【免费下载链接】whisperRobust Speech Recognition via Large-Scale Weak Supervision项目地址: https://gitcode.com/GitHub_Trending/whisp/whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考