原文:
huggingface.co/docs/transformers
Whisper
原文:
huggingface.co/docs/transformers/v4.37.2/en/model_doc/whisper
概述
Whisper 模型由 Alec Radford、Jong Wook Kim、Tao Xu、Greg Brockman、Christine McLeavey、Ilya Sutskever 在通过大规模弱监督实现稳健语音识别中提出。
论文摘要如下:
我们研究了简单训练以预测互联网上大量音频转录的语音处理系统的能力。当扩展到 680,000 小时的多语言和多任务监督时,得到的模型在标准基准上表现良好,并且通常与先前的完全监督结果竞争,但在零次迁移设置中无需任何微调。与人类相比,模型接近其准确性和稳健性。我们发布了模型和推理代码,以作为进一步研究稳健语音处理的基础。
此模型由Arthur Zucker贡献。此模型的 Tensorflow 版本由amyeroberts贡献。原始代码可在此处找到。
使用提示
- 该模型通常无需任何微调即可表现良好。
- 该架构遵循经典的编码器-解码器架构,这意味着它依赖于 generate()函数进行推理。
- 目前仅实现了短形式的推理,即音频被预分段为<=30 秒的片段。长形式(包括时间戳)将在未来的版本中实现。
- 可以使用 WhisperProcessor 来准备音频以供模型使用,并将预测的 ID 解码回文本。
- 要转换模型和处理器,我们建议使用以下方法:
python src/transformers/models/whisper/convert_openai_to_hf.py --checkpoint_path "" --pytorch_dump_folder_path "Arthur/whisper-3" --convert_preprocessor True
脚本将自动从 OpenAI 检查点确定所有必要的参数。需要安装tiktoken
库以执行将 OpenAI 分词器转换为tokenizers
版本的转换。
推理
以下是使用预训练的 Whisper 模型转录音频样本的逐步指南:
代码语言:javascript复制>>> from datasets import load_dataset
>>> from transformers import WhisperProcessor, WhisperForConditionalGeneration
>>> # Select an audio file and read it:
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> audio_sample = ds[0]["audio"]
>>> waveform = audio_sample["array"]
>>> sampling_rate = audio_sample["sampling_rate"]
>>> # Load the Whisper model in Hugging Face format:
>>> processor = WhisperProcessor.from_pretrained("openai/whisper-tiny.en")
>>> model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-tiny.en")
>>> # Use the model and processor to transcribe the audio:
>>> input_features = processor(
... waveform, sampling_rate=sampling_rate, return_tensors="pt"
... ).input_features
>>> # Generate token ids
>>> predicted_ids = model.generate(input_features)
>>> # Decode token ids to text
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
>>> transcription[0]
' Mr. Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.'
资源
官方 Hugging Face 和社区(由