ChatGPT 语音终于能被打断了:OpenAI 双向语音模型 Bidi 1 上线测试
今天刷到一条还没官宣的料,我盯着那段测试视频看了三遍。
视频里有个人让 ChatGPT 从 1 数到 10,数到一半,他直接插嘴,倒过来数。换平时你早有体验,要么 AI 自顾自把 10 个数念完,要么它卡一下、噎一秒、再慢吞吞地切回来。但这回不一样,话音还没落,它就掉头开始倒数了。中间那个停顿,几乎没有。
好家伙,就这么一个看着平平无奇的小动作,是 OpenAI 给 ChatGPT 语音迄今为止最大的一次升级。科技媒体 testingcatalog 6 月 23 日先扒出来的,部分用户在网页版和 App 版的模型选择器里,发现多了一个叫 Bidi 1 的语音模型,跟标准语音、高级语音并排站着。选中它,那个语音气泡会变成黄色。OpenAI 官方到现在一个字没说,但爆料的人判断,这周很可能就铺开更大范围的测试了。详细的截图和视频可以去 IT 之家这篇 看。

我知道,光这么说你可能没什么感觉。「能打断」这三个字,听起来太小了,小到不值得专门写一篇。但我是真的觉得,这事儿藏着的东西比表面大得多。咱们慢慢聊。
先说个你天天在用、但可能从没仔细想过的别扭。
你跟现在任何一个语音助手说话,无论是 Siri、是小爱、还是 ChatGPT 的高级语音,说到底你们俩是在轮流说话。你说一句,它听完,停一下,再回你一句。你说的时候它在听,它说的时候你最好闭嘴。这套机制有个专门的词,叫半双工(half-duplex,同一时间信道只能单向传输,就像早年的对讲机,你按下说话键的时候听不见对面,松开才能听)。
对讲机这个比喻挺贴切的。你小时候玩对讲机,是不是得说一句「完毕」,对面才知道该你了?语音助手干的就是这事,只不过那句「完毕」被它偷偷自动化了,靠检测你停顿多久来判断你说完没有。这就是为什么你经常被它打断,或者它经常等你半天不接话。它根本不知道你是真说完了,还是只是中间喘口气、想了想措辞。
这个痛点,用过的人都懂。我跟你说,最让人崩溃的不是它反应慢,是那种节奏的错位。你想纠正它,得等它把整段废话念完;你说错了一个词想改口,它已经顺着错的往下跑了;你只是想「嗯」一声表示我在听,结果它以为你要插话,卡住了。人和人之间那种自然的你来我往,重叠、附和、抢话、改口,到了人机对话里全没了,变成一种很端着的、一人一句的播报。
OpenAI 自己其实早就知道这个问题。
去年 GPT-4o 发布的时候,那场春季发布会 的现场 demo 就主打了实时语音对话,能感知情绪、能唱歌、延迟据说压到了 320 毫秒,接近真人的反应速度。后来这个能力以高级语音模式(Advanced Voice Mode)的形式逐步推给用户,开发者那边也开放了对应的 Realtime API 做低延迟语音。说真的,刚上手那阵我也被惊艳到了,比 Siri 那种木头人强了不知道多少。
但用久了你会发现,它依然是轮流制的。延迟是低了,可那个底层逻辑没变,还是你说完它说,它说的时候你插嘴,它要么停下来重新听,要么就有点手忙脚乱。打断是能打断,但打断这个动作本身是个「中断信号」,是把它正在跑的那一轮强行掐掉,再重启一轮,而不是它一边说一边还在听你、随时准备调整。这中间的区别,怎么说呢,就像一个是「我停下来重新听你说」,一个是「我一直在听你说,顺着就改了」。

