Dolphin -支持东方40语种+中国22方言的新SOTA语音大模型

在当今数字化时代,语音识别技术已成为人机交互的关键桥梁,广泛应用于智能客服、语音助手、会议转录等众多领域。然而,对于东方语言的识别如越南语、缅甸语等,现有模型往往表现不佳,难以满足用户的需求。为解决这一难题,海天瑞声携手清华大学电子工程系语音与音频技术实验室,共同推出了Dolphin —— 一款专为东方语言设计的语音大模型

Dolphin 采用的多任务格式,其主要沿用了 OpenAI Whisper的
格式。Dolphin 专注于自动语音识别 (ASR),不支持翻译任务。此外,Dolphin 引入了特定区域的标记,从而支持方言。

Dolphin 是由 Dataocean AI 与清华大学合作开发的多语言、多任务 ASR 模型。它支持东亚、南亚、东南亚和中东地区的 40 种东方语言,同时还支持 22 种中国方言。该模型基于超过 21 万小时的数据进行训练,其中包括 DataoceanAI 的专有数据集和开源数据集。该模型可以执行语音识别、语音活动检测 (VAD)、语音分割和语言识别 (LID)

二、创新技术架构 

  • 模型结构    

Dolphin网络结构基于CTC-Attention架构,E-Branchformer编码器和Transformer解码器,并引入了4倍下采样层,以实现高效的大规模多语言语音识别模型的训练。CTC-Attention架构结合了CTC的序列建模能力和注意力机制的上下文捕捉能力,能够有效提升模型的识别准确性和效率。E-Branchformer编码器采用并行分支结构,能够更有效地捕捉输入语音信号的局部和全局依赖关系,为模型提供了更丰富的特征表示。解码器部分则采用了在序列到序列任务中表现出色的Transformer,能够生成高质量的文本输出。为了进一步提高训练效率和性能,我们在模型中引入了4倍下采样层。这一层可以减少输入特征的序列长度,从而加速计算过程,同时保留关键的语音信息,确保模型的识别效果不受影响。

  • 多任务格式

Dolphin 借鉴了 Whisper 和 OWSM 的创新设计方法,但专注于ASR 进行了若干关键修改。Dolphin 不支持翻译任务,并且去掉了previous text及其相关标记的使用,这简化了输入格式并减少了潜在的复杂性。Dolphin引入了两级语种标签系统,以便更好地处理语言和地区的多样性。第一个标签指定语种(例如: <zh> 、 <ja>),第二个标签指定地区(例如 <CN> 、 <JP>)。这种分层方法使模型能够捕捉同一种语言内不同方言和口音之间的差异,以及同一地区内不同语言之间的相似性,从而提高了模型区分密切相关的方言的能力,并通过在语言和地区之间建立联系增强了其泛化能力。

三、强大的数据基础 Dolphin的训练数据集整合了海天瑞声的专有数据和多个开源数据集,总时长超过20万小时,涵盖40个东方语种。其中,海天瑞声数据集包含137,712小时的音频,覆盖38个东方语种。这些高质量、多样化的数据为模型的训练提供了坚实的基础,使其能够更好地适应不同语言和方言的语音特征。

四、卓越性能表现 通过精心设计的架构和大规模的训练数据,Dolphin在多种语言上的词错误率(WER)显著低于现有开源模型。

例如,在海天瑞声数据集上,Dolphin 模型的平均WER为31.5%,small模型为24.5%,medium模型为22.2%;在CommonVoice数据集上,Dolphin 模型的平均WER为37.2%,small模型为27.4%,medium模型为25.0%。即使与Whisper large-v3模型相比,Dolphin在模型规模更小的情况下,性能也更为出色。以中文为例,Dolphin中模型的WER仅为9.2%,而Whisper large-v3模型为27.9%。 在KeSpeech (包含一个普通话子集和八个中国方言子集)测试集上,Dolphin模型表现出了卓越的效果.

五、开源与社区贡献 为促进语音识别技术的进一步发展,Dolphin的训练模型和推理源代码已公开发布。这一举措不仅为研究人员提供了宝贵的研究基础,也为开源社区注入了新的活力,鼓励更多创新与合作。通过共享技术成果,我们希望能够吸引更多的开发者和研究机构参与到东方语言语音识别的研究中来,共同推动技术的进步。 

支持的语言列表:

Language code

