O que vamos fazer aqui é fazer Python nos ler um PDF e traduzi -lo para nós. Primeiro, tentaremos criar um audiolivro inglês. Como tal, a primeira coisa que devemos fazer logicamente é extrair o texto do PDF. Para isso, usamos o módulo conhecido como Tika. Como sempre, para instalar Tika, um evoca Pip.
pip install tika
Tika é um módulo usado para detecção e extração de conteúdo. Depois de instalado, precisamos importar o objeto de analisador.
do analisador de importação tikaEm seguida, precisamos do método From_File (), que leva dois argumentos ao máximo. O primeiro argumento é o nome do arquivo PDF, e o segundo argumento é chamado adicional, que solicita o tipo de dados procurados. Deixar o campo adicional em branco solicitará tudo, de metadados ao conteúdo. Aqui, a meta retorna os metadados, o texto retorna o texto e o param xmlContent retorna o conteúdo XML.
crua = analisador.From_File ('Comentário.pdf ')Depois de termos os dados, precisamos extrair apenas o texto. Fazemos isso selecionando o "conteúdo" do RAW.
RAW_TEXT = RAW ['Content']O problema com o tika é que ela pode travar quando há muitas páginas. Então, vamos usar outro método também. Se o PDF for curto e doce, por todos os meios, use Tika. No entanto, você também pode usar o módulo PYPDF2.
pip install pypdf2Então, vamos começar:
Importar PypDF2Primeiro, abrimos o documento de interesse e lemos dele usando o método open () e a classe pdffileReader (). O método open () leva dois argumentos aqui: o primeiro é o nome do arquivo a ser lido, e o segundo é o modo de ler em. Aqui, “RB” significa ler binário. A classe PdffFileReader assume o pdf_document.
pdf_document = aberto ("Bem -vindo.pdf "," rb ")Em seguida, coletamos o número total de páginas usando o método Numpages. Faremos isso, já que criaremos um loop for que vai da página 1 para a última página, lendo cada página à medida que avança.
número_of_pages = pdf_document_read.numpagesEm seguida, começamos um loop para contar cada página.
para página em intervalo (1, número_of_pages):Em seguida, precisamos obter uma página usando o método getpage () e extrair o texto de dentro usando o método extraCTTEXT ().
One_Page = pdf_document_read.getPage (página)Primeiro inicializamos o módulo usando init ().
motor = pyttsx3.iniciar()Podemos definir as vozes, volume e classificar usando o motor.getProperty (). O setProperty () leva dois valores: a propriedade para mudar e seu valor. Nesse caso, eu definei as vozes para uma mulher (vozes [1].id), com volume máximo (1) e uma taxa de 128.
Voices = motor.getProperty ('Voices')Então usamos o motor.diga () para sintetizar a fala e obter o texto lido em voz alta.
motor.Diga (RAW_TEXT)O código completo seria algo assim:
Importar PypDF2No exemplo anterior, tivemos um texto em inglês falado em inglês. Agora, tentaremos traduzir o texto em outro idioma e obter o texto traduzido lido em voz alta. Nos casos ao traduzir um texto, a primeira parte do código é semelhante à seção anterior. O código até e incluindo o código PYPDF2 é necessário. No entanto, uma vez que o loop for iniciado, mudaremos um pouco o código. Aqui, precisamos adicionar a tradução e fazê -lo falar com o sotaque do idioma de destino.
Primeiro, instale GoogleTrans.
PIP Instale GoogleTransAgora, vamos começar a traduzir o texto.
do BOOGLETRANS IMPORT TRADURADOREm seguida, chamamos o tradutor ().
tradutor = tradutor ()Usamos o método traduzi (). Aqui, inserimos o primeiro argumento - o texto a ser traduzido - e o idioma de destino - o idioma no qual o texto deve ser convertido. Nesse caso, escolhi traduzir o texto para o francês (ou então 'fr').
traduzido = tradutor.traduzir (raw_text, dest = 'fr')Depois de traduzirmos o texto, precisamos extrair a parte do texto.
traduzido_2 = traduzido.textoEste último traduzirá e armazenará o texto traduzido para a variável traduzida_2. Agora, precisamos de um módulo que traduzirá e armazenará o texto falado em um mp3. Para isso, precisamos de GTTS e PlaySound:
pip install gttsOs GTTs.A classe gtts () tem alguns argumentos. No entanto, aqui vamos usar apenas dois argumentos. O primeiro argumento é o texto a ser lido, e o segundo é o idioma para ler o texto em. Nesse caso, escolhi ler o texto em francês (FR). A razão pela qual estamos usando o GTTS aqui em vez de pyttsx3 é por causa dos grandes sotaques que acompanham o parágrafo de leitura. Então, quando um texto é lido em francês, com GTTS, parecerá que um francês está lendo o texto em vez de um falante nativo de inglês.
texto = gtts.gtts (traduzido_2, lang = "fr")Em seguida, salvamos o texto falado em um mp3. Nesse caso, escolhi nomear texto.mp3:
texto.salvar ("texto.mp3 ")Para reproduzir o MP3 salvo, usamos PlaySound ():
PlaySound ("texto.mp3 ")O código completo seria algo assim:
Importar PypDF2