有手就会!distil-medium.en模型本地部署与首次推理全流程实战
【免费下载链接】distil-medium.en 项目地址: https://gitcode.com/mirrors/distil-whisper/distil-medium.en
写在前面:硬件门槛
在开始之前,请确保你的设备满足以下最低硬件要求,以便顺利运行distil-medium.en模型:
- 推理(Inference):至少需要4GB显存的GPU(如NVIDIA GTX 1050或更高版本),或者使用CPU(性能较低)。
- 微调(Fine-tuning):推荐使用显存大于8GB的GPU(如NVIDIA RTX 2080或更高版本)。
如果你的设备不满足这些要求,可能会遇到性能问题或无法运行的情况。
环境准备清单
在开始之前,请确保你的系统已经安装了以下工具和库:
- Python 3.8 或更高版本:推荐使用Python 3.8+,可以通过
python --version检查版本。 - pip 包管理工具:确保pip是最新版本,可以通过
pip install --upgrade pip升级。 - PyTorch:根据你的硬件选择安装PyTorch(支持CUDA或CPU版本)。可以通过以下命令安装:
pip install torch torchvision torchaudio - Transformers库:安装最新版本的
transformers库:pip install transformers - Datasets库(可选):如果你需要加载示例音频数据,可以安装:
pip install datasets[audio]
模型资源获取
distil-medium.en是一个开源的语音识别模型,你可以通过以下代码直接加载模型和处理器:
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
model_id = "distil-whisper/distil-medium.en"
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id)
processor = AutoProcessor.from_pretrained(model_id)
模型会自动下载到本地缓存目录中,无需手动下载。
逐行解析“Hello World”代码
以下是一个完整的示例代码,用于加载模型并进行短语音识别:
import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
from datasets import load_dataset
# 检查设备(GPU或CPU)
device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
# 加载模型和处理器
model_id = "distil-whisper/distil-medium.en"
model = AutoModelForSpeechSeq2Seq.from_pretrained(
model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True
)
model.to(device)
processor = AutoProcessor.from_pretrained(model_id)
# 创建语音识别管道
pipe = pipeline(
"automatic-speech-recognition",
model=model,
tokenizer=processor.tokenizer,
feature_extractor=processor.feature_extractor,
max_new_tokens=128,
torch_dtype=torch_dtype,
device=device,
)
# 加载示例音频数据
dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
sample = dataset[0]["audio"]
# 进行语音识别
result = pipe(sample)
print(result["text"])
代码逐行解析:
-
设备检查:
device = "cuda:0" if torch.cuda.is_available() else "cpu":检查是否有可用的GPU,如果没有则使用CPU。torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32:根据设备选择数据类型(GPU使用半精度浮点数以节省显存)。
-
加载模型和处理器:
AutoModelForSpeechSeq2Seq.from_pretrained:加载预训练模型。AutoProcessor.from_pretrained:加载处理器,用于音频特征提取和文本分词。
-
创建管道:
pipeline:创建一个语音识别管道,指定模型、分词器、特征提取器等参数。
-
加载音频数据:
load_dataset:从示例数据集中加载音频数据。
-
语音识别:
pipe(sample):对音频进行识别,返回识别结果。
运行与结果展示
运行上述代码后,你将看到类似以下输出:
"HELLO WORLD THIS IS A TEST AUDIO"
这表明模型已经成功识别了音频内容。
常见问题(FAQ)与解决方案
1. 运行时显存不足
- 问题:运行时报错“CUDA out of memory”。
- 解决方案:
- 降低
batch_size或chunk_length_s参数。 - 使用
torch.float16数据类型以节省显存。
- 降低
2. 音频文件无法加载
- 问题:加载本地音频文件时报错。
- 解决方案:
- 确保音频文件格式为常见格式(如MP3、WAV)。
- 使用
pipe("audio.mp3")直接加载本地文件。
3. 识别结果不准确
- 问题:识别结果与预期不符。
- 解决方案:
- 确保音频质量清晰。
- 尝试调整
max_new_tokens参数以增加输出长度。
结语
【免费下载链接】distil-medium.en 项目地址: https://gitcode.com/mirrors/distil-whisper/distil-medium.en
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



