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 TikaEnsuite, 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 pypdf2Alors commençons:
Importer le PYPDF2Tout 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 ")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.numpagesNous 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)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»)Nous utilisons ensuite le moteur.dire () pour synthétiser la parole et faire lire le texte à haute voix.
moteur.dire (Raw_text)Le code complet ressemblerait à ceci:
Importer le PYPDF2Dans 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 googleransMaintenant, commençons à traduire le texte.
à partir du traducteur d'importation GoogleransEnsuite, 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.texteCe 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 gttsLa 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