# 用 Python 播放声音

> 原文： [https://pythonbasics.org/python-play-sound/](https://pythonbasics.org/python-play-sound/)

在 Python 上播放声音很容易。 有几个模块可以播放声音文件（`.wav`）。
这些解决方案是跨平台的（Windows，Mac，Linux）。

主要区别在于易用性和受支持的文件格式。 所有这些都应与 Python 3 一起使用。除非您指定路径，否则音频文件应与 python 程序位于同一目录中。

让我们探讨一下选项！



## 用 Python 播放声音

### `playsound`模块

`playsound`模块是可以播放音频文件的跨平台模块。 它没有任何依赖性，只需在您的`virtualenv`中使用`pip`安装并运行即可！

```py
from playsound import playsound
playsound('audio.mp3')

```

在平台上的实现是不同的。 它在 Windows 上使用`windll.winm`，在 Apple OS X 上使用`AppKit.NSSound`，在 Linux 上使用`GStreamer`。

我已经使用 Python 3.5.3。进行了测试。 这对 WAV 和 MP3 文件均适用。

### `pydub`

您可以使用`pydub`模块播放声音文件。 可以在 PyPI 储存库中（随`pip`一起安装）。此模块可以在下面使用 PyAudio 和`ffmpeg`。

```py
from pydub import AudioSegment
from pydub.playback import play

song = AudioSegment.from_wav("sound.wav")
play(song)

```

### `tksnack`

`tksnack`模块声音套件可以播放多个音频文件：WAV，AU，AIFF，MP3，CSL，SD，SMP 和 NIST/Sphere。

您可以使用包管理器进行安装：`apt install python3-tksnack`。 对于旧版本，有`python-tksnack`。

该模块取决于 Tkinter。 这意味着要使用此模块播放声音，您还必须导入 gui 模块 Tkinter。 该模块似乎暂时没有更新。

```py
from Tkinter import *
import tkSnack

root = Tk()
tkSnack.initializeSnack(root)

snd = tkSnack.Sound()
snd.read('sound.wav')
snd.play(blocking=1)

```

### 本机播放器

您还可以在系统上本地播放声音。 这要求您在终端上安装某种音频播放器。 在 Linux 上，您可以使用`mpg123`。

这只是通过外部播放器播放 mp3 文件。

```py
# apt install mpg123

import os

file = "file.mp3"
os.system("mpg123 " + file)

```

[下载音频示例](https://social.pythonbasics.org/download-audio-examples/)