戴耳机听一段由语音合成朗读的长文档,前两分钟往往没什么异样。音色干净,字音准确,连标点都处理得规规矩矩。可到第十来分钟,注意力开始飘。不是听不懂,是不想听下去。
这种疲劳感常被归到“机器味”上,但真去拆,音色只是表层。如今的声学模型和声码器能把音素还原得相当接近真人录音,问题更多藏在字与字之间的缝隙里。
一口气的长度
人说话是要换气的。一句话说到一半,气不够了,会提前收尾,或者用一个短促的停顿续上。这个动作带出语速的轻微起伏,也带出句子内部的结构:哪里是一个意思说完了,哪里只是喘口气。
合成语音在原理上不需要呼吸。它可以把一个长句匀速念完,中间不留断点。听起来每个字都对,但耳朵接收到的是一条没有起伏的线。听的人得自己去找句子的边界,这个额外的认知负担累积起来,就是走神。
有的系统会主动插入呼吸声。麻烦在于,呼吸放在哪里、多长、多轻,跟语义绑得很紧。放错位置的换气声,反而容易让人出戏。
重音落在哪个字上
同一句话,重音挪一个位置,意思就变了。“我明天去”和“我明天去”,落在不同的字上,回答的是不同的问题。人靠上下文和对话场景判断,模型能拿到的往往只有前面几行文本。
这就牵出语音合成里比较难绕开的一环:韵律预测。文本分析给出音素和词边界,韵律模块要决定停顿、延长、音高走向。它对上下文的理解越浅,念出来的句子就越平。音色可以靠数据堆,韵律很难。
还有一个常被忽略的细节:专有名词和多音字。一段听感平滑的音频,可能在一个地名或人名上突然卡住,或者念错。这种时刻不多,但一旦出现,前面建立的信任会掉一大截。
没有统一答案的听感
评价一段合成语音,有一些客观指标可用,但落到“听着累不累”这件事上,还是得靠人耳。而人的注意力本身就是波动的,同一段音频,早上听和晚上听,感受可能不同。这让优化目标变得模糊。
所以更实际的做法,可能是按场景分开看。短提示、导航指令、播报类内容,句子短、信息密度低,对韵律的要求没有那么苛刻。长文本朗读、有声内容、对话式交互,句子长、语义层次多,气口和重音的分量就上来了。这不是谁高谁低,是需求本身不一样。
回到开头那段让人走神的音频。它读对了每一个字,却没有替听的人想过:这句话该在哪儿停一下。语音合成往前走的这段路,恐怕不在嗓子上,在节奏上。