以字节形式读取 .wav
Reading .wav as bytes
我正在使用 2 种工具读取 Python 中的 .wav 文件。首先 - 使用模块 soundfile
:
wav = sf.read(speech_file)
b = io.BytesIO(wav[0])
结果我得到了这样的字节数据。正确:
....\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ .....
然后我用模块 wave
:
读取 .wav
wf = wave.open(speech_file, "rb")
data = wf.readframes(wf.getparams().nframes)
结果字节完全不正确:
....a\x00\xda\x00\xcb\x00\xba\x00\xb0\x00\xa3\x00\x8f\x00|\x00g\x00S\x00=\x00&\x00\x0b\x00\xf3\xff\xd4\xff\xb0\xff\x8d\xffe\xff\xff\x18\xff\xef\xfe\xc6\xfe\x99\xfed\xfe-\xfe\xf5\xfd\xc0\xfd\x92\xfdj....
为什么两种不同的工具给出的结果不同?如何从第一个字节对象创建第二个字节对象?事实上,我不能使用 wave
的字节,因为它与原始音轨完全不同。
内置模块wave
读取的是DSD格式的.wav文件,音轨表示为0和1的序列。而soundfile
读取的是PCM格式的.wav,是数组信号的幅度值。
我正在使用 2 种工具读取 Python 中的 .wav 文件。首先 - 使用模块 soundfile
:
wav = sf.read(speech_file)
b = io.BytesIO(wav[0])
结果我得到了这样的字节数据。正确:
....\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ .....
然后我用模块 wave
:
wf = wave.open(speech_file, "rb")
data = wf.readframes(wf.getparams().nframes)
结果字节完全不正确:
....a\x00\xda\x00\xcb\x00\xba\x00\xb0\x00\xa3\x00\x8f\x00|\x00g\x00S\x00=\x00&\x00\x0b\x00\xf3\xff\xd4\xff\xb0\xff\x8d\xffe\xff\xff\x18\xff\xef\xfe\xc6\xfe\x99\xfed\xfe-\xfe\xf5\xfd\xc0\xfd\x92\xfdj....
为什么两种不同的工具给出的结果不同?如何从第一个字节对象创建第二个字节对象?事实上,我不能使用 wave
的字节,因为它与原始音轨完全不同。
内置模块wave
读取的是DSD格式的.wav文件,音轨表示为0和1的序列。而soundfile
读取的是PCM格式的.wav,是数组信号的幅度值。