Language CodeEnglish NameChinese Name
zhMandarin Chinese中文
jaJapanese日语
thThai泰语
ruRussian俄语
koKorean韩语
idIndonesian印度尼西亚语
viVietnamese越南语
ctYue Chinese粤语
hiHindi印地语
urUrdu乌尔都语
msMalay马来语
uzUzbek乌兹别克语
arArabic阿拉伯语
faPersian波斯语
bnBengali孟加拉语
taTamil泰米尔语
teTelugu泰卢固语
ugUighur维吾尔语
guGujarati古吉拉特语
myBurmese缅甸语
tlTagalog塔加洛语
kkKazakh哈萨克语
orOriya / Odia奥里亚语
neNepali尼泊尔语
mnMongolian蒙古语
kmKhmer高棉语
jvJavanese爪哇语
loLao老挝语
siSinhala僧伽罗语
filFilipino菲律宾语
psPushto普什图语
paPanjabi旁遮普语
kabKabyle卡拜尔语
baBashkir巴什基尔语
ksKashmiri克什米尔语
tgTajik塔吉克语
suSundanese巽他语
mrMarathi马拉地语
kyKirghiz吉尔吉斯语
azAzerbaijani阿塞拜疆语

Language Region Code

Language Region CodeEnglish NameChinese Name
zh-CNChinese (Mandarin)中文(普通话)
zh-TWChinese (Taiwan)中文(台湾)
zh-WUChinese (Wuyu)中文(吴语)
zh-SICHUANChinese (Sichuan)中文(四川话)
zh-SHANXIChinese (Shanxi)中文(山西话)
zh-ANHUIChinese (Anhui)中文(安徽话)
zh-TIANJINChinese (Tianjin)中文(天津话)
zh-NINGXIAChinese (Ningxia)中文(宁夏话)
zh-SHAANXIChinese (Shaanxi)中文(陕西话)
zh-HEBEIChinese (Hebei)中文(河北话)
zh-SHANDONGChinese (Shandong)中文(山东话)
zh-GUANGDONGChinese (Guangdong)中文(广东话)
zh-SHANGHAIChinese (Shanghai)中文(上海话)
zh-HUBEIChinese (Hubei)中文(湖北话)
zh-LIAONINGChinese (Liaoning)中文(辽宁话)
zh-GANSUChinese (Gansu)中文(甘肃话)
zh-FUJIANChinese (Fujian)中文(福建话)
zh-HUNANChinese (Hunan)中文(湖南话)
zh-HENANChinese (Henan)中文(河南话)
zh-YUNNANChinese (Yunnan)中文(云南话)
zh-MINNANChinese (Minnan)中文(闽南语)
zh-WENZHOUChinese (Wenzhou)中文(温州话)
ja-JPJapanese日语
th-THThai泰语
ru-RURussian俄语
ko-KRKorean韩语
id-IDIndonesian印度尼西亚语
vi-VNVietnamese越南语
ct-NULLYue (Unknown)粤语(未知)
ct-HKYue (Hongkong)粤语(香港)
ct-GZYue (Guangdong)粤语(广东)
hi-INHindi印地语
ur-INUrdu乌尔都语(印度)
ur-PKUrdu (Islamic Republic of Pakistan)乌尔都语
ms-MYMalay马来语
uz-UZUzbek乌兹别克语
ar-MAArabic (Morocco)阿拉伯语(摩洛哥)
ar-GLAArabic阿拉伯语
ar-SAArabic (Saudi Arabia)阿拉伯语(沙特)
ar-EGArabic (Egypt)阿拉伯语(埃及)
ar-KWArabic (Kuwait)阿拉伯语(科威特)
ar-LYArabic (Libya)阿拉伯语(利比亚)
ar-JOArabic (Jordan)阿拉伯语(约旦)
ar-AEArabic (U.A.E.)阿拉伯语(阿联酋)
ar-LVTArabic (Levant)阿拉伯语(黎凡特)
fa-IRPersian波斯语
bn-BDBengali孟加拉语
ta-SGTamil (Singaporean)泰米尔语(新加坡)
ta-LKTamil (Sri Lankan)泰米尔语(斯里兰卡)
ta-INTamil (India)泰米尔语(印度)
ta-MYTamil (Malaysia)泰米尔语(马来西亚)
te-INTelugu泰卢固语
ug-NULLUighur维吾尔语
ug-CNUighur维吾尔语
gu-INGujarati古吉拉特语
my-MMBurmese缅甸语
tl-PHTagalog塔加洛语
kk-KZKazakh哈萨克语
or-INOriya / Odia奥里亚语
ne-NPNepali尼泊尔语
mn-MNMongolian蒙古语
km-KHKhmer高棉语
jv-IDJavanese爪哇语
lo-LALao老挝语
si-LKSinhala僧伽罗语
fil-PHFilipino菲律宾语
ps-AFPushto普什图语
pa-INPanjabi旁遮普语
kab-NULLKabyle卡拜尔语
ba-NULLBashkir巴什基尔语
ks-INKashmiri克什米尔语
tg-TJTajik塔吉克语
su-IDSundanese巽他语
mr-INMarathi马拉地语
ky-KGKirghiz吉尔吉斯语
az-AZAzerbaijani阿塞拜疆语

GigaSpeech 2:三万小时东南亚多语种语音识别开源数据集发布

下载:https://huggingface.co/datasets/speechcolab/gigaspeech2

