当前位置: 首页 > article >正文

Okay, But Please Don’t Stop Talking

Okay, But Please Don’t Stop Talking

研发背景

  • 现有问题:像ChatGPT的高级语音模式这类先进的语音对语音系统,容易被“我明白”“嗯哼”等在人类对话中常见的插入语打断。这表明现有语音交互系统在处理自然对话中的语音重叠情况时存在不足。

  • 新的尝试:研究人员为解决此问题,开发了一款开源的语音交互系统Moshi,旨在适应语音重叠的情况,实现更自然流畅的语音交互。

Moshi系统概述

  • 发布信息:由巴黎非营利研究实验室Kyutai的Alexandre Défossez、Laurent Mazaré等人发布。该系统的权重和代码遵循CC - BY 4.0、Apache 2.0和MIT许可,可免费用于商业与非商业用途,并且提供了网页演示供用户体验。

关键理念

  • 语音重叠情况:研究发现,在口语对话中,语音重叠现象较为普遍,占比可达20%,其中包含“好的”“我明白”这类常见的插入语。

  • 系统设计要求:为了在语音重叠时做出恰当回应,语音交互系统需要具备持续倾听和发声的能力,即便多数时候发出的可能是沉默(即不说话但保持倾听和准备回应的状态)。同时,为了实现即时响应,系统要将延迟控制在最低限度,这就要求采用端到端的设计架构,而非传统的由多个独立模型依次完成语音检测、语音转文本、文本处理、文本转语音的流水线式架构。

工作原理

  • 组件构成:Moshi系统由Mimi编码器 - 解码器和RQ - Transformer组成,其中RQ - Transformer又包含基于Helium变压器的大语言模型(LLM)以及另一个变压器。

  • Mimi编码器训练

    • 嵌入音频输入:Mimi的编码器以每80毫秒(每个时间步)8个音频令牌的方式对输入的语音进行嵌入处理。

    • 训练数据与损失项:使用700万小时来源未公开的英语语音数据进行训练。训练过程涉及两个损失项:

    • 第一个损失项促使Mimi生成能欺骗预训练的MS - STFT鉴别器的音频,让鉴别器误以为生成的是人类语音,以此提升生成音频的质量。

    • 第二个损失项从预训练的音频嵌入模型WavLM中提取知识,使Mimi的编码器在与WavLM接收相同音频时间步时,生成的其中一个音频令牌的嵌入与WavLM生成的相应嵌入相似,从而优化音频嵌入效果。

  • Helium大语言模型训练:Helium大语言模型依据Mimi生成的音频令牌生成文本令牌,这些文本令牌在系统内部协助额外的变压器预测下一个音频令牌,利用大语言模型处理语言的能力来指导音频令牌的生成。研究人员使用2.1万亿个英语文本令牌对Helium进行训练,这些数据部分来自维基百科和Stack Exchange(占12.5%),其余大部分(87.5%)来自Common Crawl。

  • RQ - Transformer训练:RQ - Transformer每个时间步接收三组共17个令牌,分别是Mimi从音频输入编码得到的8个音频令牌、Moshi先前生成的音频输出中的8个音频令牌,以及Helium生成的1个文本令牌。通过在700万小时的音频及转录文本数据上进行学习,RQ - Transformer能够预测下一组17个令牌。

  • 对话交互训练:为使系统更适应对话交互场景,研究人员使用2000小时随机配对参与者之间的电话录音对话数据,进一步训练系统预测下一个令牌。

  • 推理过程:在实际应用(推理)时,用户语音输入后,Mimi将其转换为音频令牌。RQ - Transformer依据当前音频令牌以及之前生成的音频和文本令牌,生成新的音频和文本令牌。最后,Mimi根据生成的音频令牌产生合成语音,完成一次语音交互。

