Parakeet
更新于
定义
Parakeet是NVIDIA推出的一系列开源语音识别模型,基于transducer架构,可以在音频到达的同时输出文字。这让它成为实时听写工具中常见的引擎;而Whisper的设计是先读完一整段。
Parakeet模型的训练目标与Whisper相同,但结构不同:transducer不是读完一整段再写,而是持续产生词元,所以你还在说话时文字就能出现。在Apple芯片上,较小的Parakeet版本能绰绰有余地实时运行,这让它们天然适合听写,因为听写要求文字在松开按键时就到位。
代价是语言覆盖范围。Parakeet模型训练所用的语言比Whisper少,所以用它做流式转写的工具,会把它与一个批量模型搭配,处理其余所有语言。
Transducer与编码器-解码器
像Whisper这样的编码器-解码器模型,既是读者又是写者:编码器消化一段音频,解码器再写出转写文本。transducer把两者连在一起,每一小段新音频都能产生一个新token,无需等待这段窗口结束。这正是流式所需要的,也是transducer在长音频上往往更稳定的原因:它们从来没有机会“重新考虑”一整段并重复它。
它在听写工具中的位置
Parakeet是你按住按键时想要运行的引擎。它在刘海或胶囊中提供实时转写,确认你的话被听到了,并让松开按键时几乎无事可做。最终的文字质量仍取决于随后的格式化阶段,以及用于名字的词典,任何ASR模型都是如此。
Parakeet v2与v3:哪个版本做什么
如今大多数人说的Parakeet模型是两个TDT 0.6B版本。两者都有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。模型卡将Linux列为受支持的操作系统,并说明该模型针对NVIDIA显卡进行了优化,所以在Mac上运行只能算是一次尝试。加载它至少需要2 GB内存,内存越多,能处理的音频越长。
- 安装较新版本的PyTorch,然后用以下命令安装工具包:pip install -U nemo_toolkit['asr']
- 把录音转换成模型要求的格式:16 kHz单声道的wav或flac。使用ffmpeg:ffmpeg -i input.m4a -ar 16000 -ac 1 audio.wav
- 启动Python并运行:import nemo.collections.asr as nemo_asr
- 用以下代码加载模型:asr_model = nemo_asr.models.ASRModel.from_pretrained(model_name="nvidia/parakeet-tdt-0.6b-v3")
- 用以下代码转写:output = asr_model.transcribe(['audio.wav'])
- 用以下代码输出文本:print(output[0].text)
- 如果需要词级和分段级时间戳,请在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从3900万(tiny)到15.5亿(large)不等。
- 许可证:Parakeet采用CC BY 4.0,要求署名。Whisper采用MIT许可证。
- 翻译:Whisper可以把其他语言翻译成英语。Parakeet TDT的模型卡只描述了转写功能。
- 长音频:Parakeet一次最多可处理24分钟,使用局部注意力时最多可处理3小时。Whisper以30秒的窗口在文件中逐段移动。
- 输入:Parakeet要求16 kHz单声道的wav或flac。Whisper使用ffmpeg读取常见的音频格式。
大家常问的问题。
语音识别中的Parakeet是什么?
NVIDIA推出的一系列开源ASR模型,专为流式而生:音频一进来,文字就出来。它常与Whisper搭配使用,Whisper支持更多语言,但以批量方式工作。
Parakeet比Whisper更好吗?
在受支持语言的实时听写中,它用起来更好,因为文字会在你说话时出现。在语言覆盖范围和文件转写方面,Whisper更广。好的工具会让两者各展所长。
Parakeet支持哪些语言?
Parakeet TDT 0.6B v2只支持英语。第3版支持25种欧洲语言,包括英语、西班牙语、法语、德语、意大利语、葡萄牙语、荷兰语、波兰语、俄语和乌克兰语,并能自动检测语言。
Parakeet可以免费用于商业用途吗?
可以。NVIDIA以CC BY 4.0许可证发布Parakeet TDT 0.6B,并声明该模型可用于商业和非商业用途。该许可证要求署名。
Parakeet能转写多长的音频文件?
NVIDIA称,在A100 80GB显卡上使用全注意力时,Parakeet TDT 0.6B v3可处理最长24分钟的音频,使用局部注意力时最长可达3小时。