【发布时间】:2019-06-15 14:13:24
【问题描述】:
我正在尝试使用 python 读取使用 GNU radio Companion 记录为 WAV 文件的 FM 信号。我正在附加使用的 .grc 文件。
我可以清楚地听到记录的信号,但读取数据会得到一个空 ([] ) 值。
python 代码
import soundfile as sf
data, fs = sf.read('/home/fm_record_RSM_10_01_2019_dat.wav')
for i in data:
print(i)
这给了
data
array([], dtype=float64)
fs
96000
当使用以下代码时,
import wave
input_wave_file= wave.open('/home/fm_record_RSM_10_01_2019_dat.wav', 'r')
nc,sw,fr,nf,ct,cn = input_wave_file.getparams()
另一个错误如下所示
Error Traceback (most recent call last)
<ipython-input-3-5009fe3506e7> in <module>()
1 import wave
2
----> 3 input_wave_file= wave.open('/home/fm_record_RSM_10_01_2019_dat.wav', 'r')
4 nc,sw,fr,nf,ct,cn = input_wave_file.getparams()
5 frame_data = input_wave_file.readframes(5)
~/anaconda3/lib/python3.7/wave.py in open(f, mode)
508 mode = 'rb'
509 if mode in ('r', 'rb'):
--> 510 return Wave_read(f)
511 elif mode in ('w', 'wb'):
512 return Wave_write(f)
~/anaconda3/lib/python3.7/wave.py in __init__(self, f)
162 # else, assume it is an open file object already
163 try:
--> 164 self.initfp(f)
165 except:
166 if self._i_opened_the_file:
~/anaconda3/lib/python3.7/wave.py in initfp(self, file)
131 raise Error('file does not start with RIFF id')
132 if self._file.read(4) != b'WAVE':
--> 133 raise Error('not a WAVE file')
134 self._fmt_chunk_read = 0
135 self._data_chunk = None
Error: not a WAVE file
有人可以帮我找出问题所在吗?是因为 .grc 文件中记录 wav 块的设置有任何错误,还是因为 python 文件中有任何错误?请帮忙
非常感谢 女士
【问题讨论】:
-
如果我没记错的话,还有关于这个问题的另一个参考。在这里查看:https://stackoverflow.com/questions/2060628/reading-wav-files-in-python
-
我没有足够的声誉发表评论,但请检查目录位置。你是保存为 16 位还是 64 位?
-
数据显示数组([], dtype=float64)
标签: python-3.x gnuradio-companion