import sys import os import PyPDF2 from gtts import gTTS def convertir_a_audio(pdf_input): # Creamos el nombre del mp3 a partir del nombre del pdf base_name = os.path.splitext(pdf_input)[0] audio_output = f"{base_name}.mp3" print(f"--- Procesando: {pdf_input} ---") try: texto_completo = "" with open(pdf_input, 'rb') as f: lector = PyPDF2.PdfReader(f) # Recorremos cada página para sacar el texto for pagina in lector.pages: txt = pagina.extract_text() if txt: # Limpiamos saltos de línea para que gTTS no se líe texto_completo += txt.replace('\n', ' ') + " " # Comprobamos que haya algo que leer longitud = len(texto_completo.strip()) if longitud < 10: print("Error: No se ha podido extraer texto suficiente del PDF.") return print(f"Texto extraído correctamente ({longitud} caracteres).") print("Conectando con Google para generar el audio (paciencia)...") # Generamos el audio tts = gTTS(text=texto_completo, lang='es') tts.save(audio_output) print(f"¡Éxito! Ya tienes tu audio en: {audio_output}") except Exception as e: print(f"Vaya, algo ha fallado: {e}") if __name__ == "__main__": if len(sys.argv) < 2: print("Uso: python3 pdf_a_audio.py ") else: fichero = sys.argv[1] if os.path.exists(fichero): convertir_a_audio(fichero) else: print(f"Error: El archivo '{fichero}' no existe en esa ruta.")