使用 Python 在 Windows 上检测系统声音
Posted
技术标签:
【中文标题】使用 Python 在 Windows 上检测系统声音【英文标题】:Detecting system sound on Windows using Python 【发布时间】:2014-02-27 01:29:23 【问题描述】:有没有办法检测系统声音而不是麦克风声音?我希望能够检测到我的系统何时发出声音,而不是麦克风何时接收到实际声音。
我发现这样做的一种方法是使用“软件或硬件中的音频环回(例如,将引线从扬声器“输出”插孔连接到麦克风“输入”插孔)。”
Capturing speaker output in Java
我正在构建一个程序,它会在系统发出声音时播放 mp3 文件,但我不希望它在狗吠时响起。
谢谢!
【问题讨论】:
【参考方案1】:pyaudio (http://people.csail.mit.edu/hubert/pyaudio/) 怎么样
像这样:
import pyaudio
chunk = 1024
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16,
channels=1,
rate=44100,
input=True,
frames_per_buffer=chunk)
data = stream.read(chunk)
然后您可以计算音频样本的均方根 (RMS) 并从那里开始。
已编辑: 您可以通过执行以下操作来查看可以使用的设备类型。 (http://people.csail.mit.edu/hubert/pyaudio/docs/#pyaudio.PyAudio.get_device_info_by_index)
import pyaudio
p = pyaudio.PyAudio()
for i in xrange(0,10):
try:
p.get_device_info_by_index(i)
except Exception,e:print e
【讨论】:
以上是关于使用 Python 在 Windows 上检测系统声音的主要内容,如果未能解决你的问题,请参考以下文章
让 PyCharm 在 windows linux 子系统上识别 python(windows 上的 bash)
在 Windows 操作系统上使用 Go 和 Python 实现客户端-服务器模型
如何在同一台电脑(windows系统)上同时搭建python2和python3环境
python-sounddevice 不会检测音频接口上的所有输入通道(windows)