文字转语音的停顿与发音:用文字控制声音
合成语音的大多数问题出在文字上,而不是声音上:少了一个停顿,名字读错了,数字的形式不对。在 SuperClonica 中,一切都通过文字本身和几个引擎选项来控制,不需要学习标记语言。请注意:Supertonic 3 暂不支持中文,可朗读英语、日语、韩语等 31 种语言。
本指南介绍引擎如何读你的文字、如何添加停顿、如何纠正发音,以及何时该换一个版本或调整语速。
引擎如何读你的文字
语言选项必须与文字的语言一致,否则单词会用别的语言的发音读出来。
- 标点决定节奏:逗号是短停顿,句号停得更久。
- 数字在 27 种语言中会读成单词,但印地语、希腊语、爱沙尼亚语和克罗地亚语不会,而且词形不会变化。
- 聊天缩写会在七种语言中展开:英语、俄语、波兰语、法语、葡萄牙语、西班牙语和德语。
- 两者都可以用 --no-numbers 和 --no-slang 关闭。
- 不支持 SSML 标签:请按想听到的效果来写文字。
免费试听一句难读的话
在任意声音页面粘贴读不好的那句话(30 到 100 个字符),选择语言并点击生成按钮。几秒后就能听到引擎的读法,并可以修改文字再试。无需注册。
停顿
引擎会裁掉句子前后的静音;--keep-silence 可以保留它,拼接时很方便。
- 逗号用来换气,句号用来明显停顿。
- 犹豫或悬念用省略号,例如 “Well... I am not sure.”
- 与其写长句,不如另起一句:句子之间声音会停顿。
- 需要精确长度的停顿时,把各部分分开生成,再在音频编辑器里插入所需长度的静音。
发音
把引擎读错的词按应有的读音改写:外国人名、品牌名、生僻词。缩写可以写成用空格隔开的字母,也可以写成完整的词。在语法重要的地方,把数字写成单词。较长的复合词如果读得含糊,用连字符隔开。改写后的版本只用于朗读的文字,不要放进要发布的文章。
版本、语速和响度
每次运行都是一个新的版本:如果某句听起来不太对,就重新生成,或用 --seed 加一个数字尝试不同版本并重现喜欢的那一个。默认语速为 1.05;调低到 0.95 等会变慢,调高到 1.1 等会变快。--normalize 把所有文件的响度统一为 −18 LUFS。这些都在免费的 SuperClonica 引擎里:python -m pip install superclonica-cpu,然后 superclonica --text "Your text" --voice F1 --lang en --seed 7 --speed 0.95 --output take.wav。