我使用 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?
将以强调和更高的音调来阅读。