音声認識 DeepSpeech Python* デモ#

このデモでは、事前トレーニングされた Mozilla* DeepSpeech 0.8.2 モデルを使用した自動音声認識 (ASR) を示します。

これはバージョン 0.6.1 でも動作し、ASCII アルファベットを使用する Mozilla DeepSpeech 0.6.x/0.7.x/0.8.x/0.9.x でトレーニングされた他のモデルでも動作するはずです。

どのように動作するか#

アプリケーションは以下を受け入れます

  • Mozilla* DeepSpeech 0.8.2 ニューラル・ネットワーク (中間表現 (IR) 形式)、

  • kenlm 量子化バイナリー形式の n-gram 言語モデルファイル、および

  • PCM WAV 16 kHz モノラル形式のオーディオファイル。

アプリケーションには 2 つのモードがあります:

  • ノーマルモード (デフォルト)。オーディオデータは、オーディオ特徴の計算、フレームごとの文字確率を取得するニューラル・ネットワークの実行、および CTC デコードのストリーミング・パイプラインに 10 秒単位でストリーミングされます。ファイル全体を処理した後、デコードされたテキストと費やした時間が出力されます。

  • シミュレートされたリアルタイム・モードでは、アプリケーションは入力ファイルからオーディオデータをフィードし、部分的な結果をコンソール出力のクリープラインに表示することで、ライブ録音の音声認識をシミュレートします。遅延を導入することで、データはリアルタイムに供給されます。オーディオデータは、0.32 秒のチャンク (サイズは --block-size オプションで制御されます) で同じストリーミング・パイプラインに供給されます。このモードでは、パイプラインは各データチャンクの後に更新された認識結果を提供します。

実行の準備#

デモでサポートされるモデルリストは、<omz_dir>/demos/speech_recognition_deepspeech_demo/python/models.lst ファイルにあります。このファイルは、モデル・ダウンローダーおよびコンバーターのパラメーターとして使用され、モデルをダウンロードし、必要に応じて OpenVINO IR 形式 (*.xml + *.bin) に変換できます。ドキュメントに記載されているように、モデル・ダウンローダーの要件であるモデル・オプティマイザーの構成を忘れないでください。

モデル・ダウンローダーの使用例:

omz_downloader --list models.lst

モデル・コンバーターの使用例:

omz_converter --list models.lst

モデルライセンスである Mozilla パブリックライセンス 2.0 に注意してください。

必要条件#

このデモは、デコードを高速化するため CTC デコードを C++ で実装する ctcdecode_numpy Python 拡張モジュールに依存しています。拡張モジュールを構築し、デモを実行する環境の準備方法については、Open Model Zoo のデモを参照してください。あるいは、cmake を使用する代わりに、python -m pip install を実行することもできます。ctcdecode-numpy ディレクトリー内で ctcdecode-numpy をビルドしてインストールします。

サポートされるモデル#

  • mozilla-deepspeech-0.6.1

  • mozilla-deepspeech-0.8.2

モデルライセンスである Mozilla パブリックライセンス 2.0 に注意してください。

: 各種デバイス向けのモデル推論サポートの詳細については、インテルの事前トレーニング・モデルのデバイスサポートパブリックの事前トレーニング・モデルのデバイスサポートの表を参照してください。

デモの実行#

-h オプションを指定してアプリケーションを実行すると、使用方法が表示されます。利用可能なコマンドライン・オプションは次のとおりです:

usage: speech_recognition_deepspeech_demo.py [-h] -i FILENAME [-d DEVICE] 
                                              -m FILENAME [-L FILENAME] -p NAME 
                                              [-b N] [-c N] [--realtime] 
                                              [--block-size BLOCK_SIZE] 
                                              [--realtime-window REALTIME_WINDOW] 

Speech recognition DeepSpeech demo 

optional arguments: 
  -h, --help          show this help message and exit 
  -i FILENAME, --input FILENAME 
                      Required. Path to an audio file in WAV PCM 16 kHz mono format 
  -d DEVICE, --device DEVICE 
                      Optional. Specify the target device to infer on, for 
                      example: CPU or GPU or HETERO.The demo will look for 
                      a suitable OpenVINO Runtime 
                      plugin for this device.(default is CPU) 
  -m FILENAME, --model FILENAME 
                      Required. Path to an .xml file with a trained model 
  -L FILENAME, --lm FILENAME 
                      Optional. Path to language model file 
  -p NAME, --profile NAME 
                      Required. Choose pre/post-processing profile: mds06x_en 
                      for Mozilla DeepSpeech v0.6.x, 
                      mds07x_en/mds08x_en/mds09x_en for Mozilla DeepSpeech 
                      v0.7.x/v0.8.x/v0.9.x(English), other: filename of a 
                      YAML file 
  -b N, --beam-width N Beam width for beam search in CTC decoder (default 500) 
  -c N, --max-candidates N 
                      Show top N (or less) candidates (default 1) 
  --realtime          Simulated real-time mode: slow down data feeding to 
                      real time and show partial transcription during 
                      recognition 
  --block-size BLOCK_SIZE 
                      Block size in audio samples for streaming into ASR 
                      pipeline (defaults to samples in 10 sec for offline; 
                      samples in 16 frame strides for online) 
  --realtime-window REALTIME_WINDOW 
                      In simulated real-time mode, show this many characters 
                      on screen (default 79)

オフラインモードの一般的なコマンドラインは次のとおりです:

python3 speech_recognition_deepspeech_demo.py \ 
    -p mds08x_en \ 
    -m <path_to_model>/mozilla-deepspeech-0.8.2.xml \ 
    -L <path_to_file>/deepspeech-0.8.2-models.kenlm \ 
    -i <path_to_audio>/audio.wav

バージョン 0.6.1 では次のようになります:

python3 speech_recognition_deepspeech_demo.py \ 
    -p mds06x_en \ 
    -m <path_to_model>/mozilla-deepspeech0-0.6.1.xml \ 
    -L <path_to_file>/lm.binary \ 
    -i <path_to_audio>/audio.wav

シミュレートされたリアルタイム・モードで実行するには、コマンドライン・オプション --realtime を追加します。

: 16 ビット、16 kHz、モノチャネル WAVE オーディオファイルのみがサポートされます。

オプション (強く推奨) の言語モデルファイル、deepspeech-0.8.2-models.kenlm または lm.binary は、対応するモデルのダウンロード・コンテンツの一部であり、モデルのダウンロードと変換後にモデル・ダウンローダーの出力フォルダーに配置されます。オーディオファイルの例は、こちら からダウンロードできます。

デモの出力#

アプリケーションには、初期化ステージと処理ステージにかかる時間と、オーディオファイルからデコードされたテキストが表示されます。リアルタイム・モードでは、アプリケーションの実行中に現在の認識結果も表示されます。オフラインモードではレポートが表示されます

  • レイテンシー: 入力データの処理に必要な合計処理時間 (データの読み取りから結果の表示まで)。

関連情報#