科大訊飛語音合成api


import base64
import json
import time
import hashlib
import requests

# API請求地址、API KEY、APP ID等參數,提前填好備用
api_url = "http://api.xfyun.cn/v1/service/v1/tts"
API_KEY = ""
APP_ID = ""
OUTPUT_FILE = "output.mp3" # 輸出音頻的保存路徑,請根據自己的情況替換
TEXT = ""

# 構造輸出音頻配置參數
Param = {
"auf": "audio/L16;rate=16000", #音頻采樣率
"aue": "lame", #音頻編碼,raw(生成wav)或lame(生成mp3)
"voice_name": "x_xiaokun",
"speed": "40", #語速[0,100]
"volume": "77", #音量[0,100]
"pitch": "50", #音高[0,100]
"engine_type": "intp65" #引擎類型。aisound(普通效果),intp65(中文),intp65_en(英文)
}
# 配置參數編碼為base64字符串,過程:字典→明文字符串→utf8編碼→base64(bytes)→base64字符串
Param_str = json.dumps(Param) #得到明文字符串
Param_utf8 = Param_str.encode('utf8') #得到utf8編碼(bytes類型)
Param_b64 = base64.b64encode(Param_utf8) #得到base64編碼(bytes類型)
Param_b64str = Param_b64.decode('utf8') #得到base64字符串

# 構造HTTP請求的頭部
time_now = str(int(time.time()))
checksum = (API_KEY + time_now + Param_b64str).encode('utf8')
checksum_md5 = hashlib.md5(checksum).hexdigest()
header = {
"X-Appid": APP_ID,
"X-CurTime": time_now,
"X-Param": Param_b64str,
"X-CheckSum": checksum_md5
}

# 發送HTTP POST請求
def getBody(text):
data = {'text':text}
return data
response = requests.post(api_url, data=getBody(TEXT), headers=header)

# 讀取結果
response_head = response.headers['Content-Type']
if(response_head == "audio/mpeg"):
out_file = open(OUTPUT_FILE, 'wb')
data = response.content # a 'bytes' object
out_file.write(data)
out_file.close()
print('輸出文件: ' + OUTPUT_FILE)
else:
print(response.text)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM