2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

GPT4o Realtime voice功能的复现路径

发布日期:2024-10-10 23:12:54 浏览次数: 2712
作者:熵减AI

微信搜一搜,关注“熵减AI”

先说结论,其实LLaMA-omni做的就挺好的,思路基本对,所以我今天也围绕着它讲

在O1出来之前,其实多模态是上个世代比较火的技术类型,而大模型的趋势也从O1以后就分开来了

  • 一个是感知能力的提升,主要是GPT4-o这种的,多模态,单一模型的能力

  • 一个是O1这种self-play,自己玩自己(类自博弈)主要解决的是智力和解决问题能力的提升


我之前讲过草莓,后面会随着我深度学习的课程继续讲的更细,因为GPT4o最亮眼的实时语音功能上线了,大家对这个特别感兴趣,所以我就讲一下,但是因为Close AI众所周知的缘故,我就按着类似功能的论文讲了,只是从延迟能力上讲,这个是实现最接近的。

老规矩,论文地址:

2409.06666 (arxiv.org)

GPT4o其实一直就支持语音,只是那个不是端到端,比如你说句话半天才响应你,因为是多模型架构,以下是我们面对的问题。

  • Whisper ASR要转text问题,GPT去拿text问题推text答案,text用VALL-E转语音

  • 因为,折腾好几遍,慢,而且因为传统的tts,一般都是整句话整明白再转,就更慢。

  • 另外,Whisper如果端到端坐下来,就是个ASR转文字了,所以只保留了语义部分,其他的比如背景音,笑声都丢了,情感感知几乎是不可能的事


要先解决慢的问题

几秒争取到几百毫秒,GPT4o-advanced real-time voice API是350ms左右

思路:

1- Whisper 别做端到端的ASR就能省出来不少时间

2-  流式相应,不用整个句子都推完就给声音解码

拿LLaMA-Omini来举例

这网络其实很简单的,训练也容易,如果不考虑泛化,特定任务也还是可以的。

网络部分的组成,主要有从下往上几个网络组成

1- Speech Encoder:就用了Whisper-Large-3的encoder功能,负责voice转speech representations

2- Speech Adaptor:下采样

3- LLM就是LLmMA-3.1-8b

4- Speech Decoder:上采样

5- Vocoder: Decoder,负责离散单元转成voice

训练的前向部分和推理部分都是从下到上依次经过各个网络

训练分为2个阶段:

一阶段训练

其他参数都冻住,就训练Speech Adaptor和LLM

1-首先语音输入进入Whisper-Large-3,这里我们只用它的encoder部分,也就把语音标记为speech representations,简单理解就是一种把语音信号压缩成的高维向量

2- 这些高维向量 直接进入LLM是不太合适的,所以要有一个中间层做高维向量的下采样,匹配到LLM的输入embedding空间,这一层是2层的MLP,Relu增加非线性能力

3- 被转换的语音信息被嵌入到如下的LLM prompt里(speech字段),然后作为input输入给LLM,这里是LlaMA3.1-8b

4- voice的问题,被用text来回答

求对数损失函数,求梯度

这里面有几个问题,大家能看出来,这个数据集一会语音一会text的,到底是啥样的?

名为 InstructS2S-200K 的数据集(未公开)


1-数据集构建的目标:


•训练 LLaMA-Omni 模型需要包含语音指令、文本回复和语音回复三元组

的数据。

•然而,大多数公开可用的指令数据都是文本形式的。

•因此,研究人员需要构建一个包含语音指令和对应语音回复的数据集

2-InstructS2S-200K 的构建过程:

•重写现有的文本指令数据: 研究人员首先根据语音输入的特点对现有的文

本指令数据进行重写,使其更符合自然语音的表达习惯。

•进行语音合成: 将重写后的指令文本和生成的回复文本,使用语音合成模型转换成语音数据

构建数据集具体步骤

步骤一:

用Llama-3-70B-Instruct指令重写

  • 添加适当的填充词 (例如 “hey”, “so”, “uh”, “um” 等) 模仿自然语音模式

  • 将指令中的非文本符号 (例如数字) 转换成对应的口语形式,以确保语音合成模型能够正确合成

  • 修改指令使其相对简短,避免冗长的措辞。


回复生成重写

  • 语音交互场景下,文本指令数据的回复通常不适合直接用作语音指令的回复,这是因为,在基于文本的交互中,模型倾向于生成冗长的回复,使用复杂的句子,并可能包含诸如有序列表或括号之类的非语言元素。这是因为,在基于文本的交互中,模型倾向于生成冗长的回复,使用复杂的句子,并可能包含诸如有序列表或括号之类的非语言元素。

  • 回复不应包含语音合成模型无法合成的内容,例如括号、有序列表等。

  • 回复应非常简洁,避免冗长的解释。


