使用 python版本:
➜ python3 -V
Python 3.6.4
测试平台:
ArchLinux
Source code:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from aip import AipSpeech
import subprocess,time,tempfile
class BaiduTTS():
def __init__(self):
""" 你的 APPID AK SK """
self.APP_ID = '此处填入个人 ID'
self.API_KEY = '此处填入个人 KEY'
self.SECRET_KEY = '此处填入个人 SECRET KEY'
self.client = AipSpeech(self.APP_ID, self.API_KEY, self.SECRET_KEY)
def send_request(self,words):
result = self.client.synthesis(words, 'zh', 1, {'vol' : 5, 'per' : 4} )
if not isinstance(result, dict):
with tempfile.NamedTemporaryFile(suffix='.mp3',delete=False) as f:
f.write(result)
tmpfile = f.name
return tmpfile
def say(self,words):
tmpfile = self.send_request(words)
#time.sleep(0.5)
subprocess.call("play -q %s"%tmpfile,shell=True)
if __name__=='__main__':
b = BaiduTTS()
b.say('我们去打羽毛球吧!')
获得文件:
$ cd /tmp;ls
tmpuew_6sy9.mp3
$ file tmpuew_6sy9.mp3
tmpuew_6sy9.mp3: MPEG ADTS, layer III, v2, 16 kbps, 16 kHz, Monaural
语音合成方法:
synthesis(self, text, lang='zh', ctp=1, options=None)
参数说明:
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
text | String | 合成的文本,使用UTF-8编码,请注意文本长度必须小于1024字节 | 是 |
lang | String | 语言选择,填写zh | 是 |
ctp | String | 客户端类型选择,web端填写1 | 是 |
cuid | String | 用户唯一标识,用来区分用户,填写机器 MAC 地址或 IMEI 码,长度为60以内 | 否 |
spd | String | 语速,取值0-9,默认为5中语速 | 否 |
pit | String | 音调,取值0-9,默认为5中语调 | 否 |
vol | String | 音量,取值0-15,默认为5中音量 | 否 |
per | String | 发音人选择, 0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为 0 普通女声 | 否 |
网友评论