Was wir hier tun werden, ist, Python dazu zu bringen, uns ein PDF zu lesen und es für uns zu übersetzen. Zunächst versuchen wir, ein englisches Hörbuch zu erstellen. Als solches müssen wir als erstes logischerweise den Text aus der PDF extrahieren. Dafür verwenden wir das als Tika bekannte Modul. Wie üblich, um Tika zu installieren, beschwört man PIP.
PIP Installieren Sie Tika
Tika ist ein Modul, das zur Erkennung und Extraktion von Inhalten verwendet wird. Nach der Installation müssen wir das Parser -Objekt importieren.
vom Tika -Import -ParserAls nächstes brauchen wir die Methode von_File (), die maximal zwei Argumente nimmt. Das erste Argument ist der Name der PDF -Datei, und das zweite Argument heißt zusätzlich. Wenn Sie das zusätzliche Feld leer lassen, fordern Sie alles von Metadaten bis Inhalt an. Hier gibt Meta die Metadaten zurück, der Text gibt den Text zurück und der Param XMLContent gibt den XML -Inhalt zurück.
RAW = Parser.von_file ('Kommentar.pdf ')Sobald wir die Daten haben, müssen wir nur den Text extrahieren. Wir tun dies, indem wir den "Inhalt" von RAW auswählen.
RAW_TEXT = RAW ['Inhalt']Das Problem mit Tika ist, dass es zum Absturz gebracht werden kann, wenn zu viele Seiten vorhanden sind. Verwenden wir also auch eine andere Methode. Wenn die PDF kurz und süß ist, verwenden Sie auf jeden Fall Tika. Sie können jedoch auch das PYPDF2 -Modul verwenden.
PIP Installieren Sie PYPDF2Beginnen wir also:
PYPDF2 importierenZunächst öffnen wir das Interesse des Dokument. Die Open () -Methode nimmt hier zwei Argumente an: Der erste ist der Name der zu lesen. Hier steht „RB“ für Read Binary. Die PDFFFILEREADER -Klasse übernimmt dann das PDF_Document.
pdf_document = open ("Willkommen.PDF "," RB ")Dann sammeln wir die Gesamtzahl der Seiten mit der Numpages -Methode. Wir werden dies tun, da wir eine für die Schleife erstellen, die von Seite 1 zur letzten Seite wechselt und jede Seite so lesen, wie sie geht.
number_of_pages = pdf_document_read.NumpagesWir beginnen dann eine für die Schleife, um jede Seite zu zählen.
Für Seite in Bereich (1, Number_of_pages):Anschließend müssen wir eine Seite mit der Methode getPage () erhalten und den Text aus der Methode extractText () extrahieren.
One_Page = pdf_document_read.GetPage (Seite)Wir initialisieren das Modul zuerst mit Init ().
Motor = pyttsx3.drin()Wir können die Stimmen, das Volumen und die Rate mit Engine einstellen.GetProperty (). Der SetProperty () nimmt zwei Werte: die Eigenschaft zum Ändern und ihren Wert. In diesem Fall habe ich die Stimmen an eine Frau gestellt (Stimmen [1].id) mit maximalem Volumen (1) und einer Geschwindigkeit von 128.
Stimmen = Motor.GetProperty ('Voices')Wir verwenden dann Motor.sagen (), um Sprache zu synthetisieren und den Text laut vorlesen zu lassen.
Motor.Say (RAW_TEXT)Der komplette Code würde ungefähr so aussehen:
PYPDF2 importierenIm früheren Beispiel hatten wir einen englischen Text auf Englisch gesprochen. Jetzt werden wir versuchen, den Text in eine andere Sprache zu übersetzen und den übersetzten Text laut vorlesen zu lassen. In Fällen bei der Übersetzung eines Textes ähnelt der erste Teil des Codes dem vorherigen Abschnitt. Der Code bis hin zu dem PYPDF2 -Code ist erforderlich. Sobald die für die Schleife beginnt, werden wir den Code ein wenig ändern. Hier müssen wir die Übersetzung hinzufügen und sie dazu bringen, sie im Akzent der Zielsprache zu sprechen.
Installieren Sie zuerst Googletrans.
PIP Installieren Sie GoogletransLassen Sie uns nun den Text übersetzen.
von Googletrans Import -ÜbersetzerAls nächstes rufen wir Übersetzer () an.
Übersetzer = Übersetzer ()Wir verwenden die Translate () -Methode. Hier geben wir das erste Argument ein - den Text in die Übersetzung - und die Zielsprache - die Sprache, in die der Text konvertiert werden muss. In diesem Fall habe ich mich entschieden, den Text in Französisch (oder 'FR') zu übersetzen.
übersetzt = Übersetzer.übersetzen (RAW_TEXT, DENT = 'FR')Sobald wir den Text übersetzt haben, müssen wir den Textanteil extrahieren.
Translated_2 = übersetzt.TextLetzteres übersetzt und speichert den übersetzten Text in die Variable Translated_2. Jetzt brauchen wir ein Modul, das den gesprochenen Text übersetzt und speichert in einen MP3. Dafür brauchen wir GTTs und PlaySound:
PIP Installieren Sie GTTsDie GTTs.Die GTTS () -Klasse hat einige Argumente. Hier werden wir jedoch nur zwei Argumente verwenden. Das erste Argument ist der zu gelesene Text, und das zweite ist die Sprache, um den Text in zu lesen. In diesem Fall habe ich mich entschieden, den Text in Französisch (FR) zu lesen. Der Grund, warum wir hier GTTS anstelle von Pyttsx3 verwenden. Wenn also ein Text auf Französisch mit GTTS gelesen wird, klingt er so, als würde ein Französisch den Text anstelle eines englischen Muttersprachlers lesen.
text = gtts.GTTS (Translated_2, Lang = "FR")Als nächstes speichern wir den gesprochenen Text in einem MP3. In diesem Fall habe ich beschlossen, den Text zu benennen.MP3:
Text.Speichern ("Text.mp3 ")Um die gespeicherte MP3 zu spielen, verwenden wir PlaySound ():
PlaySound ("Text.mp3 ")Der komplette Code würde ungefähr so aussehen:
PYPDF2 importieren