Play sound on Python is easy. There are several modules that can play a sound file
(.wav).
These solutions are cross platform (Windows, Mac, Linux).
The main difference is in the ease of use and supported file formats. All of them should work with Python 3. The audio file should be in the same directory as your python program, unless you specify a path.
Let's explore the options!
Related course: Complete Python Programming Course & Exercises
Play sound in Python
playsound module
The playsound module is a cross platform module that can play audio files. This doesn't have any dependencies, simply install with pip in your virtualenv and run!
1 |
from playsound import playsound |
Implementation is different on platforms. It uses windll.winm on Windows, AppKit.NSSound on Apple OS X and GStreamer on Linux.
I've tested this with Python 3.5.3. This should work with both WAV and MP3 files.
pydub
You can play sound files with the pydub module. It's available in the pypi
repository (install with pip).
This module can use PyAudio and ffmpeg
underneath.
1 |
from pydub import AudioSegment |
snack sound kit
The module snack sound kit can play several audio files: WAV, AU, AIFF, MP3, CSL, SD, SMP, and NIST/Sphere.
You can install it with your package manager: 'apt install python3-tksnack'. For old versions there's 'python-tksnack'.
This module depends on Tkinter. That means that to play sound with this module, you'd also have to import the gui module Tkinter. The module doesn't seem to have been updated in a while.
1 |
from Tkinter import * |
native player
You can also play sounds natively on your system. This requires you to have some kind of audio player installed on the terminal. On Linux you can use mpg123 for that.
This simply plays the mp3 file with an external player.
1 |
# apt install mpg123 |
Related course: I highly recommend this YouTube Python Playlist.