絕佳的ASR學習方案:這是一套開源的中文語音識別系統
ASRT 是一套基於深度學習實現的系統,全稱為 Auto Speech Recognition Tool,由 AI 檸檬博主開發並在 GitHub 上開源(GPL 3.0 協議)。本專案聲學模型通過採用(CNN)和連線性時序分類(CTC)方法,使用大量中文語音資料集進行訓練,將聲音轉錄為中文拼音,並通過,將拼音序列轉換為中文文字。基於該模型,作者在 Windows 平臺上實現了一個基於 ASRT 的語音識別應用軟體它同樣也在 GitHub 上開源了。
-
ASRT 專案主頁:https://asrt.ailemon.me
-
GitHub 專案地址:https://github.com/nl8590687/ASRT_SpeechRecognition
這個開源專案主要用於語音識別的研究,作者希望它可以一步步發展為極高準確率的 ASR 系統。此外,因為模型和訓練程式碼都是開源的,所以能節省開發者很多時間。同樣,如果開發者想要根據需求修改這個專案,那也非常簡單,因為 ASRT 的程式碼都是經過高度封裝的,所有模組都是可以自定義的。如下展示了該專案的一些特徵:
系統流程
特徵提取:將普通的 wav 語音訊號通過分幀加窗等操作轉換為神經網路需要的二維頻譜影象訊號,即語譜圖。
聲學模型:基於 Keras 和TensorFlow框架,使用這種參考了VGG的深層的 卷積神經網路 作為網路模型,並訓練。
CTC 解碼:在語音識別系統的聲學模型輸出中,往往包含了大量連續重複的符號,因此,我們需要將連續相同的符號合併為同一個符號,然後再去除靜音分隔標記符,得到最終實際的語音拼音符號序列。
語言模型:使用統計語言模型,將拼音轉換為最終的識別文字並輸出。拼音轉文字本質被建模為一條隱含馬爾可夫鏈,這種模型有著很高的準確率。
使用流程
如果讀者希望直接使用預訓練的中文語音識別系統,那麼直接下載 Release 的檔案並執行就好了:
下載地址:https://github.com/nl8590687/ASRT_SpeechRecognition/releases/tag/v0.4.2
如果讀者希望修改某些模組,或者在新的資料集上進行訓練,那麼我們可以複製整個專案到本地,再做進一步處理。首先我們通過 Git 將本專案複製到本地,並下載訓練所需要的資料集。作者在專案 README 檔案中提供了兩個資料集,即清華大學 THCHS30 中文語音資料集和 AIShell-1 開源版資料集。
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
THCHS30 和 ST-CMDS 國內下載映象:http://cn-mirror.openslr.org/
在下載資料集後,我們需要將 datalist 目錄下的所有檔案複製到 dataset 目錄下,也就是將其與資料集放在一起:
$ cp -rf datalist/* dataset/
在開始訓練前,我們還需要安裝一些依賴庫:
-
python_speech_features
-
TensorFlow
-
Keras
-
wave
當然,其它如 NumPy、Matplotlib、Scipy 和 h5py 等常見的科學計算庫也都是需要的。一般有這些包後,環境應該是沒什麼問題的,有問題也可以根據報錯安裝對應缺少的庫。
訓練模型可以執行命令列:
$ python3 train_mspeech.py
測試模型效果可以執行:
$ python3 test_mspeech.py
測試之前,請確保程式碼中填寫的模型檔案路徑存在。最後,更多的用法和特點可以檢視原 GitHub 專案和文件。