模型概述
模型特點
模型能力
使用案例
🚀 NB-Whisper Large
挪威國家圖書館自豪地推出了挪威語的NB-Whisper Large模型。NB-Whisper是一系列前沿的模型,專為自動語音識別(ASR)和語音翻譯而設計。這些模型基於OpenAI的Whisper開發。該系列的每個模型都經過250,000步的訓練,使用了包含800萬個樣本的多樣化數據集。這些樣本由30秒長的對齊音頻片段組成,累計時長達到了驚人的66,000小時的語音數據。有關我們的訓練方法和數據集組成的詳細信息,請關注我們即將發佈的文章。
✨ 主要特性
- 多語言支持:支持挪威語、挪威書面語、新挪威語和英語。
- 多種模型尺寸:提供Tiny、Base、Small、Medium和Large等不同尺寸的模型,以滿足不同場景的需求。
- 多種使用方式:支持在線演示、本地部署,還可以通過API訪問。
- 多種輸出格式:可以輸出文本、帶時間戳的文本,還支持說話人分離。
📦 安裝指南
本地安裝
如果你想在本地運行模型,Tiny、Base和Small模型針對CPU進行了優化,而Medium和Large模型建議使用配備GPU的系統以確保高效處理。只要你的機器上安裝了Python,使用HuggingFace的Transformers來設置和使用這些模型非常簡單。以下是具體步驟:
# 下載示例文件
$ wget -N https://github.com/NbAiLab/nb-whisper/raw/main/audio/king.mp3
# 安裝必要的庫
$ pip install transformers>=4.35.2
Whisper CPP安裝
Whisper CPP是Whisper模型的C++實現,它提供了相同的功能,並具有C++的高效性和性能優化。這允許將任何Whisper模型嵌入到二進制文件中,便於開發實際應用。不過,這需要你對編譯C++程序有一定的瞭解。可以從其主頁獲取構建應用程序的示例,包括即時轉錄。
# 克隆並編譯whisper.cpp
$ git clone --depth 1 https://github.com/ggerganov/whisper.cpp --branch v1.5.1
$ cd whisper.cpp/
$ make
# 將音頻轉換為WAV格式,因為whisper.cpp僅支持該格式
$ wget -N https://github.com/NbAiLab/nb-whisper/raw/main/audio/king.mp3
$ ffmpeg -i king.mp3 -ar 16000 -ac 1 -c:a pcm_s16le king.wav
# 從本網站下載兩個ggml文件
wget -N https://huggingface.co/NbAiLab/nb-whisper-large/resolve/main/ggml-model.bin -O models/nb-large-ggml-model.bin
wget -N https://huggingface.co/NbAiLab/nb-whisper-large/resolve/main/ggml-model-q5_0.bin -O models/nb-large-ggml-model-q5_0.bin
# 使用f16默認模型運行
$ ./main -l no -m models/nb-large-ggml-model.bin king.wav
# 或者使用量化版本運行
$ ./main -l no -m models/nb-large-ggml-model-q5_0.bin king.wav
WhisperX和說話人分離安裝
說話人分離是自然語言處理和自動語音識別中的一項技術,用於識別和分離音頻記錄中的不同說話人。它根據說話人將音頻分割成不同部分,提高會議或電話轉錄的質量。我們發現WhisperX是使用我們的模型進行語音分離的最簡單方法。此外,WhisperX使用基於音素的Wav2Vec模型來改進時間戳的對齊。截至2023年12月,它還原生支持使用nb-wav2vec模型。目前,它使用PyAnnote-audio進行實際的說話人分離。這個包有相當嚴格的許可證,你必須同意用戶條款。請按照以下說明操作:
# 按照https://github.com/m-bain/whisperX上的安裝說明進行操作
# 確保你有一個HuggingFace賬戶,並同意了pyannote的條款
# 登錄(或在命令行中提供HF令牌)
huggingface-cli login
# 下載測試文件
wget -N https://github.com/NbAiLab/nb-whisper/raw/main/audio/knuthamsun.mp3
# 可選。如果你收到不支持挪威語的抱怨,請執行以下操作
pip uninstall whisperx && pip install git+https://github.com/m-bain/whisperx.git@8540ff5985fceee764acbed94f656063d7f56540
# 轉錄測試文件。所有轉錄結果將保存在mp3文件所在的目錄中
whisperx knuthamsun.mp3 --model NbAiLabBeta/nb-whisper-large --language no --diarize
💻 使用示例
基礎用法
from transformers import pipeline
# 加載模型
asr = pipeline("automatic-speech-recognition", "NbAiLabBeta/nb-whisper-large")
# 轉錄
asr("king.mp3", generate_kwargs={'task': 'transcribe', 'language': 'no'})
高級用法
長文本轉錄
# 長文本轉錄
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]},
// ... 更多片段 ...
{"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 |
支持語言 | 挪威語、挪威書面語、新挪威語、英語 |
許可證 | Apache 2.0 |
訓練基礎模型 | openai/whisper-large-v3 |
代碼倉庫 | https://github.com/NbAiLab/nb-whisper/ |
論文 | 即將發佈 |
演示 | 見本頁面的Spaces部分 |
在線演示
你可以通過本頁面右側的HuggingFace推理API直接試用這些模型。請注意,模型首次加載時需要一些時間,並且在有限的CPU資源上運行可能會較慢。為了提升體驗,我們暫時在TPU上託管了一些模型,為期數天,這將顯著提高其性能。你可以在主頁的Spaces部分進行探索。
API
在Spaces下的演示中包含了通過簡單API訪問模型的說明。請注意,這些演示是臨時的,僅在幾周內可用。
訓練數據
訓練數據來自Språkbanken和挪威國家圖書館的數字館藏,包括:
- NST挪威語ASR數據庫(16 kHz)及其相應的數據集
- Språkbanken轉錄的挪威議會演講
- 電視廣播(NRK)字幕(挪威國家圖書館數字館藏)
- 有聲讀物(挪威國家圖書館數字館藏)
下游應用
這些模型,尤其是較小的模型,偶爾可能會出現幻覺現象,並且可能會遺漏部分轉錄內容。它們旨在將口語轉換為語法正確的書面句子,可能並非總是逐字翻譯。我們為希望採用不同轉錄風格的用戶提供了兩種額外的模型變體。我們鼓勵用戶親自試用這些模型,以更好地瞭解其性能。
偏差、風險和侷限性
在未進行充分風險評估和緩解的情況下使用這些模型可能被視為不負責任的行為。這些模型可能包含偏差或其他不良扭曲。部署這些模型或將其集成到系統或服務中的用戶有責任減輕風險,並遵守適用的AI法規。作為模型所有者,挪威國家圖書館對第三方使用這些模型所產生的任何結果不承擔責任。
軟件
該模型使用Jax/Flax進行訓練,並轉換為PyTorch、Tensorflow、whisper.cpp和ONXX格式。這些格式可在Files and versions
中獲取。我們歡迎將模型轉換為其他格式的請求。所有訓練代碼和腳本均在GitHub倉庫nb-whisper中以Apache License 2.0的形式發佈。
引用與貢獻者
NB-Whisper Large模型是由挪威國家圖書館的Per Egil Kummervold(@pere)領導的NoSTram項目的成果。主要貢獻者包括Javier de la Rosa(@versae)、Freddy Wetjen(@freddyw)和Rolv-Arild Braaten(@Rolv-Arild)。在Svein Arne Brygfjeld(@Brygfjeld)的指導下,NB AI-Lab支持了該項目的順利完成。關於我們的過程和發現的詳細論文即將發佈。
免責聲明
本倉庫中發佈的模型旨在用於通用目的,並可供第三方使用。這些模型可能存在偏差和/或其他不良扭曲。當第三方部署或向其他方提供使用這些模型(或基於這些模型的系統)的系統和/或服務,或成為這些模型的用戶時,他們應注意,減輕使用這些模型所帶來的風險並遵守適用法規(包括有關人工智能使用的法規)是他們的責任。在任何情況下,模型所有者(挪威國家圖書館)均不對第三方使用這些模型所產生的任何結果承擔責任。
歸屬聲明
該模型根據Apache-2.0許可證發佈。請注意,對於在挪威進行的下載,即使Apache許可證中未明確提及,挪威版權法中規定的歸屬要求在相關情況下仍然適用。儘管在其他國家下載和使用該模型時可能不需要歸屬聲明。
📄 許可證
本項目採用Apache 2.0許可證。



