如何在Python中发出警笛声?

时间:2010-05-01 02:55:25

标签: python audio

我试图用哔哔声在python中发出警笛声,但没有成功..

我正在尝试像

这样的东西
winsound.Beep(700,500)
winsound.Beep(710,500)
winsound.Beep(720,500)
...

这是一个更好的方法吗?玩吧?

没有外部文件......

THX

2 个答案:

答案 0 :(得分:3)

将高质量的警笛录制为WAV文件(Audacity是此任务的一个很好的工具,甚至可能为此提供正确的声音生成器组合)并使用PlaySound

winsound.PlaySound('siren.wav', winsound.SND_FILENAME)

您还可以将其作为字符串捆绑到脚本中,以避免出现单独的文件:

siren = base64.b64decode('''
    <base64-encoded data>
    ''')
winsound.PlaySound(siren, winsound.SND_MEMORY)

要为siren创建数据,请通过base64编码器运行WAV文件(例如,here是一个基本的命令行工具 - 下载包含win32 exe)并将输出粘贴到siren字符串。顺便说一句,Base64不是必需的;它只是将二进制数据嵌入Python源文件的便捷方式。

答案 1 :(得分:2)

我还记得在我还是个孩子的时候在QBASIC上使用类似的东西:

DO
FOR n = -180 TO 180 STEP .1
f = 440 + 50 * SIN(n)
SOUND f, 1
NEXT
LOOP

SOUND f, 1应与winsound.Beep相同,具有音高和持续时间。它过去工作得很好但是因为我拿了片段here我不确定我是这样做的。

只是为了给你这个想法..