ASRT は深層学習に基づく中国語音声認識システムです。気に入っていただけましたら、 「スター」をクリックしてください。
ReadMe 言語| 中国語版 |
ASRT プロジェクトのホームページ|リリース版のダウンロード|このプロジェクトの Wiki ドキュメントを見る|作者への報酬|
プログラムの実行中または使用中に問題が発生した場合は、時間内に問題を報告していただければ、できるだけ早く対応させていただきます。このプロジェクトの作成者は、QQ グループ: 894112051で通信しています。WeChat グループに参加するには、AI Lemon WeChat ID: ailemon-meを追加し、「ASRT 音声認識」をメモしてください。
質問が繰り返されないように、質問する前にプロジェクトのドキュメント、FAQ、および問題をよく読んでください。
プログラムの実行中に何らかの異常がある場合は、質問するときに完全なスクリーンショットを送信してください。また、使用されている CPU アーキテクチャ、GPU モデル、オペレーティング システム、Python、TensorFlow、CUDA のバージョン、およびコードやデータ セットが変更されているかどうかを示してください。追加または削除されたなど。
このプロジェクトでは、深層畳み込みニューラル ネットワークと長期短期記憶ニューラル ネットワーク、アテンション メカニズム、および CTC 実装に基づいた tensorFlow.keras を使用します。
Linux システムでの操作を例に挙げます。
まず、Git を介してこのプロジェクトのクローンをコンピューターに作成し、このプロジェクトのトレーニングに必要なデータ セットをダウンロードします。ドキュメントの最後にあるダウンロード リンクを参照してください。
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
または、[フォーク] ボタンを使用してこのプロジェクトのコピーを作成し、独自の SSH キーを使用してローカルにクローンを作成することもできます。
git 経由でウェアハウスのクローンを作成した後、プロジェクトのルート ディレクトリに入り、データを保存するためのサブディレクトリ ( /data/speech_data
など) を作成し (代わりにソフト リンクを使用できます)、そこにダウンロードしたデータ セットを直接抽出します。
なお、現バージョンでは、Thchs30、ST-CMDS、Primewords、aishell-1、aidatang200、MagicDataの6つのデータセットがデフォルトで設定ファイルに追加されていますので、不要な場合はご自身で削除してください。他のデータセットを使用する場合は、自分でデータ構成を追加し、ASRT がサポートする標準形式を使用してデータを事前に整理する必要があります。
$ cd ASRT_SpeechRecognition
$ mkdir /data/speech_data
$ tar zxf <数据集压缩文件名> -C /data/speech_data/
デフォルトのデータセットのピンインラベルファイルをダウンロードします。
$ python download_default_datalist.py
現在利用可能なモデルは 24、25、251、2510 億です
このプロジェクトを実行する前に、必要な Python3 バージョンに依存するライブラリをインストールしてください。
このプロジェクトのトレーニングを開始するには、次を実行してください。
$ python3 train_speech_model.py
このプロジェクトのテストを開始するには、次を実行してください。
$ python3 evaluate_speech_model.py
テストする前に、コードに入力されたモデル ファイルのパスが存在することを確認してください。
単一のオーディオ ファイルの音声認識テキストを予測します。
$ python3 predict_speech_file.py
ASRT HTTP プロトコルの API サーバーを起動するには、以下を実行してください。
$ python3 asrserver_http.py
HTTP プロトコル API サービスの呼び出しが成功したかどうかをローカルでテストします。
$ python3 client_http.py
ASRT GRPC プロトコルの API サーバーを起動するには、以下を実行してください。
$ python3 asrserver_grpc.py
GRPC プロトコル API サービスの呼び出しが成功したかどうかをローカルでテストします。
$ python3 client_grpc.py
API サーバーを開いた後、音声認識にはこの ASRT プロジェクトに対応するクライアント ソフトウェアを使用する必要があることに注意してください。詳細については、ASRT 音声認識クライアント SDK とデモをダウンロードするための Wiki ドキュメントを参照してください。
2,510 億以外のモデルをトレーニングして使用したい場合は、コード内のfrom speech_model.xxx import xxx
の対応する場所を変更してください。
Docker を使用して ASRT を直接デプロイします。
$ docker pull ailemondocker/asrt_service:1.3.0
$ docker run --rm -it -p 20001:20001 -p 20002:20002 --name asrt-server -d ailemondocker/asrt_service:1.3.0
CPU のみがトレーニングなしで推論認識を実行します。
DCNN+CTC
このうち、入力音声の最大時間長は 16 秒で、出力は対応する中国語のピンイン配列です。
トレーニング済みモデルは、リリース バージョンのサーバー プログラムの圧縮パッケージに含まれており、完成したリリース バージョンのサーバー プログラムは、ASRT ダウンロード ページからダウンロードできます。
この Github リポジトリのリリース ページには、さまざまなバージョンごとの紹介情報も含まれており、各バージョンの zip パッケージにはトレーニング済みモデルのリリース サーバー プログラム パッケージも含まれています。
確率グラフに基づく最大エントロピー隠れマルコフ モデル
入力は中国語のピンイン シーケンスであり、出力は対応する中国語の文字テキストです。
現在、最良のモデルは、テスト セット上で基本的に 85% の中国語ピンイン精度を達成できます。
環境のインストール方法がわからない場合は、次のコマンドを直接実行してください (GPU と Python3.9、CUDA 11.2、および cudnn 8.1 がインストールされている場合)。
$ pip install -r requirements.txt
環境とパフォーマンスの構成要件によって異なります
完全なコンテンツについては、以下をご覧ください: いくつかの最新の無料およびオープンソースの中国語音声データ セット
データセット | 間隔 | サイズ | 国内ダウンロード | 海外でダウンロード |
---|---|---|---|---|
THCHS30 | 40時間 | 6.01G | data_thchs30.tgz | data_thchs30.tgz |
ST-CMDS | 100時間 | 7.67G | ST-CMDS-20170001_1-OS.tar.gz | ST-CMDS-20170001_1-OS.tar.gz |
AIシェル-1 | 178時間 | 14.51G | data_aishell.tgz | data_aishell.tgz |
プライムワード | 100時間 | 8.44G | primewords_md_2018_set1.tar.gz | primewords_md_2018_set1.tar.gz |
マジックデータ | 755時間 | 52G/1.0G/2.2G | train_set.tar.gz/dev_set.tar.gz/test_set.tar.gz | train_set.tar.gz/dev_set.tar.gz/test_set.tar.gz |
注: AISHELL-1 データセットの解凍方法
$ tar xzf data_aishell.tgz
$ cd data_aishell/wav
$ for tar in *.tar.gz; do tar xvf $tar; done
特別な感謝を!演説データセットを提供してくださった先人たちに感謝します
提供されたデータセットのリンクを開いてダウンロードできない場合は、リンク OpenSLR をクリックしてください。
ASRT は、クライアントが RPC を通じて音声認識機能を呼び出して開発できるように、さまざまなプラットフォームとプログラミング言語に SDK アクセス機能を提供します。他のプラットフォームの場合は、一般的な RESTful Open API を呼び出すことで音声認識機能に直接アクセスできます。具体的なアクセス手順については、ASRT プロジェクトのドキュメントを参照してください。
クライアントプラットフォーム | プロジェクトリポジトリのリンク |
---|---|
Windows クライアント SDK とデモ | ASRT_SDK_WinClient |
クロスプラットフォームの Python3 クライアント SDK とデモ | ASRT_SDK_Python3 |
クロスプラットフォームの Golang クライアント SDK とデモ | asrt-sdk-go |
Java クライアント SDK とデモ | ASRT_SDK_Java |
ASRT の原則については、この記事を確認してください。
ASRT のトレーニングと展開のチュートリアルを参照してください。
統計言語モデルの原理に関するよくある質問については、以下を参照してください。
CTC に関する質問については、以下を参照してください。
さらに詳しい内容については、著者のブログ「AI Lemon Blog」をご覧ください。
または、AI Lemon サイトの検索エンジンを使用して関連情報を検索してください
GPL v3.0 © nl8590687 著者: AI Lemon
DOI: 10.5281/zenodo.5808434
寄稿者ページ
@nl8590687 (リポジトリ所有者)