从 WenetSpeech-Yue 到 SenseVoice:如何通过专项微调提升粤语语音识别效果?

在语音识别领域,通用多语言模型已经能够支持越来越多的语言和方言。SenseVoice、Whisper、Qwen3-ASR 等模型都具备粤语识别能力,开发者也可以通过开源框架快速搭建本地语音转写服务。

但在真实业务中,经常会遇到一个问题:模型虽然支持粤语,却不一定能准确处理粤语口语、英文混说、专业词汇以及不同声学环境下的录音。

尤其是在会议、客服和行业语音应用中,同样一套模型可能在干净的单人语音上表现不错,到了多人对话或长音频场景却出现明显的识别偏差。

这就引出了一个值得研究的问题:

对于已经具备粤语识别能力的多语言模型,是否还有必要使用专门的粤语语料进行微调?

2026 年 AAAI 会议发表的 WenetSpeech-Yue 研究,为这个问题提供了一个比较有价值的答案。

研究团队构建了约 21,800 小时粤语语音数据,并使用这套数据训练和适配多种 ASR 模型。其中,基于 SenseVoiceSmall 微调得到的 SenseVoice-s-Yue,在专门设计的粤语评测基准上取得了明显改善。

这项研究的意义并不只是提供了更多粤语录音,而是展示了如何将大规模语音数据清洗、自动标注、置信度筛选与模型训练结合起来。

一、SenseVoice 已经支持粤语,为什么还要微调?

SenseVoiceSmall 是一个非自回归语音模型,公开版本支持普通话、粤语、英语、日语和韩语,同时提供语言识别、情感识别和声音事件检测等功能。

与自回归语音模型相比,SenseVoiceSmall 不需要按照传统文本生成方式逐个输出 token,在短语音批量识别任务中具有一定的推理效率优势。

其语音识别过程可以简化为:

text 复制代码
音频输入
   ↓
声学特征提取
   ↓
SenseVoice Encoder
   ↓
非自回归文本预测
   ↓
识别结果

但模型在多语言数据上进行训练时,需要同时学习不同语言的声学与文本映射关系。

即使训练数据中已经包含粤语,也不意味着模型能够充分覆盖所有粤语使用场景。

以真实粤语交流为例,至少存在三类值得关注的问题。

第一,粤语口语与书面中文的差异。

例如:

原始粤语:

佢哋听日会过嚟开会。

标准书面中文:

他们明天会过来开会。

两种表达在语义上接近,但对于 ASR 任务,输出结果并不等价。

如果测试集要求保留粤语口语,而模型倾向于将其转换成标准中文,就可能出现较高的字符错误率。

第二,语言混用。

粤语语音中经常夹杂普通话和英文。

例如:

呢个 project 我哋下星期再 review。

模型需要在保留粤语表达的同时,正确识别 project 和 review 等英语词汇。

第三,训练数据与实际场景存在分布差异。

新闻播报、影视对白、日常聊天和客服通话,在语速、噪声、专业词汇和说话方式上都存在差别。

如果模型主要学习某些领域的音频,就可能对其他场景产生适应性问题。

因此,粤语专项微调的目标并不是让模型从零学习粤语,而是进一步调整模型对粤语声学特征、口语词汇和转写规范的适应能力。

二、WenetSpeech-Yue:21,800 小时语料解决了什么问题?

WenetSpeech-Yue 由西北工业大学等机构的研究团队发布,论文发表于 AAAI 2026。

项目构建了约 21,800 小时粤语语音数据,覆盖十个内容领域,包括故事、娱乐、影视剧、文化、Vlog、评论、教育、播客和新闻等。

与只提供音频和文本的数据集不同,WenetSpeech-Yue 还提供了多维度元数据。

例如:

数据字段 作用
Audio Path 定位语音文件
Duration 音频长度
Text Confidence 转写文本置信度
Speaker ID 说话人标识
SNR 信噪比
DNSMOS 语音质量评估
Age / Gender 说话人属性
Timestamp 音频与文本的时间对应关系

这些信息为后续的数据筛选提供了条件。

例如,进行高准确率 ASR 微调时,可以优先使用文本置信度较高、音频质量较好的样本。

如果目标是提升嘈杂环境下的识别鲁棒性,则不能简单把低信噪比音频全部删除,而需要根据训练目标保留一定比例的困难样本。

WenetSpeech-Yue 还建立了 WSYue-ASR-eval 评测基准。

其主要包括两组音频:

