前言
系统自动的TTS合成声音太过机械,经过笔者探查,百度和科大讯飞的离线语音确实可以。
前期准备
1、上 百度AI开放平台-全球领先的人工智能服务平台 注册个账号
2、去 控制台 导航到语音技术模块
3、通过 应用列表-->创建应用
4、领取 免费试用额度(短语音合成-基础版)
5、创建应用成功后,并领取额度后,需要过大概15分钟后台生效,才能使用。
6、可以在应用详情的API列表下查看额度剩余情况或者生效情况。
7、要知道应用的AppID、API Key和Secret Key,接口调用的时候需要这三个参数
安装
sudo pip3 install baidu-aip
sudo pip3 install playsound
sudo apt-get install sox libsox-fmt-all
代码实现
import playsound
from aip import AipSpeech
import os
''' 你的APPID AK SK 参数在申请的百度云语音(合成)服务的控制台查看'''
APP_ID = 'xxx'
API_KEY = 'xxx'
SECRET_KEY = 'xxx'
# 新建一个AipSpeech
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 将本地文件进行语音合成
demo = input('请输入你要合成的文字:')
print('输入的文字为:%s' %demo)
def tts(demo):
if len(demo) != 0:
word = demo
result = client.synthesis(word,'zh',1, {
'vol': 5,'per':0,
})
# 合成正确返回audio.mp3,错误则返回dict
if not isinstance(result, dict):
with open('audio.mp3', 'wb') as f:
f.write(result)
print ('tts successful')
os.system("mplayer /home/pi/audio.mp3")
# main
if __name__ == '__main__':
tts(demo)
点评
百度的TTS合成音色,语气等等确实都要比系统自带合成的效果好很多。
不过仔细看看官方SDK文档,不支持Ubuntu系统下离线语音合成操作。