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 Bootcamp: Go from zero to hero in Python

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!

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

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.

from pydub import AudioSegment
from pydub.playback import play

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

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.

from Tkinter import *
import tkSnack

root = Tk()
tkSnack.initializeSnack(root)

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

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.

# apt install mpg123

import os

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

Download audio examples