developer tip

Python : 경고음 만들기

optionbox 2020. 10. 13. 07:42
반응형

Python : 경고음 만들기


삐 소리를 내도록 프로그램을 얻으려고합니다. 나는 윈도우 머신에있다. http://docs.python.org/library/winsound.html을 보았습니다.

하지만 바코드 스캐너로 어떻게 프로그래밍 할 수 있는지 잘 모르겠습니다.

다음은 직렬 바코드 스캐너의 코드입니다.

ser = serial.Serial()
ser.baudrate = 9600

#for windows
ser.port = 2 #for COM3

ser.open()
ser.write('hello')
ser.close()

업데이트 : 나는 경고음으로 동료를 짜증나게하고 있기 때문에. 헤드폰 용 오디오 잭을 통해받을 수 있습니까?


Windows에서 컴퓨터에서 신호음 만 들리도록하려면 :

import winsound
frequency = 2500  # Set Frequency To 2500 Hertz
duration = 1000  # Set Duration To 1000 ms == 1 second
winsound.Beep(frequency, duration)

winsound.Beep()당신이 경고음이 발생하여 원하는 목적지까지 사용할 수 있습니다.


이를 수행하는 크로스 플랫폼 방법은 print '\a'. 그러면 ASCII Bell 문자가 stdout으로 전송되고 경고음이 발생합니다 ( '경고'). 많은 최신 터미널 에뮬레이터는 벨 문자를 무시하는 옵션을 제공합니다.

Windows를 사용하고 있기 때문에 Windows 에 임의의 길이와 피치의 경고음을 보낼 수 있는 자체 Beep API 가 있다는 사실에 기뻐할 것 입니다. 이것은 Windows 전용 솔루션이므로 print '\a'Hertz 및 밀리 초에 대해 정말로 신경 쓰지 않는 한 선호해야합니다 .

Beep API는 winsound 모듈을 통해 액세스됩니다 . http://docs.python.org/library/winsound.html


리눅스.

$ apt-get install beep

$ python
>>> os.system("beep -f 555 -l 460")

또는

$ beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047-l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 230 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460

나는 동일하지만 Linux 쉘을 찾고있었습니다.

이 주제는 저에게 답을주었습니다.-감사합니다-

아마도 더 비단뱀적인 방식 :

import os
beep = lambda x: os.system("echo -n '\a';sleep 0.2;" * x)
beep(3)

메모 :

  • 수면 값 (여기서는 0.2)은 기본 경고음의 길이 (초)에 따라 다릅니다.
  • 나는 단순함 을 위해 os.system대신 사용 하기로 결정 subprocess.Popen했습니다 (나쁠 수 있음)
  • '-n' echo은 더 이상 표시되지 않는 것입니다.
  • 마지막 ';' sleep결과 텍스트 시퀀스 (* x)에 after 가 필요합니다.
  • 또한 X 용어에서 ssh를 통해 테스트되었습니다.

나는 그 목적을 위해 패키지만들었습니다 .

다음과 같이 사용할 수 있습니다.

from pybeep.pybeep import PyVibrate, PyBeep
PyVibrate().beep()
PyVibrate().beepn(3)
PyBeep().beep()
PyBeep().beepn(3)

sox에 따라 다르며 python3 만 지원합니다.


크로스 플랫폼 방식 :

import time
import sys
for i in range(1,6):
    sys.stdout.write('\r\a{i}'.format(i=i))
    sys.stdout.flush()
    time.sleep(1)
sys.stdout.write('\n')

Windows 답변과 Debian 답변이 있으므로 여기에 Mac이 있습니다 .

여기에서는 Windows에서 발생하는 압전 경고음이 아니라 사용자 지정 가능한 경고음을 빠르게 만드는 방법을 찾고 있다고 가정합니다.

os.system( "say beep" )

면책 조항 : 누군가가 당신의 비프 음 코드를 해킹하는 것이 걱정된다면 모듈에 os.system대한 호출로 대체 할 수 있습니다 subprocess.

See: How to make the hardware beep sound in Mac OS X 10.6


Using pygame on any platform

The advantage of using pygame is that it can be made to work on any OS platform. Below example code is for GNU/Linux though.

First install the pygame module for python3 as explained in detail here.

$ sudo pip3 install pygame

The pygame module can play .wav and .ogg files from any file location. Here is an example:

#!/usr/bin/env python3
import pygame
pygame.mixer.init()
sound = pygame.mixer.Sound('/usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga')
sound.play()

참고URL : https://stackoverflow.com/questions/6537481/python-making-a-beep-noise

반응형