测试集 音频长度 总时长 说话人数量
Short 0---10 秒 9.46 小时 2861
Long 10---30 秒 1.97 小时 838

这两组数据用于研究不同音频长度下的识别效果,同时覆盖粤英混说及多种声学条件。

这里的 Long 指 10---30 秒语音,而不是一小时以上的完整会议录音。这一点在分析结果时需要区分。

从工程角度看,WenetSpeech-Yue 的重要价值在于:它让开发者能够从单纯增加数据量,转向根据语音质量、文本可靠性和业务场景选择训练样本。

三、真实实验结果:SenseVoice 专项微调之后改善了多少?

研究团队在 WenetSpeech-Yue 数据上构建了 SenseVoice-s-Yue,即针对粤语进行适配的 SenseVoiceSmall 模型。

为了比较适配前后的效果,可以直接观察官方 WSYue-ASR-eval 结果。

模型 Short MER Long MER
SenseVoiceSmall 6.69% 9.95%
SenseVoice-s-Yue 5.23% 8.63%
Whisper-medium 80.82% 50.96%
Whisper-m-Yue 5.05% 8.05%

数据来自 WenetSpeech-Yue 官方发布的 ASR 基准结果。

其中使用的是 MER(Mixed Error Rate,混合错误率),中文部分按字符、英文部分按单词统计,而不是单纯的中文 CER。

从结果可以看出:

SenseVoiceSmall 在 Short 数据集上的 MER 从 6.69% 降低到 5.23%,相对下降约 21.8%。

在 Long 数据集上,MER 从 9.95% 降低到 8.63%,相对下降约 13.3%。

Whisper-medium 的变化更加明显,但这也与原始模型在该评测配置下的表现有关,不能据此推断所有 Whisper 版本的粤语识别能力都很差。

这组实验至少说明一个问题:

模型参数量不变的情况下,通过针对性数据训练,仍然有机会改善粤语识别效果。

SenseVoiceSmall 和 SenseVoice-s-Yue 都是约 234M 参数规模,改善并不是来自简单增加模型参数量。

不过,研究结果还有一个比较容易被忽略的细节。

在其他公开测试集上,专项微调并不总能带来提升。

例如:

测试集 原始 SenseVoiceSmall SenseVoice-s-Yue
Common Voice yue 8.05% 6.87%
Common Voice zh-HK 7.34% 8.68%
Reading 6.52% 6.71%
WSYue Short 6.69% 5.23%
WSYue Long 9.95% 8.63%

这意味着,粤语专项微调不一定能让模型在所有数据集上同步进步。

如果训练数据更接近某一种语言风格,模型就可能更适应该场景,却在另一类语音中出现性能退化。

因此,评价方言模型微调效果时,不应该只比较一个测试集的结果。

四、关键不是直接微调,而是先解决训练数据质量

WenetSpeech-Yue 的另一项技术重点,是它并没有简单依赖单一模型生成所有训练标签。

研究团队设计了 WenetSpeech-Pipe 数据处理流程,使用多个 ASR 模型进行自动转写,并通过文本规范化、候选结果对齐和投票形成更加可靠的训练标注。

主要流程如下:

text 复制代码
原始粤语语音
      ↓
音频采集与 VAD 切分
      ↓
说话人属性与语音质量分析
      ↓
  ┌────────┬────────┬────────┐
  ↓        ↓        ↓
SenseVoice TeleASR  Whisper
  │        │        │
  └────────┼────────┘
           ↓
      文本规范化
           ↓
      ROVER 对齐投票
           ↓
      文本置信度评估
           ↓
      高质量训练数据
           ↓
       模型微调

这里面比较重要的是 ROVER(Recognizer Output Voting Error Reduction)。

它的基本思想是将多个 ASR 系统输出的文本进行对齐,并根据候选结果进行投票。

如果三个模型在某个位置都输出相同词语,说明该位置具有较高的一致性。

如果三个结果差别很大,则说明需要进一步检查。

WenetSpeech-Yue 还结合编辑距离过滤异常候选,并使用语言模型进行有限的上下文修正。

但模型之间的一致性并不等于真实准确率。

如果多个识别模型都犯了相同错误,投票也不能发现问题。

因此,ROVER 更适合作为构建高质量训练数据的辅助方法,而不是完全替代人工标注。

两阶段训练:先利用规模,再强调质量

论文采用了一种两阶段训练策略。

