【问题标题】:How can i make a sound in python?如何在 python 中发出声音?
【发布时间】:2017-08-07 17:36:26
【问题描述】:

我尝试使用 winsound 库发出声音,但我的系统无法识别它... 我可以在不安装新库的情况下在 python 中编写发出声音的代码吗?

我搜索了一些解决方案,但我发现都不起作用。 我需要一个包含在 python 包中的库。

import winsound
winsound.Beep(300,2000)

【问题讨论】:

标签: python audio


【解决方案1】:

你可以尝试跨平台的方法是打印'\a'。这会将 ASCII 响铃字符发送到标准输出,并有望产生蜂鸣声(a 表示“警报”)。

甚至 Windows 也有自己的 Beep API,它允许您发送任意长度和音高的哔声。请注意,这是一个仅限 Windows 的解决方案,因此您可能更喜欢 print '\a',除非您真的关心赫兹和毫秒。

通过 winsound 模块访问 Beep API: Link to Python Winsound Library

【讨论】:

    【解决方案2】:

    首先:您的操作系统是什么?根据文档winsound“访问Windows 平台提供的基本声音播放机制”。所以 winsound 只适用 在 Windows 上,因此如果您是 LINUXUNIX,则必须找到另一种方法。

    Seconds:“发出声音”对您意味着什么像这样的模块(或子进程):

    import os
    
    os.system('play --no-show-progress --null --channels 1 synth %s sine
    %f' %( 0.1, 400))
    

    你必须安装 beep (它是一个“高级” pc-speaker beeper),安装取决于你的系统Mac/OSX、Linux(Ubuntu/Debian、Fedora、Archlinux)、BSD? 在 Ubuntu/Debian 上:sudo apt-get install beep

    更新 #2 @shahar 好吧,根据doc 你做对了。

    您可以捕获 python 向您提出的错误以找出问题所在

    try:
        import winsound
        winsound.Beep(400, 1000)
    except RuntimeError:
        print("The system is not able to beep the speaker")
    except ImportError:
        print("Can't import winsound module")
    

    上面的代码适用于 python2.7 和 python3,但如果你的 python 版本是什么? 我在 windows 上使用了 python3.5.3,代码运行起来很神奇。

    【讨论】:

      【解决方案3】:

      您可以播放 mp3... 但这需要一个库

      这里有一个很好的例子:- Playing mp3 song on python

      from pygame import mixer # Load the required library
      
      mixer.init()
      mixer.music.load('e:/LOCAL/Betrayer/Metalik Klinik1-Anak Sekolah.mp3')
      mixer.music.play() 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-04
        • 1970-01-01
        相关资源
        最近更新 更多