这可能有问题。我可以像这样audio_binary = tf.read_file(wav_file_path)
加载audio_binary但是当我尝试用这个读取wav时:
from tensorflow.contrib import ffmpeg
waveform = ffmpeg.decode_audio( audio_binary, file_format='wav', samples_per_second=16000, channel_count=1)
我得到错误ImportError: No module named 'tensorflow.contrib.ffmpeg.ops'
我也试过这样做:
from tensorflow.contrib.framework.python.ops import audio_ops as contrib_audio
wav_decoder = contrib_audio.decode_wav(audio_binary, desired_channels=1)
我得到这个错误InvalidArgumentError: Header mismatch: Expected RIFF but found NIST
顺便说一下,我在Jupyter笔记本中使用tensorflow-gpu。
任何帮助将受到高度赞赏。谢谢!
万一有人有同样的问题。我使用的是TIMIT数据库,他们的文件虽然是.wav,却有不同的编码(NIST)。我必须将它们更改为RIFF,就像这个forfiles /s /m *.wav /c "cmd /c sph2pipe -f wav @file @fnameRIFF.wav"
和使用第二个命令contrib_audio.decode_wav(...)
基于这个答案:Change huge amount of data from NIST to RIFF wav file