代码拉取完成,页面将自动刷新
同步操作将从 易振凯/02 树莓派语音避障小车 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#声音检测,然后调用科大讯飞SDK进行语音识别
import pyaudio
import numpy as np
import time
import os
import sys
class QAudio():
CHUNK = 512
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 48000
def __init__(self, dense):
self.paudio = None
self.stream = None
self.dense = dense
def open(self):
self.paudio = pyaudio.PyAudio()
self.stream = self.paudio.open(format=self.FORMAT,
channels=self.CHANNELS,
rate=self.RATE,
input=True,
frames_per_buffer=self.CHUNK)
def read(self):
data = self.stream.read(self.CHUNK)
return data
def close(self):
self.stream.close()
self.paudio.terminate()
def sound_detect(self):
self.open()
os.close(sys.stderr.fileno())
print("开始聆听...")
cnt = 0
try:
while True:
data = self.read()
audio_data = np.fromstring(data, dtype=np.short)
temp = np.max(audio_data)
print(temp)
start = time.time()
if(temp>self.dense):
end = time.time()
if(end - start < 0.01):
cnt += 1
else:
cnt -= 1
if(cnt >= 10):
cnt = 0
print("开始录音...")
os.system('arecord -d 2 -r 16000 -c 1 -t wav -f S16_LE command.wav')
os.system('./iat_sample')
self.close()
break
#print(f'当前声音强度值: {"*"*(temp//100)}')
except KeyboardInterrupt:
self.close()
if __name__ == '__main__':
qa = QAudio(4000)
qa.sound_detect()
with open('./command.txt', 'r',encoding='utf-8') as fp:
print(fp.read())
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。