如何用微调后的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
相关产品推荐
相关产品推荐