语言:泰语、印尼语、越南语
GigaSpeech 2 raw:30,000 小时的泰语、印尼语和越南语自动转录语音。
GigaSpeech 2 精炼:泰语 10,000 小时,印尼语和越南语各 6,000 小时。
GigaSpeech 2 DEV 和 TEST:每种语言的 DEV 时间为 10 小时,TEST 时间为 10 小时,由专业人工注释员转录,富有挑战性和现实性。

“Giga”一词源于“gigantic”[“巨大”],互联网上具有海量音频资源,但语音质量良莠不齐,高质量音频文本对数据十分稀缺且标注成本高昂,特别是在小语种领域。GigaSpeech 是一个非常成功的英文开源数据集,以 YouTube 和 Podcast 为音频来源,提供了上万小时的高质量文本标注语音数据集,获得了广泛关注和应用。针对多语言领域仍存在的语音识别性能较差、可用高质量标注数据缺乏等问题,我们提出了利用 in-the-wild 无标注音频,构建高质量大规模语音识别数据集的新范式,制作出面向真实场景的大规模、多领域、多语言的语音识别数据集 GigaSpeech 2基于Gigaspeech 2 数据集训练的语音识别模型在三个东南亚语种(泰语、印尼语、越南语)上达到了媲美商业语音识别服务的性能。我们怀揣着技术应当普惠大众的理念,致力于开源高质量语音识别数据集和模型,促进多语言文化沟通。

GigaSpeech 2 是一个持续扩展的、多领域多语言的大规模语音识别语料库,旨在促进低资源语言语音识别领域的发展和研究。GigaSpeech 2 raw拥有 30000 小时的自动转录音频,涵盖泰语、印尼语、越南语经过多轮精炼和迭代,GigaSpeech 2 refined拥有 10000 小时泰语、6000 小时印尼语、6000 小时越南语。我们也开源了基于 GigaSpeech 2 数据训练的多语种语音识别模型,模型性能达到了商业语音识别服务水平

数据集构建:

GigaSpeech 2 的制作流程也已同步开源,这是一个自动化构建大规模语音识别数据集的流程,面向互联网上的海量无标注音频,自动化地爬取数据、转录、对齐、精炼。这一流程包含利用 Whisper 进行初步转录,使用 TorchAudio 进行强制对齐,经过多维度过滤制作出 GigaSpeech 2 raw。随后,采用改进的 Noisy Student Training (NST) 方法,通过反复迭代精炼伪标签,持续提高标注质量,最终制作出GigaSpeech 2 refined。

GigaSpeech 2 在主题上涵盖了多样化话题领域,包括农业、艺术、商业、气候、文化、经济、教育、娱乐、健康、历史、文学、音乐、政治、两性关系、购物、社会、体育、科技和旅行。同时,在内容形式上涵盖了多种类型,包含声书、解说、讲座、独白、电影电视剧、新闻、访谈、视频博客。

GigaSpeech 2 raw: Automated Crawling and Transcription

音频收集

由于低资源语言中人工标注数据的稀缺性,我们的数据集采集策略仅关注音频内容,而不考虑是否存在或文本配对的质量。这种策略使我们能够收集更广泛范围的音频数据。考虑到低资源语言的资源稀缺性和分布不均,我们有策略地重点爬取 YouTube 频道中的视频,基于两个关键假设:

  1. 优先选择热门频道可以确保一致的领域特征和音频质量
  2. 不同频道之间没有说话人重叠,从而简化后续的数据划分。

数据收集流程首先由人工定义感兴趣的内容类别,所选主题包括:农业、艺术、商业、气候、文化、经济、教育、娱乐、健康、历史、文学、音乐、政治、人际关系、购物、社会、体育、科技和旅游。除了多样的主题外,我们还考虑了不同的内容格式,包括:有声书、评论、讲座、独白、电影、新闻、访谈和 vlog。这种广泛的选择确保了数据集在多个领域的全面性,可支持研究与分析。

在准备好 YouTube 频道列表后,我们使用 yt-dlp 工具下载所有音频文件,格式为 WebM。随后,这些文件被转换为单声道的 WAV 格式,并重采样为 16 kHz 的采样率。


训练 / 开发 / 测试集的划分:为确保各数据集之间没有说话人重叠,我们通过人工方式验证不同频道间无重叠说话人,并将来自不同 YouTube 频道的数据分配至不同的子集。数据集被划分为三个独立的子集:训练集(TRAIN)、开发集(DEV)和测试集(TEST)。

其中,DEV 和 TEST 集各包含 10 小时内容,均由专业人员手动转录,其余部分则分配至训练集。表1展示了这三种语言的数据量分布。更详细的分析见附录B。


使用 Whisper 进行转录:我们使用 OpenAI 的 Whisper large-v3 模型自动转录音频文件。对于每段音频,从中间选择一个 30 秒的片段进行语言识别,仅对与目标语言匹配的音频进行转录。