语音合成

  • 在获得适合语音交互的指令和回复后,TTS 模型将其转换为语音

  • 为了使合成的语音听起来更自然,使用 CosyVoice-300M-SFT 模型合成指令语音,并为每个指令随机选择男性或女性的声音。

  • 对于回复,使用在 LJSpeech 数据集上训练的 VITS 模型将其合成为标准语音


数据来源:

  • 研究人员从 Alpaca 数据集和 UltraChat 数据集中收集了约 20 万条文本指令数据

  • Alpaca 数据集涵盖了广泛的主题,而 UltraChat 数据集主要包含关于世界的问题。


二阶段训练

其他参数都冻住,就训练Decoder

•1阶段,训练好了Voice问,Text答,而且中间不用转

•2阶段,我们冻住其他所有参数,就训练decoder,也就是语音合成生成

•输入为LLM的text

出为voice

•首先要做逆向,之前不是把语音的高维序列下采样吗,现在要上采样把llm的维度扩展到直接可以被speech decoder作为input的维度,LLM的text这次不用被输出,直接hidden的隐状态tensor         乘以λ形成对Decoder的输入

•ai 表示要预测的离散单元,它可以是K个聚类中心之一,也可以是空白符号 ϵ

•softmax函数将线性层的输出转换为概率分布,这个公式计算了每个离散单元 ai在给定语音解码器输出隐藏状态序列 O 下的概率

•这个公式计算了在给定语音解码器输出隐藏状态序列 O下,目标离散单元序列 YU的负对数似然。通过最小化这个损失函数,可以训练语音解码器使其能够准确地预测与文本回复对应的离散单元序列

•因为Decoder训练的时候就是用离散单元来生成语音的波形的,所以二阶段就训练这个就可以了

•因为上采样层是固定参数的,所以不参与训练

•最后用CTC的函数来求Loss

输出加速

同步生成文本和语音

•同时生成文本回复和语音回复,而不需要像传统的级联系统那样先完成语音识别,再生成文本回复,最后合成语音,从而大大缩短了整体的响应时间。

流式非自回归语音解码器

•采用了流式非自回归语音解码器,这意味着语音解码器可以随着 LLM 生成文本回复的同时逐步生成语音回复对应的离散单元,而无需等待LLM 生成完整的文本回复,当LLM 生成第一个词的时候,语音解码器就可以开始生成第一个语音片段对应的离散单元,并将其送入声码器合成语音并播放给用户。

•每个离散单元的生成都是并行的,而不是像自回归模型那样需要逐个生成,每个离散单元的生成都是并行的,而不是像自回归模型那样需要逐个生成。

•LLaMA-Omni 可以通过调整单元块大小(Chunk Size) Ω 来控制系统的延迟和语音质量之间的权衡。

•Ω 表示当生成的离散单元数量达到多少时,就将这部分单元送入声码器合成语音并播放给用户。

•较小的 Ω 值意味着更低的延迟,但可能会导致语音片段之间出现不连续,从而降低语音的流畅度。

•较大的 Ω 值可以提高语音质量,但会增加延迟。

•当 Ω 设置为 10 时,LLaMA-Omni 的响应延迟可以低至226 毫秒,甚至低于GPT-4o 的平均音频延迟 320 毫秒

因为LLaMA-omni实际上在输入侧就一个voice input,但是文章里面的prompt其实也提示了,这里还有个text input的embedding,这就涉及到模态融合embedding的融合了,只不过这里做的特别巧妙,但是在GPT4o因为它的模态更多,更复杂,所以对模态的embedding要求更高,因为embedding不可能无限长,所以为了兼容视觉和语音,GPT4o的text embedding长度也被压缩了

快解决了下一步是好

合成语音没感情,除了合成语音以外?

比如你看过4月的纽约时报你就会了解到OpenAI其实在那个时候就秘密的启动了,因为有统计它用了差不多100万小时的Youtube影片,这里面的视觉估计是给Sora了,而声音的多样性就给了voice了

情感的保留?

这块我直接引用李宏毅的slide了

LLaMA-omni这种实验性质的project可能不关注,但是对于GPT这种服务体验其实特别重要,比如说对话中的质疑生意,笑声传达的情绪,其实都可以通过把语音辨识能力和特定的speech unit编码迁移到模型中去,就是个持续预训练的过程

当然Speaker Diarization和多通道attention这些技术其实GPT4o也用了,时间关系这些我就不细讲了,优化的feature,大家感兴趣的自己下去看看论文吧

虽然多模态也挺有意思,但是对于我最近最爱玩的东西来讲,咱们还是在强化学习的文章里正面硬钢吧

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