You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Bug: model.generate(input=bytes) hangs for minutes on raw PCM chunks that trigger audio container false-positive #3739
Failed to decode container-formatted audio bytes.
Verify that the input is a complete supported audio file and that torchaudio,
soundfile, or ffmpeg is available.
Activity
LauraGPT commentedon Sep 30, 2026
感谢把实测现象与 AI 推测分开说明。先提供一个适合你这条 16 kHz、单声道、signed int16 little-endian 原始 PCM 输入链路的绕过方法:把每帧显式转换为归一化
float32波形,再交给generate(),不要让无头 PCM 字节参与文件格式自动探测。保留原来的
model、每会话的cache和流结束处理,仅替换传入的数据:这段只解释已知格式,不做重采样。不要用于 WAV/MP3 文件字节、其他位深/字节序或多声道数据;网络分片若切断了一个采样点,应先在收包层拼完整。不要每帧重建
cache;会话结束仍按原有流式 VAD 的is_final=True流程收尾。维护侧已核对并做了无模型验证:
prepare_data_iterator对直接传入的bytes调用load_bytes(),而 NumPy 波形不经过这个探测入口。因此,自动探测发生歧义在原理上可以构造,但还不能据此断言你那次卡顿发生在 torchaudio;当前文件读取实现 还有 soundfile/ffmpeg 后备路径。这些验证针对当前源码,不是你的 FunASR 1.4.0 / torch 1.12.0 环境复现。
请先用显式波形输入观察是否还会出现同类停顿。进一步定位需要完整异常链(含
__cause__)、实际导入的funasr.__file__、torchaudio/soundfile 版本及 ffmpeg 版本;若能在受控复现中取得卡顿时的线程栈,也很有帮助。路径可打码,初步排查不需要公开业务录音。先保留 issue,区分“已验证的输入绕过路径”和“仍待定位的原始卡顿”。源码进展(2026-10-02):PR #3751 已合入 main。对于已知的单声道、signed int16 little-endian 原始 PCM,现在可以显式传入
input_format="pcm_s16le",绕过容器自动探测。对你这条 16 kHz 输入链路,在原来的调用中增加input_format="pcm_s16le", fs=16000即可;保留每会话的cache、分块参数和结束处理。这是源码新增能力,尚未作为新的 PyPI 版本发布。 不要假定原有 FunASR 1.4.0 已支持这个参数;旧安装继续使用上面的 NumPy 波形绕过方法。
已验证显式 PCM 路径不调用容器探测/解码器,并补上 VAD 非 16 kHz 输入及批量输入的采样率传递回归。两条托管 NumPy CI 均执行 93 项测试,0 失败、0 跳过;验证不涉及真实模型推理。原始三分钟卡顿仍未复现或确定根因,因此保留本 issue,等待原场景的观察结果和诊断信息。