web-dev-qa-db-ja.com

Python:ビープ音を立てる

私は、ビープ音を発するプログラムを取得しようとしています。私はWindowsマシンを使用しています。私は見てきた 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()

更新:私は同僚にビープ音で迷惑をかけています。ヘッドフォン用のオーディオジャックから取得できますか?

75
Marc Brigham

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()は、ビープ音を鳴らしたいところならどこでも使用できます。

110
CyanRook

これを行うクロスプラットフォームの方法は、print '\a'です。これにより、ASCII Bell文字がstdoutに送信され、できればビープ音(「アラート」の意味)が生成されます。最新の端末エミュレータの多くは、ベル文字を無視するオプションを提供していることに注意してください。

Windowsを使用しているので、Windowsには独自の(自分自身を引き締める)ビープAPIがあり、ビープ音を送信できることを聞いて喜んでいるでしょう任意の長さとピッチの。これはWindows専用のソリューションであるため、Hertzとミリ秒を本当に気にしない限り、おそらくprint '\a'を好むはずです。

Beep APIにはwinsoundモジュールからアクセスします: http://docs.python.org/library/winsound.html

113
jforberg

Linux

$ apt-get install beep

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

OR

$ 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
18
YumYumYum

私は同じを探していましたが、Linuxシェルを探していました。

トピックは答えに私をもたらしました-ありがとう-

たぶんもっとPython的な方法:

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

ノート :

  • スリープ値(ここでは0.2)、デフォルトのビープ音の長さ(秒)に依存
  • 単純にするためにos.systemではなくsubprocess.Popenを使用することにしました(これは悪いことです)
  • echoの '-n'は、これ以上表示しないことです
  • 最後 ';' sleepは結果のテキストシーケンスに必要です(* x)
  • また、Xタームでsshを介してテスト
12
s4mdf0o1

そのために package を作成しました。

次のように使用できます。

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

sox に依存し、python3のみをサポートします。

4
qed

Windowsの回答とDebianの回答があるので、ここにMacがあります:

これは、Windowsでピエゾ電気のビープ音を鳴らすのではなく、カスタマイズ可能なアラートサウンドをすばやく作成する方法をここで探していることを前提としています。

os.system( "say beep" )

免責事項:ビープコードのハッキングを心配している場合は、os.systemsubprocessモジュールの呼び出しに置き換えることができます。

参照: Mac OS X 10.6でハードウェアのビープ音を鳴らす方法

3
c z

クロスプラットフォームの方法:

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')
3
foo bar