自定义 Whisper 模型训练:预训练权重下载与数据集准备
预训练权重下载官方仓库:访问 GitHub 项目权重下载运行以下命令自动下载指定模型(以base支持模型包括:tinybasesmallmediumlarge(根据需求选择,越大精度越高但计算资源消耗越大)。手动下载。
·
自定义 Whisper 模型训练:预训练权重下载与数据集准备
1. 预训练权重下载
Whisper 的预训练模型由 OpenAI 发布,可通过官方渠道获取:
-
官方仓库:访问 GitHub 项目 openai/whisper
-
权重下载:
运行以下命令自动下载指定模型(以base为例):pip install git+https://github.com/openai/whisper.git whisper --model base支持模型包括:
tiny、base、small、medium、large(根据需求选择,越大精度越高但计算资源消耗越大)。 -
手动下载:
若需离线使用,直接从 Hugging Face Hub 下载:from huggingface_hub import snapshot_download snapshot_download(repo_id="openai/whisper-base")
2. 数据集准备
(1) 数据格式要求
- 音频文件:支持
.wav、.mp3等格式,建议采样率 16kHz(与 Whisper 训练一致) - 标注文件:每段音频对应一个
.txt文件,内容为纯文本转录,例如:audio_001.wav → audio_001.txt (内容:"今天天气晴朗")
(2) 数据集结构
推荐目录结构:
custom_dataset/
├── audio/
│ ├── sample1.wav
│ ├── sample2.wav
│ └── ...
└── transcripts/
├── sample1.txt
├── sample2.txt
└── ...
(3) 数据预处理脚本
使用以下 Python 脚本验证数据对齐:
import os
import librosa
audio_dir = "custom_dataset/audio"
text_dir = "custom_dataset/transcripts"
for file in os.listdir(audio_dir):
audio_path = os.path.join(audio_dir, file)
text_path = os.path.join(text_dir, os.path.splitext(file)[0] + ".txt")
# 检查音频是否可加载
try:
y, sr = librosa.load(audio_path, sr=16000)
print(f"✅ {file}: 音频时长 {len(y)/sr:.2f}s")
except:
print(f"❌ {file}: 音频加载失败")
# 检查转录文件是否存在
if not os.path.exists(text_path):
print(f"❌ 缺失转录文件: {text_path}")
3. 关键注意事项
- 数据量要求:
微调建议至少 100 小时语音数据(低资源场景可用 10-50 小时,但效果受限) - 语言覆盖:
若训练多语言模型,需平衡不同语言的数据比例 - 噪声控制:
添加背景噪声时可使用音频增强库:from audiomentations import AddBackgroundNoise augmenter = AddBackgroundNoise(p=0.3) augmented_audio = augmenter(y, sr)
4. 下一步建议
完成数据准备后,可结合框架(如 Hugging Face Transformers)进行微调:
from transformers import WhisperForConditionalGeneration
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-base")
# 加载自定义数据集并启动训练...
提示:对于长音频(>30秒),需先分割为片段后再训练,避免内存溢出。
更多推荐
所有评论(0)