运行OpenAI Whisper模型时音频加载失败问题求助
处理OpenAI Whisper音频解码错误:Invalid data found when processing input
问题场景
- 使用OpenAI Whisper处理音频时,
micro-machines.wav可正常完成转录,但处理payload.wav时触发错误:payload.wav: Invalid data found when processing input - 核心报错栈片段:
d:\...\venv\lib\site-packages\whisper\transcribe.py:79: UserWarning: FP16 is not supported on CPU; using FP32 instead warnings.warn("FP16 is not supported on CPU; using FP32 instead") ... RuntimeError: Failed to load audio: ... payload.wav: Invalid data found when processing input
解决方法
1. 验证并修复音频文件
- 用Audacity等音频工具打开
payload.wav,检查文件是否损坏、是否为标准PCM编码的WAV格式。若文件损坏,重新获取或修复;若为非标准编码,转换为PCM编码:
使用转换后的ffmpeg -i payload.wav -acodec pcm_s16le -ar 16000 payload_fixed.wavpayload_fixed.wav重新运行Whisper。
2. 修正错误信息编码解析
部分场景下错误提示异常,是因为底层工具输出包含非UTF-8字符导致解析混乱。可修改Whisper的音频加载逻辑:
- 定位到Whisper安装目录下的
site-packages/whisper/audio.py文件 - 找到
load_audio函数中的异常捕获代码,替换为以下内容,处理非UTF-8编码的错误输出:
保存修改后重新运行,可获得更准确的错误原因。except subprocess.CalledProcessError as e: stderr_content = e.stderr.decode('utf-8', errors='replace') if e.stderr else "" raise RuntimeError(f"Failed to load audio: {stderr_content}") from e
3. 强制启用FP32模式
显式指定FP32模式运行,避免CPU环境下FP16兼容问题:
whisper payload.wav --fp16 False
内容的提问来源于stack exchange,提问作者John mick
相关产品推荐
相关产品推荐

