语音合成七十年——机器是怎么从“念字”学会“演戏”的
导航里那句“前方三百米右转”,每个字都读对了,可你就是知道那不是人在说话。没有起伏,没有犹豫,连“三百米”后面的停顿都像是用尺子量出来的。让机器认字已经很难,让机器“像人一样把字读出来”,难度还要再翻一道坎——因为说话远不只是把文字变成声音,它还牵扯音色、韵律、重音、情感、停顿,以及那些说不清道不明的东西。
语音合成(Text-to-Speech,TTS)走了几十年,本质上就是在补这道坎。
第一代思路很朴素:拼。
事先录好海量语音片段——音素、音节、词——合成时把需要的片段找出来,像乐高积木一样拼成一句话。好处是用的都是真人录音,单听一个片段,音质是自然的。毛病也致命:片段与片段之间的“接缝”处常常不连贯,音调、语速衔接生硬,听起来就是一把“机器人嗓子”。更根本的原因在于协同发音:人说话时,每个音的发音都会受到前后音的影响,拼接法把每个音独立处理,丢掉的恰恰是这种连续性。想让同一句话换个语气?得再录一整套片段。
第二代试图用参数代替录音。
不再拼声音,而是用数学模型描述“该怎么发声”——基频、频谱包络、时长——再让声码器根据这些参数合成波形。这比拼接灵活得多,音高、语速都可以平滑调节。代价是音质:参数是一种“简化描述”,丢掉了大量高频细节,合成出来的声音常被形容为“嗡嗡的”、像隔着电话线。灵活和自然,一度成了鱼和熊掌。
转折点出现在2016年。
DeepMind的WaveNet换了一个思路:不再手工设计声学规则,而是让神经网络逐样本地学习“真实音频波形长什么样”。音质一下子跃升了一个档次,“机器味”的短板被补上了大半。紧接着,Tacotron系列把“文本→声学特征→波形”这条流水线也神经网络化了,注意力机制自动学习文字和声音之间的对齐关系,不再需要人工标注每个字该发多长。此后,FastSpeech用非自回归结构把合成速度提了上来,VITS又把声学模型和声码器塞进同一个网络联合优化,“文本进、波形出”的端到端范式逐渐成为主流。
真正让语音合成从“朗读”迈向“演戏”的,是最近几年的事。以F5-TTS、CosyVoice为代表的模型,只需要几秒钟的参考音频,就能克隆一个人的音色,甚至复刻他的说话节奏和情绪色彩。2026年,网易有道开源的Confucius4-TTS把门槛压到了3秒音频、14种语言,克隆音色与原声的相似度超过85%。合成语音的MOS(平均主观意见分)在情感语音合成领域已经逼近4.8分,接近人类录音水平。
但最难的那块拼图还没有完全归位。读对容易,读“像人”难。同一句话,重音放错位置,意思就变了;“开心”的声音容易做,“欲言又止的复杂情绪”很难;读一篇长文,前后语气、节奏要保持一致,不“跳戏”,依然是未竟的课题。语音合成的终极难题,从来不是“读得对”,而是“读得像个人”——而“像人”这件事,恰恰最难被量化,也最难被优化。