我希望有一个python脚本运行在后台,并使用pyaudio录制声音文件时,麦克风的阈值已达到一定的点。这是给双向无线电网络上的监视器用的。因此,我们只想录制传输的音频。
牢记的任务:
在n%门阈值上录制音频输入
经过这么多秒的静音后停止录制
音频播放后,请将录音保留这么多秒
第2阶段:将数据输入MySQL数据库以搜索录制的内容
我在看一个类似的文件结构
/home/Recodings/2013/8/23/12-33.wav将是2013年8月23日12:33.wav的传输记录
我使用了
Detect and record a sound with python
我现在有点不知所措,如果能给我一点指导,我将不胜感激
谢谢你
不久前我写了一些步骤
Record audio input on a n% gate threshold
A:为“Silence”启动一个布尔变量类型,您可以计算RMS以确定Silence是真是假,设置一个RMS阈值
stop recording after so many seconds of silence
A:您需要计算一个超时吗?因为它会得到帧速率、块大小和您需要的秒数,来计算您的超时时间(帧速率/块*最大秒数)
keep recording for so many seconds after audio
A:如果静音为false==(RMS>;阈值)获取音频的最后一块数据(LastBlock),并只保留记录:-)
Phase 2: input data into MySQL database to search the recordings
A:这一步由你决定
源代码:
所以你只需要
getLevel(data)
函数? 一个简单的方法是:这应该会随着音量的增加而增加。通过反复试验适当地设置阈值。
当前的首选答案有些过时,只适用于python 2。这是为python 3更新的版本。它将函数包装成类,并将所有内容打包成一个简单易用的版本。请注意,上面的答案和我的脚本有一个关键的区别:
顶部的脚本记录一个文件,然后停止,而我的脚本则在检测到噪音时保持记录,并在运行时将记录转储到目录中。
两个脚本的主要思想非常相似:
步骤1:“侦听”直到rms大于阈值
第2步:开始录制,设置停止录制的计时器,==超时长度
步骤3:如果在计时器超时之前,rms再次打破阈值,则重置计时器
步骤4:现在计时器已过期,请将录制写入目录并返回步骤1
相关问题 更多 >
编程相关推荐