文本转语音 (TTS) 系统通过脚本特定的预处理、语言分析和合成技术的结合来处理具有复杂文字的语言。 复杂的文字,例如阿拉伯语、梵文(用于印地语)或普通话,通常涉及上下文字符形状、变音符号或音调标记等需要专门处理的特征。 第一步是规范化输入文本以解决脚本特定的怪癖。 例如,阿拉伯语文本需要处理从右到左的渲染,解析可选的变音符号(如元音标记),以及管理根据其在单词中的位置而变化的字母形式。 同样,梵文脚本涉及将连字字符(如“क्” + “ष” = “क्ष”)拆分为单个音素,而普通话需要将语标字符转换为带有声调标记的语音表示(如拼音)。
语言分析在将文本映射到语音方面起着关键作用。 对于像普通话这样的声调语言,TTS 系统必须根据声调标记为音节分配正确的音高轮廓(例如,“mā”中的高平调与“mǎ”中的降升调)。 在阿拉伯语中,系统使用上下文和语法规则推断缺失的短元音(通常在书面文本中省略)。 对于具有复杂音节结构的文字,如泰语或缅甸语,TTS 引擎使用特定于语言的规则将文本分割成音节。 例如,泰语单词之间没有空格,因此系统必须使用字典或统计模型来识别单词边界。 此外,印地语等语言需要处理“schwa 删除”,其中辅音中固有的元音在特定上下文中被省略。 这些步骤通常依赖于在带注释的语言数据上训练的基于规则或机器学习的模型。
合成技术必须适应复杂文字的可变性。 神经 TTS 模型(例如,Tacotron、FastSpeech)使用编码器-解码器架构将文本映射到频谱图,但需要针对特定语言进行调整。 例如,普通话 TTS 系统可能会将音调嵌入到模型中以保留音高模式。 对于阿拉伯语,模型可以包括单独的模块来预测合成前的变音符号。 由于训练数据有限,低资源语言提出了挑战,但迁移学习(使用在相关语言上训练的基础模型)或多语言训练等技术可以提供帮助。 例如,谷歌的 TTS 通过跨脚本共享语音特征来支持印度语言。 最后,渲染引擎处理脚本特定的怪癖,例如重新排序阿拉伯语字形或正确组合梵文字符。 诸如 eSpeak-ng 之类的工具使用基于规则的字素到音素 (G2P) 转换来处理具有可预测拼写的脚本,而诸如 Amazon Polly 之类的商业系统则使用混合方法,结合规则和深度学习以获得更高的准确性。