使用 TorchAudio 进行强制对齐:虽然 Whisper 可生成时间戳,但经过检验发现其精度不足。因此,我们采用了 TorchAudio 中的强制对齐模型【参考多语言数据的强制对齐 CTC 强制对齐 API 教程】,它能为嘈杂的转录文本提供可靠的对齐,支持在 GPU 上高效处理,并能更好地处理较长的音频序列。


文本标准化:对转录文本进行标准化处理,包括:

  • 应用 Unicode NFKC(兼容性分解与合成)规范;
  • 将所有字符转换为大写;
  • 去除标点符号;
  • 将阿拉伯数字映射为对应语言中的文本数字。

多维度过滤:为了排除质量较差的样本,我们在文本和音频两个模态上设计了一系列启发式的过滤规则:

  • 字符集过滤(Charset Filtering):仅保留那些只包含目标语言字符集内字符的片段。
  • 语言置信度过滤(Language Confidence Filtering):使用 fastText 提供的语言识别(LID)模型,根据语言识别的置信度分数进行过滤,仅保留那些置信度高于预设阈值的片段。该方法能有效排除无意义或重复的内容。需要注意的是,基于音频的语言识别在文本转录之前已经完成。
  • 音频时长过滤(Audio Duration Filtering):根据音频时长进行过滤,仅保留长度在预设的最短和最长时间阈值之间的片段。
  • 样本平衡(Balancing):我们对因频道特定内容造成的转录文本重复进行精细控制,同时尽可能保留自然的语言使用模式。

GigaSpeech 2 精炼:迭代标签优化(Iterative Label Refinement)

由于 Whisper 转录的不准确性以及强制对齐边界不精确,部分样本的质量仍然较低。为了解决这个问题,我们设计了一种改进的 神经自监督训练(NST) 方法。如图 1 右下角所示,该方法以一部分质量不佳的伪标签样本为起点训练一个教师模型,并通过迭代方式不断扩展训练集、生成新的伪标签,并对其进行过滤。随后训练一个与教师模型等大或更大的学生模型,使用优化后的伪标签进行训练,并将其作为新的教师模型。

在每次 NST 步骤中,我们引入了 SpecAugmentBypass特征遮盖(feature mask)来注入噪声。其中:

  • Bypass 是一种随机深度机制,它通过学习通道级的标量权重,在模块输入与输出之间进行加权组合;
  • Feature mask 在前馈层和卷积层的隐藏维度上执行 Dropout,但在时间维度上保持共享。

这种有意识地加入噪声的方式,可以使学生模型学习在有噪声扰动下仍能保持与教师模型一致的行为,而教师模型在生成伪标签时则不会受到这些扰动 。

通过这样的迭代过程,数据质量将逐步得到提升。详细的算法步骤见附录 A 中的算法 1。

数据集组成:

GigaSpeech 2 提供了两个版本的数据集,分别为 raw 和 refined 版本,适用于有监督训练任务。训练集时长详情如下表所示:

GigaSpeech 2 开发集和测试集由海天瑞声的专业人员对语音数据人工标注得到,时长详情如下表所示:

主题和内容分布详情如下图所示,外圈表示主题领域,内圈表示内容形式:

实验结果:

我们将使用 GigaSpeech 2 数据集训练的语音识别模型与业界领先的 OpenAI Whisper (large-v3、large-v2、base)、Meta MMS L1107、Azure Speech CLI 1.37.0 和 Google USM Chirp v2 模型在泰语、印尼语和越南语上进行比较。性能评估基于 GigaSpeech 2、Common Voice 17.0 以及 FLEURS 三个测试集,通过字符错误率(CER)或单词错误率(WER)指标进行评估。结果表明:

1)在泰语上,我们的模型展现出卓越的性能,全面超越了所有竞争对手,包括微软和谷歌商用接口。值得一提的是,我们的模型在达到这一显著成果的同时,参数量仅为 Whisper large-v3 的十分之一。

2)在印尼语和越南语上,我们的系统与现有的基线模型相比表现出具有竞争力的性能。

中文NLP资源库

https://github.com/fighting41love/funNLP

在入门到熟悉NLP的过程中,用到了很多github上的包,遂整理了一下,分享在这里。

很多包非常有趣,值得收藏,满足大家的收集癖! 如果觉得有用,请分享并star:star:,谢谢!

长期不定时更新,欢迎watch和fork!:heart::heart::heart:

🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥                  
类ChatGPT的模型评测对比
类ChatGPT的资料
类ChatGPT的开源框架
LLM的训练_推理_低资源_高效训练
提示工程
类ChatGPT的文档问答
类ChatGPT的行业应用
类ChatGPT的课程资料
LLM的安全问题
多模态LLM
LLM的数据集
🍆 🍒 🍐 🍊                  🌻 🍓 🍈 🍅 🍍                    
语料库
词库及词法工具
预训练语言模型
抽取
知识图谱
文本生成
文本摘要
智能问答
文本纠错
文档处理
表格处理
文本匹配
文本数据增强
文本检索
阅读理解
情感分析
常用正则表达式
语音处理
常用正则表达式
事件抽取
机器翻译
数字转换
指代消解
文本聚类
文本分类
知识推理
可解释NLP
文本对抗攻击
文本可视化
文本标注工具
综合工具
有趣搞笑工具
课程报告面试等
比赛
金融NLP
医疗NLP
法律NLP
文本生成图像
其他

