深夜赶稿时习惯开着听书,机器念到“他顿了一下”这句,声音平滑地滑了过去,没有任何迟疑。我按了暂停,倒回去又听了一遍——字都对,语气也没错,可那句话里的意思丢了。
这类瞬间,比任何评测分数都更能说明问题。我们讨论语音合成,习惯用“像不像真人”当标尺,音色、口音、自然度,一路比下去。可真正让人出戏的地方,常常不在嗓子,而在脑子。
顺耳这件事,门槛已经不高了
早年的合成声音带着明显的电子味,拼接式的库音一切换就露馅,参数化方法则像隔着一层布说话。这些年端到端的方法把流畅度和音色推上了一个台阶,短句几乎能以假乱真。所以现在再拿“听起来机不机械”当唯一标准,已经不太够用。
问题在于,“顺”和“对”是两回事。一段语音可以每个字都圆润,整段却读得不对味。
难的是停顿,不是发声
汉语的韵律信息,很多靠停顿和重音承载。同样一串字,断句位置换一下,意思就变了。合成系统如果只是把文本切成词、逐词发音,遇到长定语、插入语、引号里的转述,就容易一口气念到底。人不会这么说话,人会犹豫、会补一口气、会在该轻的地方轻下去。
呼吸声、气口、尾音的上扬或下沉,这些细节在短句测试里听不出来,放进二十分钟的有声内容里就会被放大。听众未必说得出哪里不对,但会觉得累。
文本这一关,绕不过去
做语音合成的人常说,前端比后端难。系统拿到的是符号,不是意思。数字怎么读,“2 个”和“2 月”不一样;多音字要看上下文;括号里是注释还是补充说明;破折号是拖长还是转折。这些规则写不尽,只能靠模型去猜。
猜错的代价很直接:一句话里冒出一个读音古怪的词,整段的信任感就塌了。用户不会归因于“文本归一化没做好”,只会记住“这个声音不靠谱”。
- 多音字与专有名词:需要上下文,也需要可干预的入口。
- 标点与格式:省略号、书名号、数字区间,背后是不同的读法。
- 长文本一致性:跨段落的语气是否连贯,比单句自然度更考验系统。
评价方式也该换一换
实验室里常用的做法,是请人给短句打分。可真实场景是长文本、有上下文、有情绪起伏。一段十分钟的叙述,前面沉稳、后面激动,中间怎么过渡,打分表测不出来。评价方式不变,优化方向就容易偏。
另外,不同场景对语音合成的要求本就不同。导航要短、要清楚、不能有歧义;客服要稳定、可预期;有声内容则要有人味,甚至允许一点不完美。拿一套标准去套所有场景,本身就是误解。
我的判断
接下来一段时间,语音合成的进步大概率不会体现在“更像某个人”,而体现在“更懂这段话”。谁能把文本理解、韵律控制和细粒度编辑做扎实,谁的输出才经得起长时间收听。音色是可以买到的,读懂一句话不行。
至于那句“他顿了一下”,我还是希望机器能真的停半秒。技术上不难,难的是它得先知道,这里该停。