🚀 NVIDIA Streaming Citrinet 1024 (en-US)
このモデルは、スペースとアポストロフィを含む小文字の英語アルファベットで音声を文字起こしします。数千時間の英語音声データで学習されています。ストリーミングCitrinetの非自己回帰型の「大規模」バリアントで、約1億4000万のパラメータを持っています。詳細なアーキテクチャ情報については、モデルアーキテクチャセクションとNeMoドキュメントを参照してください。また、本番環境向けのサーバーデプロイメントには、NVIDIA Rivaと互換性があります。
|
|
|
|
|
🚀 クイックスタート
このモデルはNeMoツールキット [3] で使用でき、推論用の事前学習済みチェックポイントとして、または別のデータセットでの微調整に使用できます。
モデルを学習、微調整、または試すには、NVIDIA NeMo をインストールする必要があります。最新のPyTorchバージョンをインストールした後に、NeMoをインストールすることをおすすめします。
pip install nemo_toolkit['all']
✨ 主な機能
- 英語の音声を文字起こしすることができます。
- 非自己回帰型のモデルで、ストリーミング処理が可能です。
- NVIDIA Rivaと互換性があり、本番環境でのデプロイが容易です。
📦 インストール
モデルを使用するには、NeMoツールキットをインストールする必要があります。以下のコマンドを実行してください。
pip install nemo_toolkit['all']
💻 使用例
基本的な使用法
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained("nvidia/stt_en_citrinet_1024_gamma_0_25")
高度な使用法
Pythonを使用した文字起こし
まず、サンプル音声ファイルを取得します。
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)
複数の音声ファイルの文字起こし
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_en_citrinet_1024_gamma_0_25"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
入力
このモデルは、16000kHzのモノラルチャンネル音声(wavファイル)を入力として受け付けます。
出力
このモデルは、与えられた音声サンプルに対して、文字起こしされた音声を文字列として提供します。
📚 ドキュメント
モデルアーキテクチャ
Streaming Citrinet-1024モデルは、自動音声認識用のCitrinetモデル [1] の非自己回帰型のストリーミングバリアントです。Transducerではなく、CTC損失/デコードを使用しています。このモデルに関する詳細情報は、Citrinet Model を参照してください。
学習
NeMoツールキット [3] を使用して、数百エポック以上にわたってモデルを学習させました。このモデルは、このサンプルスクリプトとこの基本設定を使用して学習されました。
このモデルのトークナイザーは、学習セットのテキストトランスクリプトを使用して、このスクリプトで構築されました。
データセット
このコレクションのすべてのモデルは、数千時間の英語音声から構成される複合データセット(NeMo ASRSET)で学習されています。
- Librispeech:960時間の英語音声
- Fisher Corpus
- Switchboard-1 Dataset
- WSJ-0およびWSJ-1
- National Speech Corpus(Part 1、Part 6)
注: 古いバージョンのモデルは、より少ないデータセットで学習されている場合があります。
パフォーマンス
このコレクションで利用可能なモデルのリストを以下の表に示します。音声認識モデルのパフォーマンスは、貪欲デコードによる単語誤り率(WER%)で報告されています。
バージョン |
トークナイザー |
語彙サイズ |
LS test-other |
LS test-clean |
WSJ Eval92 |
WSJ Dev93 |
NSC Part 1 |
学習データセット |
1.0.0 |
SentencePiece Unigram |
1024 |
7.6 |
3.4 |
2.5 |
4.0 |
6.2 |
NeMo ASRSET 1.0 |
NVIDIA Riva でデプロイする場合、このモデルを外部の言語モデルと組み合わせることで、WERをさらに改善することができます。最新モデルの異なる言語モデリング手法によるWER(%)を以下の表に示します。
制限事項
このモデルは公開されている音声データセットで学習されているため、技術用語やモデルが学習されていない方言を含む音声に対しては、パフォーマンスが低下する可能性があります。また、アクセントのある音声に対しても、パフォーマンスが低下する場合があります。
NVIDIA Rivaでのデプロイ
最高のリアルタイム精度、レイテンシ、およびスループットを実現するには、NVIDIA Riva でモデルをデプロイしてください。NVIDIA Rivaは、オンプレミス、すべてのクラウド、マルチクラウド、ハイブリッド、エッジ、および組み込み環境でデプロイ可能な高速化された音声AI SDKです。
さらに、Rivaは以下の機能を提供します。
- 数十万のGPUコンピュート時間で独自データを使用して学習されたモデルチェックポイントを備え、最も一般的な言語に対して世界クラスの即時精度を実現します。
- 実行時の単語ブースト(例:ブランド名や製品名)、および音響モデル、言語モデル、および逆テキスト正規化のカスタマイズにより、最高クラスの精度を実現します。
- ストリーミング音声認識、Kubernetes互換のスケーリング、およびエンタープライズグレードのサポートを提供します。
Rivaのライブデモ をご覧ください。
🔧 技術詳細
このモデルの技術的な詳細については、以下の参考文献を参照してください。
参考文献
[1] Citrinet: Closing the Gap between Non-Autoregressive and Autoregressive End-to-End Models for Automatic Speech Recognition
[2] Google Sentencepiece Tokenizer
[3] NVIDIA NeMo Toolkit
📄 ライセンス
このモデルは、CC-BY-4.0ライセンスの下で提供されています。