import torch
from transformers import Wav2Vec2Model, Wav2Vec2Tokenizer
# 加载预训练模型和分词器
tokenizer = Wav2Vec2Tokenizer.from_pretrained("facebook/wav2vec2-base-960h")
model = Wav2Vec2Model.from_pretrained("facebook/wav2vec2-base-960h").eval()
# 示例音频文件的路径
audio_file_path = "path_to_your_audio_file.wav"
# 加载音频文件
audio_input, _ = tokenizer.audio_to_vector(audio_file_path, truncate=True)
# 把音频输入转换为模型期待的格式
input_values = torch.tensor([audio_input], dtype=torch.float32).to("cuda")
# 运行音频文件通过模型,获取其向量表示
with torch.no_grad():
outputs = model(input_values)
# 对于outputs进行处理,例如解码,根据具体需求进行
# 例如,可以使用ctc_loss进行解码
transcription = tokenizer.decode(outputs.logits.argmax(dim=-1), skip_special_tokens=True)
print(f"Transcription: {transcription}")
这段代码展示了如何使用预训练的Whisper模型对音频文件进行转写处理。首先加载模型和分词器,然后加载音频文件并将其转换为模型能够处理的输入格式。最后,将音频输入通过模型,并对输出结果进行处理,例如解码,以获取转写文本。这个过程是实现语音转文本技术的关键步骤。