ASRT是一個中文語音識別系統,由AI檸檬博主開源在GitHub( https://github.com/nl8590687/ASRT_SpeechRecognition)上,為了便於大家使用,本文將手把手按順序教你如何使用ASRT語音識別系統訓練一個中文語音識別模型。
首先到GitHub上打開ASRT語音識別項目倉庫:https://github.com/nl8590687/ASRT_SpeechRecognition國內Gitee鏡像地址:https://gitee.com/ailemon/ASRT_SpeechRecognition1 下載原始碼以下方式二選一即可,GitHub和Gitee上操作類似。1.1 使用Git命令克隆代碼按照圖中的順序點擊滑鼠,然後打開系統的終端(Windows稱為CMD命令行或PowerShell),通過cd命令(Linux、MacOS終端或Win系統PowerShell)或「<盤符>:\」(Windows CMD命令行)然後進入自己指定存放代碼的路徑下,然後在終端輸入(連結可以直接粘貼進去):$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git稍等片刻,最新的原始碼就克隆(下載)完畢了。這種方式的優勢是,之後如果GitHub倉庫上的代碼有更新,只需要使用git pull 命令即可立即同步到您的計算機上。1.2 瀏覽器直接下載下載完成後,需要進行解壓。之後,如果GitHub倉庫上如果代碼有更新,重複上述步驟即可。2 安裝運行環境首先請確保安裝好Python 3.6或者Python 3.7軟體,或者Anaconda 並創建好3.6或3.7版本的虛擬環境。本項目不支持python2.7版本,請使用python3.6及以上版本。如果pip命令對應的是python 2.7版本請將下述的pip命令替換為pip3命令。
$ pip install python_speech_features$ pip install tensorflow-gpu==1.14.0$ pip install keras==2.3.1$ pip install wave$ pip install matplotlib$ pip install requests其中,TensorFlow版本和Keras版本可根據實際情況靈活調整,以上為一個可在CUDA 10.0、cudnn 7.6.4環境下用的安裝操作步驟。3 下載並解壓語音數據集點擊連結 https://github.com/nl8590687/ASRT_SpeechRecognition#data-sets-%E6%95%B0%E6%8D%AE%E9%9B%86 即可跳轉到一些語音數據集的下載連結頁面,點擊下載清華大學THCHS30數據集和ST-CMDS數據集(都要下載)。推薦使用國內鏡像下載,如果該連結無法正常下載,或者您身處中國大陸以外的地區,可點擊國外鏡像下載。
下載後,解壓兩個數據集,並移動解壓後的目錄到下載的ASRT代碼的文件夾目錄下的dataset目錄下(如果不存在就創建一個名為」dataset」的文件夾目錄),並將datalist文件夾目錄下的所有內容複製到dataset下。推薦使用其他路徑存放數據,比如在Windows系統上,假設代碼放在「D:\ASRT_SpeechRecognition\」 下,數據集可以放在另外一塊數據盤中的「E:\語音數據集\」 下。在Linux系統上,可以將數據盤掛載到「/data」下,並使用ln -s 創建軟連結到dataset目錄。
注意在Windows系統上使用WinRAR選擇「解壓到XXX(壓縮包名)」時會在解壓後多一級額外的數據集文件目錄,例如「data_thchs30/data_thchs30/xxxx」,請去除多餘的目錄層級。只保留為「data_thchs30/xxxx」即可。
$ tar zxfdata_thchs30.tgz$ tar zxf ST-CMDS-20170001_1-OS.tar.gz用代碼編輯器打開其中的 tran_mspeech.py文件,默認情況下如圖:
如果是Windows系統,當數據直接放置於dataset路徑下時,請修改第36行的文件路徑為』dataset』或dataset目錄的絕對路徑後,再訓練。如果是其他路徑,也請修改為對應的路徑。如果是Linux系統,當數據集直接放置於dataset下,或者使用軟連結到dataset下,可以忽略這一步,否則也需要修改為數據集存放的路徑。然後檢查TranModel()函數裡面的參數配置,epoch那個參數請忽略,目前是棄用的,batch_size參數可根據實際需要進行調整,默認為16,參數save_step用於設定每迭代多少步就保存一次模型,默認為500步。
5 訓練模型最激動人心的一刻就是代碼成功運行起來。我們只需要在命令行終端中輸入這個命令,即可運行:
$ python train_mspeech.py如果python命令是2.7版本,請使用python3命令。如果使用Visual StudioCode、Spider或者PyCharm等IDE,可以直接在代碼目錄下打開train_mspeech.py文件點擊運行按鈕。當模型訓練收斂的時候,可以直接按ctrl + C 或者在IDE裡點擊停止運行按鈕,以停止訓練模型,此時,應該已經在model_speech/ 目錄下對應的模型名稱裡保存了很多模型參數文件。
6 測試模型準確率用編輯器打開test_mspeech.py文件,如圖。
除了與train_mspeech.py一樣的數據集路徑問題以外,還有一些需要查看並處理。找到我們最後訓練好保存的模型參數文件,或者訓練過程中的某個模型參數文件,複製文件名,然後在這裡的第49行代碼中,將模型文件路徑修改為該模型參數文件名。
在第51行,TestModel()這裡,str_dataset則為要測試準確率的數據集類型,可選的為訓練集(train)、驗證集(dev)和測試集(test),圖中寫為’test』意為在測試集上測試模型的準確率。data_count參數設定要測試的數據量,例如:128,即隨機處連續抽取128個數據進行錯誤率的計算,如果填「-1」則使用全部測試數據集的數據量。out_report參數為True時,會保存測試時的數據集中間結果和最終結果日誌,方便調試和數據記錄。
7 測試單一語音數據的識別我們需要在例如32行處LoadModel()函數裡面,跟之前一樣填寫我們要使用的保存下來的模型參數文件,以便模型加載。並在例如第40行處的RecognizeSpeech_FromFIle()函數裡面,填寫我們需要識別的錄音文件的文件名路徑。完畢後,運行代碼。或在IDE中點擊運行按鈕,片刻後即可看到該條語音數據的識別結果。8 查看ASRT語音識別項目文檔在使用ASRT的過程中,難免會遇到一些問題,大部分問題,都已經說明並記錄在了項目文檔中,點擊 https://asrt.ailemon.me/docs/ 即可打開項目文檔。
如果您還有其他的問題或者希望跟大家一起交流討論,請加AI檸檬博客QQ群:867888133,歡迎進群一起交流討論哦。
如果需要加微信群,請在進QQ群後向群主說明,會發加群二維碼,或在本文下方留言。也可以發郵件給我,或者關注微信公眾號「AI檸檬博客」並留言。
[論文分享]Char2wav端到端語音合成
[論文翻譯] Dropblock:一個用於卷積網絡的正則化方法
[論文分享]Dropblock:一個用於卷積網絡的正則化方法
生物信息學中的遷移學習
Windows安裝CUDA和CUDNN運行環境
博客網址:https://blog.ailemon.me
點擊下方「閱讀原文」即可閱讀博客原文,並參與評論和互動。 點在看,讓檸檬菌知道你在看~