用語集 / どう聞き取るか

Parakeet

更新日:

定義

Parakeetは、NVIDIAのオープンソース音声認識モデルのファミリーです。トランスデューサ構造で、音声が届くそばから言葉を出力できます。そのため、リアルタイム音声入力ツールのエンジンとしてよく使われます。Whisperは、まとまりを読み終えてから処理する作りです。

ParakeetのモデルはWhisperと同じ目的で訓練されていますが、形が異なります。まとまりを読み終えてから書くのではなく、トランスデューサはトークンを連続して出力するので、話している最中でもテキストが表示されます。Apple siliconでは、小さめのParakeetは余裕をもってリアルタイムで動きます。キーを離した時点で言葉が入るべき音声入力には、うってつけです。

代わりに犠牲になるのは対応言語の幅です。ParakeetのモデルはWhisperより少ない言語で訓練されているので、ストリーミングにParakeetを使うツールは、それ以外の言語にはバッチモデルを組み合わせます。

トランスデューサとエンコーダ・デコーダ

Whisperのようなエンコーダ・デコーダモデルは、読み手と書き手の組み合わせです。エンコーダが音声の一定区間を消化し、そのあとでデコーダが文字起こしを書きます。トランスデューサはこの2つをつなぎ、区間が閉じるのを待たずに、新しい音声の断片ごとに新しいトークンを出せるようにしています。これがストリーミングに必要な仕組みであり、トランスデューサが長い音声で安定しやすい理由でもあります。文章全体を「考え直して」繰り返すことがないからです。

音声入力ツールでの役割

Parakeetは、キーを押している間に動かしておきたいエンジンです。ノッチやピル型の表示にライブの文字起こしを出し、聞き取れていることを確認させ、キーを離した時点でやることをほとんど残しません。最終的なテキストの品質は、どのASRモデルでも同じく、そのあとに続く整形の段階と、名前のための辞書に左右されます。

Parakeet v2とv3:それぞれのバージョンでできること

いまParakeetといえば、たいていTDT 0.6Bの2つのリリースのことです。どちらもパラメータ数は6億で、句読点と大文字・小文字を付け、タイムスタンプを返し、CC BY 4.0ライセンスで公開されています。

違いは言語です。バージョン2は英語専用で、約12万時間の英語音声で学習されています。バージョン3はこれを25のヨーロッパ言語に広げ、どの言語が話されているかを指定なしで検出します。NVIDIAが報告するHugging Face Open ASR Leaderboardでの平均単語誤り率は、v2が6.05%、v3が6.34%です。

  • 西ヨーロッパ・北ヨーロッパ:デンマーク語、オランダ語、英語、フィンランド語、フランス語、ドイツ語、スウェーデン語。
  • 南ヨーロッパ:ギリシャ語、イタリア語、マルタ語、ポルトガル語、スペイン語。
  • 中央ヨーロッパ:クロアチア語、チェコ語、ハンガリー語、ポーランド語、スロバキア語、スロベニア語。
  • バルト:エストニア語、ラトビア語、リトアニア語。
  • 東ヨーロッパ:ブルガリア語、ルーマニア語、ロシア語、ウクライナ語。

自分のオーディオでParakeetを実行する方法

NVIDIAは、Python用のNeMoツールキットを通じてParakeetを公開しています。モデルカードでは対応OSはLinuxとされ、モデルはNVIDIAのグラフィックカード向けに最適化されているとあるので、Macで実行するのは実験と考えてください。読み込みには少なくとも2GBのメモリが必要で、メモリが多いほど長い音声を扱えます。

  1. 最近のバージョンのPyTorchをインストールしてから、ツールキットをインストールします:pip install -U nemo_toolkit['asr']
  2. 録音を、モデルが想定する16kHzモノラルのwavまたはflac形式に変換します。ffmpegの場合:ffmpeg -i input.m4a -ar 16000 -ac 1 audio.wav
  3. Pythonを起動して実行します:import nemo.collections.asr as nemo_asr
  4. モデルを読み込みます:asr_model = nemo_asr.models.ASRModel.from_pretrained(model_name="nvidia/parakeet-tdt-0.6b-v3")
  5. 文字起こしします:output = asr_model.transcribe(['audio.wav'])
  6. テキストを表示します:print(output[0].text)
  7. 単語単位とセグメント単位のタイムスタンプが必要な場合は、transcribeの呼び出しにtimestamps=Trueを追加します。

ParakeetとWhisper:公開されている事実で比べる

どちらもダウンロードできるオープンな音声認識モデルで、どちらも句読点付きのテキストを出力します。違うのは、サイズ、対応範囲、ライセンス、そして何のために設計されたかです。NVIDIAはParakeet TDT 0.6B v3を高スループットの文字起こし向けに設計されたと説明しており、そのモデルカードには、数秒ずつのチャンクで音声を処理するストリーミングモードも記載されています。

  • 言語:Parakeet TDT 0.6B v3は25のヨーロッパ言語に対応しています。Whisperは英語とほかの98言語で学習されています。
  • サイズ:Parakeet TDT 0.6Bのパラメータ数は6億です。Whisperは3,900万(tiny)から15億5,000万(large)まであります。
  • ライセンス:ParakeetはCC BY 4.0で、クレジット表記が必要です。WhisperはMITです。
  • 翻訳:Whisperはほかの言語を英語に翻訳できます。Parakeet TDTのモデルカードに記載されているのは文字起こしだけです。
  • 長い音声:Parakeetは1回で最大24分、ローカルアテンションを使えば最大3時間まで処理できます。Whisperはファイル全体に30秒の窓をずらしていきます。
  • 入力:Parakeetは16kHzモノラルのwavかflacを想定しています。Whisperはffmpegを使って一般的なオーディオ形式を読み込みます。

よくある質問。

音声認識におけるParakeetとは?

NVIDIAによるオープンソースのASRモデルのファミリーで、ストリーミングのために作られています。音声が入ると同時に言葉が出てきます。より多くの言語に対応するもののバッチで動くWhisperと、組み合わせて使われることがよくあります。

ParakeetはWhisperより優れていますか?

対応言語でのリアルタイム音声入力なら、話している間にテキストが表示されるので、使い心地はよく感じられます。対応言語の幅やファイルの文字起こしでは、Whisperのほうが幅広く対応しています。優れたツールは、それぞれを得意なことに使います。

Parakeetはどの言語に対応していますか?

Parakeet TDT 0.6B v2は英語のみに対応しています。バージョン3は、英語、スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語、オランダ語、ポーランド語、ロシア語、ウクライナ語を含む25のヨーロッパ言語に対応し、言語を自動で検出します。

Parakeetは商用利用できますか?

はい。NVIDIAはParakeet TDT 0.6BをCC BY 4.0ライセンスで公開しており、商用・非商用のどちらにも利用できるとしています。ライセンス上、クレジット表記が必要です。

Parakeetはどのくらいの長さのオーディオファイルを文字起こしできますか?

NVIDIAによると、Parakeet TDT 0.6B v3は、A100 80GBグラフィックカード上でフルアテンションなら最大24分、ローカルアテンションなら最大3時間のオーディオを処理できます。

ブログ記事

関連用語

いつだって、声のほうが速かった。

7日間無料、その後は$19 USDの買い切り。アカウント不要、サブスクリプションなし、アップロードなし。

macOS 14以降 · Apple silicon