對于語音識別初學者來說,通過簡單案例快速上手,不僅能夠快速了解語音識別等實際應用模式,對枯燥無味的學習中提升興趣值也大有幫助。百度語音提供了語音識別、語音合成和語音喚醒等產(chǎn)品的SDK免費資源,是面向廣大開發(fā)者永久免費的開放語音技術(shù)平臺,且簡單易用,可以作為學習之余練手的好去處。
本文以在線語音識別為例,基于Python開發(fā)環(huán)境,嘗試介紹一下如何使用百度語音識別資源。
進入百度語音(http://yuyin.baidu.com/)頁面,首先注冊百度語音賬號,或者用百度賬號登錄,進入系統(tǒng)后,點擊右上角“應用管理”,填入相關(guān)信息,注冊成為百度開發(fā)者。
同樣點擊“應用管理”頁面,進入后點擊“創(chuàng)建新應用”,可以理解為新建了一個自己的工程Project,創(chuàng)建過程中的信息可以按需填寫,影響不大。
創(chuàng)建完成后有一個叫“查看key”的按鈕,這個key中包含了App ID、API Key、Secret Key幾個關(guān)鍵信息,這些信息就像是該應用的身份證,是與百度語音云端交互的唯一身份標識,用txt文件記下,后面Python代碼調(diào)用時需要用到。
點擊應用卡片上的“開通服務”,選擇該應用的服務,我們這里做語音識別就選擇“語音識別”, “語音識別” 服務開通成功后即可獲得 50000次/日 的在線識別調(diào)用配額(有一種地上撿到錢的趕腳)。
服務開通過程中,會跳出SDK包的下載通道,可以現(xiàn)在下載SDK包,也可以到“SDK下載”頁面中,在語音識別服務的“RestApi SDK下載”中,選擇相應語言版本的SDK包進行下載,我們這里基于Python語言,因此下載Python的SDK包,目前版本是“aip-python-sdk-2.0.0”,包里提供了setup.py文件,可在python環(huán)境下,cd到該文件夾下用python setup.py install進行安裝(官網(wǎng)也提供了pip安裝方式,但不知什么原因pip找不到)。
目前,百度語音識別支持pcm、wav、amr三種語音文件格式(實際wav和amr都會在云端被轉(zhuǎn)換成pcm),錄音文件時長不超過60s,文件大小不超過10MB??芍С值恼Z言包括普通話、英語、粵語、四川話。
我們可以自己錄制一段語音,利用format factory等軟件轉(zhuǎn)成上述三種文件格式,但后面測試效果不是太好,會報錯提示語音質(zhì)量不高,這點可能是百度語音需要持續(xù)改進的地方。為了快速滿足好奇心,可利用官方提供的測試文件,具體下載位置為http://ai.baidu.com/docs#/ASR-API/top,在其中找到“16k采樣率pcm文件樣例下載”、“16k 采樣率wav文件樣例下載”、“ 16k采樣率amr文件樣例下載”進行下載。
到這里,所有準備工作就完了,下面進入正題,python代碼編寫階段。在“SDK下載”頁面中,雖然提供了“語音REST API示例代碼”,但里面目前只提供了bash-shell、java、linux-c、php等語言的代碼,并沒有提供python代碼。
(1)新建AipSpeech
AipSpeech是語音識別的Python SDK客戶端,為使用語音識別的開發(fā)人員提供了一系列的交互方法,這里選擇默認配置即可。實現(xiàn)代碼如下:
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)
這里,步驟2中的“查看key”就派上用場了。
(2)語音識別
語音識別的工作邏輯非常簡單,從本地讀取待識別語音樣本數(shù)據(jù)后上傳到云端服務器,聲學模型和語言模型都架在云端(這是語音識別的核心競爭力),分析后將結(jié)果返回到本地。實現(xiàn)代碼如下:
# 讀取文件
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
# 識別本地文件
client.asr(get_file_content(' 16k.pcm'), 'pcm', 16000, {
'dev_pid': '1536',})
其中,client.asr()函數(shù)第一位是文件地址,我們用的樣本是“16k采樣率pcm文件樣例下載”的樣本;第二位是樣本文件格式;第三位是樣本文件采樣率;第四位是樣本文件的語言類型,這里是普通話。
(3)返回結(jié)果
{'corpus_no': '6553433148693781449',
'err_msg': 'success.',
'err_no': 0,
'result': ['北京科技館,'],
'sn': '44754269321525840058'}
運行結(jié)束,返回識別結(jié)果“北京科技館”,存儲在result變量中。
以上就是在線語音識別的案例,希望通過這篇的闡述,能夠給大家一個直接的練手案例,節(jié)省大家尋找案例的時間。同時,百度語音還有其它很多案例可用,如果想快速成為一個語音技術(shù)開發(fā)工程師,可以嘗試花一點時間跑一跑程序,快速入門。