10行Python代碼實現語音識別
來自專欄機器學習隨筆1 人贊了文章
語音識別技術就是讓機器通過識別和理解過程把語音信號轉變為相應的文本或命令的技術。在實際當中,語音識別技術有著廣泛的應用。本文向大家講解如何方便地調用百度AI開放平台提供的API方便地實現語音識別技術。
要調用百度AI開放平台的API,首先需要一個百度賬號。我想註冊百度賬號的過程應該不用向大家詳細介紹了,大家應該在這邊都是沒啥問題的。需要注意的是,百度賬號的安全性挺差的,不知為啥本人的賬號開通了異地登錄保護也經常被盜,貼吧賬號也因被人盜號發廣告被永封了,申訴也沒用_(|3」∠)_。建議大家把密碼設置的複雜一些,不要把保密的文件放在百度雲上,防止未來發生賬號安全事件。
在註冊了百度賬號後,需要登錄百度雲(注意不是百度雲盤)。在以下網址登錄:
百度雲-登錄
登錄並填寫個人信息後,可以看到這樣的控制台:
向下拉動頁面,可以看到「已開通服務」這一欄,選擇其中的「百度語音」:
這樣便進入了語音識別的應用列表。在控制台中,我們可以創建語音識別應用或對已有的應用進行管理。在這裡,我們點擊「創建應用」:
這裡的名稱、類型、介面選擇、描述可以根據自己的需要進行設置,語音報名如果只是在PC端調用,可以選擇「不需要。」
創建應用完成後,我們可以對應用進行管理。進入管理頁面,可以看到應用對應的 「AppID」、「API Key」與「Secret Key」,這些就是你的Python代碼調用百度雲介面的憑證。
創建了應用,我們便可以調用API實現語音識別了。相關的文檔在這個網址:
文檔中心--百度AI-百度AI-AI開放平台文檔中對於使用不同編程語言的調用方法做了詳細說明。在這裡,我們主要關注Python的實現方法。
使用Python調用該介面之前,需要安裝一個外部庫,即直接在終端或cmd窗口中輸入:
pip install baidu-aip
接下來進行進行客戶端的創建,在Python編輯器中輸入以下語句:
from aip import AipSpeech""" 你的 APPID AK SK """APP_ID = 你的 App IDAPI_KEY = 你的 Api KeySECRET_KEY = 你的 Secret Keyclient = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
其中,「AppID」、「API Key」與「Secret Key」都可以從我們剛剛創建的應用中得到。這幾行代碼便實現了一個可以與百度AI開放平台交互的客戶端。
接下來進行文件的讀取,這部分使用Python基礎的IO操作:
# 讀取文件def get_file_content(filePath): with open(filePath, rb) as fp: return fp.read()
接下來,便是驚心動魄的語音識別過程了:
# 識別本地文件result = client.asr(get_file_content(demo.wav), wav, 16000, {dev_pid: 1536, })print(result[result][0])
在這裡,我們提前錄製了一個語音文件「demo.wav」並放在當前Python文件的同一目錄下。client.asr(get_file_content(demo.wav), wav, 16000, {dev_pid: 1536, })這一行代碼實現了具體的語音識別過程,其中,get_file_content(demo.wav)表示「demo.wav」中的內容,wav表示文件類型,16000表示採樣率,{dev_pid: 1536, }表示識別類型為普通話。下面的print(result[result][0])可以實現識別結果的輸出。
所有的代碼展示如下:
from aip import AipSpeech""" 你的 APPID AK SK """APP_ID = 你的 App IDAPI_KEY = 你的 Api KeySECRET_KEY = 你的 Secret Keyclient = AipSpeech(APP_ID, API_KEY, SECRET_KEY)# 讀取文件def get_file_content(filePath): with open(filePath, rb) as fp: return fp.read()# 識別本地文件result = client.asr(get_file_content(demo.wav), wav, 16000, {dev_pid: 1536, })print(result[result][0])
除去注釋一共十行,可以說非常方便耐用了。百度雲提供的語音識別介面沒有調用量限制,可以永久不限量調用。但是這個API也有一些缺點,比如待識別的錄音需要上傳完整的錄音文件,並且錄音文件時長不超過60s;此外,對單個應用的每秒查詢率也有一定限制。但是,這一切都是免費的O(∩_∩)O。這麼好的擼大廠羊毛的機會,為什麼不來試試呢?
推薦閱讀:
※Multi-Label Classification
※關於卷積神經網路處理情感分類的一些論文
※從產品完整性的角度淺談chatbot
※2018.4.2論文推薦
※tensorflow用高級api實現文本分類初嘗試