99 种语言、48 种音色、128 毫秒延迟,这些指标该怎么看?结合语音助手、会议转写和多语言应用,梳理 ASR/TTS 的选型思路。
语音场景和文本场景关注的问题不同。交互延迟必须控制在可接受的范围内,不同语言的识别效果也可能差别很大。用户最先感受到的问题,有时不是一个词识别错了,而是对话中等得太久。
先确定能接受多长的等待
语音助手需要在端到端 300 毫秒内播出首段音频。扣掉 ASR、模型响应和网络传输的耗时,留给 TTS 的时间大约只有 120 毫秒。批量转写则不必追求同样的响应速度,更应该关注相同成本下能达到多高的准确率。
- 实时语音交互:使用流式 ASR 和 128 毫秒 TTS,为缩短等待时间,可以接受一定程度的词错误率上升。
- 会议转写:优先考虑准确率,选择支持区分说话人的批量 ASR。
- 多语言 IVR:先确认语言覆盖,而且要测具体地区的语言变体,不能只看支持列表中的语言名称。
- 有声书和旁白:优先看合成质量和音色选择,不必把低延迟放在首位。
支持一种语言,不等于这种语言效果好
支持 99 种语言,不代表每种语言的表现都一样。我们最常用的十个地区语言版本,平均词错误率为 3.1%;长尾语言则为 11.4%。
选型时,一定要用自己的音频测试。准备二十分钟有代表性的录音,保留实际使用中的麦克风条件、背景噪声和口音,通常比只看公开榜单更有帮助。
输入和输出都采用流式处理
with client.audio.speech.with_streaming_response.create(
model="gpt-4o-mini-tts",
voice="aria",
input=text,
extra_body={"amplink": {"first_chunk_target_ms": 128}},
) as stream:
for chunk in stream.iter_bytes():
play(chunk)