Bidi 1 这个名字本身就把答案写脸上了。Bidi,bidirectional,双向。它要做的就是全双工(full-duplex,信道双向同时传输,电话就是全双工的,你俩可以同时说话互相都听得见)。
模型在输出语音的同时,它的「耳朵」是开着的,持续在听你。所以你中途插一句「倒过来数」,它不需要先把这一轮停掉、判断你说完了、再重新理解、再生成新的一轮。它就是在说话的过程里,顺手把你这句新指令接住了,然后无缝拐了个弯。那个数数倒数的 demo 看着小儿科,但它演示的恰恰是这个最难的点,说和听同时发生,且互相不打架。这一手要是真稳,有点子牛逼了。
我为什么对这事这么上心。
因为我平时的活儿,说人话就是给大模型搭「脚手架」,让它能在真实环境里干活的那层工程。agent 怎么调工具、怎么管上下文、超时了怎么办、卡住了怎么重试,这些琐碎但要命的东西。干这行你会对一个事实特别敏感,模型的「智商」和模型「能不能流畅地跟世界交互」,是两码事,而且后者经常才是体验的瓶颈。
语音这块尤其明显。一个对话模型再聪明,只要它跟你交互的方式是「一人一句的对讲机」,那种隔阂感就一直在。你永远会下意识地觉得,对面是个机器,因为真人聊天根本不是这么聊的。真人聊天是一团乱麻,是充满重叠和打断的,是我话说一半你「嗯嗯对对」地垫话,是你刚起个头我就猜到接茬。全双工要解决的,就是把这团「乱」给还回来。乱,才像人。
从工程上讲,全双工语音是真的难,难在哪我跟你掰扯掰扯。
半双工那套,本质是把问题切成了两半,先做语音识别把你的话转成文字,模型想一想,再做语音合成把回答念出来,一棒接一棒。每一棒之间有清晰的边界,工程上好处理,出了问题也好定位是哪一棒的锅。但全双工不行,它得让输入和输出在时间上重叠起来,模型在生成第 N 个音的同时,还得把你刚冒出来的半句话编码进去、影响到第 N+1 个音的决策。这就要求模型内部得同时维护两条流,一条往外吐声音,一条往里收声音,还得让这两条流实时地互相影响。
这玩意儿对延迟的要求是地狱级的。你想想,人对打断的反应有多快?你话还没说完,对方眉毛一挑你就知道他要插话了。机器要做到接近这个,留给它的反应窗口可能就一两百毫秒,这里面还得塞下「听懂你这半句、判断这是打断还是附和、决定要不要改口、生成新内容」一整套动作。慢一点,那种「跟真人聊天」的错觉立马就碎了。
这条路其实不止 OpenAI 在走。
法国那家 Kyutai 实验室去年开源过一个叫 Moshi 的全双工语音模型,代码在 GitHub 上,理论延迟做到了 160 毫秒左右,能边听边说。我当时去翻过它的技术报告,思路挺漂亮的,把音频也当成一种 token 来建模,让语言模型直接在音频流上做生成,输入输出两条音频流并行跑。开源社区里它算是把全双工这个概念实打实做出来给大家看的先行者之一。再往前数,2018 年 Google 那个 Duplex 演示,AI 打电话帮你订餐厅、跟前台你来我往还会「嗯」一声,当年也是炸场,不过那个是窄场景的特化系统,跟今天这种通用全双工不是一个量级的东西。
所以 Bidi 1 不是石头缝里蹦出来的,它是这条技术线积累到一定程度,被 OpenAI 用它那套工程能力和数据量,往「能给几亿人日常用」的方向推了一大步。先行者证明了可行,巨头负责把它做到规模化、做到稳。这个分工,在 AI 这两年的故事里反复上演。
聊到这我想插一句题外话,也是我自己一直在琢磨的。
我们老爱用「智能」这个词去衡量一个 AI 强不强,谁参数大、谁刷榜高、谁能解奥数题。但你真正天天用下来会发现,决定你愿不愿意一直用它的,往往是些特别朴素的东西,它够不够快,它会不会动不动就误解你,它跟你交互的时候顺不顺手。这些东西不那么性感,发布会上没法用一个漂亮的分数表示,但它们是体验的地基。
全双工语音就是这么个东西。它不会让 ChatGPT 变得「更聪明」,它解决不了模型幻觉,也答不对它本来答不对的题。它改变的只是「交互的质感」。可恰恰是这个质感,是把语音助手从一个「能用但别扭的工具」,往「你愿意随口跟它聊两句的东西」推进的关键一步。我有时候觉得,AI 体验下一阶段的较量,可能真就在这种地方,不在谁更博学,在谁更不像机器。
当然了,我得泼盆冷水,也是给你打个预防针。
Bidi 1 现在还是个连官宣都没有的灰度测试,testingcatalog 扒出来的也就那么点信息,几段视频、一个变黄的气泡。它真实表现到底怎么样,全双工在嘈杂环境下会不会乱套、会不会把背景音当成你在说话、打断的判断准不准,这些都得等它真正铺开、等大批普通用户用脏数据喂过一遍才知道。Demo 视频永远是挑最好的给你看的,这行的老规矩了,我也踩过不少次「demo 惊为天人,自己一上手稀碎」的坑。
而且全双工还带来一堆新的体验难题。比如它一边听一边说,那它到底什么时候该闭嘴让你说、什么时候该坚持把话讲完?人类靠的是一整套微妙的社交直觉,AI 要拿捏这个分寸,难度一点不比把话说流畅低。搞不好就变成另一种烦人,你刚要张嘴它就秒退让,或者你随便一个气音它就抢着插话。这个度,太难调了。
但我还是挺期待的。坦率讲,比起又一个刷新了某某榜单的新模型,我对这种「把交互体验往真人那儿挪一寸」的更新更上头。因为它动的是我们跟机器相处的方式本身。
我们跟机器对话这件事,已经被「一人一句」这套规矩驯化了太多年。从命令行敲一行回车等一行,到对着 Siri 说一句等一句,我们早就默认了,跟机器讲话就得这么端着、这么有来有回、这么不像聊天。久到我们甚至忘了,跟一个活物说话本来是什么样的。是会重叠的,会抢话的,会「我懂我懂你别说了」的,是乱的。
是谁来自山川湖海,却囿于昼夜厨房与爱。我们造了这么聪明的东西,绕了这么大一圈,最后想让它学会的,居然只是好好听人把话说完,然后自然地接上一句。这事说大不大,说小,又实在不小。
那个数到一半被叫停、利索掉头倒数的瞬间,我反复看的不是那个技术参数,是那种久违的、不用迁就机器的松弛感。
它终于,肯一边听你说,一边搭话了。