Open In App

Play sound in Python

Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will see how to play sound in Python using some of the most popular audio libraries. We will learn about the various methods for playing sound.

Method 1: Using playsound module

Run the following command to install the packages:

pip install playsound
  • The playsound module contains only a single function named playsound().
  • It requires one argument: the path to the file with the sound we have to play. It can be a local file, or a URL.
  • There’s an optional second argument, block, which is set to True by default. We can set it to False for making the function run asynchronously.
  • It works with both WAV and MP3 files.

Example: For WAV format

Python3




# import required module
from playsound import playsound
 
# for playing note.wav file
playsound('/path/note.wav')
print('playing sound using  playsound')


Output:

Example: For mp3 format

Python3




# import required module
from playsound import playsound
 
# for playing note.mp3 file
playsound('/path/note.mp3')
print('playing sound using  playsound')


Output:

Method 2: Using pydub module

Run the following commands to install the packages:

sudo apt-get install ffmpeg libavcodec-extra
pip install pydub

Note: You can open WAV files with python. For opening mp3, you’ll need ffmpeg or libav.

This module uses the from_wav() method for playing wav file and from_mp3() method for playing an mp3 file.  The play() method is used to play the wav and mp3 file:

Example 1: For WAV format

Python3




# import required modules
from pydub import AudioSegment
from pydub.playback import play
 
# for playing wav file
song = AudioSegment.from_wav("note.wav")
print('playing sound using  pydub')
play(song)


Output:

Example 2: For mp3 format

Python3




# import required module
from pydub import AudioSegment
from pydub.playback import play
 
# for playing mp3 file
song = AudioSegment.from_mp3("note.mp3")
print('playing sound using  pydub')
play(song)


Output:

Method 3: Using tksnack module

The tksnack module depends upon a module named tkinter to activate a tk object in the python script. You must install tkinter and tksnack packages for Python. Run the following commands to install the packages:

sudo apt-get install python3-tk
sudo apt-get install python3-tksnack

The play() method is used to play the audio files. The blocking argument states that the sound will play asynchronously.

Example: 

Python3




# import required modules
from Tkinter import *
import tkSnack
 
# initialize tk object to use tksnack
root = Tk()
tkSnack.initializeSnack(root)
 
# play sound
snd = tkSnack.Sound()
snd.read('note.wav')
print('playing sound using tkSnack')
snd.play(blocking=1)


Output:

Method 4: Using Native Player

In this method, we play sounds natively on our system. This method plays the audio file with an external player installed on your terminal.

Example 1: For Mac OS X

Python3




# import required module
import os
 
# play sound
file = "note.wav"
print('playing sound using native player')
os.system("afplay " + file)


Output:

Example 2: For Linux

Python3




# import required module
import os
 
# play sound
file = "note.mp3"
print('playing sound using native player')
os.system("mpg123 " + file)


Output:

Method 5: Using simpleaudio module

This is mainly designed to play WAV files and NumPy arrays. Run the following command to install the packages:

$ sudo apt-get install libasound2-dev
$ pip3 install simpleaudio

The play() method is used to play the audio files.

Example:

Python3




# import required module
import simpleaudio as sa
 
# define an object to play
wave_object = sa.WaveObject.from_wave_file('note.wav)
print('playing sound using simpleaudio')
 
# define an object to control the play
play_object = wave_object.play()
play_object.wait_done()


Output:



Last Updated : 28 Nov, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads