You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用WAV音频与Excel转录文件搭建数据集训练OpenAI Whisper模型

把自定义WAV+Excel数据转为Whisper训练数据集的步骤

1. 整理Excel转录数据

  • 确认Excel表格至少包含两列:一列是音频文件的绝对/相对路径(比如./audio/clip_001.wav),另一列是对应的准确转录文本(要和音频内容完全匹配,避免多余标点或错误)。
  • 将Excel导出为UTF-8编码的CSV文件,命名为transcripts.csv,方便后续批量处理。

2. 转换为Whisper兼容格式

Whisper训练支持JSONL或直接通过Hugging Face Datasets加载,两种方式任选:

方式一:手动生成JSONL文件

每行是包含audio(音频路径)和text(转录文本)的JSON对象,示例格式:

{"audio": "./audio/clip_001.wav", "text": "会议室的设备已经调试完毕"}
{"audio": "./audio/clip_002.wav", "text": "请在下周五前提交项目报告"}

用Python脚本批量生成的示例代码:

import pandas as pd
import json

# 读取CSV文件
df = pd.read_csv("transcripts.csv")

# 生成JSONL
with open("whisper_dataset.jsonl", "w", encoding="utf-8") as f:
    for _, row in df.iterrows():
        entry = {"audio": row["audio_path"], "text": row["transcript"]}
        json.dump(entry, f, ensure_ascii=False)
        f.write("\n")

方式二:用Hugging Face Datasets加载处理

直接把CSV转为Dataset对象,可直接对接后续训练流程:

from datasets import load_dataset

# 加载CSV数据集
dataset = load_dataset("csv", data_files="transcripts.csv")

# 可选:拆分训练集和验证集(按10%比例拆分)
dataset = dataset["train"].train_test_split(test_size=0.1)

3. 数据验证与预处理

  • 检查所有音频文件路径是否有效,避免训练时出现文件找不到的错误。
  • 核对转录文本与音频内容的一致性,剔除空文本、异常长度的无效样本。
  • 可选:统一音频采样率到16kHz(Whisper默认要求),用librosa批量处理的示例:
import librosa
import soundfile as sf

def resample_to_16k(audio_path):
    y, sr = librosa.load(audio_path, sr=None)
    if sr != 16000:
        y = librosa.resample(y, orig_sr=sr, target_sr=16000)
        sf.write(audio_path, y, 16000)

# 遍历所有音频文件处理
for path in df["audio_path"]:
    resample_to_16k(path)

4. 对接Whisper训练流程

  • 如果用OpenAI官方训练脚本,直接指定JSONL文件路径即可:
python train.py --dataset "whisper_dataset.jsonl" --model "base" --batch_size 16
  • 如果用Hugging Face transformers库训练,直接将处理好的Dataset对象传入训练器,无需额外格式转换。

内容的提问来源于stack exchange,提问作者jhoanmartinez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:30:59