百度语音合成模块

使用 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 普通女声

你可能感兴趣的:(百度语音合成模块)