在同一个 SSML 中混合语言
Posted
技术标签:
【中文标题】在同一个 SSML 中混合语言【英文标题】:Mixing languages in the same SSML 【发布时间】:2017-02-05 15:00:13 【问题描述】:如果我将一小段 SSML 发送到语音处理器,我会得到两个声音
<speak version='1.0' xml:lang='es-ES'>
<voice xml:lang='es-ES' xml:gender='Male' name='Microsoft Server Speech Text to Speech Voice (es-ES, Pablo, Apollo)'>
<p>
<s>Hola </s>
<s xml:lang='en'>Hello</s>
<s>¿Cómo estas?.</s>
</p>
</voice>
</speak>
一个说西班牙语的男人和一个说英语的女人。这是 Project Oxford Text to Speech 引擎的限制吗?换句话说,我希望同一个声音能说多种语言,但事实并非如此。
【问题讨论】:
Amazon polly 确实有相同的声音尝试发音第二语言,在我看来结果更糟,因为声音听起来像第二语言是作为第二语言学习的并且很难理解。 感谢您的评论。这个问题是在 2016 年提出的,我认为今天它已经过时了。今天的处理器比 2016 年要好得多 没有。我今天面临同样的问题。我今天终于在我的应用程序中使用了 azure 认知 tts(以前称为 oxford),最终使用两种不同的语言但不同的声音。 Amazon polly 需要指定一种语言,而不同的语言在用非母语发音时听起来很糟糕。 Alexa 技能似乎支持它,但我不确定。谷歌云不支持两种语言。我试图在研究双语应用程序选项的同时拯救某人,而不是回答你的问题。 【参考方案1】:引用SSML spec,
指定 xml:lang 并不意味着语音的改变,尽管这确实可能发生。当给定的声音无法以指定的语言说出内容时,处理器可能会选择新的声音。
虽然当前的回退行为仍有待改进,但建议创建多个语音节点并在切换语言时更明确地选择语音。
【讨论】:
以上是关于在同一个 SSML 中混合语言的主要内容,如果未能解决你的问题,请参考以下文章
文本转语音通过语音合成标记语言(SSML)改进合成 知识点详解
如何在 Alexa Skill lambda 函数中正确指定 SSML?