點擊上方Python知識圈,選擇設爲星標
回覆1024獲取Python資料
閱讀文本大概需要 5 分鐘。
作者 | pk 哥
來源公衆號 | Python知識圈(ID:PythonCircle)
國慶節回家時,看到有些長輩看新聞用的是 APP 的語音功能,現在很多新聞類 APP 也有文字轉換爲語音的功能,雖然聽起來很彆扭,但是基本能解決長輩們看不清文字或者眼睛疲勞,通過文字轉換爲語音來獲取信息。
我們用 Python 能否實現文字轉語音呢,可以的,百度有個語音接口,可以在 Python 中直接調用,甚至提供了多種聲音選擇,當然可以選擇萌妹子的聲音。
安裝百度接口
通過 pip 命令直接安裝( -i 後面是豆瓣的鏡像,這樣下載安裝速度更快)
pip3 install baidu-aip -i https://pypi.douban.com/simple/
創建應用
百度語音合成地址如下:
https://ai.baidu.com/tech/speech/tts
點擊立即使用,沒有登錄的會要求先登錄,用自己的百度的賬號登錄就可以,沒有百度賬號的新註冊一個。
登錄後進入應用頁面,語音識別包括:輸入法、搜索、英語、粵語、四川話、遠揚,還有語音合成等庫。我們可以看到,大部分 API 的調用次數免費且無限制的。
我們創建一個應用,勾選需要的接口權限,我的要求比較簡單,只是簡單的文字轉語音,所以勾選的接口也比較少。當然,這個接口還可以做人臉識別、圖像識別、自然語言處理等,大家按需選擇。
創建完成後,我們在應用列表可以看到應用的三個重要的值:AppID、API Key、Secret Key,這三個值等下調用接口時會用到。
在文檔中心,我們來看看基本的上傳參數。
代碼調試
根據接口文檔,我們寫個簡單的代碼,能夠調通接口就行。
我們需要填入你創建應用的 APP_ID、API_KEY 和 SECRET_KEY 的值。
其中,per 的值表示男女聲的,0 和 1 是普通的女聲和男聲,聽起來有點彆扭,3 和 4 是帶有感情的,明顯比 0 和 1 有感情,大家可以試試。
from aip import AipSpeech
APP_ID = '輸入你的APP_ID'
API_KEY = '輸入你的API_KEY'
SECRET_KEY = '輸入你的SECRET_KEY'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 中文:zh 粵語:ct 英文:en
result = client.synthesis('哈哈哈哈', 'zh', 1, {
'vol': 5, 'per': 4
})
# 識別正確返回語音二進制 錯誤則返回dict 參照下面錯誤碼
if not isinstance(result, dict):
with open('audio.mp3', 'wb') as f:
f.write(result)
執行代碼後,同級目錄下就會生成一個 audio.mp3 的文件。
秒變撒嬌萌妹
我們加入金山詞霸的接口,每天返回優美的英文和中文翻譯的語句,我們讓度丫丫把她讀出來,讓聲音秒變撒嬌萌妹。
金山詞霸的接口很簡單,直接 requests 調用,返回的 json 格式語句,我們返回英語語句和中文語句。
def get_msg():
url = 'http://open.iciba.com/dsapi/' # 金山詞霸每日一句 api 鏈接
html = requests.get(url)
content = html.json()['content'] # 獲取每日一句英文語句
note = html.json()['note'] # 獲取每日一句英文的翻譯語句
return content, note
給出 APP_ID、API_KEY 和 SECRET_KEY 的值。
下面的步驟和上面一樣,只是把上面固定的文本換成接口返回的金山詞霸的語句而已。
我們打開文件,還能聽出一些撒嬌聲,不信?你打開聽聽!
我發文章的時候,金山詞霸返回的中文語錄是:事情很少是不可能的;人們之所以不成功,與其說是條件不夠,不如說是決心不夠。
接下來,就可以把這個撒嬌萌妹的音頻 發微信給朋友 或者免費發短信給朋友 都可以,之前講過,這裏就不再囉嗦了。
公衆號「Pythpn知識圈」回覆「說話」獲取本文源碼。
留言打卡 DAY 34
今日的留言話題是:說說昨天的雙十一都剁手買了什麼東西?關於留言打卡的規則可以參考 留言打卡送福利(點擊鏈接查看詳細打卡規則),請按照 暱稱+天數(請以自己實際打卡的天數爲準,如day1 or day2 or day3)+ 留言內容(不少於15字)的方式留言。
覺得不錯
右下角
點個在看