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

news2024/11/17 19:50:11

      近年来,人工智能(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.coloradmin.cn/o/1908931.html

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

相关文章

# 昇思25天学习打卡营第10天 | 使用静态图加速

昇思25天学习打卡营第10天 | 使用静态图加速 文章目录 昇思25天学习打卡营第10天 | 使用静态图加速动态图的开启方式静态图的开启方式基于全局context的开启方式基于修饰器的开启方式 总结打卡 AI编译框架分为两种运行模式: 动态图模式: 计算图的构建和计…

C语言 | Leetcode C语言题解之第224题基本计算器

题目&#xff1a; 题解&#xff1a; int calculate(char* s) {int n strlen(s);int ops[n], top 0;int sign 1;ops[top] sign;int ret 0;int i 0;while (i < n) {if (s[i] ) {i;} else if (s[i] ) {sign ops[top - 1];i;} else if (s[i] -) {sign -ops[top - 1…

android文本长按复制

android文本长按复制 &#x1f4d6;1. 长按直接复制✅步骤一&#xff1a;定义一个TextView✅步骤二&#xff1a;为TextView注册长按事件✅步骤三&#xff1a;弹出系统复制功能 &#x1f4d6;2. 长按弹框确认复制✅步骤一&#xff1a;定义一个TextView✅步骤二&#xff1a;封装P…

3d模型设计要注意什么?---模大狮模型网

展览3D模型设计作为现代展示和艺术表达的重要手段&#xff0c;不仅仅是简单的视觉元素&#xff0c;更是整个展览体验的核心。在这个领域&#xff0c;设计师需要综合考虑美学、功能性以及技术实现的多重因素。本文将探讨在展览3D模型设计过程中需要注意的关键要点。 一、美学与视…

70.WEB渗透测试-信息收集- WAF、框架组件识别(10)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;69.WEB渗透测试-信息收集- WAF、框架组件识别&#xff08;9&#xff09; 关于waf相应的识…

Java并发/多线程CompleteableFuture详解

目录 CompleteableFuture 创建 获得结果的方法 辅助方法 allOf和anyOf的区别 CompletableFuture 里大约有五十种方法&#xff0c;但是可以进行归类: 变换类 thenApply 消费类 thenAccept 执行操作类 thenRun thenApply/thenAccept/thenRun 结合转化类 thenCombine 结…

C++ 类和对象 构造 / 析构函数

一 类的6个默认成员函数&#xff1a; 如果一个类中什么成员都没有&#xff0c;简称为空类。 例&#xff1a; #include <iostream> class Empty {// 空类&#xff0c;什么成员都没有 }; 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&a…

使用预加载库优化 PostgreSQL 函数#postgresql认证

在 POSTGRESQL 中执行函数和过程 为了理解 PostgreSQL 的工作原理&#xff0c;我们首先要看一个简单的函数调用。下一个清单显示了一些简单的PostGIS代码&#xff1a; PgSQL test# timing Timing is on. test# SELECT * FROM hans.points WHERE id 1;id │ …

南大通用数据库-Gbase-8a-学习-44-DDLEVENT恢复

目录 一、环境信息 二、前景提要 1、情况描述 2、3号节点gc_recover日志截图 3、3号节点express日志截图 4、ddlevent截图 5、报错赋权语句分别在1节点和4节点执行 6、gcadmin 三、解决方法 1、描述 2、清理系统user表DDLEVENT 3、拷贝系统user表数据 &#xff08;…

【游戏客户端】大话slg玩法架构(一)滚动基类

【游戏客户端】大话slg玩法架构&#xff08;一&#xff09;滚动基类 大家好&#xff0c;我是Lampard家杰~~ 今天我们兑现诺言&#xff0c;给大家分享SLG玩法的实现j架构&#xff0c;关于SLG玩法的介绍可以参考这篇上一篇文章&#xff1a;【游戏客户端】制作率土之滨Like玩法 PS…

React -- useState状态更新异步特性——导致获取值为旧值的问题

useState状态异步更新 问题导致的原因解决办法进一步分析后续遇到的新问题 问题 const [isSelecting, setIsSelecting] useState(false);useEffect(() > {const handleKeyDown (event) > {if (event.key Escape) {if(isSelectingRef){//.......setIsSelecting(!isSele…

项目机会:4万平:智能仓,AGV,穿梭车,AMR,WMS,提升机,机器人……

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 如下为近期国内智能仓储物流相关项目的公开信息线索&#xff0c;这些项目具体信息会发布到知识星球&#xff0c;请感兴趣的球友先人一步到知识星球【智能仓储物流技术研习社】自行下载…

LeetCode热题100刷题9:25. K 个一组翻转链表、101. 对称二叉树、543. 二叉树的直径、102. 二叉树的层序遍历

25. K 个一组翻转链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), nex…

Java | Leetcode Java题解之第223题矩形面积

题目&#xff1a; 题解&#xff1a; class Solution {public int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int area1 (ax2 - ax1) * (ay2 - ay1), area2 (bx2 - bx1) * (by2 - by1);int overlapWidth Math.min(ax2, bx2) -…

代发考生战报:南京考场华为售前HCSP H19-411考试通过

代发考生战报&#xff1a;南京考场华为售前HCSP H19-411考试通过&#xff0c;客服给的题库非常稳定&#xff0c;考试遇到2个新题&#xff0c;剩下全是题库里的原题&#xff0c;想考的放心考吧&#xff0c;考场服务挺好&#xff0c;管理员带着做签名和一些考试说明介绍清楚&…

C++相关概念和易错语法(16)(list)

1.list易错点 &#xff08;1&#xff09;慎用list的sort&#xff0c;list的排序比vector慢得多&#xff0c;尽管两者时间复杂度一样&#xff0c;甚至不如先把list转为vector&#xff0c;用vector排完序后再转为list &#xff08;2&#xff09;splice是剪切链表&#xff0c;将…

AGAST (角点检测)

AGAST检测原理 AGAST(Adaptive and Generic Accelerated Segment Test)算法是Elmar于2010年提出的特征检测算法,改进了FAST(Features from Accelerated Segment Test)特征检测方法,使其具有更快的速度和更好的鲁棒性。AGAST算法提供了比FAST算法更详细的特征标记方式和判断依…

读人工智能全传07智能体

1. 布鲁克斯革命 1.1. 随着科学认知的发展&#xff0c;有时候旧有科学体系会面临全盘崩溃的危机&#xff0c;新的科学体系诞生&#xff0c;取代传统的、既定的科学体系&#xff0c;这就意味着科学的范式将发生变化 1.2. 澳大利亚机器人学家罗德尼布鲁克斯(Rodney Brooks)&…

vue3+ el-tree 展开和折叠,默认展开第一项

默认第一项展开: 展开所有项&#xff1a; 折叠所有项&#xff1a; <template><el-treestyle"max-width: 600px":data"treeData"node-key"id":default-expanded-keys"defaultExpandedKey":props"defaultProps"…

Qt creator 控件转到槽 报错 The class containing “Ui:Dialog“ could not be found in

今天调试程序&#xff0c;发现主界面控件转到槽&#xff0c;报错如下图&#xff1a; 问题表现为&#xff1a;只有主窗口控件有这个错误&#xff0c;其他子窗口正常。 解决&#xff1a; 在网上搜这个报错信息&#xff0c;都没有一个很好的解决办法。 最后发现是我在子窗口中要…