阿里开源语音理解和语音生成大模型FunAudioLLM

      近年来,人工智能(AI)的进步极大地改变了人类与机器的互动方式,例如GPT-4o和Gemin-1.5等。这种转变在语音处理领域尤为明显,其中高精度的语音识别、情绪识别和语音生成等能力为更直观、更类人的交互铺平了道路。阿里开源大模型FunAudioLLM,一个创新的框架,旨在促进人类与大型语言模型(LLMs)之间的自然语音交互。FunAudioLLM的核心是两个开创性的模型:用于语音理解的SenseVoice和用于语音生成的CosyVoice。

1 FunAudioLLM 模型

     FunAudioLLM 模型家族包含两个核心模型:SenseVoice 和 CosyVoice,分别负责语音理解和语音生成

     链接:https://github.com/FunAudioLLM

1.1 SenseVoice:语音理解模型

SenseVoice 是一个功能强大的语音理解模型,支持多种语音处理任务:

  • 自动语音识别 (ASR): 将语音转换为文本。
  • 语言识别 (LID): 识别语音所属的语言。
  • 语音情绪识别 (SER): 识别说话人的情绪。
  • 音频事件检测 (AED): 识别语音中的特定事件,例如音乐、掌声、笑声等。

1.1.1 SenseVoice 模型特点

  • 多语言支持:SenseVoice 支持多种语言的语音识别,包括 SenseVoice-Small 支持的 5 种语言和 SenseVoice-Large 支持的 50 多种语言。
  • 低延迟:SenseVoice-Small 具有极低的推理延迟,比 Whisper-small 快 5 倍以上,比 Whisper-large 快 15 倍以上,适用于实时语音交互应用。
  • 高精度:SenseVoice-Large 支持超过 50 种语言的语音识别,并具有高精度识别能力,适用于需要高精度识别的应用。
  • 丰富的语音理解功能:SenseVoice 还可以进行情绪识别和音频事件检测,为更复杂的语音交互应用提供支持。

1.1.2 SenseVoice 模型架构

SenseVoice 包含两个版本,分别针对不同的需求:

1.2.2 CosyVoice 模型架构

  • SenseVoice-Small:非自回归编码器模型,采用内存增强的自注意力网络 (SAN-M) 架构,具有快速推理的能力。
  • SenseVoice-Large:自回归编码器-解码器模型,采用 Transformer 架构,具有高精度识别的能力。
  • 1.2 CosyVoice:语音生成模型

  • CosyVoice 是一个功能强大的语音生成模型,可以生成自然流畅的语音,并可以控制多种语言、音色、说话风格和说话人身份。

    1.2.1 CosyVoice 模型特点

  • 多语言语音生成:可以生成中文、英文、日语、粤语和韩语等多种语言的语音。
  • 零样本学习:可以通过少量参考语音进行语音克隆,例如 3 秒的参考语音。
  • 跨语言语音克隆:可以将语音克隆到不同的语言中。
  • 情感语音生成:可以生成情感丰富的语音,例如快乐、悲伤、愤怒等。
  • 指令遵循:可以通过指令文本控制语音输出的各个方面,例如说话人身份、说话风格和副语言特征。

CosyVoice 包含三个版本,分别针对不同的需求:

CosyVoice-base-300M:专注于准确表达说话人身份、零样本学习和跨语言语音克隆。 CosyVoice-instruct-300M:专注于生成情感丰富的语音,并可以通过指令文本进行精细控制,例如说话人身份、说话风格和副语言特征。 CosyVoice-sft-300M:在 7 位多语言说话人上进行微调,可直接部署。

2 数据集

2.1 SenseVoice 训练数据

SenseVoice-Small 模型使用了大约 30 万小时的语音数据,涵盖了中文、粤语、英文、日语和韩语 5 种语言。SenseVoice-Large 模型在 SenseVoice-Small 的基础上,又增加了 10 万小时的多样化多语言数据,以增强其多语言能力。

为了获得丰富的语音识别标签,SenseVoice 模型使用了开源的音频事件检测 (AED) 和语音情绪识别 (SER) 模型来生成伪标签,从而构建了一个包含大量丰富语音识别标签的数据集。其中,AED 数据集包含 1.5 亿条记录,SER 数据集包含 3000 万条记录。

2.2 CosyVoice 训练数据

CosyVoice 模型使用了包含多种语言的语音数据集,用于训练语音生成模型。在数据收集过程中,使用了专门的工具进行语音检测、信噪比 (SNR) 估计、说话人分割和分离等操作。然后,使用 SenseVoice-Large 和 Paraformer 模型生成伪文本标签,并通过强制对齐 (FA) 模型进行优化,以提高标签的准确性和消除低质量数据。

