目前国内比较好的TTS(语音合成)接口

想在播客里加一个小功能:每天自动播报几条科技新闻。新闻来源可以通过一些接口抓取再筛选,但用真人来读成本实在太高,TTS(语音合成)如果可行,当然是比较完美的方案。大概5年前试过科大讯飞的TTS接口,当时感觉效果还不错,但用于正式的内容类产品中仍略显牵强。

5年过去了,国内的TTS水平会不会已经突飞猛进?有点期待,于是简单测试了一下,总体感受没有期待中那么大进步,用于阅读新闻等场景仍然不太理想,目前比较适合的可能还是读验证码、简短的语音提示等场景。

分别说说试过的几个接口,由于我的需求是在服务器端生成语音文件,所以测试的都是在线调用的Web接口,不是App里的SDK:

科大讯飞

网址:

  1. 讯飞开放平台-在线语音合成
  2. 合成多音字、静音停顿、数字读法

优点:

  1. 精品发音人的效果比较好,其中“讯飞晓峰”比较适合播报严肃新闻
  2. 对多音字、静音停顿、数字、英文读法等提供了控制标记,比如:
    1. 着[=zhuo2]手:多音字“着”在这里读为zhuó
    2. 你好[p500]科大讯飞:静音停顿500毫秒
    3. [n2]123[n1]456[n0]:123将会按照数值处理,读成“一百二十三”,456则会按照号码处理,读成“四五六”,其后出现的数字,则会自动判断读法

缺点:

  1. 接口有每日调用次数限制,默认500次,可申请调至2万次/天,听起来不少,可实际调用时每次不能请求太长的文本,需要拆分,如果需要生成的内容比较多,还是有可能达到上限
  2. 免费的普通发音人效果非常差,在新闻阅读的场景中,几乎不可用
  3. 精品发音人效果虽然较好,但需要付费使用,年付2万-10万元,对于免费项目来说,这个使用成本比较难接受

腾讯

腾讯有好几个团队在提供相关接口,我找到的有三个:

  1. 腾讯AI实验室
  2. 腾讯优图
  3. 腾讯云

其中前两个接口都是在“腾讯AI开放平台”上提供的,可以在这里体验一下生成语音的效果,具体的文档在这里

腾讯AI实验室接口效果不好,和科大讯飞的普通发音人差不多。

腾讯优图的效果明显好很多,目前又免费试用,且不限制请求次数,本来已经觉得可以选择了,但有一个很难接受的Bug是:无法控制英文的读法。比如对“IT”来说,有时我们希望按照单词的方式,读成“it”,但很多时候,需要按照字母的方式读出“I-T”,如果用科大讯飞的接口,可以用标记来指定想要的读法,但优图并没有提供类似的方式来指定读法,也无法足够智能的判断应该怎么读,不论传给它“it”、“It”,还是“IT”,永远都只会按照单词的方式来读,因此也无法使用。

最后试用的是腾讯云的语音合成API,文档在这里,Python的SDK在这里

总结

测试后发现,综合来说,腾讯云的语音合成接口是目前最适合我的:

优点:

  1. 生成效果非常好,个人感受甚至超过科大讯飞需要付费的精品发音人
  2. 目前内测阶段免费使用,且无调用次数限制
  3. 前面提到优图做不好的英文读法问题,腾讯云可以部分解决:传“it”会按单词读,传“IT”会按字母读

缺点:

  1. 无法控制多音字读法、数字读法、英文读法
  2. 无法控制停顿(但可以通过切分成多段文本来自己控制)

最终开发此功能时,我会选择使用腾讯云的TTS(语音合成)接口。

玩一下美团团节社 浮光掠影走美国
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×