Python中文
首页
教程
问答
标签
搜索
登录
注册
用PyAudio测量树莓Pi的声级
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在为Raspberry Pi创建一个简单的声音监视器,带有Python中的USB麦克风,可以检测声音的突然变化,无论是“拍手”、音乐中的节拍还是其他噪音。我希望它采取一个,比方说,0.1秒的样本,将其与前一个样本周期进行比较,然后在新样本超过某个阈值时发送一条消息(通过MQTT)。我一直在使用PyAudio和audioop.max,并编写了以下内容:</p> <pre><code>import time, audioop import pyaudio # Initialisation for PyAudio CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 RECORD_SECONDS = 1 threshold = 10; reading = 0 previousreading = 0 # PyAudio Object audio = pyaudio.PyAudio() while True: stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) frames = [] for i in range(0, int(RATE/CHUNK*RECORD_SECONDS)): data = stream.read(70) frames.append(data) time.sleep(0.001) reading = audioop.max(data, 2) if reading - previousreading > threshold: print(reading) previousreading = reading stream.stop_stream() stream.close() # Clearing the resources stream.stop_stream() stream.close() audio.terminate() </code></pre> <p>它基本上是有效的,但也存在一些问题</p> <ol> <li>我必须在每个循环中创建并关闭音频流。这似乎不是一件好事,但脚本在其他方面失败了</李> <li>我本来希望能够使用“data=stream.read(CHUNK)”,但我可以读取的最大数据量大约是70。我在网上看到的所有其他示例都可以使用CHUNK</李> <li>我真的不知道这个脚本在采样多少声音。就像我说的,我想取样并比较0.1秒的样本</李> <li>这里有“time.sleep(0.001)”,因为它显然减少了处理器开销,但我还没有找到最佳值</李> </ol> <p>任何改进脚本的帮助都是非常受欢迎的。我很高兴与任何对MQTT感兴趣的人分享MQTT方面的内容(效果很好)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>好的,我遇到的问题似乎与使用树莓圆周率有关。当我在我的Mac电脑上运行相同的程序时,它会按预期工作</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在用户使用jquery单击按钮(提交选项之前)时突出显示html中的选项
2 回答
如何在用户使用midd注销时删除用户
9 回答
如何在用户停止滑动和缩放时同步范围?
9 回答
如何在用户关闭Android kivy应用程序后恢复上一个活动?
1 回答
如何在用户关闭浏览器后不强制登录
10 回答
如何在用户函数中返回两个数据帧
10 回答
如何在用户创建后更新用户列表字段;信号
10 回答
如何在用户单击Django中的“ok”后触发Javascript警报并重定向页面?
4 回答
如何在用户单击查询后显示消息؟
8 回答
如何在用户可以使用键盘的健身房制作cartpole游戏
2 回答
如何在用户名和密码来自数据库的python脚本中添加最大登录尝试?
9 回答
如何在用户名和密码相同的情况下登录网站?
3 回答
如何在用户向Django注册时添加新的数据库条目?
1 回答
如何在用户和他们进行的不同交易之间建立关系?
2 回答
如何在用户和会话之间创建一对多的关系,其中用户在一方,会话在多方?
5 回答
如何在用户喜欢帖子时动态更新Flask模板?
5 回答
如何在用户在Django中注册后自动将users表链接到另一个表
5 回答
如何在用户定义的Python函数中打印给定参数的长度?
9 回答
如何在用户定义的Python类中实现哈希?
10 回答
如何在用户定义的块中迭代Numpy数组?
7 回答