如何在文件中存储二进制.wav数据?



我试图获得。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, ', ')

最新更新