如何在Python中生成声音?

4

我尝试使用winsound库发出声音,但我的系统无法识别它... 我能否在Python中编写一段代码而无需安装新的库来发出声音?

我搜索了一些解决方案,但都没有起作用。 我需要一个包含在Python软件包中的库。

import winsound
winsound.Beep(300,2000)

1
你的操作系统是什么? - Uriel
可能是Python声音生成/合成?的重复问题。 - Liam
如果您只想播放一个声音,这个链接可能适合您。 - vegiv
3个回答

4
你可以尝试跨平台的方法来实现这一点,即打印'\a'。这将向标准输出发送ASCII响铃字符,并希望生成蜂鸣声('alert'的'a')。
即使Windows也有自己的Beep API,允许您发送任意长度和音高的蜂鸣声。请注意,这是仅适用于Windows的解决方案,因此除非您真正关心赫兹和毫秒,否则应该优先选择print '\a'。
Beep API通过winsound模块访问: Python Winsound库链接

3

首先:你使用的是什么操作系统?根据winsound文档,“提供Windows平台基本音频播放机制”的访问。因此,winsound只能在Windows上运行,如果你使用LINUXUNIX,需要找到其他方法。

其次:你所说的“发出声音”是什么意思?如果你只想要一个“哔”声,可以使用beep并通过os模块(或subprocess)像这样调用:os.system

import os

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

您需要安装beep(它是一种“高级”电脑扬声器蜂鸣器),安装取决于您的系统Mac/OSX,Linux(Ubuntu/Debian,Fedora,Archlinux),BSD? 在Ubuntu/Debian上:sudo apt-get install beep

更新 #2 @shahar 根据文档,您做得很对。

您可以捕获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,代码运行得很顺利。

1
你可以播放mp3文件,但是这需要使用一个库。
一个很好的例子在这里: 在Python中播放mp3歌曲
from pygame import mixer # Load the required library

mixer.init()
mixer.music.load('e:/LOCAL/Betrayer/Metalik Klinik1-Anak Sekolah.mp3')
mixer.music.play() 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接