Python:创建蜂鸣声音反馈,其中暂停持续时间基于实时传感器输入

问题描述 投票:1回答:1

我对Python比较陌生,我试图开发一种功能,或多或少像汽车中的停车传感器。

即:代码接收一些传感器输入数据并且实时地产生蜂鸣声,其中两次蜂鸣声之间的等待时间与信号的幅度成反比(即,当关闭蜂鸣声时,相反,反之亦然)。

我试图创建一个包含winsound.beep()和暂停的while循环。将使用传感器输入计算暂停持续时间。但是,即使作为几行简单代码运行,while循环似乎是异步的,并且暂停不是均匀分开的。

我试图将代码放在一个单独的线程中,但这并没有解决问题。

我会在这里包含代码,只是执行重复的哔声,而不是从那里进行任何输入进行故障排除。

from time import sleep
import winsound

while True:
    winsound.Beep(1500,100)
    sleep(0.05)

我希望输出是间隔0.05秒的一致蜂鸣声,但实际输出是异步蜂鸣,暂停随时间变化。

python audio
1个回答
0
投票

尝试

from time import sleep
import winsound

while True:

    winsound.Beep("SystemExit", winsound.SND_ALIAS)
    sleep(0.05)

编辑:试试这个

from time import sleep
import winsound

while True:
    frequency = 10 # change it based on sensor input
    duration = 1000 # keep this constant
    winsound.Beep(frequency,duration)
    sleep(duration) # i'm assuming beep is not blocking so this delay keep the program waiting until beep duration is completed

蜂鸣声采用参数频率和持续时间。因此,您可以更改频率以匹配信号幅度,而不是更改睡眠持续时间。

© www.soinside.com 2019 - 2024. All rights reserved.