天天看點

基于深度學習的中文語音識别系統 - 農夫三拳有點疼

基于深度學習的中文語音識别系統

最近看到一個開源項目,特地學習了下,實測後,語音識别系統的正确率大概75%左右,作為學習入門的資料還是不錯的,項目已上傳到github上,不過資料集和生成的模型由于檔案太大,上傳失敗,随後存在百度網盤,自行下載下傳哈,普通電腦真傷,跑了三天,還是gpu快點。

檢視本項目的Wiki文檔

如果程式運作期間或使用中有什麼問題,可以及時在issue中提出來,我将盡快做出答複。本項目作者交流QQ群:867888133

提問前可以先 檢視常見問題 避免重複提問

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 Corpus

    ST-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 1

    primewords_md_2018_set1.tar.gz OpenSLR國内鏡像 OpenSLR國外鏡像

  • aidatatang_200zh

    aidatatang_200zh.tgz OpenSLR國内鏡像 OpenSLR國外鏡像

  • MagicData

    train_set.tar.gz OpenSLR國内鏡像 OpenSLR國外鏡像

    dev_set.tar.gz OpenSLR國内鏡像 OpenSLR國外鏡像

    test_set.tar.gz OpenSLR國内鏡像 OpenSLR國外鏡像

    metadata.tar.gz OpenSLR國内鏡像 OpenSLR國外鏡像

特别鳴謝!感謝前輩們的公開語音資料集

如果提供的資料集連結無法打開和下載下傳,請點選該連結 OpenSLR

測試了一段語音:“我們群裡兄弟姐妹都在說”,整體還行,實際應用還存在差距!!!

基于深度學習的中文語音識别系統 - 農夫三拳有點疼
基于深度學習的中文語音識别系統 - 農夫三拳有點疼