背景
一直对语音合成系统比较感兴趣,总想能给自己合成一点内容,比如说合成小说,把我下载的电子书播报给我听等等。
语音合成系统
其实就是一个基于语音合成的工具,但是这个东西由于很多厂家都提供了API的形式,因此开发难度大大降低,只需要调用几个API即可实现属于自己的语音合成工具;麻雀虽小,五脏俱全。往大了说,这就是一个小型的语音合成系统。
准备工作
首先我们电脑上需要安装
-
Anaconda
-
Python 3.7
-
visual studio code
步骤
这里我们选用讯飞开放平台的WebAPI接口。
https://www.xfyun.cn/doc/tts/online_tts/API.html
首先我们到控制台创建一个应用
创建好了之后,点击该应用进入,有该应用的详细栏目。
点击左侧的语音合成,再到下一级在线语音合成(流式版)
在右上侧,我们需要拿到3个东西:
-
APPID
-
APISecret
-
APIKey
代码实现
好了接下来进行代码实现了,首先安装我们需要的两个库。
pip install websocket-client
pip install playsound
接下来我们定义一个类play,包含4个函数
class play:
def __init__(self): #初始化函数
def play_sound(self):#播放音频函数
def select_vcn(self,*arg):#选择下拉框设置发音人
def xfyun_tts(self):#进行语音合成
在这里,大家需要填上刚才从讯飞开放平台控制台获取到的appid、appkey以及appsecret
def __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) #下