背景
一直对语音合成系统比较感兴趣,总想能给自己合成一点内容,比如说合成小说,把我下载的电子书播报给我听等等。语音合成系统
其实就是一个基于语音合成的工具,但是这个东西由于很多厂家都提供了API的形式,因此开发难度大大降低,只需要调用几个API即可实现属于自己的语音合成工具;麻雀虽小,五脏俱全。往大了说,这就是一个小型的语音合成系统。准备工作
步骤
https://www.xfyun.cn/doc/tts/online_tts/API.html创建好了之后,点击该应用进入,有该应用的详细栏目。
点击左侧的语音合成,再到下一级在线语音合成(流式版)
代码实现
好了接下来进行代码实现了,首先安装我们需要的两个库。pip install websocket-client
pip install playsound
class play:
def __init__(self): #初始化函数
def play_sound(self):#播放音频函数
def select_vcn(self,*arg):#选择下拉框设置发音人
def xfyun_tts(self):#进行语音合成
在这里,大家需要填上刚才从讯飞开放平台控制台获取到的appid、appkey以及appsecretdef __init__(self):
self.APP_ID = 'xxx' #请填上自己的appid
self.API_KEY = 'xxx' #请填上自己的appkey
self.SECRET_KEY = 'xxx' #请填上自己的appsecret
self.root=tk.Tk() #初始化窗口
self.root.title("语音合成系统") #窗口名称
self.root.geometry("600x550") #设置窗口大小
self.root.resizable(0,0)
#self.root.resizable(width=True,height=True)#设置窗口是否可变,宽不可变,高可变,默认为True
self.lb=tk.Label(self.root,text='请选择语音发音人')#标签
self.tt=tk.Text(self.root,width=77,height=30) #多行文本框
self.cb=ttk.Combobox(self.root, width=12) #下拉列表框
#设置下拉列表框的内容
self.cb['values']=("甜美女声-小燕","亲切男声-许久","知性女声-小萍", "可爱童声-许小宝","亲切女声-小婧")
self.cb.current(0) #将当前选择状态置为0,也就是第一项
self.cb.bind("<>", self.select_vcn)
self.tk_tts_file=tk.Label(self.root,text='生成文件名')
self.b1=tk.Button(self.root, text='进行语音合成', width=10,height=1,command=self.xfyun_tts) #按钮
self.tk_play=tk.Button(self.root, text='播放', width=10,height=1,command=self.play_sound) #按钮
#各个组件的位置
self.tk_tts_file.place(x=30,y=500)
self.b1.place(x=300,y=500)
self.tk_play.place(x=400,y=500)
self.lb.place(x=30,y=30)
self.cb.place(x=154,y=30)
self.tt.place(x=30,y=60)
self.root.mainloop()
def select_vcn(self,*arg):if self.cb.get()=='甜美女声-小燕':self.vcn="xiaoyan" elif self.cb.get()=='亲切男声-许久':self.vcn="aisjiuxu" elif self.cb.get()=='知性女声-小萍':self.vcn="aisxping" elif self.cb.get()=='可爱童声-许小宝':self.vcn="aisbabyxu" elif self.cb.get()=='亲切女声-小婧':self.vcn="aisjinger" print(self.vcn)
接下来我们来魔改讯飞自带的Python demo为从而更加方便的来使用最终一个语音合成系统就这样实现了。当前,各种云计算、云服务迅速发展,各大公司提供了丰富的资源,大大降低了人工智能开发的门槛,不需要懂语音合成的原理,竟然可以快速开发出一个语音合成工具出来!