[應用] 中文語音合成+語音辨識 以百度的AI開放平台 in Python 開發
語音技術介紹 語音合成 (Text-To-Speech) 和語音辨識 (Speech Recognition) 的技術存在數十年,不過近年來將這語音的技術應用在蘋果的Siri和亞馬遜的echo設備裡。對開發者而言,語音技術最麻煩的是各種語言、不特定人的字庫辭庫訓練,光要建立這龐大且精準的訓練庫就不是短時間能完成的。最近,發現百度(Baidu)提供 中文 語音合成和語音辨識的服務,網站如下: AI開放平台 ,裡面不只有語音技術服務,還有其他技術。調用百度各項技術的SDK,建立網路連結後,連上AI開放平台,便能取得合成的結果或者辨識的結果。另外,SDK也有提供各種程式語法的範例,如:Java、C++、C#、Python、Node.js ... 等等,以滿足各類程式開發者的需求。底下我以Python語法為例,開發一個中文語音合成+語音辨識的測試程式。 合成技術的開發 在語音合成的過程,我們輸入中文字,如果調用成功,百度平台會返回一個語音binary,這時我們再儲存成wave file或者mp3格式,然後撥放這個音檔。語音辨識的使用正好相反,我們必須提供一個wave file傳給百度平台,如果成功,它會返回辨識的結果。因此,在python開發時,我們需要能錄音和播放音檔的模組,稱為pyaudio,安裝這個模組的方式如下圖所示。安裝後,還需要安裝百度的模組,透過 pip 方式安裝,"pip install baidu-aip"。 圖一:安裝 pyaudio 模組 使用百度的開放平台之前,需要註冊一個百度帳號,然後在這帳號裡創建一個應用,如圖二所示,在這應用裡面我們可自行選擇想要載入的技術。下圖的MySpeechTest是我所創建的一個語音應用,這個應用選用了百度的語音合成和語音識別。一旦創建,在這個欄位上會出現三個參數:AppID、API Key和Secret Key數值,之後調用SDK,我們需要使用這三個參數。 圖二:註冊一個百度的應用連結 圖三是以python語法所開發的語音合成和語音識別,圖的右半邊為python源代碼,圖的左半邊為合成與測試辨識的結果,我分別將上傳百度並取得合成音檔所花費的時間記錄下來,還有上傳音檔並且辨識過程需要花多少