无法在张量流 (Windows10) 中加载音频文件



这可能是问题。我可以像这样加载audio_binary audio_binary = tf.read_file(wav_file_path)但是当我尝试用这个阅读 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。

任何帮助将不胜感激。谢谢!

你可能想检查你当前拥有的张量流版本。

张量流 1.X:

tensorflow.contrib.ffmpeg.decode_audio()

张量流 2.X:

tensorflow.audio.decode_wav()

请记住,decode_wav(( 需要.wav数据,并且无法自行从.wav数据中读取它

有关 tensorflow.audio.decode_wav(( 的更多信息,请参阅此处的文档:https://www.tensorflow.org/api_docs/python/tf/audio/decode_wav

查看此答案以获取更多信息:从音频到张量,回到张量流中的音频

以防有人遇到同样的问题。我使用的是TIMIT数据库,他们的文件,虽然他们.wav,但有一个不同的网络编码(NIST(。我必须将它们更改为 RIFF,就像这样forfiles /s /m *.wav /c "cmd /c sph2pipe -f wav @file @fnameRIFF.wav"并使用第二个命令contrib_audio.decode_wav(...)

基于这个答案:将大量数据从NIST更改为RIFFwav文件

而这个页面:http://soundfile.sapp.org/doc/WaveFormat/

最新更新