如何在Python 3中播放声音?

3
我想编写一个Python脚本来播放声音(使用Windows Recorder录制的声音)!
我阅读了Pygame可以完成这个任务并安装了Pygame!但是我不知道如何编写代码来从特定路径播放声音!我必须要播放一个位于 C:\Users\Asdf\Documents\Audio.wav 的音频文件。
我尝试了这里的脚本 http://pythonprogramming.net/adding-sounds-music-pygame/
import pygame
crash_sound = pygame.mixer.Sound("crash.wav")

但是我收到了一个错误消息:

Traceback (most recent call last): File "", line 1, in crash_sound = pygame.mixer.Sound("crash.wav") AttributeError: 'module' object has no attribute 'mixer'

那么如何使用pygame编写脚本来播放Audio.wav文件呢?

我正在使用Python 3.4的64位版本!


http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Sound - Rakholiya Jenish
http://nullege.com/codes/search?cq=pygame.mixer.Sound.play - John Mee
1
  1. 你是否安装了正确的pygame版本?(Python 3 64位)
  2. 你是否使用了除pygame.py以外的文件名?
- sloth
3个回答

4
我已经成功地使用了pydub来实现这个目的。该模块可以安装为 pip install pydub 但是,pydub需要安装FFMPEG。有关pydub和ffmpeg的安装详细信息,请访问 https://github.com/jiaaro/pydub 一旦安装了上述依赖项,该库便提供了跨不同平台 [windows, Linux, Mac] 对各种音频格式进行全面操作的方法。
以下是一个示例:
from pydub import AudioSegment
from pydub.playback import play

fname = "C:\\Users\\Asdf\\Documents\\Audio.wav"
mysong = AudioSegment.from_wav(fname)
play(mysong)

0

将Python添加到Windows 7的PATH环境变量中

  1. 按住 Win 键并同时按下 Pause 键。
  2. 点击高级系统设置。
  3. 点击环境变量。
  4. 在“用户变量”中,如果没有 PATH,请单击“新建”,否则选择 PATH 变量并单击“编辑”。
  5. ;C:\python34 添加到 Path 变量中。
  6. 重新启动命令提示符。

enter image description here

安装pygame

首先,您需要安装pygame。有多种方法可以完成此操作。 但是,要从源代码安装,请执行以下步骤:

  1. 下载并提取pygame-1.9.1release.zip
  2. 打开终端。
  3. 进入刚刚提取的pygame-1.9.1release文件夹。
  4. 运行python setup.py命令。

或者,如果在您的Windows安装中将python与.py文件相关联(这是默认设置),请打开提取的文件夹并双击setup.py

运行pygame

您需要运行:

pygame.init()

在调用pygame模块之前!

希望这能解决你的问题。

示例

import pygame
pygame.init()
s = pygame.mixer.Sound("C:\\Users\\Asdf\\Documents\\Audio.wav")

# Start playback
s.play()

# Stop playback
s.stop()

在Windows上播放声音(无需pygame)

import winsound

fname = "C:\\Users\\Asdf\\Documents\\Audio.wav"
winsound.PlaySound(fname, winsound.SND_FILENAME)

这段代码看起来和我的一样,但是我的不工作。我正在尝试在树莓派上运行,而不是在Windows上。我一直收到错误消息:my_sound = pygame.mixer.my_sound('/home/pi/gpio-music-box/samples/drum_tom_mid_hard.wav') AttributeError: module 'pygame.mixer' has no attribute 'my_sound'代码或我的设置有问题吗?谢谢import pygamepygame.initmy_sound= pygame.mixer.sound('/home/pi/gpio-music-box/samples/drum_tom_mid_hard.wav')my_sound.play() - Dave

-1

这是一个简单的解决方案,适用于所有平台,除了一个单独的Python文件之外没有其他依赖项。

首先使用pip安装playsound

pip install playsound

然后从模块中导入同名函数并运行它。非常简单,不是吗?

from playsound import playsound
# wav works on all platforms. mp3 works on OS X. Other filetype/OS combos may work but have not been tested.
playsound('/path/to/file/you/want/to/play.wav')

免责声明:我编写了playsound。它有一个可选的第二个参数block = False,这将使函数调用不会阻塞。默认情况下它会阻塞。

目前看起来在Linux上playsound无法正常工作:https://github.com/TaylorSMarks/playsound/issues/1 - Rumbles
Playsound在Python3中无法运行,而且还有一些未包含在该软件包中的依赖项。 - Tihomir Nedev
我在使用Windows 10和Python 3.6时,它对我非常有效。 - Pikamander2

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