实验结果

  • 响应速度:Moshi(拥有70亿参数)对用户输入的响应时间约为200毫秒,相比之下,同样能直接从语音输入生成语音输出的GPT - 4o最短响应时间为232毫秒(平均320毫秒),而早期ChatGPT语音模式(采用传统流水线架构)平均响应时间高达5.4秒。这表明Moshi在响应速度上具有显著优势。

  • 准确率:在Web Questions测试中,Moshi的准确率达到26.6%,高于研究人员测试的其他语音转文本再转语音模型,如Spectron(10亿参数,准确率6.1%)和SpeechGPT(70亿参数,准确率6.5%)。但文中未给出GPT - 4o或ChatGPT语音模式在此测试中的可比结果。

重要意义

  • 语音交互需求:传统基于轮流的文本输入交互方式,在语音对语音交互场景中存在局限性。语音交互更需要系统能够快速且持续地处理输入和输出,以实现自然流畅的对话体验。

  • Moshi的优势:以往的语音交互系统将输入和输出处理分开,导致用户等待时间较长,影响交互体验。而Moshi通过端到端的设计,实现了无缝交互,满足了语音对语音交互场景下的实际需求。

相关思考

“生成沉默是关键”这句话强调了在语音交互过程中,系统不仅要能及时准确地回应,还要能在适当的时候保持沉默(即持续倾听而不发声),以适应自然对话中语音重叠等复杂情况,这是实现自然流畅语音交互的重要因素。

相关文章:

Okay, But Please Don’t Stop Talking

Okay, But Please Don’t Stop Talking 研发背景 现有问题:像ChatGPT的高级语音模式这类先进的语音对语音系统,容易被“我明白”“嗯哼”等在人类对话中常见的插入语打断。这表明现有语音交互系统在处理自然对话中的语音重叠情况时存在不足。 新的尝试&…...

Python的那些事第二十一篇:Python Web开发的“秘密武器”Flask

基于 Flask 框架的 Python Web 开发研究 摘要 在 Web 开发的江湖里,Python 是一位武林高手,而 Flask 则是它手中那把小巧却锋利的匕首。本文以 Flask 框架为核心,深入探讨了它在 Python Web 开发中的应用。通过幽默风趣的笔触,结合实例和表格,分析了 Flask 的特性、优势以…...

欧拉函数杂记

定义 φ ( n ) \varphi (n) φ(n)表示 [ 1 , n ] [1,n] [1,n]中与 n n n互质的数的个数。 性质 φ ( p ) p − 1 , p ∈ P \varphi (p)p-1,\ p\in \mathbb {P} φ(p)p−1, p∈P φ ( n ) n ∏ i 1 m p i − 1 p i \varphi (n)n\prod_{i1}^{m} \frac{p_i-1}{p_i} φ(n)ni1∏…...

基于IOS实现各种倒计时功能

ZJJTimeCountDown 效果图 特点: 1、已封装,支持自定义 2、支持文本各种对齐模式 3、各种效果都可以通过设置 ZJJTimeCountDownLabel 类属性来实现 4、支持背景图片设置 5、分文本显示时间时,支持设置文字大小,来动态设置每个文本…...

Linux(Centos 7.6)命令详解:head

1.命令作用 将每个文件的前10行打印到标准输出(Print the first 10 lines of each FILE to standard output) 2.命令语法 Usage: head [OPTION]... [FILE]... 3.参数详解 OPTION: -c, --bytes[-]K,打印每个文件的前K字节-n, --lines[-],打印前K行而…...

微软 Microsoft Windows Office Professional LTSC 2024 专业增强版

Office 链接:https://pan.xunlei.com/s/VOIyE3ALg0hDvQfj47cLf3MdA1?pwdvzuz#...

【愚公系列】《Python网络爬虫从入门到精通》009-使用match()进行匹配

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...

Spring Boot 3 集成Xxl-job 3.0.0 单机

下载Xxl-job项目 https://gitee.com/xuxueli0323/xxl-jobhttps://github.com/xuxueli/xxl-job 创建相关数据库 数据库文件再/xxl-job/doc/db/tables_xxl_job.sql直接在数据库中运行SQL文件即可创建相关数据库 配置调度中心 打开项目找到 xxl-job-admin模块找到/xxl-job/xx…...

