【AI技术】GPT-4o背后的语音技术猜想

前言:

本篇文章全文credit 给到 台大的李宏毅老师,李宏毅老师在机器学习上风趣幽默、深入浅出的讲解,是全宇宙学AI、讲中文学生的福音,强力推荐李宏毅老师的机器学习课程和深度学习 人工智能导论;

李宏毅老师的个人长视频空间:

https://www.油管.com/@HungyiLeeNTU

李宏毅老师个人主页:

Hung-yi Lee

原视频在油管,这里只能放一个B站的链接,本文中使用的所有素材和知识来自于李宏毅老师,以文字+截图的形式展现,方便大家快速阅读

欢迎大家有能力多多支持

李宏毅:GPT-4o背後可能的語音技術猜測_哔哩哔哩_bilibili

李宏毅:GPT-4o背後可能的語音技術猜測

1、GPT-4o 语音能力升级

  • 语音风格非常丰富 (包括了不同的语调、语速、包括还可以唱出来)
  • 理解语音内容以外的信息,察言观色的部分,可以听得懂一个人说话是不是比较慢,是不是大喘气
  • 能够发出非语言性的声音,比如笑声
  • 自然而即使的互动,可以支持全双工,包括 gpt-4o 会在全双工人类对话中间大喘气的部分,加一些自己的反应

谷歌和OpenAI分别推出了端到端的多模态大模型,GPT-4o 和 Gemini 的 Project Astra,下面大家可以先看一下demo视频,感受一下多模态交互的能力

OpenAI 最强模型 gpt-4o 全能力展示视频【22集全】

External Player - 哔哩哔哩嵌入式外链播放器OpenAI 最强模型 gpt-4o 全能力展示视频【22集全】_哔哩哔哩_bilibili

[中字精翻]谷歌AI已成精!有记忆,会推理 | Project Astra + AI智能眼镜

谷歌AI:Project Astra——我们对人工智能助手未来的展望_哔哩哔哩_bilibili

传统的语音交互链路(非端到端)

原始音频 -》ASR -》转文字 ChatGPT 处理 -》TTS 语音合成;也有机会在传统的非端到端的系统上,增加额外的模型,增加 以上的能力

GPT-4o为代表的端到端的多模态语音模型

官方的发布报告里面说了,GPT-4o 是一个端到端的模型,能够同时处理音频、文本、图像、视频信号

2、技术链路猜想

本文仅以其中涉及到的语音链路进行分析

LLM 的训练过程: 预训练( Pretrain) + 对齐( Alignment)

训练出来的 LLM 输出是在做 Next Token Prediction

但如果涉及到语音链路,对声音信号做 next token prediction,16k 采样率意味着输入 token 会过长

所以一般会使用一个编码器对原始音频数据进行压缩

链路: 原始音频数据 -》 编码成一系列的 speech unit -》通过解码器再解析成音频数据出来

语音版的语言模型链路:比如谷歌的 GSLM 之前也就出来了

语音技术链路猜想

单纯使用编码器、解码器的组合的话,可能需要重新把语音中代表文字的部分进行训练,有点重复造轮子的感觉了(因为现存了很多 ASR、TTS 的模型);

所以这里 OpenAI 有可能用的是 混合编码器的方式

其次 GPT-4o 也展现了 能够分辨不同对话人的能力,所以这里也需要有 speaker diarization 自动分段的能力

3、训练过程分析

预训练(Pretrain)

OpenAI 被报道使用了超过 100w 小时的油管影片

如何生成更多样化的声音(包括了不同的音色、语调、语速、包括非语言性的声音)

今年 2 月份亚马逊发的一篇文章指出:

