Spaces:
Build error
Build error
| # -*- coding: UTF-8 -*- | |
| # Python 2.x引入httplib模块。 | |
| # import httplib | |
| # Python 3.x引入http.client模块。 | |
| import http.client | |
| # Python 2.x引入urllib模块。 | |
| # import urllib | |
| # Python 3.x引入urllib.parse模块。 | |
| import urllib.parse | |
| import json | |
| def processGETRequest(appKey, token, text, audioSaveFile, format, sampleRate): | |
| host = 'nls-gateway-cn-shanghai.aliyuncs.com' | |
| url = 'https://' + host + '/stream/v1/tts' | |
| # 设置URL请求参数 | |
| url = url + '?appkey=' + appKey | |
| url = url + '&token=' + token | |
| url = url + '&text=' + text | |
| url = url + '&format=' + format | |
| url = url + '&sample_rate=' + str(sampleRate) | |
| # voice 发音人,可选,默认是xiaoyun。 | |
| # url = url + '&voice=' + 'xiaoyun' | |
| # volume 音量,范围是0~100,可选,默认50。 | |
| # url = url + '&volume=' + str(50) | |
| # speech_rate 语速,范围是-500~500,可选,默认是0。 | |
| # url = url + '&speech_rate=' + str(0) | |
| # pitch_rate 语调,范围是-500~500,可选,默认是0。 | |
| # url = url + '&pitch_rate=' + str(0) | |
| # print(url) | |
| # Python 2.x请使用httplib。 | |
| # conn = httplib.HTTPSConnection(host) | |
| # Python 3.x请使用http.client。 | |
| conn = http.client.HTTPSConnection(host) | |
| conn.request(method='GET', url=url) | |
| # 处理服务端返回的响应。 | |
| response = conn.getresponse() | |
| # print('Response status and response reason:') | |
| # print(response.status, response.reason) | |
| contentType = response.getheader('Content-Type') | |
| # print(contentType) | |
| body = response.read() | |
| if 'audio/mpeg' == contentType: | |
| with open(audioSaveFile, mode='wb') as f: | |
| f.write(body) | |
| print('The GET request succeed!') | |
| else: | |
| print('The GET request failed: ' + str(body)) | |
| conn.close() | |
| def processPOSTRequest(appKey, token, text, audioSaveFile, format, sampleRate): | |
| host = 'nls-gateway-cn-shanghai.aliyuncs.com' | |
| url = 'https://' + host + '/stream/v1/tts' | |
| # 设置HTTPS Headers。 | |
| httpHeaders = { | |
| 'Content-Type': 'application/json' | |
| } | |
| # 设置HTTPS Body。 | |
| body = {'appkey': appKey, 'token': token, 'text': text, 'format': format, 'sample_rate': sampleRate} | |
| body = json.dumps(body) | |
| print('The POST request body content: ' + body) | |
| # Python 2.x请使用httplib。 | |
| # conn = httplib.HTTPSConnection(host) | |
| # Python 3.x请使用http.client。 | |
| conn = http.client.HTTPSConnection(host) | |
| conn.request(method='POST', url=url, body=body, headers=httpHeaders) | |
| # 处理服务端返回的响应。 | |
| response = conn.getresponse() | |
| print('Response status and response reason:') | |
| print(response.status, response.reason) | |
| contentType = response.getheader('Content-Type') | |
| print(contentType) | |
| body = response.read() | |
| if 'audio/mpeg' == contentType: | |
| with open(audioSaveFile, mode='wb') as f: | |
| f.write(body) | |
| print('The POST request succeed!') | |
| else: | |
| print('The POST request failed: ' + str(body)) | |
| conn.close() | |
| # appKey = '您的appkey' | |
| # token = '您的token' | |
| # token = "f9e6939d959b47e7ac97cab755560edd" | |
| # appKey = "YdRfHrZVeusHKfv6" | |
| # text = '我是A i Vtuber,很高兴认识你,你有什么开心的事情嘛。' | |
| # 采用RFC 3986规范进行urlencode编码。 | |
| # textUrlencode = text | |
| # Python 2.x请使用urllib.quote。 | |
| # textUrlencode = urllib.quote(textUrlencode, '') | |
| # Python 3.x请使用urllib.parse.quote_plus。 | |
| # textUrlencode = urllib.parse.quote_plus(textUrlencode) | |
| # textUrlencode = textUrlencode.replace("+", "%20") | |
| # textUrlencode = textUrlencode.replace("*", "%2A") | |
| # textUrlencode = textUrlencode.replace("%7E", "~") | |
| # print('text: ' + textUrlencode) | |
| # audioSaveFile = 'syAudios.wav' | |
| # format = 'wav' | |
| # sampleRate = 16000 | |
| # GET请求方式 | |
| # processGETRequest(appKey, token, textUrlencode, audioSaveFile, format, sampleRate) | |
| # POST请求方式 | |
| # processPOSTRequest(appKey, token, text, audioSaveFile, format, sampleRate) | |
| # if __name__ == '__main__': | |
| # appKey = "" | |