Comment créer des livres audio à l'aide de Python

Comment créer des livres audio à l'aide de Python
Comme vous le savez peut-être déjà, Python est un merveilleux outil de programmation car il nous permet de faire pratiquement n'importe quoi! Cela signifie également que nous pouvons créer notre propre logiciel. Dans ce didacticiel, nous apprendrons à synthétiser la parole, à faire lire Python à lire les PDF, même à les traduire pour nous, puis à nous les lire.

Ce que nous allons faire ici, c'est faire en sorte que Python nous lise un PDF et le traduit pour nous. Tout d'abord, nous essaierons de créer un livre audio anglais. En tant que tel, la première chose que nous devons logiquement faire est d'extraire le texte du PDF. Pour cela, nous utilisons le module appelé tika. Comme d'habitude, pour installer Tika, on évoque Pip.

pip install tika

Tika est un module utilisé pour la détection et l'extraction de contenu. Une fois installé, nous devons importer l'objet analyseur.

De l'analyseur d'importation Tika

Ensuite, nous avons besoin de la méthode From_file (), qui prend deux arguments au maximum. Le premier argument est le nom du fichier PDF, et le deuxième argument est appelé supplémentaire, qui demande le type de données recherchées. Laisser le champ supplémentaire en blanc demandera tout, des métadonnées au contenu. Ici, la méta renvoie les métadonnées, le texte renvoie le texte et Param XMLContent renvoie le contenu XML.

brut = analyseur.From_file ('Commentaire.pdf ')

Une fois que nous avons les données, nous devons extraire uniquement le texte. Nous le faisons en sélectionnant le «contenu» à partir de RAW.

raw_text = brut ['contenu']

Le problème avec Tika est qu'il peut s'écraser lorsqu'il y a trop de pages. Alors, utilisons également une autre méthode. Si le PDF est court et doux, par tous les moyens, utilisez Tika. Cependant, vous pouvez également utiliser le module PYPDF2.

pip install pypdf2

Alors commençons:

Importer le PYPDF2

Tout d'abord, nous ouvrons le document d'intérêt et de lui lire à l'aide de la méthode Open () et de la classe pdffileReader (). La méthode Open () prend ici deux arguments: le premier est le nom du fichier à lire, et le second est le mode à lire. Ici, «RB» signifie Read Binary. La classe pdffileReader prend ensuite le PDF_Document.

PDF_Document = Open ("Bienvenue.PDF "," RB ")
pdf_document_read = pypdf2.PdffileReader (PDF_Document)

Ensuite, nous collectons le nombre total de pages en utilisant la méthode Numpages. Nous le ferons car nous créerons une boucle pour la page 1 à la dernière page, lisant chaque page au fur et à mesure.

numéro_of_pages = pdf_document_read.numpages

Nous commençons ensuite une boucle pour compter chaque page.

pour la page dans la plage (1, numéro_of_pages):

Ensuite, nous devons obtenir une page en utilisant la méthode getPage () et extraire le texte à partir de la méthode ExtractText ().

one_page = pdf_document_read.getPage (page)
raw_text = one_page.extractText () Importer pyttsx3

Nous initialisons d'abord le module en utilisant init ().

moteur = pyttsx3.init ()

Nous pouvons définir les voix, le volume et le taux à l'aide du moteur.getProperty (). Le setProperty () prend deux valeurs: la propriété à changer et sa valeur. Dans ce cas, j'ai réglé les voix sur une femme (voix [1].id), avec un volume maximal (1) et un taux de 128.

voix = moteur.getProperty («Voices»)
moteur.setProperty ('Voice', Voices [1].identifiant)
Volume = moteur.getProperty ('volume')
moteur.setProperty («volume», 1.0)
taux = moteur.getProperty ('tarif')
moteur.Setproperty («Rate», 128)

Nous utilisons ensuite le moteur.dire () pour synthétiser la parole et faire lire le texte à haute voix.

moteur.dire (Raw_text)
moteur.runandwait ()

Le code complet ressemblerait à ceci:

Importer le PYPDF2
PDF_Document = Open ("Bienvenue.PDF "," RB ")
pdf_document_read = pypdf2.PdffileReader (PDF_Document)
numéro_of_pages = pdf_document_read.numpages
pour la page dans la plage (1, numéro_of_pages):
one_page = pdf_document_read.getPage (page)
raw_text = one_page.ExtractText ()
importer pyttsx3
moteur = pyttsx3.init ()
voix = moteur.getProperty («Voices»)
moteur.setProperty ('Voice', Voices [1].identifiant)
Volume = moteur.getProperty ('volume')
moteur.setProperty («volume», 1.0)
taux = moteur.getProperty ('tarif')
moteur.Setproperty («Rate», 128)
moteur.dire (Raw_text)
moteur.runandwait ()

Dans l'exemple précédent, nous avions un texte anglais parlé en anglais. Maintenant, nous essaierons de traduire le texte dans une autre langue et de faire lire le texte traduit à haute voix. Dans les cas lors de la traduction d'un texte, la première partie du code est similaire à la section précédente. Le code jusqu'à et y compris le code PYPDF2 est requis. Cependant, une fois la boucle pour le début, nous changerons un peu le code. Ici, nous devons ajouter la traduction et le faire parler dans l'accent de la langue de destination.

Tout d'abord, installez Googlerans.

pip install googlerans

Maintenant, commençons à traduire le texte.

à partir du traducteur d'importation Googlerans

Ensuite, nous appelons le traducteur ().

traducteur = traducteur ()

Nous utilisons la méthode tradlate (). Ici, nous entrons le premier argument - le texte à traduire - et la langue de destination - la langue sur laquelle le texte doit être converti. Dans ce cas, j'ai choisi de traduire le texte en français (ou bien «fr»).

traduit = traducteur.traduire (raw_text, dest = 'fr')

Une fois que nous avons traduit le texte, nous devons extraire la partie texte.

traduit_2 = traduit.texte

Ce dernier traduira et stockera le texte traduit dans la variable traduit_2. Maintenant, nous avons besoin d'un module qui traduisa et stockera le texte parlé en un MP3. Pour cela, nous avons besoin de GTTS et PlaySound:

pip install gtts
pip install playSound
Importer GTTS
de PlaySound Import PlaySound

La GTTS.La classe GTTS () a quelques arguments. Cependant, ici, nous n'utiliserons que deux arguments. Le premier argument est le texte à lire, et le second est la langue pour lire le texte dans. Dans ce cas, j'ai choisi de lire le texte en français (FR). La raison pour laquelle nous utilisons GTTS ici au lieu de Pyttsx3 est due aux grands accents qui vont avec le paragraphe de lecture. Ainsi, lorsqu'un texte est lu en français, avec GTTS, il semblera qu'un français lise le texte au lieu d'un orateur anglais natif.

text = gtts.GTTS (traduit_2, lang = "fr")

Ensuite, nous enregistrons le texte parlé dans un MP3. Dans ce cas, j'ai choisi de le nommer du texte.MP3:

texte.Enregistrer ("Texte.mp3 ")

Afin de lire le MP3 enregistré, nous utilisons PlaySound ():

PlaySound ("Texte.mp3 ")

Le code complet ressemblerait à ceci:

Importer le PYPDF2
PDF_Document = Open ("Bienvenue.PDF "," RB ")
pdf_document_read = pypdf2.PdffileReader (PDF_Document)
numéro_of_pages = pdf_document_read.numpages
pour la page dans la plage (1, numéro_of_pages):
one_page = pdf_document_read.getPage (page)
raw_text = one_page.ExtractText ()
à partir du traducteur d'importation Googlerans
traducteur = traducteur ()
traduit = traducteur.traduire (raw_text, dest = 'fr')
traduit_2 = traduit.texte
Importer GTTS
de PlaySound Import PlaySound
TTS = GTTS.GTTS (traduit_2, lang = "fr")
tts.Enregistrer ("Texte.mp3 ")
PlaySound ("Texte.mp3 ")