文本语料数据平台–CnOpenData

https://www.cnopendata.com/

https://www.cnopendata.com/all-data

CnOpenData是覆盖经济、法律、医疗、人文等多个学科维度的综合型数据平台,并持续提供个性化数据定制服务,现拥有500+个专题数据库,涵盖专利数据(1.4亿+量级)、工商注册企业数据(3.5亿+量级)、上市公司数据、土地数据、政府数据、新冠疫情数据、分地区数据、交通数据、气象数据等几十大数据系列,数值型数据和文本型数据并存,学术研究价值极高。

  本平台集灵活的数据定制服务、专业度极强的数据整合能力、强大的学术性于一体,为各领域中不同主体的研究决策提供优质、专业的数据支持。我们不仅为国内多所高校和著名学者提供持续的数据服务,在海外我们也入选了普林斯顿图书馆“来自中国的数据”系列。同时,我们与Neudata达成战略合作伙伴关系,也致力于为投资管理、私募股权、风险投资和企业领域的客户提供高质量的数据服务。目前,我们已成功入驻福建大数据交易所门户网站,与该司达成友好意向合作。

CnOpenData 是一个综合性的中文开放数据平台,致力于为学术研究、自然语言处理(NLP)和大模型训练提供丰富的文本语料资源。​该平台涵盖了多个领域的文本数据,具有广泛的应用价值。​


📚 CnOpenData 文本语料数据概览

CnOpenData 提供的文本语料数据种类繁多,主要包括以下几个方面:​

1. 法律与政策文本数据

  • 包含中国法律法规、规章、条约、五年规划等文本数据,是研究法律与政策问题的重要资源。

2. 政府工作报告数据

  • 涵盖国务院、省级、市级、县级政府的工作报告文本,时间跨度近20年,反映了国家行政发展的历程。

3. 专利文本数据

  • 提供中国专利的描述信息和权利要求信息,总量超过2300万条,时间范围从1985年到2022年12月31日。

4. 古典文学数据

  • 收录了唐诗宋词等中国古代文学作品,适用于文化研究和古文处理任务

5. 新闻与舆情数据

  • 包括CCTV新闻联播、人民日报文本数据、A股上市公司新闻舆情数据等,适用于舆情分析和新闻研究。​

6. 企业与金融文本数据

  • 涵盖A股上市公司公告、股吧评论、投资者关系管理数据等,支持金融文本分析和情感分析研究。

🔍 数据获取与使用

CnOpenData 提供在线访问和下载服务,用户可以根据研究需求选择相应的数据集。​部分数据可能需要注册或申请权限。​具体信息可参考其官方网站:CnOpenData


CnOpenData 的丰富文本语料资源为中文自然语言处理和大模型训练提供了坚实的数据基础。​无论是法律政策研究、古典文学分析,还是金融文本挖掘,CnOpenData 都是一个值得信赖的数据来源。

Baichuan-Auido端到端训练语音交互大模型

Baichuan-Auido 是Baichuan最新的端到端训练的语音交互大模型,无缝集成了音频理解和生成功能,支持高质量可控的中英双语实时对话。

  • Baichuan-Audio-Base: 为促进语音大模型发展,我们开源了使用高质量海量数据训练的端到端语音基座模型。该模型未经SFT指令微调,可塑性强。
  • Baichuan-Audio: 接受文本、音频作为输入,并生成高质量文本和语音输出,能够在保持预训练 LLM 智商能力下实现无缝的高质量语音交互,和用户进行实时语音对话

Introduction

Baichuan-Audio,这是一款为实时语音交互设计的端到端音频大语言模型。与 MoshiGLM-4-Voice [输出 文本+speech token,speech token 接入cosyvoice解码器合成音频 ] 类似,Baichuan-Audio 扩展了预训练的大语言模型(LLM),以支持端到端的音频输入和输出。该模型通过集成 Baichuan-Audio-Tokenizer 和流匹配解码器来实现上述功能,前者将音频信号离散化为音频标记,后者则将音频标记解码为语音波形。

Baichuan-Audio-Tokenizer 的运行帧率为 12.5 Hz,并采用多码本离散化技术,以保留语义和声学信息,从而支持 LLM 中语音模态的有效建模。Baichuan-Audio 还引入了独立的音频头(audio head),以提升模型处理和捕捉音频特征的能力。

我们在包含约 1000 亿个标记的音频-文本数据上进行了大规模预训练。基于包含 88.7 万小时的大型音频语料库,我们采用了交错数据处理方法,以在 LLM 框架内实现高效的知识迁移。

