语音模型怎么听出语气,还能被打断?
转成文字的那一步,语气就没了。
做语音对话最常见的路子是三段式:声音先识别成文字,模型写回复,再合成语音。我的 AI 主播也是这么做的。
这条路很好做,但有两个绕不开的问题。
语气没了。 一句「行啊」,痛快地说和拖长了说,转成文字都是这两个字,模型不知道你是答应了还是不太情愿。
慢,而且不好打断。 要等你说完才能断句,模型写出一段才能合成,整体延迟常常到一两秒。想打断,也只能靠外面的规则把正在播的声音掐掉。
端到端语音就是跳过中间这些步骤,声音直接进模型,声音直接出来。
把声音也变成 token
模型不能一个采样点一个采样点地读,24kHz 的音频一秒就是 24000 个点。所以先压缩,Kyutai 的 Moshi 把声音压成每秒 12.5 帧,也就是 80 毫秒一帧,之后就可以像处理文字一样往下接龙了。
语气也跟着保留下来了。「行」拖长了,就是多占几帧。
两条轨,一边听一边说
这是我觉得最妙的地方。Moshi 同时走两条对齐的轨道,一条是你的声音,一条是它自己的声音。
它说话的时候,你那条轨也一直在进数据。所以你突然插一句「等一下」,下一个 80 毫秒它就听到了。这叫全双工,跟打电话一样,两边可以同时出声。
Moshi 论文里报告的实际延迟约 200 毫秒,也就是五分之一秒。
账也不便宜
这种模型也是自回归的,所以也逃不开 KV Cache 那笔账。按 80 毫秒一帧算,聊 5 分钟就是 3750 帧,你不说话的时候它也在记。
另外模型的推理能力主要是在文字上练出来的,声音里的有效信息少得多,纯靠声音练不出来。所以这条路现在还在想办法把文字的能力接过来。
© 2026 袁天NOTE / 20
