百度語音合成
https://cloud.baidu.com/doc/SPEECH/s/Ik4nlz8l6
安裝百度語音Python SDK
pip install baidu-aip
AipSpeech是語音合成的Python SDK客戶端,爲使用語音合成的開發人員提供了一系列的交互方法。
初始化AipSpeech
from aip import AipSpeech
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
在上面代碼中,常量APP_ID
在百度雲控制檯中創建,常量API_KEY
與SECRET_KEY
是在創建完畢應用後,系統分配給用戶的,均爲字符串,用於標識用戶,爲訪問做簽名驗證,可在AI服務控制檯中的應用列表中查看。
配置AipSpeech
如果用戶需要配置AipSpeech的網絡請求參數(一般不需要配置),可以在構造AipSpeech之後調用接口設置參數,目前只支持以下參數:
接口 | 說明 |
---|---|
setConnectionTimeoutInMillis | 建立連接的超時時間(單位:毫秒 |
setSocketTimeoutInMillis | 通過打開的連接傳輸數據的超時時間(單位:毫秒) |
語音合成
- 合成文本長度必須小於1024字節,如果本文長度較長,可以採用多次請求的方式。文本長度不可超過限制
result = client.synthesis('培根芝士', 'zh', 1, {'spd':5,'vol': 5,'per':4})
# 識別正確返回語音二進制 錯誤則返回dict 參照下面錯誤碼
if not isinstance(result, dict):
with open('output.mp3', 'wb') as f:
f.write(result)
參數說明:
參數 | 類型 | 描述 | 是否必須 |
---|---|---|---|
tex | String | 合成的文本,使用UTF-8編碼, 請注意文本長度必須小於1024字節 |
是 |
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爲情感合成-度丫丫,默認爲普通女 |
否 |
返回樣例:
// 成功返回二進制文件流
// 失敗返回
{
"err_no":500,
"err_msg":"notsupport.",
"sn":"abcdefgh",
"idx":1
}
錯誤返回格式
若請求錯誤,服務器將返回的JSON文本包含以下參數:
- error_code:錯誤碼。
- error_msg:錯誤描述信息,幫助理解和解決發生的錯誤。
錯誤碼:
錯誤碼 | 含義 |
---|---|
500 | 不支持的輸入 |
501 | 輸入參數不正確 |
502 | token驗證失敗 |
503 | 合成後端錯誤 |