贡献:

  • 统一且卓越的语音能力:我们设计了一个 8 层 RVQ 音频分词器Baichuan-Audio-Tokenizer),在 12.5 Hz 帧率下实现了对语义和声学信息的最佳平衡,支持高质量、可控的中英文双语实时对话。
  • 端到端语音交互Baichuan-Audio 能够处理文本和音频输入,并生成高质量的文本和语音输出,支持无缝的高质量语音交互,同时保持智能响应能力。
  • 开源支持:我们已开源训练数据和基础模型,为语音交互领域的研究与创新提供了宝贵的资源与工具。

模型

该模型结构围绕三大核心组件构建:Baichuan-Audio分词器音频大语言模型(audio LLM),以及音频解码器

处理流程从音频分词器开始,它通过捕捉语义与声学信息,将原始音频输入转化为离散的token。这一步是通过 Whisper编码器残差矢量量化(RVQ)技术相结合实现的。

随后,音频LLM以交替方式生成对齐的文本与音频token,并借助一个特殊的token实现文本与音频模态间的无缝切换。接下来,这些音频token将由一个独立的音频head进一步处理。

最后,模型通过一个基于Flow-Matching的方法的音频解码器,从这些token中重建出高质量的Mel谱图,再通过 声码器(vocoder)将其转换为音频波形。

Audio Tokenization

当前音频分词器面临的主要挑战,在于如何在捕捉语音信号中的语义信息与声学信息之间取得最佳平衡。相较于像 HuBERT 这样的自监督学习方法,Baichuan-OmniQwen-Audio 这类模型在捕捉语义特征方面提供了更直接的路径。【ASR任务

与此同时,像 EncodecSpeechTokenizer这样的音频分词器则在完整重建音频特征方面表现尤为出色。【音频重建任务

为了结合这两类方法的优点,提出了 Baichuan-Audio-Tokenizer:一个基于 残差矢量量化(RVQ)多目标训练【重建音频任务以及ASR任务】 的音频分词器,如图2所示。Baichuan-Audio-Tokenizer 保留了来自 Baichuan-Omni音频编码器语言模型组件,并在编码器之后新增了一个 音频解码器结构,用于重建输入的 Mel 频谱图。该音频分词器采用多目标优化方法进行训练,从而能够有效捕捉输入语音中的语义信息与声学信息。

Baichuan-Audio-Tokenizer 采用了每秒 12.5 个 token 的帧率设计。高层次的音频特征首先通过 Whisper Large 编码器Mel 频谱图(Mel spectrogram) 中提取,随后通过一个 残差卷积网络 进行 4× 下采样,以获得低帧率的音频特征。

由于 Whisper 编码器输出的音频特征是高维的,在量化过程中需尽可能减少信息损失,因此我们使用了 8 层残差矢量量化(RVQ)。我们设计了逐层递减的码本大小,依次为:{8K, 4K, 2K, 1K, 1K, 1K, 1K, 1K}

音频解码器采用与 Whisper 编码器完全对称的结构,通过一个 反卷积模块(deconvolution module) 对输入进行 4× 上采样。之后,序列经过一系列 Transformer 层,并进一步进行 2× 上采样,最终得到每秒 100 个 token 的粗略 Mel 频谱表示。设计了一个 精细化网络,以提升 Mel 频谱重建的精度,最终获得高质量的精细 Mel 频谱特征。

在音频重建损失函数的设计中,我们,采用 L2 损失与 L1 损失的组合 作为重建损失。其形式定义如下:

为提升音频重建的质量,我们引入了一种 多尺度 Mel 频谱损失(multiscale Mel loss) 方法,使用了两种不同的 hop length(帧移)window size(窗长)。该方法有效缓解了在从解码器输出转换为 Mel 频谱过程中,由于降维和下采样插值所导致的信息损失。通过在多个尺度上进行优化,该方法能够保留更多细粒度的音频特征,从而提升重建的保真度和训练的稳定性。

对于预训练的语言模型(LLM),其目标是在音频理解任务中最大化文本输出的 softmax 概率。为了确保语义对齐,我们在训练过程中保持预训练语言模型参数不更新(冻结),仅最大化其在音频理解任务中预测文本的 softmax 概率。这种做法有助于保持音频分词器与文本LLM之间的语义对齐关系

在选择 LLM 的规模时,我们观察到,在音频理解模型的训练过程中,不同规模的 LLM 对于 ASR(自动语音识别)指标的影响很小。因此,我们最终选用了一个拥有 15亿参数(1.5B) 的预训练 LLM 进行持续训练。这个规模的模型与音频解码器在训练过程中表现出良好的匹配性,两者的梯度范数差距较小,有助于提升整体训练的稳定性。

