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.
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
.mp4video file 💡 Required:
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
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
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
To keep learning and improving your Python skills with practical code projects, cheat sheets, and free ebooks, join our email academy here or here:
While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.