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

如何用微调后的Whisper模型批量转录音频并输出到单个文本文件?

批量转录音频文件到单个文本文件(基于Hugging Face Whisper)

以下是适配Google Colab环境的代码,可自动遍历指定文件夹内的音频文件,将转录结果按「文件名: 转录文本」的格式写入单个文本文件:

import os
from transformers import pipeline

# 1. 配置参数
AUDIO_FOLDER = "/content/audio_files"  # 替换为你的音频文件夹路径
OUTPUT_FILE = "/content/transcriptions.txt"
# 加载微调后的Whisper管道(替换为你的模型名称)
pipe = pipeline("automatic-speech-recognition", model="your-fine-tuned-whisper-model-name")

# 2. 获取文件夹内所有音频文件(支持常见格式)
audio_extensions = (".mp3", ".wav", ".m4a", ".flac", ".ogg")
audio_files = [
    os.path.join(AUDIO_FOLDER, f)
    for f in os.listdir(AUDIO_FOLDER)
    if f.lower().endswith(audio_extensions)
]

# 3. 批量转录并写入结果
with open(OUTPUT_FILE, "w", encoding="utf-8") as f:
    for audio_path in audio_files:
        try:
            # 获取文件名(不带路径)
            filename = os.path.basename(audio_path)
            # 执行转录
            result = pipe(audio_path, chunk_length_s=10, stride_length_s=(4, 2))
            # 提取转录文本(去除首尾空格)
            transcript = result["text"].strip()
            # 写入文件,格式:文件名: 转录内容
            f.write(f"{filename}: {transcript}\n")
            print(f"已处理:{filename}")
        except Exception as e:
            # 捕获异常,避免单个文件出错中断整个流程
            error_msg = f"{filename} 处理失败:{str(e)}"
            f.write(f"{error_msg}\n")
            print(error_msg)

print(f"所有处理完成,结果已保存至:{OUTPUT_FILE}")

关键说明:

  • 路径配置:将AUDIO_FOLDER替换为你存放音频文件的Colab路径(比如通过左侧面板上传后的文件夹路径)
  • 模型加载:把your-fine-tuned-whisper-model-name替换为你使用的微调Whisper模型名称(例如openai/whisper-small或你自己微调后的模型ID)
  • 音频格式支持:代码默认包含常见音频格式,可根据需要添加/删除audio_extensions中的后缀
  • 异常处理:加入了try-except块,即使某个音频文件处理失败,也不会中断整个批量任务,失败信息会写入输出文件
  • 输出格式:每行格式为「文件名: 转录文本」,方便直接对应每个音频的转录结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:27:47