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

标签 python audio

我对 Python 比较陌生,我正在尝试开发一个功能,其操作或多或少类似于汽车中的 parking 传感器。

也就是说:代码接收一些传感器输入数据,并实时发出蜂鸣声,其中两次蜂鸣声之间的等待时间与信号的幅度成反比(即,当接近时,蜂鸣声靠近)反之亦然)。

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

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

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

from time import sleep
import winsound

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

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

最佳答案

尝试

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

Beep 采用频率和持续时间参数。 因此,您可以更改频率以匹配信号的幅度,而不是更改 sleep 持续时间。

关于Python:创建蜂鸣声反馈,其暂停持续时间基于实时传感器输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55862561/

相关文章:

python - 在 Selenium ChromeDriver 中隐藏命令提示符

python - 在多维数组中写入值数组的坐标

audio - React-sound 在移动设备上不起作用

python - 无法使用pip语法错误安装PyAudio

c# - NAudio WasapiLoopbackCapture ComException(0x88890003)

python - 使用 python 有条件删除 Azure blob 存储

python - 从 python 获取全局解释器锁

python - Scipy.optimize.fmin powell 直接参数语法

c# - 如何使用脚本或代码控制媒体播放器

java - 是否可以忽略插入的耳机并仍然使用手机扬声器?