All Topics
All Topics
Technology
Technology
AI
AI
Business
Business
Entertainment
Entertainment
News
News
Programming
Programming
Science
Science
Design
Design
Environment
Environment
Finance
Finance
Crypto
Crypto
Politics
Politics
Sports
Sports
Education
Education
Gaming
Gaming
Art
Art
Music
Music
Health
Health
Security
Security
Books
Books
Food
Food
Travel
Travel
Personal
Personal
Bluesky
Twitter
First reported by TechRadar
ChatGPT’s ‘smartest voice model ever’ is rolling out to everyone today — and GPT-Live-1 gives you more natural conversations without interruptions

OpenAI GPT-Live-1全双工语音模型:架构解耦、委派推理与AI语音交互的范式革命

20h agoen
Read on happyrock.cloud

From the article

一、引言 2026年7月8日,OpenAI在发布GPT-5.6 Sol的前一天,悄然推出了新一代语音模型GPT-Live。这并非一次常规的产品更新——它标志着AI语音交互从"回合制"迈入"全双工"时代。 GPT-Live基于全双工(Full-Duplex)架构构建,能够同时听和说。在对话中,它可以用"嗯嗯"或"是啊"表示正在专心听,进行快速来回交流,也可以在用户需要思考时保持安静。更重要的是,它将连续交互与深度推理解耦——GPT-Live前台维持语音对话流,同时将复杂推理任务委派给GPT-5.5后台执行。 每周超过1.5亿人通过语音功能与ChatGPT交互,GPT-Live的发布意味着语音已经从一个"附加功能"升级为AI的核心交互入口。 二、语音模型的演进之路 2.1 第一代:级联式语音系统(Cascaded Pipeline) 最初的ChatGPT Voice采用三个模型串联的方式工作: 语音转文本(STT)模型 :将用户语音转录为文本 大语言模型(LLM) :生成文本回复 文本转语音(TTS)模型 :将回复文本转换为语音 这种架构虽然首次实现了与前沿AI模型的语音对话,但代价巨大:信息在模型之间传递时可能丢失(语调、情绪、背景噪音),响应缓慢而生硬,且无法处理笑声、歌声或情感表达。 2.2 第二代:轮次式语音模型(Turn-Based Voice) ChatGPT Advanced Voice Mode将音频处理整合到单个模型中,降低了延迟,使对话更流畅。但它仍然通过离散的轮次运作——模型必须等用户停止说话后才能回应。由于轮次检测基于静默,即使短暂的停顿或背景噪音也可能被误认为一轮结束,导致模型在不自然的时机插话。 2.3 第三代:GPT-Live全双工架构 GPT-Live通过两项关键架构变化解决了前两代的根本性限制。 三、GPT-Live的核心架构创新 3.1 连续交互(Continuous Interaction) GPT-Live不再处理一连串彼此独立的消息,而是在生成输出的同时连续处理输入。模型每秒可以做出多次交互决策:是说话、继续倾听、暂停、打断,还是调用工具。 // Go实现:全双工语音模型的交互决策引擎 package fullduplex import ( "context" "fmt" "sync" "time" ) // InteractionDecision 表示模型每秒做出的交互决策 type InteractionDecision int const ( Speak InteractionDecision = iota Listen Pause Interrupt InvokeTool ) // AudioStream 表示音频输入/输出流 type AudioStream struct { Data [] float32 SampleRate int IsSpeech bool Intent string } // FullDuplexEngine 全双工引擎 - 同时处理输入和输出 type FullDuplexEngine struct { inputStream chan AudioStream outputStream chan AudioStream decisions chan InteractionDecision mu sync . RWMutex isSpeaking bool isListening bool } // NewFullDuplexEngine 创建全双工引擎实例 func NewFullDuplexEngine () * FullDuplexEngine { return & FullDuplexEngine { inputStream : make( chan AudioStream , 100 ), outputStream : make( chan AudioStream , 100 ), decisions : make( chan InteractionDecision , 10 ), } } // ProcessStream 每秒多次处理音频流,做出交互决策 func ( e * FullDuplexEngine ) ProcessStream ( ctx context . Context ) { // 决策频率:每秒约10次 ticker := time . NewTicker ( 100 * time . Millisecond ) defer ticker . Stop () for { select { case <- ctx . Done (): return case <- ticker . C : decision := e . makeDecision () e . decisions <- decision e . executeDecision ( decision ) case input := <- e . inputStream : e . handleInput ( input ) } } } // makeDecision 每秒多次做出交互决策 // 核心逻辑:基于当前输入流状态、输出流状态和对话上下文综合判断 func ( e * FullDuplexEngine ) makeDecision () InteractionDecision { e . mu . RLock () defer e . mu . RUnlock () // 1. 检查是否有用户输入 if len( e . inputStream ) > 0 { select { case latest := <- e . inputStream : if latest . IsSpeech { // 用户正在说话 if e . isSpeaking { // 检测到用户有紧急打断意图 if e . detectUrgency ( latest ) { return Interrupt } // 正常对话中,继续倾听 return Listen } // 模型没有说话,倾听用户 return Listen } default : // 无新输入 } } // 2. 检查是否需要输出(模型有回复准备) if len( e . outputStream ) > 0 && ! e . isSpeaking { return Speak } // 3. 检测到沉默(用户思考中) if e . detectSilence () { return Pause } // 4. 检查是否需要调用工具(如搜索、推理) if e . needToolInvocation () { return InvokeTool } return Listen } // detectUrgency 检测用户是否有紧急打断意图 // 基于语音的音调、语速和关键词分析 func ( e * FullDuplexEngine ) detectUrgency ( stream AudioStream ) bool { // 分析:语速加快、音调升高 => 打断意图 // 分析:出现"等等""停""听我说"等关键词 => 打断意图 return false } // detectSilence 检测沉默 func ( e * FullDuplexEngine ) detectSilence () bool { // 基于连续静音帧的检测 return false } // needToolInvocation 判断是否需要调用后台工具 func ( e * FullDuplexEngine ) needToolInvocation () bool { // 当用户问题需要搜索、推理或复杂计算时返回true return false } func ( e * FullDuplexEngine ) executeDecision ( decision InteractionDecision ) { switch decision { case Speak : e . isSpeaking = true e . isListening = false fmt . Println ( "[决策] 说话" ) case Listen : e . isListening = true if e . isSpeaking { e . isSpeaking = false fmt . Println ( "[决策] 停止说话,倾听用户" ) } else { fmt . Println ( "[决策] 继续倾听" ) } case Pause : e . isSpeaking = false fmt . Println ( "[决策] 保持安静" ) case Interrupt : e . isSpeaking = false e . isListening = true fmt . Println ( "[决策] 被打断,切换到倾听模式" ) case InvokeTool : fmt . Println ( "[决策] 调用后台工具" ) } } func ( e * FullDuplexEngine ) handleInput ( input AudioStream ) { // 处理音频输入流 if input . IsSpeech { fmt . Printf ( "[输入] 检测到语音: %s\n" , input . Intent ) } } // Backchannel 生成回馈信号("嗯嗯""是啊""明白了") func ( e * FullDuplexEngine ) Backchannel () { if e . isListening && ! e . isSpeaking { fmt . Println ( "[回馈] 嗯嗯" ) } } func main () { ctx := context . Background () engine := NewFullDuplexEngine () // 启动全双工处理 go engine . ProcessStream ( ctx ) // 模拟用户输入 engine . inputStream <- AudioStream { IsSpeech : true , Intent : "帮我查一下今天的天气" , } time . Sleep ( 500 * time . Millisecond ) engine . Backchannel () // 模拟复杂任务:需要委派推理 engine . inputStream <- AudioStream { IsSpeech : true , Intent : "用Python写一个排序算法" , } } 3.2 委派推理模式(Delegated Reasoning) 这是GPT-Live最具影响力的设计决策。语音模型本身 不是前沿推理模型 ——当用户提出需要网页搜索、深度推理或多步骤工作的请求时,GPT-Live将任务委派给GPT-5.5后台执行,同时保持对话流畅。
Continue reading on happyrock.cloud

You might also wanna read

Comments

Sign in to join the conversation.

No comments yet. Be the first.