我正在尝试使用python使用GNU radio Companion读取记录为WAV文件的FM信号。我要附加使用的.grc文件。
我可以清楚地听到录制的信号,但是读取数据会得到一个空([])值。
python代码
function setDate(data){
var d = new Date(data.event_details.event_start_date);
var month = d.getMonth();
var m = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
console.log(m[month]);
}
这给出
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()
有人可以帮助我发现问题所在吗?是因为.grc文件中的记录wav块设置中的任何错误还是python文件中的任何错误?请帮助
非常感谢 先生
答案 0 :(得分:0)
#! /usr/bin/env python3
import soundfile as sf
import wave
import sys
if len(sys.argv) < 2:
print("Expected filename.wav on cmdline")
quit(1)
data, fs = sf.read(sys.argv[1])
for i in range(10):
print(i)
print('...')
input_wave_file= wave.open(sys.argv[1], 'r')
nc,sw,fr,nf,ct,cn = input_wave_file.getparams()
print('nc', nc)
print('sw', sw)
print('fr', fr)
print('nf', nf)
print('ct', ct)
print('cn', cn)
chunk = 1024
data = input_wave_file.readframes(chunk)
print('data[0:10] =', data[0:10])
print('data[0:10] =', end='')
for i in range(10):
print(data[i],' ',end='')
print('')
在Linux环境中,我将以上内容放入了一个名为playsound.py的文件中。 然后我执行了(在cmdline提示符下)
$ chmod +x playsound.py
$ ./playsound.py file.wav
[ 0.06454468 0.05557251]
[ 0.06884766 0.05664062]
[ 0.0552063 0.06777954]
[ 0.04733276 0.0708313 ]
[ 0.05505371 0.065979 ]
[ 0.05358887 0.06677246]
[ 0.05621338 0.06045532]
[ 0.04891968 0.06298828]
[ 0.04986572 0.06817627]
[ 0.05410767 0.06661987]
...
nc 2
sw 2
fr 44100
nf 32768
ct NONE
cn not compressed
data[0:10] = b'C\x08\x1d\x07\xd0\x08@\x07\x11\x07'
data[0:10] =67 8 29 7 208 8 64 7 17 7
file.wav是我方便的一些现有.wav文件。 我以前尝试过 对于我的数据: 打印(i) 就像您所做的那样,也可以,但是输出太多。
我认为您应该检查要提供的文件名是否指向有效的WAV文件。 例如,您列出的路径是“ /home/filename.wav”。 通常它将至少是“ / home / 用户名 /filename.wav”