找不到中文语音预训练模型?中文版 Wav2vec 2.0和HuBERT来了,腾讯游戏知几AI团队和西工大ASLP组联合出品

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 找不到中文语音预训练模型?中文版 Wav2vec 2.0和HuBERT来了,腾讯游戏知几AI团队和西工大ASLP组联合出品

Wav2vec 2.0 [1],HuBERT [2] 和 WavLM [3] 等语音预训练模型,通过在多达上万小时的无标注语音数据(如 Libri-light )上的自监督学习,显著提升了自动语音识别(Automatic Speech Recognition, ASR),语音合成(Text-to-speech, TTS)和语音转换(Voice Conversation,VC)等语音下游任务的性能。然而这些模型都没有公开的中文版本,不便于应用在中文语音研究场景。

WenetSpeech [4] 是由西工大音频、语音和语言处理研究组 (ASLP@NPU)、出门问问、希尔贝壳联合发布的 1 万多小时多领域语音数据集。为了弥补中文语音预训练模型的空缺,我们开源了基于 WenetSpeech 1 万小时数据训练的中文版 Wav2vec 2.0 和 HuBERT 模型。

为了验证预训练模型的性能,我们在 ASR 任务进行了验证。实验结果表明,在 100 小时有监督数据 ASR 任务上,预训练模型学到的语音表征相对于传统声学 FBank 特征有显著的性能提升,甚至仅用 100 小时有监督数据能够得到和 1000 小时有监督数据可比的结果。

模型链接:https://github.com/TencentGameMate/chinese_speech_pretrain

模型介绍

Wav2vec 2.0 模型

图 1: Wav2vec 2.0 模型结构 (Baevski et al., 2020)

Wav2vec 2.0 [1] 是 Meta 在 2020 年发表的无监督语音预训练模型。它的核心思想是通过向量量化(Vector Quantization,VQ)构造自建监督训练目标,对输入做大量掩码后利用对比学习损失函数进行训练。模型结构如上图 1,基于卷积网络(Convoluational Neural Network,CNN)的特征提取器将原始音频编码为帧特征序列,通过 VQ 模块把每帧特征转变为离散特征 Q,并作为自监督目标。同时,帧特征序列做掩码操作后进入 Transformer [5] 模型得到上下文表示 C。最后通过对比学习损失函数,拉近掩码位置的上下文表示与对应的离散特征 q 的距离,即正样本对。
原论文中,Wav2vec 2.0 BASE 模型采用 12 层的 Transformer 结构,用 1000 小时的 LibriSpeech 数据进行训练,LARGE 模型则采用 24 层 Transformer 结构,用 6 万小时的 Libri-light 数据训练。训练时间方面,BASE 模型使用 64 块 V100 显卡训练 1.6 天,LARGE 使用 128 块 V100 显卡训练 5 天。在下游 ASR 评测中,即使只用 10 分钟的有监督数据,系统仍可得到 4.8 的词错误率(Word Error Rate, WER)结果。

HuBERT 模型

图 2: HuBERT 模型结构 (Hsu et al., 2021)

HuBERT [2] 是 Meta 在 2021 年发表的模型,模型结构类似 Wav2vec 2.0,不同的是训练方法。Wav2vec 2.0 是在训练时将语音特征离散化作为自监督目标,而 HuBERT 则通过在 MFCC 特征或 HuBERT 特征上做 K-means 聚类,得到训练目标。HuBERT 模型采用迭代训练的方式,BASE 模型第一次迭代在 MFCC 特征上做聚类,第二次迭代在第一次迭代得到的 HuBERT 模型的中间层特征上做聚类,LARGE 和 XLARGE 模型则用 BASE 模型的第二次迭代模型提取特征做聚类。从原始论文实验结果来看,HuBERT 模型效果要优于 Wav2vec 2.0,特别是下游任务有监督训练数据极少的情况,如 1 小时、10 分钟。

中文预训练模型

实验配置
我们使用 WenetSpeech [4] train_l 集的 1 万小时中文数据作为无监督预训练数据。数据主要来源于 YouTube 和 Podcast,覆盖了各种类型录制场景、背景噪声、说话方式等,其领域主要包括有声书、解说、纪录片、电视剧、访谈、新闻、朗读、演讲、综艺和其他等 10 大场景。我们基于 Fairseq 工具包 [6] 分别训练了 Wav2vec 2.0 和 HuBERT 模型,遵循 [1,2] 的模型配置,每个预训练模型模型包括 BASE 和 LARGE 两种大小。对于 BASE 模型,我们使用 8 张 A100 显卡,梯度累计为 8,模拟 64 张显卡进行训练。对于 LARGE 模型,我们使用 16 张 A100 显卡,梯度累计为 8,模拟 128 张显卡进行训练。

