摘要:使用百度的語音合成,首先需要在百度的開放平臺上注冊。百度語音的獲取方式如下為官網獲取的,為官網獲取的天過期注意,是有有效期的,需要定時獲取新的。
今天來說一下在python中如何使用百度的語音合成功能;即輸入一段文字,請求百度相關服務器后,會返回來一段二進制語音流,將這段二進制數據經過base64編碼返回給前端,前端解碼后,可以播放出這段語音;也可以將這段二進制語音流保存到一個wav文件中。
使用百度的語音合成,首先需要在百度的ai開放平臺上注冊。
具體代碼如下:
import asyncio from aiohttp import ClientSession def get_baidu_voice(text, baidu_voice_token): content_audio = { "tex": text, "tok": baidu_voice_token, "cuid": "default", "ctp": "1", "lan": "zh", "per": "4", } speech_url = "https://tsn.baidu.com/text2audio?" headers = { # "Content-Type": "audio/mp3" "Content-Type": "application/json" } async with ClientSession() as session: async with session.post(url=speech_url, data=content_audio, headers=headers) as res: ret = await res.content.read() try: # 將bytes類型轉換為str類型 ret_str = str(ret, encoding="utf-8") except Exception as e: # 正常返回 self.speech = base64.b64encode(ret) else: # 異常返回 ret_dict = json.loads(ret_str) if ret_dict["err_no"] == 502: raise RuntimeError("access token expired, please check") elif ret_dict["err_no"] == 501: raise RuntimeError("the input arguments is incorrect, please check") elif ret_dict["err_no"] == 503: raise RuntimeError("合成后端出錯") elif ret_dict["err_no"] == 500: raise RuntimeError("unsupport input")
需要傳入兩個參數,分別是:需要轉換成語音的文本和百度的語音token。
百度語音token的獲取方式如下:
def get_baidu_voice_token(): # client_id 為官網獲取的AK, client_secret 為官網獲取的SK host = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id="+ client_id + "&client_secret=" + client_secret request = urllib.request.Request(host) request.add_header("Content-Type", "application/json; charset=UTF-8") response = urllib.request.urlopen(request) content_bytes = response.read() content_dict = json.loads(str(content_bytes, encoding="utf-8")) if content_dict: # 28天過期 return content_dict["access_token"]
注意,token是有有效期的,需要定時獲取新的token。
以上就是百度語音合成的調用,如有錯誤,歡迎交流指正!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42494.html
摘要:為百度語音資源,聲音文件,它為一個必須文件,中英文資源。使用集成常見問題百度語音文檔中心百度語音的集成一行代碼簡單調用百度語音合成使用原生自帶的語音合成 語音交互是現今應用最多的智能交互方式,在人工智能越來越火的當下應用十分廣泛,所以特別針對車內環境,在駕駛員安心駕駛的時候,用語音可以安全的進行操控。恰好新版項目中要加入語音播報功能,因為我們的應用和司機有關,于是在網上搜索一些解決方案...
摘要:所以這次總結一下在中使用訊飛進行語音合成的過程。最后需要將配置參數編碼為字符串字典類型明文字符串編碼字符串,具體實現可以參考代碼。返回值的具體說明請參考返回值語音合成。 前幾日訊飛開放平臺推出了WebAPI接口,恰好最近需要實現一個文字轉語音的功能,于是就嘗試著用了起來。但不知什么原因,官方文檔的調用示例一直報錯,最后自己照著示例的思路用python3重寫了一遍。所以這次總結一下在Py...
閱讀 3408·2021-09-22 16:00
閱讀 3452·2021-09-07 10:26
閱讀 2989·2019-08-30 15:55
閱讀 2858·2019-08-30 13:48
閱讀 1366·2019-08-30 12:58
閱讀 2162·2019-08-30 11:15
閱讀 945·2019-08-30 11:08
閱讀 525·2019-08-29 18:41