ttsインタフェース

3267 ワード

音声合成言い訳
1 URL
プロトコル
URL
方法
HTTPS
http://ip:8090/synthesis
POST
2 HTTP Header
名前
を選択します.
需要
説明
Content-type
String
必須
‘application/json’
Accept
String
必須
認識結果はフォーマットを返し、「text/json」のみをサポートします.
3入力パラメータ
名前
を選択します.
需要
説明
text
String
必須
エンコードフォーマットはutf-8でなければなりません
4結果を返す
名前
を選択します.
説明
success
String
合成が成功したかどうか、True/False
message
String
message
data
String
合成オーディオファイルのbase 64符号化文字列
5 demo
  • 実行環境:python 2.7
  • from __future__ import unicode_literals
    import httplib
    import json
    import base64
    
    class SynthesisAPI():
        def __init__(self):
            self.url = 'http://ip:8090/synthesis'
            self.headers = {"Content-type": "application/json", "Accept": "text/json"}
            self.conn = httplib.HTTPConnection('ip:8090')
    
        def Synthesis(self, text):
            '''
            :param text:       type:unincode
            :return: 
            '''
            # p = {"voice_type": voice_type, "text": text}
            p = {"text": text}
            params = json.dumps(p)
            self.conn.request('POST', self.url, params, self.headers)
            response = self.conn.getresponse()
            json_data = response.read()
    
            json_data = json.loads(json_data)
            print(bytes(json_data['data']))
            with open('./audio_result.wav', 'wb') as f:   #./audio_result.wav :        
                f.write(base64.b64decode(bytes(json_data['data'])))
            return json_data
    
    if __name__ == '__main__':
        syn = SynthesisAPI()
        #      :{'success': True, 'message': u'    ', 'data': md5(request.json['speakerid']+request.json['text'])}
        print(syn.Synthesis('2 30 '))