gpt4 book ai didi

python - 为什么 scipy.io 中的 Scipy 的 wavefile.py 无法打开波形文件?

转载 作者:太空宇宙 更新时间:2023-11-03 21:12:39 24 4
gpt4 key购买 nike

我正在尝试构建一个音频到可见波形转换器a la联觉,但我遇到了一个可爱的小错误:

/Users/nathanielastudillo/anaconda/lib/python3.6/site-packages/scipy/io/wavfile.py:172: WavFileWarning: Chunk (non-data) not understood, skipping it.
WavFileWarning)
Traceback (most recent call last):

File "<ipython-input-8-c1948c42b069>", line 5, in <module>
rate, audio = wavfile.read('3 - Headache.wav')

File "/Users/nathanielastudillo/anaconda/lib/python3.6/site-packages/scipy/io/wavfile.py", line 166, in read
data = _read_data_chunk(fid, comp, noc, bits, mmap=mmap)

File "/Users/nathanielastudillo/anaconda/lib/python3.6/site-packages/scipy/io/wavfile.py", line 71, in _read_data_chunk
data = numpy.fromstring(fid.read(size), dtype=dtype)

TypeError: data type "<i3" not understood

真是令人愉快。我对 numpy 的 dtype documentation 进行了一些挖掘并发现 wavfile.py 难以咀嚼的非数据 block 是一个小端有符号整数,大概有 3 个字节长,按照 @mgilson 对 this question 的评论。

无论出于何种原因,numpy 似乎不想使用 3 字节小端有符号整数。我想使用提到的修复here ,但我什至无法加载该文件。尝试将 wavefile.py 的修改版本组合在一起是否有意义?有谁知道我该如何解决这个问题?我的实现,借用this ,是:

from scipy import signal
from scipy.io import wavfile
import scipy.io.wavfile

M=1024
rate, audio = wavfile.read('3 - Headache.wav')

freqs, times, spect = signal.spectrogram(audio, fs=rate, window='hanning',
nperseg=1024, noverlap=M - 100,
detrend=False, scaling='spectrum')

最佳答案

Scipy 根本无法读取我尝试使用的 24 位 WAV。感谢@WarrenWeckesser 的评论。

关于python - 为什么 scipy.io 中的 Scipy 的 wavefile.py 无法打开波形文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54955797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com