在同一个 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?

汇编与C51语言如何在Keil混合起来使用?只要教会我调用一个延时函数就可以了。

keil4 下 c语言和汇编语言。混合编程的方法。

如何将 SSML 合并到 Python 中