如何强调 espeak 所说的某些单词?

如何强调 espeak 所说的某些单词?

我使用 espeak 说出纯文本文件中的一些文本。但是,文件中的某些单词使用星号强调(“您是指*绿色*豆吗?”),espeak 会按字面意思读出它们(“您是指星号绿色星号豆吗?”)。

我应该用什么替换星号,以便 espeak 正确地读取它们的强调?

答案1

Espeak 支持语音合成标记语言 (SSML),您可以将这些标记放在纯文本文件的中间(即您不需要将所有的正确的 SSML)。您正在寻找的标签可能是<emphasis level="...">.这里列出了其他可能的标签:http://espeak.sourceforge.net/ssml.html

Espeak 默认情况下不会使用它们,您需要传递该-m标志。例如,您可以使用espeak -m -f your_file.txt

该文档相当简洁,因此您可能必须深入研究源代码才能找到可能的值之类的内容。 (我会写更好的文档,但是有九岁的未合并的补丁源存储库不可用,所以看起来该项目已经完全死了。)可以找到重点标签(和其他一些标签)的可能值在 Github 上。他们是:

  • 没有任何
  • 减少
  • 缓和
  • 强的
  • 强x

例如:Did you mean the <emphasis level="strong">green</emphasis> beans?请注意,如果没有引号,它将无法工作(<emphasis level=strong>在 HTML 中可以工作,但在 SSML/espeak 中,如果没有引号,它就无法工作)。

或者,espeak 可以通过使用标志以不同的方式读取全大写的单词-k:如果您使用命令espeak -k20 -f your_file.txt,您会注意到它改变了“全大写”中单词的音调。这两个选项不混合,所以你不能强调使用这两个选项来改变音高。

然而,在 SSML 中,您可以混合使用它们:Did you mean the <emphasis level="strong"><prosody pitch="75">green</prosody></emphasis> beans?将以强调和更高的音调来阅读。

相关内容