CosyVoice-instruct 模型使用了指令训练数据,对 CosyVoice-base 模型进行微调,以增强其指令遵循能力。指令训练数据分为三种类型:说话人身份、说话风格和副语言特征,分别用于控制语音输出的各个方面。

3 实验结果

     FunAudioLLM 的实验结果表明,SenseVoice 和 CosyVoice 模型在语音理解和语音生成任务上取得了优异的性能。

3.1多语言语音识别

     我们使用字符错误率(CER)来评估模型在五种语言上的表现:中文、粤语、日语、韩语和泰语,以及使用词错误率(WER)来评估所有其他语言。

  • 识别准确率:SenseVoice-S 和 SenseVoice-L 在大多数测试集上均优于 Whisper 对应模型,尤其是在 Cantonese 和其他低资源语言上表现更佳。
  • 识别效率:SenseVoice-S 采用非自回归架构,具有极低的推理延迟,比 Whisper-small 快 5 倍以上,比 Whisper-L-V3 快 15 倍以上。

3.2 语音情绪识别

      我们在7个流行的情绪识别数据集上评估了SenseVoice的SER能力,包括CREMA-D、MELD、IEMOCAP、MSP-Podcast、CASIA、MER2023和ESD。这些语料库涵盖了中文和英文,以及表演、电视剧和日常对话等场景。我们报告了未加权平均准确率(UA)、加权平均准确率(WA)、宏观F1得分(F1)和加权平均F1(WF1)。

  • 识别准确率:SenseVoice 在 7 个流行的情绪识别数据集上均取得了良好的性能,无需针对目标领域进行微调即可获得高准确率。
  • 与其他模型的比较:SenseVoice-Large 在几乎所有数据集上都取得了最佳结果,SenseVoice-Small 也优于其他基线模型。

3.3 音频事件检测

        SenseVoice-Small和SenseVoice-Large模型都能够对语音中的音频事件进行分类,包括音乐、掌声和笑声。SenseVoice-L可以进一步预测音频事件的开始和结束位置,而SenseVoice-Small只能预测音频中发生了什么,每个话语最多一个事件。SenseVoice-Small可以检测更多种类的事件,例如咳嗽、打喷嚏、呼吸和哭泣,这些事件可能发生在人机交互中

      我们在不同的任务中将SenseVoice与最先进的音频事件检测模型BEATs和PANNs进行比较,包括环境声音分类(ESC50)、婴儿哭泣/笑声检测、咳嗽检测(Coswara)和家庭脱口秀事件检测。

  • 识别准确率:SenseVoice-S 和 SenseVoice-L 能够识别语音中的音频事件,例如音乐、掌声和笑声。SenseVoice-L 还能够预测音频事件的起始和结束位置。
  • 与其他模型的比较:SenseVoice 在音频事件分类或检测方面表现出色,尽管其他模型可能具有更好的 F1 分数。

3.4 S3 Tokenizer 保留语义信息

       为了评估S3分词器保留语义信息的能力,我们比较了增强量化器的SenseVoice-L与其原始版本和Whisper-Large V3模型的识别性能。这些模型使用Common Voice zh-CN和en基准进行了评估

识别准确率:S3 Tokenizer 在中英文测试集上均表现出稳健的识别性能,其中在 common voice zh-CN 集上,S3 Tokenizer 的错误率比 Whisper-Large V3 模型降低了 4.14%。

3.5 CosyVoice 语音生成质量

       我们通过检查内容一致性和说话者相似性来评估CosyVoice语音合成的质量。分别使用LibriTTS的“test-clean”子集和AISHELL-3的测试集来构建英语和中文的评估集。对于这些集中的每段文本,我们随机选择一段提示语音。使用Whisper-Large V3评估英语的内容一致性,使用Paraformer评估中文。通过计算生成语音和提示语音的说话者嵌入之间的余弦相似性来量化说话者相似性,这些嵌入是使用ERes2Net提取的。

  • 内容一致性:CosyVoice 生成的语音与原始语音在内容上高度一致,与 ChatTTS 相比,WER 更低,插入和删除错误更少。
  • 说话人相似度:CosyVoice 生成的语音与原始语音的说话人相似度很高,表明其具有有效的语音克隆能力。

3.6  CosyVoice 情绪可控性

      情绪控制准确率:CosyVoice-instruct 在情感指令下表现出更高的情绪控制准确率,优于 CosyVoice-base 和 CosyVoice-instruct 无情感指令的情况。

3.7  CosyVoice 作为数据生成器

     数据质量:CosyVoice 生成的语音数据质量很高,可以作为其他任务(例如语音识别和语音翻译)的训练数据,从而提高模型性能。

