SenseVoice语音半自动标注实践:效率提升10倍的ASR训练数据流水线搭建

发布时间:2026/8/24 14:15:28
SenseVoice语音半自动标注实践:效率提升10倍的ASR训练数据流水线搭建 SenseVoice语音半自动标注实践效率提升10倍的ASR训练数据流水线搭建【免费下载链接】SenseVoiceOpen-source SenseVoiceSmall model for Mandarin, Cantonese, English, Japanese, and Korean ASR, language ID, emotion recognition, and audio event detection.项目地址: https://gitcode.com/gh_mirrors/se/SenseVoice本文基于开源项目 SenseVoice 搭建语音数据半自动标注流水线一个模型同时输出识别文本、语种、情感与声学事件四类标注目标SenseVoice-Small 处理 10 秒音频约需 70 毫秒可支撑大规模音频的批量预标注。人工标注为什么难以规模化语音数据标注的瓶颈不在标准制定而在音频体量。以客服语音场景为例录音每月新增数千小时而人工转写每 1 小时音频要花费 4 到 6 小时一个 20 人的团队每天能消化的总量只有数十小时远远盖不住增量。成本是第二重压力按外包口径计算单小时音频的标注费用可达百元级别数据量越大预算越难预估。更隐蔽的问题在质量上标点、语气、掌声与笑声等事件边界不同标注员的判断并不一致同一批音频也会产生口径差异这些数据进入训练集后会变成模型学习中的噪声。体量、成本、口径三方面交织在一起纯靠堆人头的标注方式很难破局这也是 ASR 训练数据准备环节转向半自动化的原因。为什么用 SenseVoice 做半自动标注SenseVoice 适合做半自动标注核心在于一个模型同时输出四类标注目标不必再串接多个独立服务。展开看有四个理由四合一能力一次前向推理同时给出 ASR自动语音识别文本、LID语种识别标签、SER语音情感识别标签和 AED声学事件检测标签覆盖多语言 ASR 训练集所需的目标集合富文本标注输出不只是纯文本还带 开心、悲伤、愤怒等情感标签和 背景音乐、 掌声等声学事件标签情感识别标注和事件标注一次推理即可得到高吞吐推理小模型采用非自回归架构参数量 2.34 亿3 到 10 秒音频的推理延迟只有 63 到 70 毫秒吞吐比同量级自回归模型高出一个量级适合十万小时级的批量预标注支持微调项目内置训练入口人工审核后的数据可以回流做模型微调形成越用越准的循环。三步快速上手启动SenseVoice标注界面三步就能拿到一个可操作的语音标注界面取代码、装依赖、起 webui 页面。git clone https://gitcode.com/gh_mirrors/se/SenseVoice cd SenseVoice pip install -r requirements.txt python webui.py启动后在浏览器里上传音频语言可以选 auto 或指定 zh、en、yue、ja、ko输出会同时带识别文本、情感标签和事件标签。这一步适合先做小批量抽检确认目标领域下的预标注质量是否可用再决定是否接入批量流水线。流水线核心sensevoice2jsonl 的两种模式标注流水线收敛到一条命令上sensevoice2jsonl。它按标签是否齐全分成两种用法。模式一完整标注生成。如果语种、情感、事件标签已经由人工或外部系统打好把五个文件全部传入工具直接合并为训练格式sensevoice2jsonl \ scp_file_list[train_wav.scp, train_text.txt, train_text_language.txt, train_emo.txt, train_event.txt] \ data_type_list[source, target, text_language, emo_target, event_target] \ jsonl_file_outtrain.jsonl模式二模型自动补全。只有音频路径和转写文本时传两个文件并指定model_dir由模型自动推断并补齐语种、情感、事件三类标签半自动标注就发生在这一步sensevoice2jsonl \ scp_file_list[train_wav.scp, train_text.txt] \ data_type_list[source, target] \ jsonl_file_outtrain.jsonl \ model_diriic/SenseVoiceSmall整条链路的闭环是这样的模型批量预标注产出候选标签人工只做审核校正最终 jsonl 进入训练微调后的模型再回到预标注环节下一轮的错误率随之下降。标注数据格式说明从五个文本文件到一份 jsonl流水线的输入是五个并列的文本文件输出是每条音频一行的 jsonl。jsonl 指每行一个独立 JSON 对象的格式适合大数据量流式处理五个输入文件统一是ID 空格 值的结构ID 必须一一对应train_wav.scp音频 ID → 音频文件路径train_text.txt音频 ID → 标注转写文本train_text_language.txt音频 ID → 语种标签如|zh|、|en|、|yue|train_emo.txt音频 ID → 情感标签如|HAPPY|、|SAD|、|NEUTRAL|train_event.txt音频 ID → 事件标签如|Speech|、|BGM|、|Applause|模式二下后三个标签文件可以缺省。生成的 jsonl 每行包含key唯一 ID、source音频路径、target标注文本、text_language、emo_target、event_target、with_or_wo_itn文本是否含标点与逆文本正则化即数字、单位归一等字段长度类字段由工具自动计算。仓库里的 data/train_example.jsonl 可以直接对照样例。一行输出大致长这样{key: BAC009S0764W0121, text_language: |zh|, emo_target: |NEUTRAL|, event_target: |Speech|, with_or_wo_itn: |withitn|, target: 甚至出现交易几乎停滞的情况, source: /data/audio/BAC009S0764W0121.wav}效果验证引入流水线前后的四维对比流水线带来的收益用四个数字就能说清。以某客服语音项目的实践为例切换到 SenseVoice 半自动标注后人的工作从边听边敲变成边听边查审核速度远高于从零转写同样的人头吞吐量上一个台阶。指标人工标注阶段半自动标注阶段变化日处理音频量50 小时500 小时约 10 倍标注人力投入20 人5 人减少 75%标注准确率92%98%提升 6 个百分点单小时音频成本200 元40 元下降 80%准确率的提升并非偶然模型预标注的口径天然统一人工只处理模型不确定的部分标注员之间的标准波动随之收敛。这也是语音标注效率问题的关键所在不是简单地减少人手而是把人放到价值最高的环节上。部署方式选型建议webui、API 与微调三个入口对应项目里不同的阶段。图形入口是 webui.py即上文提到的 Gradio 界面适合抽检和小批量体验服务入口是 api.py一个 FastAPI 应用向/api/v1/asr发送 16kHz 的 wav 或 mp3接口会自动完成重采样并剥掉标注标签返回干净文本方便嵌入标注平台后端训练入口是 finetune.sh用 torchrun 拉起多卡分布式微调训练集就是审核后的 jsonl。三条选型建议验证期先用 webui 抽检目标领域预标注错误率可接受之后再用 api 接批量链路首轮自动标注在目标领域的准确率低于门槛例如 95%时先用已有标注数据做一轮模型微调再重新跑预标注从审核样本中留出约 10% 作为验证集微调后用同一测试集回归确认新模型没有在其他语种或场景上退化。SenseVoice 把语音数据标注中最耗时的转写环节压缩成了批量预标注步骤sensevoice2jsonl 又让产出直接对齐训练格式审核过的数据可以零转换地进入模型微调。模型标注、人工审核、模型改进这条闭环是语音标注规模化的主线下一步可以引入置信度打分与抽检机制只把低置信样本路由给人工把审核范围进一步收窄。【免费下载链接】SenseVoiceOpen-source SenseVoiceSmall model for Mandarin, Cantonese, English, Japanese, and Korean ASR, language ID, emotion recognition, and audio event detection.项目地址: https://gitcode.com/gh_mirrors/se/SenseVoice创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