在量化模块的训练中,我们采用了 指数移动平均(EMA) 策略来更新码本,并使用 直通估计器(STE, Straight-Through Estimator) 来反向传播梯度至编码器。此外,我们还使用了 向量量化承诺损失(VQ commitment loss),以确保编码器的输出能够紧密对齐至码本中的条目。

VQ 承诺损失定义如下:

总损失是多尺度重建损失、文本音频对齐损失(对于LLM)和 VQ 承诺损失的加权组合:

训练数据。 除了自动语音识别 (ASR)、音频查询回答 (AQA) 和语音到文本翻译 (S2TT) 等传统任务外,我们还将一定比例的音频文本交错数据纳入训练过程。此策略旨在增强 VQ 模块对复杂上下文场景进行建模的能力。具体来说,训练数据集包括 135k 小时的 ASR 数据、11k 小时的 AQA 数据、9k 小时的 S2TT 翻译数据和 52k 小时的音频文本交错数据。

Evaluation of Baichuan-Audio-Tokenizer. 我们使用相同的数据和基础模型训练了音频理解模型的非 VQ 版本作为基线。对于 VQ 和非 VQ 模型,LLM 的参数在训练期间保持冻结,以确保公平比较并隔离 VQ 机制对整体性能的影响。从表 1 中,我们可以看到 8 层 vq 更接近基线,并且语义内容损失最少。如表 2 所示,8 层 VQ 模型和基线在多个数据集上的 ASR 结果表明,训练后的 8 层 VQ 模型实现了具有竞争力的性能。

基于流匹配的音频解码器

为了提升合成音频的质量与保真度,我们对音频解码模块进行了增强,引入了 Flow-Matching 模型,在 24 kHz 采样率的音频数据上训练,用于生成目标 Mel 频谱图。该 Flow-Matching 解码器 包括两个主要部分:Pre-Net条件解码器(Conditional Decoder),如图 3 所示。

Pre-Net 负责将中间表示映射为供声码器(vocoder)使用的先验分布,结构上由一个 多层感知机(MLP) 和一个 12 层 Transformer 组成:MLP 将输入的 1280维、50 Hz 的音频特征压缩投影至 512维;接着,Transformer 对其进行精细建模;最后通过一个线性层转换为 80维的 Mel 频谱图

条件解码器(Flow-Matching Conditional Decoder)。该部分采用基于 U-Net 的结构,并结合 OT-CFM(Optimal Transport Conditional Flow Matching) 方法进行训练,灵感来源于 Matcha-TTSCosyVoice

U-Net 结构包括:一个下采样模块、一个上采样模块,以及 12 个中间模块,每个模块由一个 ResNet1D 层 和一个 Transformer 层(256维)组成。最终,再通过一个线性层将特征投影为 80维 Mel 频谱图

需要注意的是,由于模型已通过重建损失编码了声学信息(如说话人音色),因此 不需要额外的说话人嵌入(speaker embeddings)。生成的 Mel 频谱图将通过 HiFi-GAN 声码器转换为音频波形。

训练细节: 流匹配模型在约 27 万小时的音频上进行了训练,包括普通话、英语、各种方言和多语言数据。使用集成 ASR 和 MOS 过滤来改善数据质量。在训练期间,AudioEncoder、VQ 层和 AudioDecoder 是固定的,而流匹配 Pre-Net 和解码器则在 Pre-Net 中添加了先验损失进行训练。

重建性能评估

Audio LLM

Baichuan-Audio 通过整合新推出的 Baichuan-Audio-Tokenizer(包括音频嵌入层和独立的音频头)扩展了预训练的 LLM。具体来说,来自 Baichuan-Audio-Tokenizer 的音频标记首先通过音频嵌入层转换为音频嵌入。音频 LLM 交替生成对齐的文本标记和音频标记,并通过特殊标记实现文本和音频之间的模态切换。生成的音频标记由独立的音频头处理,该头由 3 层深度转换器和 8 个分类头组成。最后,音频嵌入通过音频编码器(例如基于流匹配的音频编码器和声码器)以重建音频波形。

音频嵌入。 首先,将 8 个离散音频标记通过相应数量的嵌入层相加以获得音频嵌入。由于包含一个额外的特殊标记来表示音频标记生成的结束,因此每个嵌入层的输入维度都比相应码本的大小大一。

音频头。生成的音频标记使用独立的音频头进行处理,该音频头由 3 层深度转换器和 8 个分类头组成。深度转换器的深度为 8,可预测 8 个码本的音频嵌入。最后,分类头用于获取与音频标记相对应的每个码本的逻辑值。

与纯文本大模型相比,语音语言模型(speech language models) 往往在生成语义连贯的输出方面存在困难。研究 [36] 指出,这一问题主要源于语音中引入了 时长信息(duration)副语言信息(paralinguistic information),例如语调、语气等。

为了解决这一问题,我们在预训练阶段引入了两种类型的交错数据(interleaved data)音频-文本交错数据(INTLV, Audio-Text Interleaved)文本到语音交错数据(ITTS, Interleaved Text-to-Speech)

