🚀 NVIDIA Conformer-CTC Large (en-US)
このモデルは、スペースとアポストロフィを含む小文字の英語アルファベットで音声を文字起こしし、数千時間の英語音声データで学習されています。Conformerの非自己回帰型の「大規模」バリアントで、約1億2000万のパラメータを持っています。完全なアーキテクチャの詳細については、モデルアーキテクチャセクションとNeMoドキュメントを参照してください。また、本番環境のサーバーデプロイメント用のNVIDIA Rivaと互換性があります。
|
|
|
|
|
🚀 クイックスタート
このモデルはNeMoツールキット[3]で使用でき、推論用の事前学習済みチェックポイントとして、または別のデータセットでの微調整に使用できます。
モデルを学習、微調整または試すには、NVIDIA NeMoをインストールする必要があります。最新のPyTorchバージョンをインストールした後にインストールすることをお勧めします。
pip install nemo_toolkit['all']
モデルを自動的にインスタンス化する
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained("nvidia/stt_en_conformer_ctc_large")
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_conformer_ctc_large"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
入力
このモデルは、16000kHzのモノラルチャンネル音声(wavファイル)を入力として受け付けます。
出力
このモデルは、与えられた音声サンプルに対して文字起こしされた音声を文字列として提供します。
✨ 主な機能
- 英語の音声を高精度に文字起こしする能力。
- 非自己回帰型のConformerアーキテクチャに基づいている。
- 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_conformer_ctc_large")
高度な使用法
多数の音声ファイルを文字起こしする場合の例:
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_en_conformer_ctc_large"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
📚 ドキュメント
モデルアーキテクチャ
Conformer-CTCモデルは、自動音声認識用のConformerモデル[1]の非自己回帰型バリアントで、Transducerの代わりにCTC損失/デコードを使用しています。このモデルの詳細については、Conformer-CTC Modelを参照してください。
学習
NeMoツールキット[3]を使用して、数百エポック以上の学習を行いました。これらのモデルは、このサンプルスクリプトとこの基本設定で学習されています。
これらのモデルのトークナイザーは、学習セットのテキスト文字起こしを使用して、このスクリプトで構築されました。
ニューラルリスコアラーとして使用される言語モデルのチェックポイントは、ここにあります。ASRモデルの言語モデルを学習および使用する方法の詳細については、ASR Language Modelingを参照してください。
データセット
このコレクションのすべてのモデルは、数千時間の英語音声から構成される複合データセット(NeMo ASRSET)で学習されています。
- Librispeech:960時間の英語音声
- Fisher Corpus
- Switchboard-1 Dataset
- WSJ-0とWSJ-1
- National Speech Corpus(Part 1、Part 6)
- VCTK
- VoxPopuli(EN)
- Europarl-ASR(EN)
- Multilingual Librispeech(MLS EN) - 2,000時間のサブセット
- Mozilla Common Voice(v7.0)
注:古いバージョンのモデルは、より小さなデータセットで学習されている場合があります。
パフォーマンス
このコレクションで利用可能なモデルのリストは、次の表に示されています。ASRモデルのパフォーマンスは、貪欲デコードによる単語誤り率(WER%)で報告されています。
バージョン |
トークナイザー |
語彙サイズ |
LS test-other |
LS test-clean |
WSJ Eval92 |
WSJ Dev93 |
NSC Part 1 |
MLS Test |
MLS Dev |
MCV Test 6.1 |
学習データセット |
1.6.0 |
SentencePiece Unigram |
128 |
4.3 |
2.2 |
2.0 |
2.9 |
7.0 |
7.2 |
6.5 |
8.0 |
NeMo ASRSET 2.0 |
NVIDIA Rivaでデプロイする場合、このモデルを外部の言語モデルと組み合わせることで、WERをさらに改善することができます。最新モデルの異なる言語モデリング技術によるWER(%)は、次の表に示されています。
言語モデリング |
学習データセット |
LS test-other |
LS test-clean |
コメント |
N-gram LM |
LS Train + LS LM Corpus |
3.5 |
1.8 |
N=10, beam_width=128, n_gram_alpha=1.0, n_gram_beta=1.0 |
Neural Rescorer(Transformer) |
LS Train + LS LM Corpus |
3.4 |
1.7 |
N=10, beam_width=128 |
N-gram + Neural Rescorer(Transformer) |
LS Train + LS LM Corpus |
3.2 |
1.8 |
N=10, beam_width=128, n_gram_alpha=1.0, n_gram_beta=1.0 |
制限事項
このモデルは公開されている音声データセットで学習されているため、モデルが学習していない専門用語や方言を含む音声に対しては、パフォーマンスが低下する可能性があります。また、アクセントのある音声に対してもパフォーマンスが低下する場合があります。
NVIDIA Rivaを使用したデプロイ
最高のリアルタイム精度、レイテンシー、およびスループットを実現するには、NVIDIA Rivaでモデルをデプロイします。NVIDIA Rivaは、オンプレミス、すべてのクラウド、マルチクラウド、ハイブリッド、エッジ、および組み込み環境でデプロイ可能な高速化された音声AI SDKです。
さらに、Rivaは以下を提供します。
- 数十万のGPUコンピュート時間で独自データを使って学習されたモデルチェックポイントによる、最も一般的な言語に対する世界クラスの即時精度。
- 実行時の単語ブースト(例:ブランド名や製品名)と音響モデル、言語モデル、および逆テキスト正規化のカスタマイズによる最高クラスの精度。
- ストリーミング音声認識、Kubernetes互換のスケーリング、およびエンタープライズグレードのサポート。
Rivaのライブデモをご覧ください。
🔧 技術詳細
Conformer-CTCモデルの詳細については、Conformer-CTC Modelを参照してください。
📄 ライセンス
このモデルは、CC-BY-4.0ライセンスの下で提供されています。
参考文献