DeepSeek自动批量写作的AI软件

DeepSeek作为一款专注于数据处理与分析的AI软件,凭借其强大的功能和精准的分析能力,正在帮助企业实现智能化升级。无论是数据分析、市场预测还是内容创作,DeepSeek都能提供高效的解决方案。 无法使用Deepseek批量创作文案的,可在1…...

NLLB 与 ChatGPT 双向优化:探索翻译模型与语言模型在小语种应用的融合策略

作者:来自 vivo 互联网算法团队- Huang Minghui 本文探讨了 NLLB 翻译模型与 ChatGPT 在小语种应用中的双向优化策略。首先介绍了 NLLB-200 的背景、数据、分词器和模型,以及其与 LLM(Large Language Model)的异同和协同关系。接着…...

OpenCV机器学习(4)k-近邻算法(k-Nearest Neighbors, KNN)cv::ml::KNearest类

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::ml::KNearest 是 OpenCV 机器学习模块中的一部分,它提供了实现 k-近邻算法(k-Nearest Neighbors, KNN)的…...

在nodejs中使用RabbitMQ(三)Routing、Topics、Headers

示例一、Routing exchange类型direct,根据消息的routekey将消息直接转发到指定队列。producer.ts 生产者主要发送消息,consumer.ts负责接收消息,同时也都可以创建exchange交换机,创建队列,为队列绑定exchange&#xff…...

浏览器扩展实现网址自动替换

作为一个开发爱好者,不能顺畅访问github是很痛苦的,这种状况不知道何时能彻底解决。 目前也有很多方案可以对应这种囧况,我此前知道有一个网站kkgithub,基本上把github的静态内容都搬了过来,我们如果需要访问某个githu…...

《open3d qt 网格泊松采样成点云》

open3d qt 网格泊松采样成点云 效果展示二、流程三、代码效果展示 效果好一点,速度慢一点。 二、流程 创建动作,链接到槽函数,并把动作放置菜单栏 参照前文 三、代码 1、槽函数实现 void on_actionMeshPossionSample_triggered()//泊松采样 void MainWindow::...

从算法到落地:DeepSeek如何突破AI工具的同质化竞争困局

🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 ​ Linux网络编程笔记: https://blog.cs…...

阿里云一键部署DeepSeek-V3、DeepSeek-R1模型

目录 支持的模型列表 模型部署 模型调用 WebUI使用 在线调试 API调用 关于成本 FAQ 点击部署后服务长时间等待 服务部署成功后,调用API返回404 请求太长导致EAS网关超时 部署完成后,如何在EAS的在线调试页面调试 模型部署之后没有“联网搜索…...

python学opencv|读取图像(六十六)使用cv2.minEnclosingCircle函数实现图像轮廓圆形标注

【1】引言 前序学习过程中,已经掌握了使用cv2.boundingRect()函数实现图像轮廓矩形标注,相关文章链接为:python学opencv|读取图像(六十五)使用cv2.boundingRect()函数实现图像轮廓矩形标注-CSDN博客 这篇文章成功在图…...

嵌入式经常用到串口,如何判断串口数据接收完成?

说起通信,首先想到的肯定是串口,日常中232和485的使用比比皆是,数据的发送、接收是串口通信最基础的内容。这篇文章主要讨论串口接收数据的断帧操作。 空闲中断断帧 一些mcu(如:stm32f103)在出厂时就已经在…...

面试真题 | B站C++渲染引擎

一、基础与语法 自我介绍 请简要介绍自己的背景、专业技能和工作经验。实习介绍 详细描述你在实习期间参与的项目、职责和成果。二、智能指针相关问题回答 unique_ptr 是如何实现的?它有哪些特点和优势? unique_ptr 是C++11引入的一种智能指针,用于管理动态分配的内存资源…...

系统不是基于UEFI的win11,硬盘格式MBR,我如何更改为GPT模式添加UEFI启动?