下游语音识别任务验证
为了验证预训练模型在下游 ASR 任务的效果,我们遵循 ESPnet [7,8,9] 工具包中的 Conformer [10] 模型实验配置,即将预训练模型作为特征提取器,对于输入语音提取预训练模型各隐层表征进行加权求和,得到的语音表征将替换传统 FBank 特征作为 Conformer ASR 模型的输入。

  • Aishell 数据集


我们使用 Aishell 178 小时训练集作为有监督数据进行训练,分别对比了使用 FBank 特征、Wav2vec 2.0 BASE/LARGE 模型特征和 HuBERT BASE/LARGE 模型特征的字错误率 (Character Error Rate, CER) 结果。同时,我们额外对比了使用 WenetSpeech train_l 集 1 万小时中文数据进行训练时,其在 Aishell 测试集上的效果。训练数据使用了变速(0.9、1.0、1.1 倍)和 SpecAugment 数据增广技术,解码方式为 beam search,使用了基于 Transformer 的语言模型进行 rescoring。

表 1:不同模型在 Aishell 测试集上的字错误率(CER%)结果


根据表 1 结果可以看到,通过结合上万小时无监督数据训练的预训练模型,下游 ASR 任务效果均有显著提升。尤其是使用 HuBERT LARGE 模型时,在 Test 集上得到约 30% 的 CER 相对提升,实现了目前在 178h 有监督训练数据下业界最好结果。

  • WenetSpeech 数据集


我们使用 WenetSpeech train_s 集 100 小时中文数据作为有监督数据进行训练,分别对比了使用 FBank 特征、Wav2vec 2.0 BASE/LARGE 模型特征和 HuBERT BASE/LARGE 模型特征的字错误率 (Character Error Rate, CER) 结果。同时,我们额外对比了使用 WenetSpeech train_m 集 1000 小时和 train_l 集 1 万小时中文数据 FBank 特征训练的模型结果。训练数据没有使用变速或 SpecAugment 数据增广技术,解码方式为 beam search,没有使用语言模型 rescoring。

表 2:不同模型在 WenetSpeech 测试集上的字错误率(CER%)结果


根据表 2 结果可以看到,通过结合上万小时无监督数据训练的预训练模型,下游 ASR 结果得到了巨大提升。尤其当使用 HuBERT LARGE 作为语音表征提取器时,使用 100 小时有监督数据训练的 ASR 模型要比 1000 小时基于 FBank 特征训练的模型效果要好,甚至接近 1 万小时数据训练的模型。

