Как я могу сделать шум сирены в Python? - PullRequest
1 голос
/ 01 мая 2010

Я пытаюсь издать звук сирены в python с помощью звуковых сигналов, но безуспешно ..

Я пытаюсь что-то вроде

winsound.Beep(700,500)
winsound.Beep(710,500)
winsound.Beep(720,500)
...

Это лучший способ сделать это? И играть в нее?

Без внешних файлов ...

Thx

Ответы [ 2 ]

3 голосов
/ 01 мая 2010

Запишите высококачественную сирену в виде файла WAV ( Audacity - хороший инструмент для этой задачи, и может даже обеспечить правильное сочетание звуковых генераторов для этого) и использовать PlaySound.

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

Вы также можете связать его в скрипт как строку, чтобы избежать отдельного файла:

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

Чтобы создать данные для siren, запустите файл WAV через кодировщик base64 (например, здесь - это базовый инструмент командной строки & mdash; загрузка включает в себя win32 exe) и вставьте вывод в строку siren. Кстати, Base64 не является обязательным требованием; это просто удобный способ встраивания двоичных данных в исходный файл Python.

2 голосов
/ 01 мая 2010

Я помню, что когда я был ребенком, я использовал нечто похожее на QBASIC:

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

SOUND f, 1 должно совпадать с winsound.Beep, с высотой и длительностью.Раньше он работал отлично, но так как я взял фрагмент здесь Я не уверен, что сделал именно так.

Это просто, чтобы дать вам идею ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...