Pydub 错误加载文件:未知编码器 'pcm_s4le'

Pydub error loading file: Unknown encoder 'pcm_s4le'

我想将我的音频加载到 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 git 存储库中记录了这个问题 here 还有一个要测试的示例测试文件。虽然这不是我要处理的实际文件(70mb),但它会生成相同的输出。

我设法使用 soundfile 加载了文件,但是当我切片数据时,它不允许我导出它,因为它们有 2 个不同的长度。因此我又回到了pydub。

如有任何建议,我们将不胜感激。

与其他库一起挖掘,我发现了这个 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”编码的。
然后我将文件加载到声音文件中,并将其重新保存为声音文件,默认保存到 PCM_16,然后可以被 pydub 识别....