第一阶段使用中等及高置信度数据进行训练,充分利用较大规模的粤语语料,使模型适应目标语言和声学分布。

第二阶段则使用高置信度数据继续微调,进一步减少错误标注对模型的影响。

可以理解为:

text 复制代码
预训练 SenseVoiceSmall
          ↓
第一阶段:
中等 + 高置信度粤语语料
          ↓
获得粤语适配模型
          ↓
第二阶段:
高置信度粤语语料
          ↓
优化文本预测质量
          ↓
SenseVoice-s-Yue

这种思路与直接把所有语料混合训练不同。

对于大规模自动标注数据,错误标签不可避免。训练初期可以适当利用较多样本,后期再通过高质量数据改善模型表现。

当然,两阶段训练也需要控制学习率、训练轮数及数据分布,避免高置信度数据过度集中于少数容易识别的场景。

五、实践:如何准备 SenseVoice 的粤语微调数据?

如果希望在已有 SenseVoiceSmall 模型上进一步适配企业自己的粤语语音,可以从小规模、已人工校对的数据开始。

例如,准备以下三类音频:

  • 日常粤语交流;
  • 粤语与普通话、英语混说;
  • 包含企业专业词汇的业务录音。

不一定要从头训练数万小时数据。

对于具有明确场景的企业,几百小时高质量领域数据,有时比继续增加大量与目标场景无关的数据更有研究价值。但具体收益仍需要实测。

1. 准备音频与转写文件

FunASR 的 SenseVoice 微调流程支持使用 wav.scp 与文本文件构建训练数据。

例如:

train_wav.scp

text 复制代码
utt_0001 /data/yue/audio/0001.wav
utt_0002 /data/yue/audio/0002.wav
utt_0003 /data/yue/audio/0003.wav

train_text.txt

text 复制代码
utt_0001 呢个项目听日再讨论
utt_0002 我哋下星期review个proposal
utt_0003 客户话个系统仲未恢复正常

如果已经知道音频使用粤语,还可以准备语言标签文件:

train_text_language.txt

text 复制代码
utt_0001 <|yue|>
utt_0002 <|yue|>
utt_0003 <|yue|>

其中 <|yue|> 对应粤语语言标记。

对于包含英语单词的音频,不建议随意将英文词汇全部转换成中文。

例如:

text 复制代码
我哋下星期review个proposal

如果原始音频确实使用了英语 review 和 proposal,那么保留这两个单词能够使训练标注更加接近实际输入。

2. 转换成训练 JSONL

首先安装 FunASR 开发版本:

bash 复制代码
git clone https://github.com/modelscope/FunASR.git
cd FunASR

pip install -e ./

随后可以使用 SenseVoice 提供的数据转换工具:

bash 复制代码
sensevoice2jsonl \
  ++scp_file_list='["train_wav.scp","train_text.txt","train_text_language.txt"]' \
  ++data_type_list='["source","target","text_language"]' \
  ++jsonl_file_out="train.jsonl" \
  ++model_dir='iic/SenseVoiceSmall'

处理后的训练样本会包含音频路径、转写文本、语言标签以及训练所需的其他字段。

正式训练之前,还需要用同样方式生成验证集,并检查路径、音频格式、标签与模型配置是否一致。

这里建议特别注意说话人划分。

如果同一位说话人的音频同时出现在训练集和测试集,模型可能因为熟悉其声音特征而取得偏高的测试成绩。

因此,最好按照 Speaker ID 划分训练集、验证集和测试集,而不只是随机拆分音频文件。

3. 运行微调

SenseVoice 官方仓库已经提供 finetune.sh 及相应训练配置。

可以先克隆仓库:

bash 复制代码
git clone https://github.com/QwenAudio/SenseVoice.git
cd SenseVoice

根据实际环境修改 finetune.sh 中的训练数据路径、预训练模型目录、训练输出目录及分布式训练配置,并确保 train_tool 指向当前 FunASR 安装目录中的 funasr/bin/train_ds.py。

配置完成后执行:

bash 复制代码
bash finetune.sh

对于粤语专项适配,可以参考 WenetSpeech-Yue 的两阶段训练思路:

第一阶段使用规模较大的粤语训练集,第二阶段使用经过更严格筛选的高质量样本继续训练。

如果采用这种方式,需要分别记录两阶段的训练配置及验证结果,避免只保留最终模型而无法追踪性能变化来源。

对于实际业务,建议保留原始 SenseVoiceSmall 作为对照模型,同时保存第一阶段和第二阶段的检查点。

