文本转语音 (TTS) 提供商通过结合预构建的语言规则、用户自定义和机器学习模型来确保专有名词的正确发音。专有名词(如姓名、品牌或地点)通常偏离标准发音规则,因此 TTS 系统使用专门的技术来处理它们。例如,系统可能会默认使用通用发音规则来处理常用词,但对例外情况应用自定义逻辑,例如“Houston”(在德克萨斯州发音为“HYOO-stən”,但在纽约发音为“HOW-stən”)。
一个关键方法是使用发音词典或词库。这些是预定义的列表,使用来自国际音标 (IPA) 等系统的符号将单词映射到其语音表示。Amazon Polly 或 Google Cloud Text-to-Speech 等提供商维护着涵盖常见专有名词的广泛词库。对于不太常见的术语,开发人员可以通过语音合成标记语言 (SSML) 提供自定义词库。例如,使用 SSML 的 <phoneme>
标记,开发人员可以指定将“Qt”(一个软件框架)发音为“cute”而不是“cut”。一些提供商还允许众包更正,用户提交错误发音以供审查并纳入更新中。
机器学习在处理边缘情况方面发挥着作用。现代 TTS 系统使用在大量音频数据集上训练的神经网络来预测发音,即使对于不熟悉的单词也是如此。这些模型分析单词结构、上下文和语言模式。例如,模型可能会根据包含越南语名称的训练数据推断出“Nguyen”(越南语姓氏)发音为“win”。但是,这种方法并非万无一失——不寻常或新造的术语(例如“X Æ A-12”)可能仍然需要人工干预。为了解决这个问题,一些提供商将自动预测与回退规则相结合,例如拆分复合词或检查已知的后缀(例如城市名称中的“-ville”)。
最后,TTS 系统通常允许开发人员以编程方式覆盖发音。Microsoft Azure Speech 等服务允许通过 API 上传自定义词库,从而确保正确说出特定领域的术语(如医学术语或产品名称)。例如,导航应用程序可以通过将术语链接到其语音拼写“sənt ˈluːɪs”,确保将“Saint Louis”发音为“Saint LOO-iss”而不是“Saint LEW-ee”。这些自定义层与持续的模型训练和社区反馈相结合,有助于 TTS 系统平衡各种用例的准确性和灵活性。