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

时间:2019-04-26 07:14:27

标签: python audio

我是Python的新手,我正尝试开发一种功能,该功能或多或少像汽车中的停车传感器一样工作。

也就是说,该代码接收到一些传感器输入数据,并实时发出蜂鸣声,其中两次蜂鸣之间的等待时间与信号的大小成反比(即,当蜂鸣声闭合时,蜂鸣声会同时闭合)反之亦然)。

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

我试图将代码放在单独的线程中,但这不能解决问题。

我将在此处包含代码以仅执行重复的蜂鸣声,而不从那里进行任何输入来排除故障。

from time import sleep
import winsound

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

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

1 个答案:

答案 0 :(得分: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

提示音设置参数频率和持续时间。 因此,您可以更改频率以匹配信号的幅度,而无需更改睡眠时间。