🚀 NVIDIA FastConformer-Hybrid Large (ru)
このモデルは、自動音声認識を行うためのもので、ロシア語の音声を文字起こしすることができます。FastConformerという最適化されたモデル構造を用いており、TransducerとCTCの2つの損失関数を用いて学習されています。
|
|
| 
🚀 クイックスタート
このモデルを使用するには、まずNVIDIA NeMoをインストールする必要があります。最新のPytorchバージョンをインストールした後、以下のコマンドを実行してください。
pip install nemo_toolkit['all']
✨ 主な機能
- ロシア語の音声を文字起こしすることができます。
- 大文字と小文字、スペース、ピリオド、カンマ、疑問符を含む文字列を出力します。
- FastConformerという最適化されたモデル構造を用いています。
- TransducerとCTCの2つの損失関数を用いて学習されています。
📦 インストール
モデルをトレーニング、ファインチューニング、または使用するには、NVIDIA NeMoをインストールする必要があります。最新のPytorchバージョンをインストールした後、以下のコマンドを実行してください。
pip install nemo_toolkit['all']
💻 使用例
基本的な使用法
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecHybridRNNTCTCBPEModel.from_pretrained(model_name="nvidia/stt_ru_fastconformer_hybrid_large_pc")
高度な使用法
サンプル音声ファイルの取得
wget https://dldata-public.s3.us-east-2.amazonaws.com/2086-149220-0033.wav
音声の文字起こし
output = asr_model.transcribe(['2086-149220-0033.wav'])
print(output[0].text)
複数の音声ファイルの文字起こし
Transducerモードでの推論
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_ru_fastconformer_hybrid_large_pc"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
CTCモードでの推論
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_ru_fastconformer_hybrid_large_pc"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
decoder_type="ctc"
📚 ドキュメント
入力
このモデルは、16000 Hzのモノラルチャンネル音声(wavファイル)を入力として受け付けます。
出力
このモデルは、与えられた音声サンプルに対して、文字起こしされた音声を文字列として提供します。
🔧 技術詳細
モデルアーキテクチャ
FastConformer [1] は、Conformerモデルの最適化されたバージョンで、8倍の深さ方向分離畳み込みダウンサンプリングを備えています。このモデルは、結合TransducerとCTCデコーダ損失を用いたマルチタスク設定でトレーニングされています。FastConformerの詳細については、Fast-Conformer Model および Hybrid Transducer-CTC を参照してください。
トレーニング
NeMoツールキット [3] を使用して、数百エポック以上にわたってモデルをトレーニングしました。これらのモデルは、この サンプルスクリプト とこの 基本設定 を使用してトレーニングされています。
これらのモデルのトークナイザーは、トレーニングセットのテキストトランスクリプトを使用して、この スクリプト を用いて構築されました。
データセット
このコレクションのすべてのモデルは、1840時間のロシア語音声からなる複合データセット(NeMo PnC ASRSET)でトレーニングされています。
- Golos (1200時間)
- Sova (310時間)
- Dusha (200時間)
- RULS (92.5時間)
- MCV12 (36.7時間)
性能
自動音声認識モデルの性能は、単語誤り率(Word Error Rate)を使用して測定されます。このデータセットは複数のドメインとはるかに大きなコーパスでトレーニングされているため、一般的に音声の文字起こしにおいてより良い性能を発揮します。
以下の表は、このコレクションで利用可能なモデルの性能をTransducerデコーダでまとめたものです。ASRモデルの性能は、貪欲復号化による単語誤り率(WER%)で報告されています。
a) 句読点と大文字を含まないデータでのTransducerデコーダの性能
Version |
Tokenizer |
Vocabulary Size |
MCV12 DEV |
MCV12 TEST |
RULS DEV |
RULS TEST |
GOLOS TEST FARFIELD |
GOLOS TEST CROWD |
DUSHA TEST |
1.18.0 |
SentencePiece Unigram |
1024 |
4.4 |
5.3 |
11.04 |
11.05 |
5.76 |
1.9 |
4.01 |
b) 句読点と大文字を含むデータでのTransducerデコーダの性能
Version |
Tokenizer |
Vocabulary Size |
MCV12 DEV |
MCV12 TEST |
RULS DEV |
RULS TEST |
1.18.0 |
SentencePiece Unigram |
1024 |
6.14 |
7.3 |
26.78 |
30.81 |
制限事項
このモデルは公開されている音声データセットでトレーニングされているため、モデルがトレーニングされていない技術用語や方言を含む音声に対しては、性能が低下する可能性があります。また、アクセントのある音声に対しても性能が低下する場合があります。このモデルは '.', ',', '?'
の句読点のみを出力するため、他の句読点も期待されるシナリオではうまく機能しない可能性があります。
NVIDIA Riva: デプロイメント
NVIDIA Riva は、オンプレミス、すべてのクラウド、マルチクラウド、ハイブリッド、エッジ、および組み込み環境でデプロイ可能な高速化された音声AI SDKです。
さらに、Rivaは以下の機能を提供します。
- 数十万のGPUコンピュート時間で独自データを用いてトレーニングされたモデルチェックポイントを使用した、最も一般的な言語に対する世界クラスの精度。
- ランタイム単語ブースト(例:ブランド名や製品名)および音響モデル、言語モデル、逆テキスト正規化のカスタマイズによる最高クラスの精度。
- ストリーミング音声認識、Kubernetes互換のスケーリング、およびエンタープライズグレードのサポート。
このモデルはまだRivaでサポートされていませんが、サポートされているモデルのリストはこちら です。
Rivaのライブデモ もチェックしてみてください。
📄 ライセンス
このモデルを使用するためのライセンスは、CC-BY-4.0 によってカバーされています。モデルの公開およびリリースバージョンをダウンロードすることで、CC-BY-4.0 ライセンスの条件に同意したことになります。
参考文献
[1] Fast Conformer with Linearly Scalable Attention for Efficient Speech Recognition
[2] Google Sentencepiece Tokenizer
[3] NVIDIA NeMo Toolkit