我试图获得。wav数据存储在C数组格式的文本文件复制到C程序。这是在本地运行的jupyter笔记本中完成的。该文件具有16kHz和int16 PCM格式。
from scipy.io.wavfile import read
import numpy
a = read("sound.wav")
numpy.array(a[1])
fd = open("wav_array.txt", 'w')
numpy.ndarray.tofile(fd, ', ')
这会导致错误:
C:UsersJDA1E~1.TSCAppDataLocalTemp/ipykernel_15916/363132415.py:4: WavFileWarning: Chunk (non-data) not understood, skipping it.
a = read("sound.wav")
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
C:UsersJDA1E~1.TSCAppDataLocalTemp/ipykernel_15916/363132415.py in <module>
5 numpy.array(a[1])
6 fd = open("wav_array.txt", 'w')
----> 7 numpy.ndarray.tofile(fd, ', ')
TypeError: descriptor 'tofile' for 'numpy.ndarray' objects doesn't apply to a '_io.BufferedReader' object
我如何从。wav文件的内容作为二进制/十六进制值到一个可读的文件?(快速和肮脏的解决方案也是可以的)
numpy.array(a[1]) fd = open("wav_array.txt", 'w') numpy.ndarray.tofile(fd, ', ')
而不是丢弃numpy.array
并调用静态方法,您的意思是:
with open("wav_array.txt", 'w') as fd: numpy.array(a[1]).tofile(fd, ', ')