🚀 Parakeet RNNT 0.6B (en)
parakeet-rnnt-0.6b
は、英語の音声を小文字のアルファベットで文字起こしする自動音声認識(ASR)モデルです。このモデルは、NVIDIA NeMoとSuno.aiのチームによって共同開発されました。FastConformer Transducer [1] のXLバージョン(約6億パラメータ)のモデルです。完全なアーキテクチャの詳細については、モデルアーキテクチャセクションとNeMoドキュメントを参照してください。
|
| 
🚀 クイックスタート
NVIDIA NeMoのインストール
モデルをトレーニング、ファインチューニング、または操作するには、NVIDIA NeMoをインストールする必要があります。最新バージョンのPyTorchをインストールした後に、以下のコマンドを実行してインストールすることをおすすめします。
pip install nemo_toolkit['all']
モデルの使用方法
このモデルはNeMoツールキット [3] で使用でき、推論や他のデータセットでのファインチューニングのための事前学習済みチェックポイントとして利用できます。
基本的な使用法
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecRNNTBPEModel.from_pretrained(model_name="nvidia/parakeet-rnnt-0.6b")
音声ファイルの文字起こし
まず、サンプル音声ファイルをダウンロードします。
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/parakeet-rnnt-0.6b"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
入力
このモデルは、16000 Hzのモノラルチャンネルの音声(wavファイル)を入力として受け付けます。
出力
このモデルは、与えられた音声サンプルに対して文字起こしされた文字列を出力します。
✨ 主な機能
- 英語の音声を高精度に文字起こしします。
- FastConformer Transducerアーキテクチャを採用し、効率的な音声認識を実現します。
- NeMoツールキットを使用して、トレーニングやファインチューニングが容易です。
📦 インストール
モデルを使用するには、NVIDIA NeMoをインストールする必要があります。以下のコマンドを実行してインストールしてください。
pip install nemo_toolkit['all']
💻 使用例
基本的な使用法
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecRNNTBPEModel.from_pretrained(model_name="nvidia/parakeet-rnnt-0.6b")
高度な使用法
複数の音声ファイルを一度に文字起こしする場合の例です。
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/parakeet-rnnt-0.6b"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
📚 ドキュメント
モデルアーキテクチャ
FastConformer [1] は、Conformerモデルの最適化されたバージョンで、8倍の深さ方向分離畳み込みダウンサンプリングを備えています。このモデルは、Transducerデコーダ(RNNT)損失を用いたマルチタスク設定でトレーニングされています。FastConformerの詳細については、Fast-Conformer Modelを参照してください。
トレーニング
NeMoツールキット [3] を使用して、数百エポック以上にわたってモデルをトレーニングしました。これらのモデルは、このサンプルスクリプトとこの基本設定を使用してトレーニングされています。
これらのモデルのトークナイザーは、トレーニングセットのテキストトランスクリプトを使用して、このスクリプトで構築されています。
データセット
このモデルは、NVIDIA NeMoとSunoチームによって収集および準備された64,000時間の英語の音声でトレーニングされています。
トレーニングデータセットは、40,000時間の英語の音声を含むプライベートサブセットと、以下の公開データセットからの24,000時間の音声で構成されています。
- 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)
- People's Speech - 12,000時間のサブセット
🔧 技術詳細
パフォーマンス
自動音声認識モデルのパフォーマンスは、単語誤り率(Word Error Rate)を使用して測定されます。このデータセットは複数のドメインとより大規模なコーパスでトレーニングされているため、一般的に音声の文字起こしにおいて良好なパフォーマンスを発揮します。
以下の表は、このコレクション内の利用可能なモデルのパフォーマンスを、Transducerデコーダを使用して要約したものです。ASRモデルのパフォーマンスは、貪欲復号化による単語誤り率(WER%)で報告されています。
Version |
Tokenizer |
Vocabulary Size |
AMI |
Earnings-22 |
Giga Speech |
LS test-clean |
SPGI Speech |
TEDLIUM-v3 |
Vox Populi |
Common Voice |
1.22.0 |
SentencePiece Unigram |
1024 |
17.55 |
14.78 |
10.07 |
1.63 |
3.06 |
3.47 |
3.86 |
6.05 |
これらは外部言語モデルを使用しない貪欲WERの数値です。評価の詳細については、HuggingFace ASR Leaderboardを参照してください。
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
[4] Suno.ai
[5] HuggingFace ASR Leaderboard