【问题标题】:Cannot load audio file in tensorflow (Windows10)无法在张量流中加载音频文件(Windows10)
【发布时间】:2018-03-05 14:30:00
【问题描述】:

这可能是个问题。 我可以像这样加载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。

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

【问题讨论】:

    标签: python windows audio tensorflow ffmpeg


    【解决方案1】:

    您可能想检查您当前拥有的 tensorflow 版本。

    张量流 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

    查看此答案以获取更多信息:From audio to tensor, back to audio in tensorflow

    【讨论】:

      【解决方案2】:

      如果有人遇到同样的问题。 我使用的是 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

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

      【讨论】:

        猜你喜欢
        • 2018-09-11
        • 1970-01-01
        • 2017-03-03
        • 1970-01-01
        • 2017-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多