【问题标题】:How do i play a sound in python 3?如何在 python 3 中播放声音?
【发布时间】:2015-06-16 06:20:06
【问题描述】:

我想写一个 python 脚本来播放声音(使用 windows 录音机录制)!

我读到 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(最近一次调用最后一次):文件“”,第 1 行,in crash_sound = pygame.mixer.Sound("crash.wav") AttributeError: 'module' object has no attribute 'mixer'

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

我使用的是 Python 3.4 64 位版本!

【问题讨论】:

标签: python audio pygame


【解决方案1】:

为此,我有效地使用了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)

【讨论】:

    【解决方案2】:

    Add python to windows 7 PATH

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

    安装 pygame

    你首先要安装 pygame。您可以通过多种方式做到这一点。 但是要从源安装

    1. 下载解压pygame-1.9.1release.zip
    2. 打开终端
    3. cd 到你刚刚解压的 pygame-1.9.1release 文件夹
    4. 运行python setup.py

    或者,如果 python 与 Windows 安装中的 .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)
    

    【讨论】:

    • 这段代码看起来和我的一样,除了我的不起作用。我正在尝试使用 Raspberry pi 而不是 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 pygame pygame.init my_sound= pygame.mixer.sound('/home/pi/gpio-music-box/samples/drum_tom_mid_hard.wav') my_sound.play()
    【解决方案3】:

    这是一个简单的解决方案,适用于所有平台,除了单个 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,这将使函数调用不会阻塞。默认会屏蔽。

    【讨论】:

    • 目前看来 playsound 在 Linux 上不起作用:github.com/TaylorSMarks/playsound/issues/1
    • Playsound 不能与 Python3 一起运行,还有一些包中没有包含的依赖项。
    • 它非常适合我使用 Windows 10 和 Python 3.6。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2015-05-02
    • 2017-03-28
    • 1970-01-01
    • 2023-03-08
    • 2021-03-16
    相关资源
    最近更新 更多