我需要从一首歌中创建一个图表。wav
我正在使用下面的代码,但它给出了一个错误
有人能帮我或给我一个简单的建议吗
import matplotlib.pyplot as plt
import numpy as np
import wave
import struct
import math
def main(args):
arquivoWav = wave.open('meh.wav', 'r')
print ("Número canais: "), arquivoWav.getnchannels()
print ("Número bytes: " ),arquivoWav.getsampwidth()
print ("Taxa de amostragem: "), arquivoWav.getframerate()
print ("Número de frames: "), arquivoWav.getnframes()
print ("Compactação: "),arquivoWav.getcompname()
frames= arquivoWav.readframes(arquivoWav.getnframes())
deltaX= 1.0 / arquivoWav.getframerate()
tempo = np.arange(start=0, stop= arquivoWav.getnframes()*deltaX, step= deltaX, dtype=np.float)
wavDataList = [struct.unpack("<h", frames[nLoop] + frames[nLoop+1])[0] for nLoop in range(0,len(frames),2) ]
wavArray= np.array(wavDataList)
plt.plot(tempo[0:100],wavArray[0:100])
plt.grid()
plt.show()
arquivoWav.close()
return 0
if __name__ == '__main__':
import sys
sys.exit(main(sys.argv))
错误是这样的
File "C:/Users/trans/Music/sem título1.py", line 22, in <listcomp>
wavDataList = [struct.unpack("<h", frames[nLoop] + frames[nLoop+1])[0] for nLoop in range(0,len(frames),2) ]
TypeError: a bytes-like object is required, not 'int'
目前没有回答
相关问题 更多 >
编程相关推荐