🚀 NVIDIA Streaming Citrinet 1024 (uk)
このモデルは、空白とアポストロフィを含む小文字のウクライナ語アルファベットで音声を文字起こしします。69時間のウクライナ語音声データで学習されています。
これは、Streaming Citrinetの非自己回帰型の「大規模」バリアントで、約1億4100万のパラメータを持っています。このモデルは、事前学習されたロシア語のCitrinet - 1024モデルをウクライナ語音声データでクロス言語転移学習[4]アプローチを用いてファインチューニングしたものです。
完全なアーキテクチャの詳細については、モデルアーキテクチャセクションとNeMoドキュメントを参照してください。
また、本番環境レベルのサーバーデプロイメント用のNVIDIA Rivaと互換性があります。
|
|
|
|
|
🚀 クイックスタート
このモデルは、NeMoツールキット[3]で使用でき、推論や他のデータセットでのファインチューニングのための事前学習済みチェックポイントとして利用できます。
モデルを学習、ファインチューニング、または試すには、NVIDIA NeMoをインストールする必要があります。最新のPyTorchバージョンをインストールした後にインストールすることをおすすめします。
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.EncDecCTCModel.from_pretrained("nvidia/stt_uk_citrinet_1024_gamma_0_25")
高度な使用法
Pythonを使用した文字起こし
まず、サンプルを取得します。
そして、次のようにします。
output = asr_model.transcribe(['sample.wav'])
print(output[0].text)
多数の音声ファイルの文字起こし
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_uk_citrinet_1024_gamma_0_25"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
入力
このモデルは、16000kHzのモノラルチャンネル音声(wavファイル)を入力として受け付けます。
出力
このモデルは、与えられた音声サンプルに対して文字起こしされた音声を文字列として提供します。
📚 ドキュメント
モデルアーキテクチャ
Streaming Citrinet - 1024モデルは、自動音声認識のためのCitrinetモデル[1]の非自己回帰型のストリーミングバリアントで、トランスデューサではなくCTC損失/デコードを使用しています。このモデルに関する詳細情報は、Citrinetモデルを参照してください。
学習
このモデルは、NeMoツールキット[3]を使用して1000エポックで学習されました。このモデルは、このサンプルスクリプトとこの基本設定で学習されました。
このモデルのトークナイザーは、学習セットのテキストトランスクリプトを使用して、このスクリプトで構築されました。
クロス言語転移学習の詳細については、[4]を参照してください。
データセット
このモデルは、検証済みのMozilla Common Voice Corpus 10.0データセット(開発データとテストデータを除く)を使用して学習されており、69時間のウクライナ語音声を含んでいます。このモデルがファインチューニングされた元のロシア語モデルは、(1) Mozilla Common Voice (V7 Ru)、(2) Ru LibriSpeech (RuLS)、(3) Sber GOLOS、および(4) SOVAデータセットの統合データで学習されています。
性能
このコレクションで利用可能なモデルのリストを以下の表に示します。音声認識モデルの性能は、貪欲デコードによる単語誤り率(WER%)で報告されています。
Version |
Tokenizer |
Vocabulary Size |
MCV - 10 test |
MCV - 10 dev |
MCV - 9 test |
MCV - 9 dev |
MCV - 8 test |
MCV - 8 dev |
1.0.0 |
SentencePiece Unigram |
1024 |
5.02 |
4.65 |
3.75 |
4.88 |
3.52 |
5.02 |
制限事項
このモデルは公開されている音声データセットで学習されているため、モデルが学習していない技術用語や方言を含む音声に対しては性能が低下する可能性があります。また、アクセントのある音声に対しても性能が低下する場合があります。
NVIDIA Rivaを使用したデプロイメント
最高のリアルタイム精度、待ち時間、およびスループットを実現するには、NVIDIA Rivaを使用してモデルをデプロイします。NVIDIA Rivaは、オンプレミス、すべてのクラウド、マルチクラウド、ハイブリッド、エッジ、および組み込み環境でデプロイ可能な高速化された音声AI SDKです。
さらに、Rivaは以下の機能を提供します。
- 数十万のGPUコンピュート時間で独自データで学習されたモデルチェックポイントを使用した、最も一般的な言語に対する世界クラスの即時精度
- ランタイムでの単語ブースト(例:ブランド名や製品名)および音響モデル、言語モデル、逆テキスト正規化のカスタマイズによる最高クラスの精度
- ストリーミング音声認識、Kubernetes互換のスケーリング、およびエンタープライズグレードのサポート
Rivaのライブデモをご覧ください。
🔧 技術詳細
このモデルは、非自己回帰型のStreaming Citrinetモデルで、CTC損失/デコードを使用しています。クロス言語転移学習アプローチを用いて、事前学習されたロシア語のCitrinet - 1024モデルをウクライナ語音声データでファインチューニングしています。
📄 ライセンス
このモデルは、CC - BY - 4.0ライセンスの下で提供されています。
参考文献
[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
[4] Cross-Language Transfer Learning