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

如何修复TensorFlow语音识别模型Squeeze维度不匹配InvalidArgumentError

错误定位

报错核心信息Can not squeeze dim[1], expected a dimension of 1, got 2指向代码中decode_audio函数的tf.squeeze(audio, axis=-1)行:

  • tf.audio.decode_wav读取wav文件后返回的音频张量格式为[采样点数量, 声道数]
  • 自行录制的音频为双声道(立体声),声道数维度值为2,而tf.squeeze仅支持删除大小为1的维度,因此触发报错。

修复方案

方案1:代码侧兼容双声道输入(无需修改源音频)

直接修改decode_audio函数,自动将双声道合并为单声道即可:

def decode_audio(audio_binary):
  audio, _ = tf.audio.decode_wav(audio_binary)
  # 双声道取均值转为单声道,同时兼容单声道输入
  if audio.shape[-1] == 2:
    audio = tf.reduce_mean(audio, axis=-1, keepdims=True)
  return tf.squeeze(audio, axis=-1)

方案2:源音频统一转为单声道(语音模型训练的常规方案)

在Audacity中批量处理录制的音频:

  • 打开wav文件后,点击顶部菜单栏「轨道」→「混合」→「混合并渲染为单声道」
  • 重新选择Signed 16-bit PCM编码导出wav文件,替换原有训练数据即可

内容的提问来源于stack exchange,提问作者Elsa B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:24:01