音声認識 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 は、対応するモデルのダウンロード・コンテンツの一部であり、モデルのダウンロードと変換後にモデル・ダウンローダーの出力フォルダーに配置されます。オーディオファイルの例は、https://storage.openvinotoolkit.org/models_contrib/speech/2021.2/librispeech_s5/how_are_you_doing_today.wav からダウンロードできます。

デモの出力

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

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