|
import gradio as gr |
|
from pydub import AudioSegment |
|
import PyPDF2 |
|
from gtts import gTTS |
|
import tempfile |
|
import os |
|
|
|
|
|
def convert_pdf_to_audio(pdf_file_path): |
|
try: |
|
reader = PyPDF2.PdfReader(pdf_file_path) |
|
|
|
|
|
text = "" |
|
for page in reader.pages: |
|
text += page.extract_text() |
|
|
|
if not text: |
|
return "No se pudo extraer texto del PDF." |
|
|
|
|
|
tts = gTTS(text=text, lang='es') |
|
audio_file_path = pdf_file_path.replace(".pdf", ".wav") |
|
tts.save(audio_file_path) |
|
|
|
|
|
|
|
|
|
return audio_file_path |
|
|
|
except Exception as e: |
|
return str(e) |
|
|
|
|
|
|
|
|
|
desc_bibliotecas = """ |
|
Este conversor utiliza las siguientes bibliotecas: |
|
- **PyPDF2**: para leer archivos PDF y extraer texto. |
|
- **gTTS (Google Text-to-Speech)**: para convertir el texto extraído en voz. |
|
- **Gradio**: para crear esta interfaz de usuario interactiva. |
|
""" |
|
|
|
|
|
desc_gtts = """ |
|
**Arquitectura de Aprendizaje Automático de Google Text-to-Speech (utilizada por gTTS):** |
|
- El núcleo de Google Text-to-Speech es su capacidad para convertir texto en voz que suena extremadamente natural y humana. Esto se logra a través de modelos de aprendizaje automático de vanguardia, que incluyen redes neuronales profundas y técnicas de procesamiento del lenguaje natural. |
|
- Uno de los avances más significativos en la tecnología TTS de Google es el uso de modelos de red neuronal WaveNet, desarrollados por DeepMind. Estos modelos representan un gran salto respecto a los anteriores sistemas TTS basados en concatenación o parametrización. |
|
- WaveNet utiliza una red neuronal convolucional profunda para generar audio. A diferencia de los sistemas TTS tradicionales que concatenan pedazos de audio grabados, WaveNet genera el habla directamente a partir del texto en una forma más fluida y realista, capturando las sutilezas del habla humana, como el tono y la cadencia. |
|
- Este enfoque permite a WaveNet modelar la variabilidad y riqueza de la voz humana, generando resultados que pueden ser indistinguibles de la voz humana real. Además, puede adaptarse para producir diferentes estilos de habla y acentos, lo que lo hace extremadamente versátil. |
|
- Google Text-to-Speech, accedido a través de gTTS, aplica constantemente actualizaciones y mejoras en sus modelos, incorporando los últimos avances en inteligencia artificial y aprendizaje automático, lo que garantiza una calidad de voz y una precisión en la pronunciación cada vez mejores. |
|
|
|
""" |
|
|
|
|
|
|
|
|
|
|
|
with gr.Blocks() as iface: |
|
gr.Markdown("## Conversor de PDF a Audio") |
|
gr.Markdown("Selecciona un archivo PDF y conviértelo a audio en formato WAV.") |
|
with gr.Row(): |
|
file_input = gr.File(type="filepath", label="Selecciona un archivo PDF") |
|
audio_output = gr.Audio(type="filepath", label="Audio generado") |
|
convert_button = gr.Button("Convertir") |
|
gr.Markdown(desc_bibliotecas) |
|
gr.Markdown(desc_gtts) |
|
|
|
file_input.change(fn=convert_pdf_to_audio, inputs=file_input, outputs=audio_output) |
|
|
|
|
|
iface.launch(share=True) |
|
|
|
|