【问题标题】:Pydub error loading file: Unknown encoder 'pcm_s4le'Pydub错误加载文件:未知编码器'pcm_s4le'
【发布时间】:2021-07-08 05:13:24
【问题描述】:

我想将我的音频加载到 python 中,这样我就可以将它的一部分剪切在一起,然后重新保存为一个较短的文件。 Pydub 在理论上是完美的。

from pydub import AudioSegment
from pydub.utils import make_chunks
from pydub.utils import which

AudioSegment.converter = which("ffmpeg")
myaudio = AudioSegment.from_file(path+ wavfile+".wav" , "wav")

但是我在尝试加载文件时收到以下错误。

ffmpeg version 2021-04-11-git-309e3cc15c-full_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 10.2.0 (Rev6, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang --enable-vulkan --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil 56. 72.100 / 56. 72.100
libavcodec 58.136.101 / 58.136.101
libavformat 58. 78.100 / 58. 78.100
libavdevice 58. 14.100 / 58. 14.100
libavfilter 7.111.100 / 7.111.100
libswscale 5. 10.100 / 5. 10.100
libswresample 3. 10.100 / 3. 10.100
libpostproc 55. 10.100 / 55. 10.100
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, wav, from 'D:/OneDrive/DataSci/Tennis/01_data/201121_SebMatch/JJO_ingameAUDIO.wav':
Duration: 00:48:03.03, bitrate: 192 kb/s
Stream #0:0: Audio: adpcm_ima_wav ([17][0][0][0] / 0x0011), 48000 Hz, mono, s16p, 192 kb/s

**Unknown encoder 'pcm_s4le'**

我在任何问题上都没有看到此特定错误,并且已将问题记录在 pydub here 的 git 存储库中 还有一个示例测试文件可供测试。虽然这不是我要处理的实际文件(70mb),但这会产生相同的输出。

我设法使用声音文件加载文件,但是当我对数据进行切片时,它不会让我导出它,因为它们有 2 个不同的长度。因此我又回到了 pydub。

欢迎提出任何建议。

【问题讨论】:

    标签: python audio wav pydub


    【解决方案1】:

    与其他库一起挖掘,我发现了这个link which highlights the differnt methods for looking at the audio.

    声音文件演示展示了如何使用这些行来识别编码:

    f = sf.SoundFile('data/test_wav_pcm16.wav')
    f.format, f.subtype, f.endian
    

    这告诉我,我的 wav 文件实际上是用“IMA ADPCM”编码的。
    然后我将文件加载到soundfile中,并将其重新保存为soundfile,默认保存为PCM_16,然后pydub可以识别......

    【讨论】:

      猜你喜欢
      • 2017-10-18
      • 2020-07-22
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      相关资源
      最近更新 更多