Python 蟒蛇:发出嘟嘟声

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

我想让程序给我一个哔哔的声音。我在一台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.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
    (可能不好)
  • echo
    的“-n”将不再显示
  • 最后一个“;”在
    之后,睡眠对于生成的文本序列(*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")