这样才可以判断性能改善来自哪一步,而不是只看最终结果。

六、如何验证微调是否真的有效?

完成训练以后,最简单的错误是只选择几段听起来不错的粤语录音,对比微调前后的识别文本,然后宣布模型效果提升。

这种方法只能用于初步观察,无法作为可靠评测依据。

更合理的方式是使用统一测试集,比较不同模型版本。

1. 加载原始模型与粤语适配模型

例如可以使用 FunASR 同时加载两个模型:

python 复制代码
from funasr import AutoModel
from funasr.utils.postprocess_utils import (
    rich_transcription_postprocess
)

base_model = AutoModel(
    model="iic/SenseVoiceSmall",
    device="cuda:0"
)

yue_model = AutoModel(
    model="./models/sensevoice_small_yue",
    device="cuda:0"
)

audio = "test_yue.wav"

def transcribe(model, audio_path):
    result = model.generate(
        input=audio_path,
        cache={},
        language="yue",
        use_itn=True,
        batch_size=1
    )

    return rich_transcription_postprocess(
        result[0]["text"]
    )

print("Base:", transcribe(base_model, audio))
print("Yue :", transcribe(yue_model, audio))

其中 ./models/sensevoice_small_yue 可以指向已经下载的官方粤语适配模型,也可以替换为自己训练得到的兼容检查点目录。

为了进行有效比较,两个模型应该采用一致的音频输入和文本后处理规则。

如果测试包含长音频,还应统一 VAD 切分方式,否则不同的音频片段边界也可能影响识别结果。

2. 不要只看 CER

对于纯粤语转写,可以统计字符错误率:

CER = (S + D + I) / N

其中 S 为替换错误数,D 为删除错误数,I 为插入错误数,N 为参考文本字符数。

但对于粤英混说,更适合增加 MER。

例如:

text 复制代码
Reference:
我哋下星期review个proposal

Hypothesis:
我哋下星期review个project

按照中文逐字、英语逐词的评测方式,可以把 proposal 和 project 分别视为一个 token,再计算编辑距离。

这样不会因为一个英文单词包含多个字母而夸大其错误权重。

此外,企业测试还应该记录专业词汇、数字和否定词的准确性。

例如,系统将"唔使退款"识别成"需要退款",可能只产生少量字符错误,但对业务语义的影响非常明显。

3. 建议保留四类测试集

测试集 主要目标
日常粤语 基础方言识别能力
粤语 + 英语混说 语言切换能力
企业专业词汇 领域适配能力
普通话及其他原有语言 检查微调后的性能退化

如果微调后的模型只在企业粤语数据上表现更好,却明显降低了普通话识别能力,那么在多语言业务中未必适合直接替换原始模型。

可以考虑保留多语言基础模型,并针对不同场景选择适配模型,或者在训练中引入一定比例的原始多语言数据,降低灾难性遗忘的风险。

这也是为什么方言专项微调不仅需要关注最高准确率,还需要关注跨场景稳定性。

七、从粤语微调模型到企业语音能力,还需要什么?

开源模型研究解决的是如何提升识别质量,而企业实际使用时,还需要把模型转化成稳定的服务。

例如,一家企业可能已经拥有自己的客服系统、会议平台或行业软件,只是希望增加粤语识别功能。

这种情况下,并不一定需要重新建设完整应用,而可以通过独立 ASR 接口或本地推理模块提供能力。

比较常见的处理链路是:

text 复制代码
企业业务系统
      ↓
音频文件 / 实时语音流
      ↓
VAD / 音频预处理
      ↓
粤语 ASR 服务
      ↓
文本规整与专业词处理
      ↓
结构化识别结果
      ↓
原有业务系统

但将微调后的模型真正投入使用,还需要考虑几项工程问题。

首先是模型的运行资源。SenseVoiceSmall 虽然属于相对轻量的语音模型,但不同推理框架、精度和计算平台下,内存占用与处理速度仍然可能不同。

其次是长音频处理。普通的分段识别不等于完整的长音频服务,还需要处理 VAD、片段拼接、重复文本和异常恢复等问题。

最后是部署方式。一些企业希望通过云端 API 使用语音识别,也有企业要求模型直接运行在内部网络或终端设备中。

在实际语音能力供应市场中,熙瑾信息提供的 ASR 技术已经覆盖包括广东粤语在内的 25 种方言,相关能力经过 CNAS 认可实验室检测,并支持端侧、离线以及独立模块集成等交付方式。

