Python scipy.fft与某些声音文件挂起
运行此简单脚本时,Python scipy.fft与某些声音文件挂起,python,numpy,scipy,fft,Python,Numpy,Scipy,Fft,运行此简单脚本时,scipy.fft似乎挂起: import scipy from scipy.io import wavfile sound = 'sounds/silence/iPhone5.wav' fs, data = wavfile.read(sound) print scipy.fft(data) 在某些文件上。例如,尝试使用文件 我注意到了几件事: 从交互式解释器运行单个命令不会挂起 与其他声音文件一起运行并不总是挂起脚本(但不只是此文件不起作用) 有时我会收到WAVFILE警
scipy.fft
似乎挂起:
import scipy
from scipy.io import wavfile
sound = 'sounds/silence/iPhone5.wav'
fs, data = wavfile.read(sound)
print scipy.fft(data)
在某些文件上。例如,尝试使用文件
我注意到了几件事:
wave
或audiolab
打开文件会得到相同的结果这是一个bug还是我做错了什么?这应该是一个评论,但是没有足够的空间 您可以进行更多的调试,这可能会有所帮助。 (假设您使用的是某种类似unix的操作系统)
它还可以告诉您问题是在python代码、C扩展还是其他地方。用于读取堆栈跟踪当然是一个加号。:) 检查data.shape的值以查找挂起系统的文件。如果您的数据长度恰好是一个素数,或者是几个大素数的乘积,那么FFT算法在加速DFT计算方面就无能为力了。如果用零填充数据,或将数据调整到最接近的2次方,那么一切都应该运行得更快更快。感谢您的输入。当进程卡在上面时,它确实占用了很多CPU,但是没有堆栈跟踪——它不会抛出任何错误。如果我按Ctrl+C-break键,它只输出正确的结果。运行pdb并没有提供更好的洞察力——仍然停留在同一条线上。当然,谷歌搜索是我做的第一件事。检查
data.shape的值,查找挂起系统的文件。如果您的数据长度恰好是一个素数,或者是几个大素数的乘积,那么FFT算法在加速DFT计算方面就无能为力了。如果你用零填充,或者将数据调整到最接近的2次方,那么一切都应该运行得更快、更快。请注意,谢谢。当Ctrl+C'ing终端时,我得到的结果不是正确的,但可能是在计算过程中达到的结果。如果你想把你的评论变成一个答案,我很乐意接受。