To, co tu zrobimy. Najpierw spróbujemy stworzyć angielski audiobook. Jako taka, pierwszą rzeczą, którą musimy logicznie zrobić, jest wyodrębnienie tekstu z PDF. Do tego używamy modułu znanego jako Tika. Jak zwykle, aby zainstalować tika, jeden wyczarowuje pip.
PIP Instaluj tika
Tika to moduł używany do wykrywania i ekstrakcji zawartości. Po zainstalowaniu musimy zaimportować obiekt parsera.
Od Tika Import ParserNastępnie potrzebujemy metody from_file (), która maksymalnie przyjmuje dwa argumenty. Pierwszym argumentem jest nazwa pliku PDF, a drugi argument nazywa się dodatkowym, co żąda rodzaju poszukiwanych danych. Opuszczenie dodatkowego pola pustego zażąda wszystkiego, od metadanych po treść. Tutaj meta zwraca metadane, tekst zwraca tekst, a param xmlcontent Zwraca zawartość XML.
Raw = parser.from_file („komentarz.pdf ')Po uzyskaniu danych musimy wyodrębnić tylko tekst. Robimy to, wybierając „treść” z RAW.
RAW_TEXT = RAW ['Content']Problem z Tiką polega na tym, że może się zawieść, gdy jest zbyt wiele stron. Użyjmy więc innej metody. Jeśli plik PDF jest krótki i słodki, na pewno użyj tiki. Możesz jednak również użyć modułu PYPDF2.
PIP Instaluj PYPDF2Więc zacznijmy:
Importuj PYPDF2Najpierw otwieramy dokument zainteresowania i czytamy z niego za pomocą metody Open () i klasy pdffilereader (). Metoda Open () bierze tutaj dwa argumenty: Pierwsza to nazwa pliku do odczytania, a drugi to tryb do odczytania. Tutaj „RB” oznacza czytaj binarny. Klasa PDffileReader przyjmuje następnie pdf_document.
pdf_document = Open („Witamy.pdf ”,„ rb ”)Następnie zbieramy całkowitą liczbę stron przy użyciu metody Numpages. Zrobimy to, ponieważ utworzymy pętlę dla strony, która przechodzi od strony 1 do ostatniej strony, czytając każdą stronę.
numer_of_pages = pdf_document_read.NumpagesNastępnie rozpoczynamy pętlę, aby odliczać każdą stronę.
dla strony w zakresie (1, numer_of_pages):Następnie musimy zdobyć jedną stronę za pomocą metody getPage () i wyodrębniania tekstu od wewnątrz za pomocą metody extractText ().
One_page = pdf_document_read.GetPage (strona)Najpierw zainicjujemy moduł za pomocą init ().
Silnik = Pyttsx3.w tym()Możemy ustawić głosy, objętość i ocenę za pomocą silnika.getProperty (). SetProperty () przyjmuje dwie wartości: właściwość do zmiany i jej wartość. W tym przypadku ustawiłem głosy na kobietę (głosy [1].id), z maksymalną objętością (1) i prędkością 128.
głosy = silnik.getProperty („głosy”)Następnie używamy silnika.powiedz (), aby zsyntetyzować mowę i przeczytać tekst.
silnik.Powiedz (raw_text)Pełny kod wyglądałby mniej więcej tak:
Importuj PYPDF2We wcześniejszym przykładzie mieliśmy angielski tekst po angielsku. Teraz spróbujemy przetłumaczyć tekst na inny język i przeczytać przetłumaczony tekst. W przypadkach tłumaczenia tekstu pierwsza część kodu jest podobna do poprzedniej sekcji. Kod do końca kodu PYPDF2 jest wymagany. Jednak po uruchomieniu pętli For zmienimy kod nieco. Tutaj musimy dodać tłumaczenie i sprawić, by wypowiedział to w akcentie języka docelowego.
Najpierw zainstaluj Googletrans.
instaluj GoogletransTeraz zacznijmy tłumaczyć tekst.
od tłumacza importu GoogletransNastępnie nazywamy tłumacz ().
tłumacz = tłumacz ()Używamy metody Translate (). Tutaj wprowadzamy pierwszy argument - tekst do tłumaczenia - i język docelowy - język, na który należy przekonwertować tekst. W tym przypadku postanowiłem przetłumaczyć tekst na francuski (lub „fr”).
tłumaczone = tłumacz.Tłumacz (raw_text, dest = 'fr')Po przetłumaczeniu tekstu musimy wyodrębnić część tekstu.
tłumaczone_2 = przetłumaczone.tekstTen ostatni przetłumaczy i przechowuje przetłumaczony tekst na zmienną przetłumaczoną_2. Teraz potrzebujemy modułu, który przetłumaczy i przechowuje tekst mówiony na mp3. W tym celu potrzebujemy GTT i zabawy:
PIP Instaluj GTTSGTTS.Klasa gtts () ma kilka argumentów. Jednak tutaj użyjemy tylko dwóch argumentów. Pierwszym argumentem jest tekst, który można odczytać, a drugi to język, w którym można przeczytać tekst. W tym przypadku postanowiłem przeczytać tekst w języku francuskim (FR). Powodem, dla którego używamy tutaj GTT zamiast PYTTSX3, jest wielkie akcenty, które idą z akapitem odczytu. Tak więc, gdy tekst jest czytany po francusku, z GTTS, będzie brzmieć tak, jakby francuski czyta tekst zamiast rodzimego mówcy angielskiego.
tekst = gtts.GTTS (tłumaczone_2, lang = „fr”)Następnie zapisujemy tekst mówiony w mp3. W takim przypadku wybrałem, żeby nazwać to tekst.MP3:
tekst.Zapisz ("tekst.mp3 ")Aby odtwarzać zapisane mp3, używamy Playsound ():
Zabra się („tekst.mp3 ")Pełny kod wyglądałby mniej więcej tak:
Importuj PYPDF2