对于已有业务系统的企业,可以将方言语音识别作为底层能力接入,而不必改变现有的软件入口。

这里需要区分算法研究与产品工程:WenetSpeech-Yue 的公开结果展示了粤语专项训练的潜力,但不能直接作为其他 ASR 产品的实测成绩。模型是否适合某个企业项目,仍需要在目标音频、硬件和部署环境中验证。

对于真正的语音能力交付而言,除了识别质量,接口稳定性、运行效率和系统集成能力也会影响最终使用效果。

八、总结:粤语 ASR 的下一步,不只是增加训练数据

WenetSpeech-Yue 的研究展示了一种值得关注的技术路线:通过大规模粤语语料、自动标注、置信度筛选和分阶段训练,进一步提升已有语音模型对粤语的适应能力。

SenseVoice-s-Yue 在 WSYue 专项评测中的表现说明,即使不增加模型参数量,针对性训练仍然可能带来明显改善。

但研究结果也揭示了另一个问题:模型在某些粤语测试集上提升,并不意味着它已经能够在所有粤语场景中取得相同效果。

不同地区的口语习惯、语言混说方式、音频质量和业务词汇,都会影响最终识别表现。

因此,对于希望将粤语 ASR 用于实际业务的开发者来说,后续优化可以分成三个层次:

首先,通过 WenetSpeech-Yue 等公开资源提升模型对粤语的基础识别能力。

其次,结合具体行业语料完成领域适配,尤其关注专有名词、数字、否定表达和语言混说。

最后,将模型封装成能够独立部署、持续运行并接入现有业务系统的语音服务。

专项微调真正有价值的地方,不是让模型在某个基准上多提高几个百分点,而是让它能够更稳定地处理目标业务中实际出现的声音。

随着大规模方言语料和开源 ASR 模型不断完善,未来方言语音识别的优化重点,也会逐渐从"是否支持某种方言",转向数据质量、场景适配和工程化能力的综合提升。


参考资料

  1. Li, L., et al. (2026). WenetSpeech-Yue: A Large-Scale Cantonese Speech Corpus with Multi-dimensional Annotation . AAAI 2026.

    https://doi.org/10.1609/aaai.v40i37.40429

  2. WenetSpeech-Yue 官方开源项目,包含数据集、处理流程与评测基准。

    https://github.com/ASLP-lab/WenetSpeech-Yue

  3. WenetSpeech-Yue ASR 模型权重及官方评测结果。

    https://huggingface.co/ASLP-lab/WSYue-ASR

  4. SenseVoice 官方项目,包含模型推理、微调配置与部署说明。

    https://github.com/QwenAudio/SenseVoice

  5. FunASR 语音识别框架。

    https://github.com/modelscope/FunASR

相关推荐
pt10431 小时前
Cisco设备网络安全系列-17:AI驱动安全应用与量子计算安全影响
网络·人工智能·安全
美狐美颜SDK开放平台1 小时前
视频美颜SDK如何应对快速转头与大幅度面部动作?
android·人工智能·ios·音视频·直播美颜sdk·视频美颜sdk
大耳朵爱学习1 小时前
Andrew Ng深度解析:普通人如何利用AI把想法变成工具,实现工作自动化(小白程序员必看)
运维·人工智能·ai·自动化·大模型·就业·大模型学习
lilihuigz1 小时前
会员网站实战:AI流量下滑后,如何用付费订阅与B2B实现增长
人工智能
中科三方1 小时前
AI时代新攻击面:悬空DNS记录正在成为黑客的低成本入侵入口
服务器·前端·人工智能
HackTwoHub1 小时前
红队低成本 IP 轮换方案 ProxyCat升级版,自动扩容代理池、负载分摊转发,一键部署,告别高价隧道代理
网络·人工智能·网络协议·tcp/ip·安全·web安全·网络安全
鲜于言悠9051 小时前
古籍OCR新解法:DDVR-Net让大模型只在字烂的时候出手
人工智能
华为LTCITR专栏流程专家许浩明1 小时前
ITR经验经典案例|服务ITR咨询|诚易达咨询公司许浩明团队辅导杰克科技服务ITR变革
大数据·人工智能·科技
寻道码路1 小时前
AI Agent 工程化开发实战(四):工具调用循环——解构 create_agent 背后的机制
人工智能·langchain·ai agent·工具调用·langgraph