音声認識 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 からダウンロードできます。
デモの出力¶
アプリケーションには、初期化ステージと処理ステージにかかる時間と、オーディオファイルからデコードされたテキストが表示されます。リアルタイム・モードでは、アプリケーションの実行中に現在の認識結果も表示されます。オフラインモードではレポートが表示されます
レイテンシー: 入力データの処理に必要な合計処理時間 (データの読み取りから結果の表示まで)。