4 应用与限制

4.1 应用

FunAudioLLM 的 SenseVoice、CosyVoice 和 LLMs 的集成,可以实现多种应用,例如:

  • 语音翻译:将输入语音翻译成目标语言,并使用目标语言生成语音。
  • 情感语音聊天:识别输入语音的情绪和音频事件,并生成与情绪相符的语音。
  • 交互式播客:根据实时世界知识和内容生成播客脚本,并使用 CosyVoice 合成语音。
  • 有声读物:分析文本中的情感和角色,并使用 CosyVoice 合成具有丰富情感的有声读物。
  • 4.2  限制

    FunAudioLLM 的 SenseVoice 和 CosyVoice 模型也存在着一些限制,例如:

  • 低资源语言:SenseVoice 在低资源语言上的语音识别准确率较低。
  • 流式识别:SenseVoice 不支持流式语音识别。
  • 语言支持:CosyVoice 支持的语言数量有限。
  • 情感和风格推断:CosyVoice 需要明确的指令才能生成特定情绪和风格的语音。
  • 唱歌:CosyVoice 在唱歌方面表现不佳。
  • 端到端训练:FunAudioLLM 的模型不是与 LLMs 端到端训练的,这可能会引入误差传播。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/43018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】进程间通信——匿名管道

为什么要进行进程间通信? 1.数据传输:一个进程需要将它的数据发送给另一个进程,比如我们有两个进程,一个负责获取数据,另一个负责处理数据,这时第一个进程就要将获取到的数据交给第二个进程 2.资源共享&…

K8s驱逐场景以及规避方案参考 —— 筑梦之路

Pod 驱逐分为两种情况: 较安全驱逐 & 提高稳定性的良性驱逐 API 发起驱逐,典型案例:kubectl drain Node Not Ready 时,Controller Manager 发起的驱逐 有风险的驱逐 节点压力驱逐 节点磁盘空间不足、内存不足 或 Pid 不足&…

【Threejs进阶教程-着色器篇】3. Uniform的基本用法2与基本地球昼夜效果

Uniform的基本用法2 关于本Shader教程前两篇地址,请按顺序学习本篇使用到的资源用uniform传递纹理代码分析texture类型的uniform在shader中接收uniformtexture2D()处理图片压缩修改wrapS和wrapT 切换成夜景效果切换Mix() 昼夜切换升级改动代码效果分析解决球体分界线…

医疗器械网络安全| 常见安全漏洞与防护措施

医疗器械网络安全顾问​https://link.zhihu.com/?targethttps%3A//www.wanyun.cn/Support%3Fshare%3D24315_ea8a0e47-b38d-4cd6-8ed1-9e7711a8ad5e 一、常见安全漏洞 医疗器械软件在现代医疗体系中扮演着至关重要的角色,然而,随着技术的不断发展&…

关于centos7自带的nginx1.20.1开启https后,XP系统的IE6和IE8无法显示网页的问题

CentOS7自带的nginx-1.20.1是支持HTTP/2和TLS1.3的。 软件包名称:nginx-1.20.1-10.el7.x86_64 CentOS7默认开启了HTTP/2,但没有开启TLS1.3,以及IE6和IE8的https访问。 开启方法: ssl_ciphers HIGH:!aNULL:!MD5;改为ssl_ciphers…

【Word】快速对齐目录

目录标题 1. 全选要操作的内容 → 右键 → 段落2. 选则制表位3. 配置制表符4. Tab键即可 1. 全选要操作的内容 → 右键 → 段落 2. 选则制表位 3. 配置制表符 4. Tab键即可

36.哀家要长脑子了!--前缀和差分

前缀和 1.一维的795. 前缀和 - AcWing题库 前缀和公式 s[i] a[1] a[2] a[3] ... a[i] 即 s[i] s[i-1] a[i] #include<iostream> using namespace std;const int N 1e5 10; int a[N], s[N];int main(){int m, n;cin >> n >> m;for(int i 1; i <…

Elasticsearch基础(三):Elasticsearch核心原理介绍

文章目录 Elasticsearch核心原理介绍 一、基本概念 1、集群&#xff08;cluster&#xff09; 2、节点&#xff08;node&#xff09; 3、索引&#xff08;index&#xff09; 4、类型&#xff08;type&#xff09; 5、映射&#xff08;mapping&#xff09; 二、 Elastic…

LabVIEW开发高灵敏静电计

开发了一套基于LabVIEW平台的高灵敏静电计控制软件&#xff0c;用于提升闪烁薄膜探测器在中子和伽马射线探测中的灵敏度标定精度。传统的标定方法存在数据准确性不高和操作复杂性高的问题&#xff0c;因此开发这款软件解决这些挑战&#xff0c;通过自动化控制和高效的数据处理&…