我的系统不是基于UEFI的win11,硬盘格式MBR,我如何更改为GPT模式添加UEFI启动? 相当于你的Windows 11系统从MBR转换为GPT,并添加UEFI启动支持,你需要执行以下步骤: 备份数据 首先,强烈建议你备份…...

Vue2/Vue3分别如何使用computed

computed 是 Vue 中用于定义计算属性的功能,它会根据依赖的数据动态计算并缓存结果。Vue 2 和 Vue 3 中的 computed 使用方式有所不同,以下是详细说明: Vue2中的computed 在 Vue 2 中,computed 是通过选项式 API 实现的&#xff…...

操作系统知识速记:实现线程同步的方式

操作系统知识速记:实现线程同步的方式 在当今的多核和多线程世界里,线程同步是确保数据一致性和提高系统性能的关键。 互斥锁(Mutex) 互斥锁是实现线程安全的基础。它通过确保同一时间只有一个线程能访问共享资源来防止数据竞争。…...

用vue3写一个好看的wiki前端页面

以下是一个使用 Vue 3 Element Plus 实现的 Wiki 风格前端页面示例&#xff0c;包含现代设计、响应式布局和常用功能&#xff1a; <template><div class"wiki-container"><!-- 头部导航 --><el-header class"wiki-header"><d…...

从图像中提取的每行数字作为一张完整的图片,而不是每个数字单独成为一张图片

具体实现思路&#xff1a; 提取行区域&#xff1a;先通过轮廓或空白区域分割出每行数字。确保每行是一个整体&#xff1a;在提取每行时&#xff0c;确保提取区域的宽度包含该行所有的数字&#xff08;即避免单独分割每个数字&#xff09;。保存每一行作为一张图片&#xff1a;…...

【Elasticsearch】通过运行时字段在查询阶段动态覆盖索引字段

在 Elasticsearch 中&#xff0c;Override field values at query time是指通过运行时字段&#xff08;runtime fields&#xff09;在查询阶段动态覆盖索引字段的值&#xff0c;而无需修改原始索引数据。这种功能特别适用于以下场景&#xff1a; 1. 动态修改字段值&#xff1a…...

文心一言4月起全面免费,6月底开源新模型:AI竞争进入新阶段?

名人说&#xff1a;莫听穿林打叶声&#xff0c;何妨吟啸且徐行。—— 苏轼 Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、文心一言免费化的背后&#xff1a;AI成本与应用的双重驱动1️⃣成本下降&#xff0c;推动文心一言普及2…...

基于斜坡单元的机器学习模型预测滑坡易发性,考虑条件因素的异质性

&#xff11;、引用 Chang Z, Catani F, Huang F, et al. Landslide susceptibility prediction using slope unit-based machine learning models considering the heterogeneity of conditioning factors[J]. Journal of Rock Mechanics and Geotechnical Engineering, 2023…...

面向对象程序设计-实验七

6-1 计算捐款总量 这里需要设计一个捐款人类Donator及一个相关函数getMaxName( )&#xff0c;Donator类中包含捐款人的姓名及其捐款额 代码清单&#xff1a; #include <iostream> using namespace std; class Donator { private: string name; float money; //单位&…...

如何学习Elasticsearch(ES):从入门到精通的完整指南

如何学习Elasticsearch&#xff08;ES&#xff09;&#xff1a;从入门到精通的完整指南 嘿&#xff0c;小伙伴们&#xff01;如果你对大数据搜索和分析感兴趣&#xff0c;并且想要掌握Elasticsearch这一强大的分布式搜索引擎&#xff0c;那么你来对地方了&#xff01;本文将为…...

Java面试宝典:说下Spring Bean的生命周期?

Java面试宝典专栏范围&#xff1a;JAVA基础&#xff0c;面向对象编程&#xff08;OOP&#xff09;&#xff0c;异常处理&#xff0c;集合框架&#xff0c;Java I/O&#xff0c;多线程编程&#xff0c;设计模式&#xff0c;网络编程&#xff0c;框架和工具等全方位面试题详解 每…...