Amazon Polly NTTS 普通话初探

相关语音可以移步https://mp.weixin.qq.com/s/jEljs2WhlMrP--AhwGu0rQ

TTS (Text-to-Speech)基本上是大厂的标配了,在公有云服务商层面,Azure的TTS最成熟且最丰富,Google和Amazon则是不相伯仲的一般。

Polly于2016年11月正式提供服务,并且于2018年9月发布了Polly的首个普通话支持,可以点击这个语音听一下这个感觉。

标准TTS-音频1音频:00:0000:02

可以明显感觉出来合成的味道很浓,而且字之间还有一些停顿,并不是很流畅。

2019年7月Polly增加了Neural TTS的支持,简单来说就是更自然更流畅了,但是NTTS并没有同时带入到普通话,直到标准普通话支持发布的4年后,即2022年8月,Polly终于增加了NTTS版本的普通话支持,可以点击这个语音听一下这个感觉。

NTTS-音频2音频:00:0000:02

不论语调如何,至少在连贯性上已经强于标准TTS。

然而Amazon的控制台是在是太过简陋了,如下图

即便是你点开Additional settings也没有多少选项可选,这时我们就可以使用SSML来丰富我们的用法。

Polly支持的SSML Tags可以参考这个文档

https://docs.aws.amazon.com/polly/latest/dg/supportedtags.html

我们试一个比较有趣的,例如下面这个例子

SSML我也粘在下面,

<speak>
     <lang xml:lang="cmn-CN">这里是肖恩咨询,向你问好。</lang>.
</speak>

英语NTTS-音频3音频:00:0000:03

需要注意的是NTTS的中文,lang code为cmn-CN,通过这个语音我们可以听出来美国人读中文的感觉。

还有一个比较有趣的例子是多音字的处理。

比如以下这个对联,我们先听一下NTTS不做任何修改直出的语音。

普通话NTTS-未修正音频:00:0000:04

显然有音不正确,这时候我们就需要对部分的读音进行微调。

<speak>
海水
<phoneme alphabet="x-amazon-pinyin" ph="chao2">朝</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="zhao1">朝</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="zhao1">朝</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="chao2">朝</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="zhao1">朝</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="chao2">朝</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="zhao1">朝</phoneme>
落,浮云
<phoneme alphabet="x-amazon-pinyin" ph="zhang3">长</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="chang2">长</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="chang2">长</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="zhang3">长</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="chang2">长</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="zhang3">长</phoneme>
<phoneme alphabet="x-amazon-pinyin" ph="chang2">长</phoneme>
消
</speak>


即单独标记每个字的拼音,这时我们就有如下语音。普通话NTTS-已修正音频:00:0000:05当然我搞了一个非常极端的例子,导致Polly完全无法正常阅读,正常情况下多音字一是可以在组合中发正常的音(可以听这个对联原始的语音,“朝落”两个字),二是也不存在这么多多音字的情况。以上简单试用了下Polly,不得不说Amazon在这方面积累还是不如Microsoft深厚,十分推荐大家试用以下Azure的TTShttps://azure.microsoft.com/en-us/services/cognitive-services/text-to-speech/#overview首先在语音上的选择就非常多

其次你也可以选择语音风格,例如聊天、冷静、悲伤等等

部分的Voice甚至提供了角色扮演的设置!

顺便一提这里的Pitch是Polly所不支持的一个SSML Tag

总结

Polly最直接的是可以给你的网站增加朗读功能,进而可以满足无障碍设计。