最近看到一個開源項目,特地學習了下,實測後,語音識別系統的正確率大概75%左右,作為學習入門的資料還是不錯的,項目已上傳到github上,不過數據集和生成的模型由於文件太大,上傳失敗,隨後存在百度網盤,自行下載哈,普通電腦真傷,跑了三天,還是gpu快點。
查看本項目的Wiki文檔
如果程序運行期間或使用中有什麼問題,可以及時在issue中提出來,我將盡快做出答覆。
提問前可以先 查看常見問題 避免重複提問
ASRT的原理請查看本文:
ASRT:一箇中文語音識別系統
關於經常被問到的統計語言模型原理的問題,請看:
- 統計語言模型:從中文拼音到文本
- 無需中文分詞算法的簡單詞頻統計
Introduction 簡介
本項目使用Keras、TensorFlow基於深度卷積神經網絡和長短時記憶神經網絡、注意力機制以及CTC實現。
This project uses Keras, TensorFlow based on deep convolutional neural network and long-short memory neural network, attention mechanism and CTC to implement.
- 操作步驟
首先通過Git將本項目克隆到您的計算機上,然後下載本項目訓練所需要的數據集,下載鏈接詳見文檔末尾部分。
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
或者您也可以通過 "Fork" 按鈕,將本項目Copy一份副本,然後通過您自己的SSH密鑰克隆到本地。
通過git克隆倉庫以後,進入項目根目錄;並創建子目錄 dataset/ (可使用軟鏈接代替),然後將下載好的數據集直接解壓進去
注意,當前版本中,Thchs30和ST-CMDS兩個數據集都必須下載使用,缺一不可,並且使用其他數據集需要修改代碼。
$ cd ASRT_SpeechRecognition
$ mkdir dataset
$ tar zxf <數據集壓縮文件名> -C dataset/
然後需要將datalist目錄下的文件全部拷貝到 dataset/ 目錄下,也就是將其跟數據集放在一起。
$ cp -rf datalist/* dataset/
目前可用的模型有24、25和251
運行本項目之前,請安裝必要的Python3版依賴庫
本項目開始訓練請執行:
$ python3 train_mspeech.py
本項目開始測試請執行:
$ python3 test_mspeech.py
測試之前,請確保代碼中填寫的模型文件路徑存在。
ASRT API服務器啓動請執行:
$ python3 asrserver.py
請注意,開啓API服務器之後,需要使用本ASRT項目對應的客户端軟件來進行語音識別,詳見Wiki文檔ASRT客户端Demo。
如果要訓練和使用模型251,請在代碼中 import SpeechModel 的相應位置做修改。
Model 模型
Speech Model 語音模型
CNN + LSTM/GRU + CTC
其中,輸入的音頻的最大時間長度為16秒,輸出為對應的漢語拼音序列
- 關於下載已經訓練好的模型的問題
可以在Github本倉庫下releases裏面的查看發佈的各個版本軟件的壓縮包裏獲得包含已經訓練好模型參數的完整源程序。
Language Model 語言模型
基於概率圖的最大熵隱馬爾可夫模型
輸入為漢語拼音序列,輸出為對應的漢字文本
About Accuracy 關於準確率
當前,最好的模型在測試集上基本能達到80%的漢語拼音正確率
不過由於目前國際和國內的部分團隊能做到98%,所以正確率仍有待於進一步提高
Python Import
Python的依賴庫
- python_speech_features
- TensorFlow
- Keras
- Numpy
- wave
- matplotlib
- math
- Scipy
- h5py
- http
- urllib
Data Sets 數據集
- 清華大學THCHS30中文語音數據集data_thchs30.tgz OpenSLR國內鏡像 OpenSLR國外鏡像test-noise.tgz OpenSLR國內鏡像 OpenSLR國外鏡像resource.tgz OpenSLR國內鏡像 OpenSLR國外鏡像
- Free ST Chinese Mandarin CorpusST-CMDS-20170001_1-OS.tar.gz OpenSLR國內鏡像 OpenSLR國外鏡像
- AIShell-1 開源版數據集data_aishell.tgz OpenSLR國內鏡像OpenSLR國外鏡像注:數據集解壓方法
$ tar xzf data_aishell.tgz
$ cd data_aishell/wav
$ for tar in *.tar.gz; do tar xvf $tar; done
- Primewords Chinese Corpus Set 1primewords_md_2018_set1.tar.gz OpenSLR國內鏡像 OpenSLR國外鏡像
- *** ***
- MagicDatatrain_set.tar.gz OpenSLR國內鏡像 OpenSLR國外鏡像dev_set.tar.gz OpenSLR國內鏡像 OpenSLR國外鏡像test_set.tar.gz OpenSLR國內鏡像 OpenSLR國外鏡像metadata.tar.gz OpenSLR國內鏡像 OpenSLR國外鏡像
特別鳴謝!感謝前輩們的公開語音數據集
如果提供的數據集鏈接無法打開和下載,請點擊該鏈接 OpenSLR
測試了一段語音:“我們羣裏兄弟姐妹都在説”,整體還行,實際應用還存在差距!!!