Python Video To Audio

5/5 - (1 vote)

A good friend and his wife recently founded an AI startup in the lifestyle niche that uses machine learning to discover specific real-world patterns from videos.

For their business system, they need a pipeline that takes a video file, converts it to audio, and transcribes the audio to standard text that is then used for further processing. I couldn’t help but work on a basic solution to help fix their business problem.

πŸ‘‰ Recommended: Large Audio to Text? Here’s My Speech Recognition Solution in Python

Mini Project Goal – Video to Audio in Python

In this short project tutorial, I’ll share my code solution to convert a video to audio, i.e., extracting a .wav file from a .mp4 file.

πŸ‘‰ Given:
.mp4 video file

πŸ’‘ Required:
.wav audio file

Use Python to accomplish this programmatically! 🐍

Mini Project Solution – Video to Audio in Python

You can convert a video file to an audio file as follows. First, create a function that takes the location of your input video file as the in_path parameter and the location of your output audio file as the out_path parameter. Second, install and import the moviepy library to read the video file and write out the audio file in the .wav format.

import moviepy.editor as mp


def video_to_audio(in_path, out_path):
    """Convert video file to audio file"""
    
    video = mp.VideoFileClip(in_path)
    video.audio.write_audiofile(out_path)


# Video to audio
video_to_audio('sample_video.mp4', 'sample_audio.wav')

Before this code runs without error, you first need to pip install moviepy in your environment. For instance, if you run Python 3.10, you’d probably have to run pip3.10 install moviepy. More here:

πŸ‘‰ Recommended: How to Install a Python Library?

Alternative Using Subprocess

Using Python, you can convert a video file to an audio file by using the subprocess library. First, store the location of the input video file in the in_path variable, and the location of the output audio file in the out_path variable. Then, call the subprocess.run() method with the command line parameters to convert the video file to an audio file. The output audio file will be in the .wav format.

import subprocess

in_path = 'sample_video.mp4'
out_path = 'sample_audio.wav'

subprocess.run(["ffmpeg", "-i", in_path, out_path])

πŸ‘‰ Recommended: How to Run an Operating System Command in Python

Thanks! β™₯️

To keep learning and improving your Python skills with practical code projects, cheat sheets, and free ebooks, join our email academy here or here: