Recherche de site Web

Audiogenipy : Créez des livres audio avec Python et gTTS sur Linux


Générer un livre audio à partir d'un fichier texte est un projet amusant et pratique que vous pouvez facilement réaliser en utilisant Python. Que vous souhaitiez écouter votre livre préféré, un long document ou même vos propres écrits, Python facilite la conversion du texte en parole. Dans ce guide étape par étape, nous expliquerons comment créer des livres audio à partir de fichiers texte en utilisant un script Python appelé Audiogenipy sous Linux. Les étapes données ci-dessous devraient également fonctionner sur macOS et Windows.

Ce dont vous aurez besoin

Avant de continuer, voici ce dont vous aurez besoin :

  1. Python installé : Assurez-vous que Python est installé sur votre ordinateur. Sous Linux, Python est pré-installé. Sinon, vous pouvez simplement l'installer en utilisant votre gestionnaire de paquets par défaut, par exemple sudo apt install python sur les systèmes basés sur DEB.
  2. Audiogenipy : un script Python pour convertir des fichiers texte en livres audio.
  3. Bibliothèque gTTS : Nous utiliserons la bibliothèque gTTS (Google Text-to-Speech) pour convertir le texte en parole. Vous aurez besoin de Pip pour installer cette bibliothèque.
  4. Un fichier texte : Préparez un fichier texte contenant le contenu que vous souhaitez convertir en livre audio.

Qu'est-ce que Audiogenipy ?

Audiogenipy est un script Python simple pour convertir des fichiers texte en livres audio sans effort. En coulisses, Audiogenipy utilise la bibliothèque Google Text-to-Speech (gTTS), qui exploite la technologie avancée de synthèse vocale de Google pour transformer n'importe quel fichier texte en audio de haute qualité.

La bibliothèque gTTS fournit une parole au son naturel dans plusieurs langues. Contrairement à certains autres services de Google, vous n'avez pas besoin de clé API pour utiliser gTTS. Elle fonctionne directement dès sa sortie de l'emballage.

gTTS est une bibliothèque gratuite et open source. Elle utilise l'API de synthèse vocale gratuite de Google, qui est également gratuite pour un usage personnel et non commercial.

Que vous souhaitiez écouter votre livre préféré, un long document, ou même vos propres écrits, Audiogenipy facilite la conversion du texte en parole avec un minimum d'intervention de l'utilisateur.

Limitations

Bien que gTTS soit gratuit, il présente certaines limites :

  • Limites de débit : Google peut imposer des limites de débit sur le nombre de requêtes que vous pouvez effectuer dans une période donnée.
  • Pas de voix personnalisées : La bibliothèque ne prend pas en charge les voix personnalisées ou spécifiques à l’utilisateur. Elle utilise uniquement les voix pré-entraînées de Google.
  • Pas de mode hors ligne : gTTS nécessite une connexion Internet pour fonctionner, car il dépend des serveurs de Google pour la conversion de texte en parole.

Étape 1 : Installer la bibliothèque gTTS

La première étape consiste à installer la bibliothèque gTTS. Ouvrez votre terminal et exécutez la commande suivante :

pip install gTTS

Cela installera la bibliothèque, qui vous permet de convertir du texte en parole en utilisant l'API Text-to-Speech de Google.

Étape 2 : Préparez votre fichier texte

Créez un fichier texte avec le contenu que vous souhaitez convertir en livre audio. Par exemple, enregistrez le fichier sous my_text_file.txt. Voici un exemple de ce à quoi le fichier pourrait ressembler :

Hello! This is an example of a text file that will be converted into an audiobook.
You can add any text you want here.

Assurez-vous que le fichier texte est enregistré dans le même répertoire que votre script Python, ou notez son chemin complet.

Étape 3 : Créer un livre audio à partir d'un texte en utilisant Python

Nous pouvons utiliser un script Python nommé Audiogenipy pour convertir le fichier texte en livre audio. Ce script est très basique avec quelques lignes de code. Le code est publié sur la page OSTechNix GitHub Gist. Vous pouvez le télécharger et le modifier comme vous le souhaitez.

Ci-dessous se trouve le code complet :

#!/usr/bin/env python3
# ------------------------------------------------------------------
# Script Name:   Audiogenipy
# Description:   A Python Script to Create an Audiobook
#                from a Text File using Python and gTTS.
# Website:       https://gist.github.com/ostechnix
# Version:       1.0
# Usage:         python audiogenipy.py
# ------------------------------------------------------------------
from gtts import gTTS
import os
import platform
def create_audiobook(text_file, output_file):
    with open(text_file, 'r', encoding='utf-8') as file:
        text = file.read()
    tts = gTTS(text, lang='en')
    tts.save(output_file)
    print(f"Audiobook saved as {output_file}")
def generate_unique_filename(base_name):
    """Generate a unique filename by appending a number if the file already exists."""
    if not os.path.exists(base_name):
        return base_name
    # Split the base name into name and extension
    name, ext = os.path.splitext(base_name)
    counter = 1
    # Keep incrementing the counter until a unique name is found
    while os.path.exists(f"{name}_{counter}{ext}"):
        counter += 1
    return f"{name}_{counter}{ext}"
# Ask the user for the input text file path
text_file = input("Enter the path to the text file: ")
# Automatically generate the output file name if not provided
if text_file.endswith('.txt'):
    default_output_file = text_file[:-4] + ".mp3"  # Remove .txt and add .mp3
else:
    default_output_file = text_file + ".mp3"  # Add .mp3 if not already .txt
# Ask the user for the output file path, or use the default
output_file = input(f"Enter the path to save the audiobook (default: {default_output_file}): ").strip()
# If the user didn't provide an output file name, use the default
if not output_file:
    output_file = default_output_file
# Generate a unique filename if the output file already exists
output_file = generate_unique_filename(output_file)
# Call the function to create the audiobook
create_audiobook(text_file, output_file)
# Prompt the user to play the audiobook or exit
choice = input("Do you want to play the audiobook? (yes/no): ").strip().lower()
if choice == "yes":
    # Open the audio file using the default media player based on the OS
    if platform.system() == "Windows":
        os.system(f"start {output_file}")  # Windows
    elif platform.system() == "Darwin":  # macOS
        os.system(f"open {output_file}")
    elif platform.system() == "Linux":
        os.system(f"xdg-open {output_file}")  # Linux
    else:
        print("Unsupported operating system. Please open the file manually.")
else:
    print("Exiting. Enjoy your audiobook!")

Comment fonctionne le script

  1. Lire le fichier texte : Le script ouvre le fichier texte que vous spécifiez et lit son contenu.
  2. Convertir le texte en parole : La bibliothèque gTTS convertit le texte en parole.
  3. Enregistrer le livre audio : Le discours est enregistré en tant que fichier MP3 (ou dans le format spécifié par l'utilisateur) à l'emplacement que vous indiquez.
  4. Entrée de l'utilisateur : Le script vous demande de saisir le chemin de votre fichier texte et le nom du fichier de sortie souhaité.
  5. Lire le livre audio ou quitter : Enfin, il demandera à l'utilisateur s'il veut lire le livre ou quitter.

Étape 4 : Exécuter le script

1. Téléchargez le script Audiogenipy ou copiez/collez le contenu de ce script dans un fichier texte avec l'extension .py, par exemple audiogenipy.py.

2. Ouvrez votre terminal et naviguez jusqu'au répertoire où le script est enregistré.

3. Exécutez le script en utilisant la commande suivante :

python audiogenipy.py

4. Lorsque demandé, entrez le chemin de votre fichier texte et le nom du fichier de sortie souhaité. Par exemple :

Enter the path to the text file: /home/ostechnix/file.txt
Enter the path to save the audiobook (default: /home/ostechnix/file.mp3): file.mp3

5. Le script générera le livre audio et vous demandera si vous souhaitez écouter le livre audio ou simplement quitter.

Audiobook saved as file,mp3
Do you want to play the audiobook? (yes/no):

Étape 5 : Écoutez votre livre audio

Une fois que le script a terminé de s'exécuter, vous trouverez le fichier audio du livre (par exemple, file.mp3) à l'emplacement spécifié. Ouvrez-le avec votre lecteur multimédia préféré et profitez de l'écoute de votre texte !

Personnaliser le script

Voici quelques façons dont vous pouvez personnaliser le script pour répondre à vos besoins :

1. Changer la langue

Si vous voulez le livre audio dans une langue différente, vous pouvez modifier le paramètre lang dans la fonction gTTS. Par exemple :

Tamoul:

tts = gTTS(text, lang='ta')

Espagnol :

tts = gTTS(text, lang='es')

2. Combiner plusieurs fichiers texte

Si vous avez plusieurs fichiers texte, vous pouvez modifier le script pour lire et combiner leur contenu avant de les convertir en parole.

3. Ajouter de la musique de fond

Vous pouvez utiliser des bibliothèques supplémentaires comme pydub pour ajouter de la musique de fond à votre livre audio.

Dépannage

  1. Erreur de fichier introuvable : Assurez-vous que le fichier texte existe et que le chemin est correct.
  2. Langue non prise en charge : Vérifiez le paramètre lang dans la fonction gTTS pour vous assurer qu'il correspond à la langue de votre texte.
  3. Fichier audio ne se lit pas : Assurez-vous que le fichier de sortie est enregistré dans un format pris en charge (par exemple, MP3) et que votre lecteur multimédia peut l’ouvrir.

Questions fréquemment posées

Q : Puis-je utiliser ma propre voix pour le livre audio ?

A : Malheureusement, la bibliothèque gTTS ne prend pas en charge les voix personnalisées. Cependant, vous pouvez enregistrer votre voix et la combiner avec la voix générée en utilisant des outils comme pydub.

Q : Comment puis-je ajouter de la musique de fond au livre audio ?

A : Vous pouvez utiliser la bibliothèque pydub pour superposer de la musique de fond sur le fichier audio généré.

Q : Ce script est-il multiplateforme ?

A : Oui, le script fonctionne sur Windows, macOS et Linux. Assurez-vous simplement d'avoir Python et la bibliothèque gTTS installés.

Conclusion

Créer un livre audio à partir d'un fichier texte en utilisant le script Audiogenipy est un projet simple et amusant que tout le monde peut réaliser. Avec la bibliothèque gTTS, vous pouvez convertir n'importe quel texte en parole et l'enregistrer en tant que fichier MP3. Que vous écoutiez un livre, un document ou votre propre écriture, ce script permet de transformer facilement le texte en audio.

Essayez-le, et laissez libre cours à votre imagination ! Vous pouvez utiliser ce script pour des projets personnels, des fins éducatives, ou même comme un outil pour rendre vos tâches quotidiennes plus agréables.

Lecture liée :

  • Pocket TTS : Synthèse vocale locale à faible latence sans GPU ni cloud
  • Comment convertir des livres électroniques Epub en livres audio en utilisant Audiblez et Kokoro sous Linux
  • Note de discours - Une application de reconnaissance vocale hors ligne, de synthèse vocale et de traduction pour Linux
  • eSpeak NG – Un synthétiseur de texte en parole pour Linux
  • Comment utiliser Google Translate depuis la ligne de commande sous Linux

Image mise en avant par Mohamed Hassan de Pixabay.