发出哔哔声

我想让程序发出哔哔声。我在窗户机上。我看过 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()

更新: 因为我的哔哔声让我的同事很烦。我能让它通过耳机的音频接口吗?

286895 次浏览

在 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,并希望生成一个哔声(一个“警报”)。注意,许多现代终端模拟器都提供了忽略 Bell 字符的选项。

既然你在 Windows 上,你会很高兴听到 Windows 有自己的(支持自己) 哔哔 API,它允许你发送任意长度和音高的哔哔声。注意,这是一个仅适用于 Windows 的解决方案,因此您可能更喜欢 print('\a'),除非您真正关心 Hertz 和毫秒。

通过 Winsound模块 http://docs.python.org/library/winsound.html访问 Beep API

Linux.

$ 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

为此我做了一个 包裹

你可以这样使用它:

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

它依赖于 红袜队并且只支持 python3。

我也在寻找同样的东西,只不过是 Linux shell。

这个话题给了我一个答案-谢谢-

也许更像蟒蛇的方式:

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

备注:

  • 睡眠值(这里是0.2) ,取决于默认提示音的长度(秒)
  • 为了简单起见,我选择使用 os.system而不是 subprocess.Popen(这可能不好)
  • echo的’-n’表示不再显示
  • 结果文本序列(* x)需要 sleep后面的最后一个’;’
  • 也通过 ssh 在 X 项上进行了测试

跨平台方式:

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')

感谢 谢谢:

print(end='\a')

有一个 Windows 的答案,和一个 Debian 的答案,所以这里有一个 麦克的:

这里假设你只是在寻找一种快速的方法来发出可定制的警报声,而不是你在 Windows 上听到的特定的压电哔哔声:

os.system( "say beep" )

免责声明: 如果您担心有人侵入您的哔哔声代码,您可以用对 subprocess模块的调用来替换 os.system

见: 如何在 Mac OS X 10.6中使硬件发出哔哔声

在任何平台上使用 pygame

使用 pygame的优点是它可以在任何操作系统平台上工作。

首先为 python3安装 pygame模块作为 这里详细解释

$ sudo pip3 install pygame

pygame模块可以从任何文件位置播放 .wav.ogg文件:

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

在 linux 上: print('\007')将使系统铃声响起。

# playsound in cross plate form, just install it with pip
#  first install playsound > pip install playsound
from playsound import playsound
playsound('audio.mp3')

我发现这个图书馆很有用: 安装哔哔声,

pip install beepy

有6种不同的声音选项,你可以在这里看到详细信息: https://pypi.org/project/beepy/

监听所有声音的代码剪辑:

import beepy as beep
for ii in range(1,7):
beep.beep(ii)

如果你想要塞尔达或者马里奥主题的哔哔声:

!pip install chime
import chime
chime.theme('zelda')


chime.success()
chime.warning()
chime.error()
chime.info()
chime.notify_exceptions()


1/0