|
楼主 |
发表于 2025-2-21 22:15:07
|
显示全部楼层
import pyaudio
import numpy as np
import pyautogui
import time
# 音频参数设置
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024
SILENCE_THRESHOLD = 100 # 静音阈值(根据环境调整)
SILENCE_DURATION = 5 # 持续静音时间(秒)
CLICK_POSITION = (1630, 560) # 点击坐标
def get_rms(data):
"""计算音频信号的RMS值"""
audio_data = np.frombuffer(data, dtype=np.int16)
return np.sqrt(np.mean(audio_data**2))
p = pyaudio.PyAudio()
# 打开音频输入流
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
try:
silent_count = 0
while True:
data = stream.read(CHUNK)
rms = get_rms(data)
if rms < SILENCE_THRESHOLD:
silent_count += 1
if silent_count > (SILENCE_DURATION * RATE / CHUNK):
# 触发鼠标点击
pyautogui.click(*CLICK_POSITION)
print("检测到静音,已执行点击操作")
silent_count = 0
else:
silent_count = 0
time.sleep(0.1) # 检测间隔
except KeyboardInterrupt:
print("停止监测")
finally:
stream.stop_stream()
stream.close()
p.terminate() |
评分
-
查看全部评分
|