这两种数据设计有助于提升模型的音频理解与生成能力

在推理阶段,离散音频 token 会被送入 LLM,模型随后以交替的方式生成对齐的 文本 token音频 token。我们引入了特殊 token,用于在文本与音频模态间切换。这种强制对齐策略(forced alignment approach)确保了模型会优先生成连贯完整的文本内容,再生成对应的音频 token,从而有效引导音频 token 的生成,缓解语义退化问题

Pre-training details

数据: 交错数据由交替的文本和音频模态组成,并用标点符号分隔以促进跨模态知识传输。交错对齐的生成数据由完全对齐的文本和音频内容组成,旨在增强模型在文本监督下生成音频标记的能力。音频-文本配对数据(例如,ASR 和 TTS 数据)提高了基本语音任务的性能。另一方面,纯音频数据增强了独立处理音频模态的能力。交错数据收集流程如图 4 所示,分为爬取数据和合成数据两种,共获取了 14.2 万小时的 ITTS 数据和 39.3 万小时的 INTLV 数据。交错数据采用LLM进行切分,即根据文本内容中的标点符号或自然停顿进行自然切分。对于合成数据的切分文本数据,我们还采用了大型语言模型进行文本归一化 。在预训练过程中,我们排除了音频文本交错数据中音频片段的损失计算,这一设计选择与 GLM-4-Voice 不同。 在当前约 50B 的训练音频数据规模下进行的经验观察表明,计算 INTLV 数据中音频片段的损失会导致性能下降。这一决定的合理性还在于音频和文本之间固有的模态冲突,以及推理过程中不需要文本到音频的延续。因此,我们省略了 INTLV 数据中音频片段的损失计算。对于 ITTS 数据,除了初始文本片段外,还计算了音频和文本片段的损失,以增强模型在文本引导音频生成方面的能力。

两阶段训练策略。 为了解决语音特征与文本特征的不同特征可能导致的LLM中原始文本知识的潜在破坏,我们提出了一种两阶段训练策略来缓解模态之间的训练冲突。在第一阶段,LLM的参数保持不变,只允许更新音频嵌入层和音频头的参数。在第二阶段,除文本嵌入层和 LM 头的参数外,所有参数都可训练

监督微调细节

监督微调阶段旨在增强模型在一系列任务中遵循复杂指令的能力。音频 SFT 数据来自大量文本指令。使用基于指令类型、多样性和整体质量的过滤策略选择高质量指令。使用 10,000 种不同语音音调的精选数据集合成音频指令。在自然对话停顿处生成和分割相应的文本响应,然后使用指定的语音音调转换为音频。这些数据集涵盖多项任务,包含大约 242k 个音频数据对。

为了确保合成音频的质量,自动语音识别 (ASR) 被应用于生成的音频文件。将 ASR 输出与原始文本进行比较以验证质量。此过程可创建高质量的端到端对话数据集。有错误的合成音频文件将添加到文本转语音 (TTS) 数据集,而有 ASR 错误的案例将合并到 ASR 训练数据集中。这种合并具有挑战性的示例的迭代方法可增强 TTS 和 ASR 的性能。

需要特别注意处理文本转音频导致原始文本响应不适合作为音频回复的情况。此问题是由于文本和音频之间的语调、速度和表达方式的差异而产生的。某些文本内容在转换为音频时可能无法传达预期含义或引入歧义。因此,在生成过程中仔细检查和调整此类情况至关重要。这可确保合成数据准确反映现实世界的语音交互场景,从而提高数据可靠性并提高模型的实际适用性。

Experiment

 综合智力测评

基于语音的对话模型面临的一大挑战是,与纯文本对话模型相比,其性能往往会下降。为了评估语音模型的“智能”,我们​​以文本到文本的建模能力为基准,评估预训练的语音到文本模型的性能。评估数据集包括两种类型:故事延续能力和常识推理能力。

Performance in ASR/TTS Tasks

Fleurs 、 WenetSpeech 和 KeSpeech 上的主要结果 

Performance in Audio Understanding Tasks

模型在音频理解基准测试中表现优异,超越了最新的开源模型。

两种不同的设置:1)非级联方式的语音到语音生成(表示为 S → S),其中输入是音频,输出是交错的文本和音频。然后合并输出文本并用于评估。2)语音到文本生成(表示为 S → T,其中输入是音频,输出是文本,用于评估。

总结

Baichuan-Audio,这是一种专为音频设计的端到端大型语言模型,集成了语音理解和生成功能。该模型通过预训练的 ASR 模型对 12.5 Hz 的语音信号进行多码本离散化,从而保留了语音标记中的语义和声学信息。此外,还专门设计了一个独立的音频头来高效处理这些标记。为了平衡音频建模和语言能力保留,采用了交错数据的两阶段预训练策略。所提出的框架通过文本引导的对齐语音生成来支持语音交互,从而进一步保留了模型的基础认知能力。