更多语音下游任务实验结果请关注 GitHub 链接(https://github.com/TencentGameMate/chinese_speech_pretrain)。欢迎大家使用我们提供的中文语音预训练模型开展研究工作,一起探索语音预训练模型在中文和相关众多场景下的应用。 参考文献
[1]Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, and Michael Auli, “Wav2vec 2.0: A framework for self-supervised learning of speech representations,” in Proc. NeurIPS, 2020.[2]Wei-Ning Hsu, Benjamin Bolte, Yao-Hung Hubert Tsai, Kushal Lakhotia, Ruslan Salakhutdinov, and Abdelrahman Mohamed, "HuBERT: Self-supervised speech representation learning by masked prediction of hidden units," IEEE/ACM Transactions of Audio, Speech, and Language Processing, vol. 29, pp. 3451-3460, 2021[3]Sanyuan Chen, Chengyi Wang, Zhengyang Chen, Yu Wu, Shujie Liu, Zhuo Chen, Jinyu Li, Naoyuki Kanda, Takuya Yoshioka, Xiong Xiao, Jian Wu, Long Zhou, Shuo Ren, Yanmin Qian, Yao Qian, Jian Wu, Michael Zeng, Xiangzhan Yu, and Furu Wei, “WavLM: Large-scale self-supervised pre-training for full stack speech processing,” arXiv preprint arXiv:2110.13900, 2021[4]Binbin Zhang, Hang Lv, Pengcheng Guo, Qijie Shao, Chao Yang, Lei Xie, Xin Xu, Hui Bu, Xiaoyu Chen, Chenhen Zeng, Di Wu, and Zhendong Peng, "WenetSpeech: A 10000+ hours multi-domain Mandarin corpus for speech recognition," in Proc. ICASSP, 2021[5]Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser and Illia Polosukhin, "Attention is all you need," in Proc. NeurIPS, 2017[6]Myle Ott, Sergey Edunov, Alexei Baevski, Angela Fan, Sam Gross, Nathan Ng, David Grangier, and Michael Auli, “fairseq: A fast, extensible toolkit for sequence modeling,” in Proc. NAACL, 2019.[7]Shinji Watanabe, Takaaki Hori, Shigeki Karita, Tomoki Hayashi, Jiro Nishitoba, Yuya Unno, Nelson Enrique Yalta Soplin, Jahn Heymann, Matthew Wiesner, Nanxin Chen, Adithya Renduchintala, and Tsubasa Ochiai, “ESPnet: End-to-end speech processing toolkit,” in Proc. Interspeech, 2018, pp. 2207–2211[8]Pengcheng Guo, Florian Boyer, Xuankai Chang, Tomoki Hayashi, Yosuke Higuchi, Hirofumi Inaguma, Naoyuki Kamo, Chenda Li, Daniel Garcia-Romero, Jiatong Shi, Jing Shi, Shinji Watanabe, Kun Wei, Wangyou Zhang and Yuekai Zhang, "Recent development on ESPnet tookit boosted by Conformer," in Proc. ICASSP, 2021[9]Xuankai Chang, Takashi Maekaku, Pengcheng Guo, Jing Shi, Yen-Ju Lu, Aswin Shanmugam Subramanian, Tianzi Wang, Shu-wen Yang, Yu Tsao, Hung-yi Lee, and Shinji Watanabe, "An exploratino of self-supervised pretrained representations for end-to-end speech recognition," in Proc. ASRU, 2021[10]Anmol Gulati, James Qin, Chung-Cheng Chiu, Niki Parmar, Yu Zhang, Jiahui Yu, Wei Han, Shibo Wang, Zhengdong Zhang, Yonghui Wu, and Ruoming Pan, “Conformer: Convolution-augmented Transformer for speech recognition,” in Proc. Interspeech, 2020, pp.5036–5040

相关文章
|
并行计算 Linux Docker
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
1187 0
|
12月前
|
机器学习/深度学习 自然语言处理 数据处理
深度学习之语音情感识别与响应
基于深度学习的语音情感识别(Speech Emotion Recognition,SER)与响应系统在语音交互、客服、心理健康等领域有着重要应用。该系统的目标是识别出说话者的情感状态(如愤怒、喜悦、悲伤等)并生成合适的情感响应,从而提升用户体验和交互效果。
717 2
|
10月前
|
人工智能 自然语言处理 算法
开源更新|语音生成大模型CosyVoice升级2.0版本
开源更新|语音生成大模型CosyVoice升级2.0版本
|
10月前
|
人工智能 监控 算法
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
3D-Speaker是阿里巴巴通义实验室推出的多模态说话人识别开源项目,结合声学、语义和视觉信息,提供高精度的说话人识别和语种识别功能。项目包含工业级模型、训练和推理代码,以及大规模多设备、多距离、多方言的数据集,适用于多种应用场景。
1963 18
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
|
7月前
|
人工智能 运维 自然语言处理
2025保姆级JupyterLab 4.0安装指南|全平台部署+AI编程环境配置
JupyterLab 是下一代交互式计算开发环境,2025年发布的4.0版本新增多语言内核支持(Python/R/Julia/JavaScript一键切换)、实时协作功能、AI辅助编程(集成GPT-5代码补全与错误诊断)和可视化调试器等特性。本文详细介绍其技术定位、跨平台安装方案、安装流程、高阶功能配置、典型应用场景及故障排查指南,帮助用户高效使用JupyterLab进行开发。
|
12月前
|
编解码 人工智能 自然语言处理
MaskGCT:登上GitHub趋势榜榜首的TTS开源大模型
近日,香港中文大学(深圳)联手趣丸科技推出了新一代大规模声音克隆TTS模型——MaskGCT。一起看看该模型的一些表现吧!
|
语音技术 Python
FunASR升级热词定制化问题之使用FunASR工具包进行ASR推理,如何操作
FunASR升级热词定制化问题之使用FunASR工具包进行ASR推理,如何操作
592 1
|
人工智能 Java 语音技术
开源上新|FunASR离线文件转写GPU软件包1.0
开源上新|FunASR离线文件转写GPU软件包1.0
|
自然语言处理 开发者
通义语音大模型评测:CosyVoice与SenseVoice
随着人工智能技术的不断发展,语音生成和理解模型在各个领域得到了广泛应用。本文将评测两个由FunAudioLLM团队开发的多语言语音模型——[CosyVoice](https://github.com/FunAudioLLM/CosyVoice)和[SenseVoice](https://github.com/FunAudioLLM/SenseVoice),并结合阿里云开发者社区的相关资源,探讨其在实际应用中的表现。
2795 3
|
编译器 网络虚拟化 C语言
2023年最全 Windows + VSCode 配置 OpenCV C++ 一站式开发调试环境教程
2023年最全 Windows + VSCode 配置 OpenCV C++ 一站式开发调试环境教程
3445 0

热门文章

最新文章