在训练了大量的语音数据后(100k 小时的语音数据(,tts 模型的能力也能够学到 不同的词应该怎么用什么样的方式来读 ——》例如读到 :”whisper(小声说)这个词的时候,语音模型会放低声音“

这个过程中,亚马逊的研究团队也并没有对输入的文字进行特殊的处理

有可能 OpenAI 使用超过 100 万的语音资料训练,就能通过某种“涌现”的能力来获得这样多样化的语音模型

但单单从 100 万小时的语音中去训练,数据量相当不够,模型可能会不够智能

(对比 LLaMA3 的训练集,100 万语音对应的文字 token 只有其 1/2500)

所以这里可能会使用原有训练好的 LLM 来做语音模型的初始化:

有可能是:把语音的 speech unit 作为 新的 token 给到原有的 LLM 来进行训练

对齐(alignment)

我们还是需要把语音模型做对齐,这里可能需要收集到 语音对话数据来做对齐的训练

gpt-4o 另外一个功能的话就是 tts 的音色,如果需要持续输出一个稳定的音色来进行交互,传统意义是需要大量的音色数据。

这里可能通过以下两个路径:

  • 预训练完,可能只需要一些数据就可以
  • 或者再通过一层 tts 转化成一个特定的音色

另外一个核心的要考虑的点 —— 全双工对话下,语音大语言模型需要判断 “在什么时候插入对话,或者打断用户对话” “还有在什么时候停止继续对话”

所以这里需要模型能够同时去 感知(听)+生成(说),类似于 Dialogue GSLM 的能力

核心逻辑:把感知和生成分成两个频道分开进行输入,两个频道的信号都需要给到语音模型进行判断,是否需要加入对话,开始说话

那么在 GPT-4o 的 case 里面,还需要增加视觉的输入

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW机器视觉在质量控制中的应用

基于LabVIEW的机器视觉系统在质量控制中应用广泛,通过图像采集、处理和分析,自动检测产品缺陷、测量尺寸和识别标记,提高生产效率和产品质量。下面介绍LabVIEW机器视觉系统在质量控制中的实现方法、应用场景及其优势。 项目背景 在现代制造业…

Redis 入门篇

文章目录 Redis简介关系型数据库:非关系型数据库 Redis应用场景Redis下载和安装Redis 数据类型Redis 常用命令字符串 string 操作命令哈希 hash 操作命令列表 list 操作命令集合 set 操作命令有序集合 sorted set 操作命令通用命令 Jedis 快速入门配置依赖建立连接 / 操作 Jedi…

ShareX,屏幕截图、屏幕录制和文件共享,还提供了丰富的高级功能和自定义选项

ShareX是一个免费开源的Windows应用程序,用于屏幕截图、屏幕录制和文件共享。它不仅支持基本的屏幕截图功能,还提供了丰富的高级功能和自定义选项,使其成为提高工作效率和截图体验的利器。以下是ShareX v16.1.0便携版的主要功能和特色&#x…

NeRF从入门到放弃4: NeuRAD-针对自动驾驶场景的优化

NeuRAD: Neural Rendering for Autonomous Driving 非常值得学习的一篇文章,几乎把自动驾驶场景下所有的优化都加上了,并且也开源了。 和Unisim做了对比,指出Unisim使用lidar指导采样的问题是lidar的垂直FOV有限,高处的东西打不…

Vue: Module “vue“ has no exported member xxx

这个问题让我困扰了好一会儿,我询问了 chatgpt 和各种网站社区,尝试了切换依赖的版本,清除缓存等等,依然没有解决 不过算是有心栽花花不开,无心插柳柳成荫,碰巧解决了,也不知道是不是这个原因&a…

java收徒 java辅导 java试用期辅导 java零基础学习

💗博主介绍:✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末报名辅导🌟 感兴趣的可以先收藏起来,还有大家…

WinMerge v2 (开源的文件比较/合并工具)

前言 WinMerge 是一款运行于Windows系统下的免费开源的文件比较/合并工具,使用它可以非常方便地比较多个文档内容甚至是文件夹与文件夹之间的文件差异。适合程序员或者经常需要撰写文稿的朋友使用。 一、下载地址 下载链接:http://dygod/source 点击搜…

微信小程序-伪类选择器

一.伪类选择器 结构伪类常见书写方式: 第一类:找第几个孩子 1. :first-child 找第一个孩子2. :last-child 找最后一个孩子3. :nth-child(),正着找数字:写数字几就是找第几个孩子,2n或者even:找偶数2n1或者o…

python数据分析案例-信用卡违约预测分析

一、研究背景和意义 信用卡已经成为现代社会中人们日常生活中不可或缺的支付工具,它不仅为消费者提供了便利,还为商家提供了更广泛的销售渠道。然而,随着信用卡的普及和使用量的增加,信用卡违约问题逐渐成为金融机构面临的重要挑…

Java基础的重点知识-03-方法与数组

文章目录 方法数组 方法 定义方法的格式详解 修饰符 返回值类型 方法名(参数列表){//代码省略...return 结果; }修饰符: public static 固定写法返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者参数列表&#xff1…

Pytho字符串的定义与操作

一、字符串的定义 Python 字符串是字符的序列,用于存储文本数据。字符串可以包括字母、数字、符号和空格。在 Python 中,字符串是不可变的,这意味着一旦创建了一个字符串,就不能更改其中的字符。但是,你可以创建新的字…

一文读懂LLM API应用开发基础(万字长文)

前言 Hello,大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者,上一篇文章中我们详细介绍了LLM开发的基本概念,包括LLM的模型、特点能力以及应用;😲 在本文中作者将通过&#xff1a…

Flutter ListView详解

文章示例代码 ListView常用构造 ListView 我们可以直接使用ListView 它的实现也是直接返回最简单的列表结构&#xff0c;粗糙没有修饰。 ListView 默认构建 效果 ///默认构建 Widget listViewDefault(List list) { List _list new List(); for (int i 0; i < list.le…

Java学习 - 网络IP协议簇 讲解

IP协议 IP协议全称 Internet Protocol互联网互连协议 IP协议作用 实现数据在网络节点上互相传输 IP协议特点 不面向连接不保证可靠 IP协议数据报结构 组成说明版本目前有IPv4和IPv6两种版本首部长度单位4字节&#xff0c;所以首部长度最大为 15 * 4 60字节区分服务不同…

视觉新纪元:解码LED显示屏的视角、可视角、最佳视角的最终奥秘

在璀璨夺目的LED显示屏世界里&#xff0c;每一个绚烂画面的背后&#xff0c;都离不开三个关键概念&#xff1a;视角、可视角与最佳视角。这些术语不仅是衡量显示效果的重要标尺&#xff0c;也是连接观众与精彩内容的桥梁。让我们一起走进这场视觉盛宴&#xff0c;探索那些让LED…

做Android开发怎么才能不被淘汰?

多学一项技能&#xff0c;可能就会成为你升职加薪的利器。经常混迹于各复杂业务线的人&#xff0c;才能跳出重复工作、不断踩坑的怪圈。而一个成熟的码农在于技术过关后&#xff0c;更突出其他技能对专业技术的附加值。 毋须讳言的是&#xff0c;35岁以后你的一线coding能力一…

使用SPI驱动数码管

代码&#xff1a; 7-seg.c /*《AVR专题精选》随书例程3.通信接口使用技巧项目&#xff1a;改进的延时法实现半双工软件串口文件&#xff1a;7seg.c说明&#xff1a;SPI控制数码管驱动文件作者&#xff1a;邵子扬时间&#xff1a;2012年12月15日*/#include <avr/io.h>ex…

【嵌入式】嵌入式Linux开发实战指南:从交叉编译到触摸屏交互

文章目录 前言&#xff1a;1.简介1.1. 交叉编译工具1.2. 项目开发流程&#xff1a;1.3. ARM开发板的连接方法 2. 开发板连接3. 系统文件 IO4. 设置共享文件夹3.1. 读文件3.2. 写文件3.2. 设置文件偏移量 4. LCD显示屏显示4.1. LCD 显示颜色4.2. 将文件下载到开发板4.2.1. 在CRT…

JDK动态代理

JDK动态代理源码分析 4.1 JDK动态代理的实现 需要动态代理的接口 /**需要动态代理的接口 */ public interface Movie {void player();void speak();需要动态代理的接口的真实实现 /**需要动态代理接口的真实实现 */ public class RealMovie implements Movie {Override publi…

win10 安装openssl并使用openssl创建自签名证书

win10创建自签名证书 下载安装配置openssl 下载地址&#xff1a; https://slproweb.com/download/Win64OpenSSL-3_3_1.exe https://slproweb.com/products/Win32OpenSSL.html 完成后安装&#xff0c;一路next&#xff0c;到达选位置的之后选择安装的位置&#xff0c;我这里选…