| 
 | 
 
 楼主 |
发表于 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() |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |