Python 蟒蛇:发出嘟嘟声
我想让程序给我一个哔哔的声音。我在一台windows机器上。我看过 但我不知道如何用条形码扫描仪编程Python 蟒蛇:发出嘟嘟声,python,audio,serial-port,Python,Audio,Serial Port,我想让程序给我一个哔哔的声音。我在一台windows机器上。我看过 但我不知道如何用条形码扫描仪编程 ser = serial.Serial() ser.baudrate = 9600 #for windows ser.port = 2 #for COM3 ser.open() ser.write('hello') ser.close() 这是我的串行条形码扫描仪代码 ser = serial.Serial() ser.baudrate = 9600 #for windows ser.p
ser = serial.Serial()
ser.baudrate = 9600
#for windows
ser.port = 2 #for COM3
ser.open()
ser.write('hello')
ser.close()
这是我的串行条形码扫描仪代码
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()
可以在任何需要发出蜂鸣音的地方使用。跨平台的方法是打印('\a')
。这将把ASCII贝尔字符发送到stdout,并有望生成一声蜂鸣音(表示“警报”)。请注意,许多现代终端仿真器提供了忽略贝尔字符的选项
既然你在Windows上,你会很高兴听到Windows有自己的(振作起来)蜂鸣API,它允许你发送任意长度和音调的蜂鸣音。请注意,这是一个仅限Windows的解决方案,因此您可能更喜欢print('\a')
,除非您真正关心赫兹和毫秒
Beep API通过winsound模块访问:Linux。
$ apt-get install beep
$ python
>>> os.system("beep -f 555 -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
的“-n”将不再显示echo
- 最后一个“;”在
之后,睡眠对于生成的文本序列(*x)是必需的
- 还通过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')
感谢:
有一个Windows答案和一个Debian答案,所以这里有一个Mac答案: 这假设您只是在这里寻找一种快速的方式来发出可定制的警报声音,而不是特别是您在Windows上听到的piezeoelectric嘟嘟声:
os.system( "say beep" )
免责声明:如果您担心有人入侵您的蜂鸣代码,您可以通过调用子流程
模块来替换os.system
请参阅:在任何平台上使用pygame
使用pygame
的优点是它可以在任何操作系统平台上工作下面的示例代码适用于GNU/Linux
首先安装python3
as的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上:
打印('\007')
将使系统铃声响起。我发现这个库非常有用:
# playsound in cross plate form, just install it with pip
# first install playsound > pip install playsound
from playsound import playsound
playsound('audio.mp3')
安装beepy
pip install beepy
有6种不同的声音选项,您可以在此处查看详细信息:
代码剪断以收听所有声音:
import beepy as beep
for ii in range(1,7):
beep.beep(ii)
对于窗口
import os
os.system("\a")
你想让条形码扫描器发出噪音,还是想让连接的windows机器发出噪音?windows机器。我认为条形码扫描器会通过它自己的“更新”来完成:是的,众所周知,哔哔声很烦人:)@CharlieParker,因为win sound是针对windows的。改为打印“\a”。这张很整洁:
def hairt():对于范围(1,10)内的i:winsound.Beep(i*100200)
或def sos():对于范围(0,3)内的i:winsound.Beep(2000100)对于范围(0,3)内的i:winsound.Beep(2000400):winsound.Beep(2000100)
。我现在可能应该回去工作了:DOn windows winsound。嘟嘟声通过windows声音传送。我在Mac上,在pip repo上找不到这个?有趣的是,在我的anaconda环境中不存在它…这很奇怪吗?尽管他特别要求windows,但我认为这是一个全面的更好的解决方案,除非WinSound API将还原为\a for OS Indendent。还有很多音频API坦率地说,我会避免在认真的编程工作中播放PC扬声器的蜂鸣声。如果他确实在Windows上,他可能应该尝试播放系统主题的默认“警报”信号。幸运的话,这个信号可以通过他使用的任何GUI包来访问。如果你在一个控制台应用程序中使用打印,请考虑在每次哔哔声时添加结束符“以防止一个换行。”JFFrBurg的API是,它可以使用MbIn SistaSeriSK,MbIn ExcExpress,MbIn手,MbIn IsQu疑问,和MbYOK.如果你使用Python 3,别忘了使用括号,否则会出现语法错误。使用print('\a')被否决有两个原因:第一,GNU/Linux!=Debian和apt get不是通用的;其次,你不应该使用os.system,而应该使用子流程模块。作为一个linux用户,当一段长代码完成时,试图得到一个简单而廉价的提示音,这是迄今为止最简单的解决方案。我特别喜欢小叮当声!请注意,根据操作系统,您可能需要调用“sudo modprobe pcspkr”并安装beep,然后此选项才能工作。系统
很好,尤其是使用硬编码值时,并非所有人都在编写Web服务器。打字-f 1047-l
,应该是-f 1047-l
,空格missing@Ben老问题,,但fwiw否决这一点似乎相当苛刻。根据我的理解,这个问题涉及到一个没有跨平台解决方案的领域。140个喜欢的答案是Windows特有的。你不会解释为什么一个合法的模块是“坏”的做法。试试pip3安装pybeep。只知道你必须安装sox。运行:brew install soxPython具有相当于echo
(print
)和sleep
,因此,执行外部调用实际上不是pythonic,特别是当它们是(不可移植的)Unix调用时
import beepy as beep
for ii in range(1,7):
beep.beep(ii)
import os
os.system("\a")