Windows下载、配置Java JDK开发环境的方法

本文介绍在Windows电脑中&#xff0c;安装JDK&#xff08;Java Development Kit&#xff09;&#xff0c;也就是Java开发工具包的详细方法。 JDK是Java软件开发的基础&#xff0c;由Oracle公司提供&#xff0c;用于构建在Java平台上运行的应用程序与组件等&#xff1b;其已经包…

[C++]入门基础(1)

Hello大家好&#xff0c;今天通过本篇文章&#xff0c;我们来初步学习C&#xff0c;C可以说是对C语言的一个升级&#xff0c;我们会一步一步的由浅入深的学习C。 目录 1.第一个C程序 2.命名空间 2.1 命名空间出现的意义 2.2 namespace的定义 2.3 命名空间的使用 3.C输入…

亚信安全:《2024云安全技术发展白皮书》

标签 云计算 安全威胁 云安全技术 网络攻击 数据保护 一句话总结 《云安全技术发展白皮书》全面分析了云计算安全威胁的演进&#xff0c;探讨了云安全技术的发展历程、当前应用和未来趋势&#xff0c;强调了构建全面云安全防护体系的重要性。 摘要 云安全威胁演进&#xff…

c#第五次作业

目录 1. 实现通用打印泛型类&#xff0c;可以打印各个集合中的值&#xff0c;方便调试 2. 计算遍历目录的耗时 3. 有哪些算术运算符&#xff0c;有哪些关系运算符&#xff0c;有哪些逻辑运算符&#xff0c;有哪些位运算符&#xff0c;有哪些赋值运算符 1&#xff09;算术运算…

电商数据仓库

目录 1.数据仓库的数据来源为业务数据库&#xff08;mysql&#xff09; 初始化脚本 2.通过sqoop将mysql中的业务数据导入到大数据平台&#xff08;hive&#xff09; 在hive中建立映射的数据库 导入数据 3.通过hive进行数据计算和数据分析 形成数据报表 补全用户信息表中的…

【密码学】流密码的基本概念

在介绍流密码之前&#xff0c;我们先来弄明白一个基础前置知识点——异或运算。 一、异或运算&#xff08;XOR&#xff09; 运算规则&#xff1a;相同为0&#xff0c;不同为1 特点&#xff1a;一个比特进行两次异或运算&#xff0c;可以恢复成原来的比特。 明文&#xff1a;110…

降Compose十八掌之『飞龙在天』| Layout

公众号「稀有猿诉」 原文链接 降Compose十八掌之『飞龙在天』| Layout 页面布局是GUI应用开发的核心&#xff0c;决定着一个UI具体如何实现。今天将延着路线图来练习『降Compose十八掌』的第二招式&#xff0c;学习一下如何使用Compose中的布局来构建页面。 基础骨架 基…

Jenkins教程-15-常用插件-Blue Ocean

上一小节我们学习了Jenkins定时任务构建的方法&#xff0c;本小节我们讲解一下Jenkins常用插件Blue Ocean的使用方法。 Blue Ocean 提供了一套可视化操作界面来帮助创建、编辑 Pipeline 任务。 Blue Ocean 特性&#xff1a; 流水线编辑器&#xff1a;用于创建贯穿始终的持续交…

游戏软件缺少d3dx9_42.dll怎么修复?五种方法助你轻松解决

D3DX9_42.dll的丢失是一种常见的操作系统异常问题&#xff0c;由于日常使用电脑时的不当操作&#xff0c;可能会导致一些dll文件的丢失&#xff0c;D3DX9_42.dll就是其中之一。对于这种情况&#xff0c;我们可以通过谨慎的修复来解决。以下是一种科学的解决D3DX9_42.dll丢失的方…

小白学C++(第一天)基础入门

温馨提醒&#xff1a;本篇文章&#xff0c;请各位c基础不行的童鞋不要贸然观看 C的第一个程序 第一个关键字namespace namespace 是定义空间的名字的关键字&#xff0c;使用格式格式如下&#xff1a; namespace 空间名 { } 其中{ }内的命名空间的成员&#xff0c;可以定义…

初识数组!

目录 1.概念 2.一维数组的创建和初始化 1&#xff09;数组创建 2&#xff09;数组的初始化 3&#xff09;数组的类型 3.一维数组的使用 1) 数组下标 2) 数组元素的打印 3) 数组的输入 4.一维数组在内存中的存储 5.sizeof计算数组元素个数 6.二维数组的创建 1.概念 …