モデル概要
モデル特徴
モデル能力
使用事例
🚀 微調整されたVerbatimモデル
このモデルは、以下のモデルの上にさらに200ステップ学習されています。これにより、小文字のテキストのみを出力し、句読点を含まないようになっています。また、かなり逐語的で、テキストの文法エラーを修正しようとすることはありません。
🚀 ノルウェー語NB-Whisper Medium Verbatim(リリース候補)
重要: これらのモデルは現在リリース候補です。私たちはテストの最終段階にあります。すべて順調に進めば、今月下旬にこれらのモデルを正式にリリースする予定です。
ノルウェー国立図書館によって開発された、ノルウェー語NB-Whisper Medium Verbatimモデル をご紹介します。NB-Whisperは、自動音声認識(ASR)と音声翻訳のために設計された最先端のモデルシリーズです。これらのモデルは、OpenAIのWhisper の成果を基に構築されています。シリーズ内の各モデルは、800万サンプルの多様なデータセットを使用して25万ステップ学習されています。これらのサンプルは、それぞれ30秒の長さの音声クリップで構成され、合計で驚くべき6万6000時間の音声に相当します。詳細な学習方法とデータセットの構成については、近日公開される記事をご覧ください。
モデルサイズ | パラメータ | モデル |
---|---|---|
Tiny | 39M | NB-Whisper Tiny |
Base | 74M | NB-Whisper Base |
Small | 244M | NB-Whisper Small |
Medium | 769M | NB-Whisper Medium |
Large | 1550M | NB-Whisper Large |
特殊モデル
メインモデルはほとんどの文字起こしタスクに適していますが、メインモデルの出力を変更するのがいかに簡単かを示します。以下のモデルは、上記のメインモデルからさらに250ステップ学習されており、よりターゲット化されたユースケースに適している可能性があります。
- Verbatimバージョン: この小文字のバリアントはより逐語的で、言語分析などの詳細な文字起こしが必要なタスクに適しています。
- Semanticバージョン: このバリアントは逐語的な精度よりも内容の本質を捉えることに重点を置いており、会議録や字幕作成に最適です。
モデルサイズ | パラメータ | Verbatimバージョン | Semanticバージョン |
---|---|---|---|
Tiny | 39M | Tiny - verbatim | Tiny - semantic |
Base | 74M | Base - verbatim | Base - semantic |
Small | 244M | Small - verbatim | Small - semantic |
Medium | 769M | Medium - verbatim | Medium - semantic |
Large | 1550M | Large - verbatim | Large - semantic |
モデルの説明
- 開発元: NB AI-Lab
- 共有元: NB AI-Lab
- モデルタイプ:
whisper
- 言語: ノルウェー語、ノルウェー語ボクモール、ノルウェー語ニュノルスク、英語
- ライセンス: Apache 2.0
- 学習元モデル: openai/whisper-medium
- コードリポジトリ: https://github.com/NbAiLab/nb-whisper/
- 論文: 近日公開予定
- デモ: このページのSpacesを参照
🚀 クイックスタート
オンラインデモ
このページの右側にあるHuggingFace Inference APIを通じて、直接モデルを試すことができます。最初はモデルの読み込みが必要で、限られたCPU容量で実行されるため、速度が遅くなる場合があります。快適な体験を提供するため、一部のモデルを一時的にTPUで数日期間ホスティングしており、パフォーマンスが大幅に向上しています。メインページ の Spaces セクションでこれらを探索してください。
HuggingFaceを使用したローカルセットアップ
あるいは、モデルをローカルで実行することもできます。Tiny、Base、およびSmallモデルはCPU実行に最適化されています。MediumおよびLargeモデルについては、効率的な処理を確保するためにGPUを備えたシステムを推奨します。HuggingFaceのTransformersを使用してこれらのモデルをセットアップし、使用するのは簡単です。ただし、マシンに Python がインストールされている必要があります。実際のデモについては、この サンプルmp3ファイル を使用した例を参照してください。
# サンプルファイルをダウンロード
$ wget -N https://github.com/NbAiLab/nb-whisper/raw/main/audio/king.mp3
# 必要なライブラリをインストール
$ pip install transformers>=4.35.2
これが完了したら、Pythonで以下のコードを実行できるはずです。
from transformers import pipeline
# モデルをロード
asr = pipeline("automatic-speech-recognition", "NbAiLabBeta/nb-whisper-medium-verbatim")
# 文字起こし
asr("king.mp3", generate_kwargs={'task': 'transcribe', 'language': 'no'})
期待される出力
{
{'text': ' Nordmenn er nordlendinger, trøndere, sørlendinger og folk fra alle andre regioner. Nordmenn er også innvandret fra Afghanistan, Pakistan, Polen, Sverige, Somalia og Syria. Det er ikke alltid så lett å si hvor vi er fra, hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra.'}
}
拡張HuggingFace
上記の出力を見ると、末尾に複数の繰り返しがあることがわかります。これは、ビデオが30秒より長いためです。chunk_lengt_s
引数を渡すことで、より長いファイルの文字起こしが可能です。私たちの経験では、デフォルトの30秒ではなく28秒に設定すると、わずかに良い結果が得られます。可能であれば、ビームサイズを5に設定することもおすすめします。これにより精度が大幅に向上しますが、少し時間がかかり、少し多くのメモリが必要になります。以下の例では、英語またはニュノルスク語への文字起こし方法と、文や単語のタイムスタンプを取得する方法も示されています。
# 長い文字起こし
asr("king.mp3", chunk_length_s=28, generate_kwargs={'task': 'transcribe', 'language': 'no'})
# ビームサイズを5に設定して精度を向上
asr("king.mp3", chunk_length_s=28, return_timestamps=True, generate_kwargs={'num_beams': 5, 'task': 'transcribe', 'language': 'no'})
# タイムスタンプを返す
asr("king.mp3", chunk_length_s=28, return_timestamps=True, generate_kwargs={'task': 'transcribe', 'language': 'no'})
# 単語レベルのタイムスタンプを返す
asr("king.mp3", chunk_length_s=28, return_timestamps="word", generate_kwargs={'task': 'transcribe', 'language': 'no'})
# ニュノルスク語への文字起こし
asr("king.mp3", chunk_length_s=28, generate_kwargs={'task': 'transcribe', 'language': 'nn'})
# 英語への文字起こし
asr("king.mp3", chunk_length_s=28, generate_kwargs={'task': 'transcribe', 'language': 'en'})
期待される出力
長い文字起こし:
{
{'text': ' Nordmenn er nordlendinger, trøndere, sørlendinger og folk fra alle andre regioner. Nordmenn er også innvandret fra Afghanistan, Pakistan, Polen, Sverige, Somalia og Syria. Det er ikke alltid så lett å si hvor vi er fra, hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra, hvilken nasjonalitet vi tilhører. Det vi kaller hjem, er der hjertet vårt er, og det kan ikke alltid plasseres innenfor landegrenser. Nordmenn er jenter som er glad i jenter, gutter som er glad i gutter, og jenter og gutter som er glad i hverandre. Nordmenn trommer på Gud, Allah, Altet og ingenting. Nordmenn liker Grieg, Kygo, Helbilis og Kari Bremnes. Med andre ord, Norge er dere. Norge er oss. Mitt største håp for Norge er at vi skal klare å ta vare på hverandre, at vi skal bygge dette landet videre på tillit, fellesskap og raushet.'}
}
タイムスタンプ:
{
{'text': ' Nordmenn er nordlendinger, trøndere, sørlendinger og folk fra alle andre regioner. Nordmenn er også innvandret fra Afghanistan, Pakistan, Polen, Sverige, Somalia og Syria. Det er ikke alltid så lett å si hvor vi er fra, hvilken nasjonalitet vi er fra. Hvilken nasjonalitet vi er fra. hvilken nasjonalitet vi tilhører. Det vi kaller hjem, er der hjertet vårt er, og det kan ikke alltid plasseres innenfor landegrenser. Nordmenn er jenter som er glad i jenter, gutter som er glad i gutter, og jenter og gutter som er glad i hverandre. Nordmenn trommer på Gud, Allah, Altet og ingenting. Nordmenn liker Grieg, Kygo, Helbiles og Kari Bremnes. Med andre ord, Norge er dere. Norge er oss. Mitt største håp for Norge er at vi skal klare å ta vare på hverandre, at vi skal bygge dette landet videre på tillit, fellesskap og raushet.',
'chunks': [{'timestamp': (0.0, 5.46),
'text': ' Nordmenn er nordlendinger, trøndere, sørlendinger'},
{'timestamp': (5.52, 8.68), 'text': ' og folk fra alle andre regioner.'},
{'timestamp': (8.68, 16.64),
'text': ' Nordmenn er også innvandret fra Afghanistan, Pakistan, Polen, Sverige, Somalia og Syria.'},
{'timestamp': (16.64, 13.3),
'text': ' Det er ikke alltid så lett å si hvor vi er fra, hvilken nasjonalitet vi er fra.'},
{'timestamp': (13.32, 30.28),
'text': ' Hvilken nasjonalitet vi er fra. hvilken nasjonalitet vi tilhører.'},
{'timestamp': (32.52, 39.16),
'text': ' Det vi kaller hjem, er der hjertet vårt er, og det kan ikke alltid plasseres'},
{'timestamp': (39.16, 42.0), 'text': ' innenfor landegrenser.'},
{'timestamp': (42.0, 46.74),
'text': ' Nordmenn er jenter som er glad i jenter, gutter som er glad i gutter,'},
{'timestamp': (46.74, 51.12),
'text': ' og jenter og gutter som er glad i hverandre.'},
{'timestamp': (51.16, 57.42),
'text': ' Nordmenn trommer på Gud, Allah, Altet og ingenting.'},
{'timestamp': (57.42, 64.3),
'text': ' Nordmenn liker Grieg, Kygo, Helbiles og Kari Bremnes.'},
{'timestamp': (64.34, 71.24),
'text': ' Med andre ord, Norge er dere. Norge er oss.'},
{'timestamp': (71.24, 78.04),
'text': ' Mitt største håp for Norge er at vi skal klare å ta vare på hverandre,'},
{'timestamp': (78.12, 84.68),
'text': ' at vi skal bygge dette landet videre på tillit, fellesskap og raushet.'}]}
}
単語レベルのタイムスタンプ:
{
{"text": "Nordmenn er nordlendinger, trøndere, sørlendinger og folk fra alle andre regioner. Nordmenn er også innvandret fra Afghanistan, Pakistan, Polen, Sverige, Somalia og Syria. Det er ikke alltid så lett å si hvor vi er fra, hvilken nasjonalitet vi tilhører. Det vi kaller hjem, er der hjertet vårt er, og det kan ikke alltid plasseres innenfor landegrenser. Nordmenn er jenter som er glad i jenter, gutter som er glad i gutter, og jenter og gutter som er glad i hverandre. Nordmenn trommer på Gud, Allah, Altet og ingenting. Nordmenn liker Grieg, Kygo, Helbilis og Kari Bremnes. Med andre ord, Norge er dere. Norge er oss. Mitt største håp for Norge er at vi skal klare å ta vare på hverandre, at vi skal bygge dette landet videre på tillit, fellesskap og raushet.",
"chunks": [
{"text": "Nordmenn", "timestamp": [0.72, 1.42]},
{"text": "er", "timestamp": [1.42, 1.74]},
// ... more chunks ...
{"text": "raushet.", "timestamp": [83.1, 84.88]}
]
}
}
ニュノルスク語:
{
{"text": "Nordmenn er nordlendingar, trøndarar, sørlendingar og folk frå alle andre regionar. Nordmenn er også innvandra frå Afghanistan, Pakistan, Polen, Sverige, Somalia og Syria. Det er ikkje alltid så lett å seie kvar vi er frå, kva nasjonalitet vi tilhøyrer. Det vi kallar heim, er der hjartet vårt er, og det kan ikkje alltid plasserast innanfor landegrenser. Nordmenn er jenter som er glad i jenter, gutar som erade i gutar, og jenter og gutar som er glade i kvarandre. Nordmenn trommar på Gud, Allah, Altet og ingenting. Nordmenn liker Grieg, Kygo, Helbiles og Kari Bremnes. Med andre ord, Noreg er dere! Noreg er oss. Mitt største håp for Noreg er at vi skal klare å ta vare på kvarandre, at vi skal byggje dette landet vidare på tillit, fellesskap og raushet."}
}
英語:
{
{"text": "Norwegians are Norwegians, trønders, southerners and people from all other regions. Norwegians are also invaded from Afghanistan, Pakistan, Poland, Sweden, Somalia and Suria. It is not always so easy to say where we are from, what nationality we belong to. What we call home is where our heart is, and it cannot always be placed within national borders. Norwegians are girls who like girls, boys who like boys, and girls and boys who like each other. Norwegians thrump on God, Allah, Altet and nothing. Norwegians like Grieg, Kygo, Helbilis and Kari Bremnes. In other words, Norway is you. Norway is us. My biggest hope for Norway is that we should be able to take care of each other, that we should build this country on trust, community and generosity."}
}
Whisper CPP
Whisper CPPは、WhisperモデルのC++実装であり、C++の効率性とパフォーマンス最適化の利点を備えた同じ機能を提供します。これにより、任意のWhisperモデルをバイナリファイルに埋め込むことができ、実際のアプリケーションの開発が容易になります。ただし、C++プログラムのコンパイルにある程度の知識が必要です。ホームページ には、リアルタイム文字起こしを含むアプリケーションの構築方法の例が掲載されています。
私たちは、このモデルをWhisper CPPバイナリで使用されるggml形式のモデルに変換しました。ファイルは こちら からダウンロードでき、q5_0
量子化バージョンも こちら から入手可能です。
# whisper.cppをダウンロードしてコンパイル
$ git cl
📄 ライセンス
このモデルは Apache 2.0 ライセンスの下で提供されています。



