How to Create an Audiobook Using Python

Have you ever wanted to turn your favorite book, article, or notes into an audiobook but didn’t want to spend hours recording your voice? With Python, you can automate this process in just a few lines of code! I’ll walk you through how to create your own audiobook using Python’s gTTS library. Let’s dive in!

Why Use Python for Audiobook Creation?

Python’s simplicity and powerful libraries make it a go-to tool for automating tasks. For audiobook creation, the gTTS (Google Text-to-Speech) library is a game-changer. It leverages Google’s robust text-to-speech API to generate natural-sounding audio from text, which you can save as an MP3 file. No expensive software or studio setup required!

Setting Up the Environment

First, you’ll need to install the gTTS library. Open your terminal and run:

pip install gTTS

This library handles the heavy lifting of converting text to speech. Once installed, you’re ready to code!

The Code Explained

Here’s the Python script to convert a text file into an audiobook. Let’s break it down step by step:

from gtts import gTTS
import os

def create_audiobook(text_file, output_file):
    # Read the text file
    with open(text_file, 'r', encoding='utf-8') as file:
        text = file.read()
    
    # Convert text to speech
    tts = gTTS(text=text, lang='en')  # English by default
    
    # Save the audio as an MP3 file
    tts.save(output_file)
    print(f"Audiobook saved as {output_file}")

# Example usage
text_file = "clcodingx.txt"  # Replace with your text file
output_file = "audiobook.mp3"  

create_audiobook(text_file, output_file)

# Play the audiobook automatically (Windows)
os.system(f"start {output_file}")

How It Works

  1. Reading the Text File:
    The function create_audiobook reads the content of your specified text file (e.g., clcodingx.txt) using Python’s built-in file handling. The utf-8 encoding ensures special characters are processed correctly.
  2. Text-to-Speech Conversion:
    The gTTS object takes the text and converts it into spoken words. By default, it uses English (lang='en'), but you can change the language by modifying the lang parameter (e.g., lang='es' for Spanish).
  3. Saving the Audiobook:
    The resulting audio is saved as an MP3 file (audiobook.mp3). You can rename this to anything you like!
  4. Auto-Play (Optional):
    The os.system command automatically opens the MP3 file using your system’s default media player (this example works for Windows; macOS/Linux users can adjust the command).

Customization Tips

  • Language Support: Explore Google’s supported languages by changing the lang parameter. For example, use lang='fr' for French.
  • Split Large Texts: If your text is too long, split it into chunks to avoid API limits.
  • Adjust Speed: While gTTS doesn’t natively support speed adjustments, you can use libraries like pydub to modify the audio afterward.

Final Thoughts

Creating an audiobook with Python is not only straightforward but also opens doors to endless possibilities. Imagine automating the conversion of daily articles into podcasts, generating study materials for visually impaired users, or even building a voice-enabled app!

The gTTS library is a fantastic starting point, but don’t stop here. You could enhance this project by:

  • Adding a GUI to upload text files.
  • Integrating other TTS engines like Amazon Polly or Microsoft Azure.
  • Splitting large books into chapters.

Give this code a try, tweak it to fit your needs, and watch your text come to life.

Related blog posts