def angle_from_audio(self, file_name, chunks):
[rate, wave] = wavfile.read(file_name)
raw_0 = wave[:, 0].astype(np.float64)
raw_1 = wave[:, 1].astype(np.float64)
for i in range(1, chunks):
start = i*chunks
end = (i+1)*chunks
left = raw_0[start:end]
right = raw_1[start-self.buffer:end+self.buffer]
corr_arr = np.correlate(right, left, 'valid')
max_index = (len(corr_arr)/2)-np.argmax(corr_arr)
time_d = max_index/float(rate)
signal_dist = time_d*self.sound_speed
if (signal_dist != 0 and abs(signal_dist)<=self.mic_dist):
angle = math.degrees(math.asin( signal_dist / self.mic_dist))
self.angles.append(angle)
a = np.array(self.angles)
hist, bins = np.histogram(a, bins=10)
# width = 0.7 * (bins[1] - bins[0])
# center = (bins[:-1] + bins[1:]) / 2
# plt.bar(center, hist, align='center', width=width)
# plt.xlabel('Angle (degrees)', fontsize=16)
# plt.show()
index = np.argmax(hist)
self.angle_pred = bins[index]
print self.angle_pred
audio_localizer.py 文件源码
python
阅读 19
收藏 0
点赞 0
评论 0
评论列表
文章目录