在树莓派上最常用的录音是arecord命令,但是功能有限,不能实现检测到声音做出反应。但是pyaudio能。
本文实现的功能是在树莓派上监听声音,当分贝超过阈值,将会做出反应,例子的反应是结束while循环。
原理是录制一小段的声音然后去检测分贝,如果超过阈值就结束循环,否则继续录制,检测,。。。。。。
安装pyaudio
运行一下命令:
$sudo apt-get install python-pyaudio
$ sudo apt-get install git
$ git clone http://people.csail.mit.edu/hubert/git/pyaudio.git
$ sudo apt-get install libportaudio0 libportaudio2 libportaudiocpp0 portaudio19-dev
$ sudo apt-get python-dev
此时当前目录会多出来一个pyaudio的文件夹,然后cd进去
$ cd pyaudio
$ sudo python setup.py instal
如果没有报错此时的pyaudio已经安装到你的树莓派上了。
运行
看代码:
# -*- coding: utf-8 -*-
import pyaudio
import wave
import numpy as np
def Monitor():
CHUNK = 512
FORMAT = pyaudio.paInt16
CHANNELS = 1
<