模型简介
模型特点
模型能力
使用案例
🚀 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许可证。



