微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

读取 wav 文件时出现“WAV 音频格式错误”

如何解决读取 wav 文件时出现“WAV 音频格式错误”

我有一组想要生成频谱图的 wav 文件。但是当我使用 tf.audio.decode_wav 函数时,出现以下错误

InvalidArgumentError:WAV 音频格式错误:预期为 1 (PCM),但 got7 [Op:DecodeWav]

我该如何规避这个错误?还有其他方法可以使用 tensorflow 为 wav 文件生成 log mel 频谱图吗?

我知道 librosa 包,但我更喜欢 tensorflow。

代码是:

def decode_audio(audio_binary):
  audio,_ = tf.audio.decode_wav(audio_binary)
  return tf.squeeze(audio,axis=-1)

def get_waveform_and_label(file_path):
  audio_binary = tf.io.read_file(file_path)
  waveform = decode_audio(audio_binary)
  return waveform

解决方法

该错误表明您的文件表明它们具有编码为 8 位 mulaw 的样本。

tf.audio.decode_wav 的 TensorFlow 文档中所述,此方法仅支持 16 位 PCM WAV。

在将 wave 文件传递​​给 tensorflow 之前,您需要对其重新编码。 ffmpeg 之类的东西可以在这里提供帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。