""

martes, 21 de julio de 2026

Convertir txt a mp3 en Python

 edge-tts es una excelente librería de Python que te permite usar las voces en línea de Microsoft Edge para convertir texto en voz. Lo mejor es que no requiere tener el navegador instalado, no usa Windows exclusivamente ni necesita claves de API. Es rápida, gratuita y muy realista.

Instalación
Para instalar la librería, abre tu terminal o consola y ejecuta el siguiente comando:
>>pip install edge-tts

¿Cómo usarlo en tu código?
Dado que la librería funciona en segundo plano comunicándose con los servidores de Microsoft, utiliza programación asíncrona (una forma de hacer que tu programa espere respuestas sin detenerse por completo). Aquí tienes un ejemplo básico de cómo crear un archivo de audio MP3: [1, 2]
>>import asyncio
>>import edge_tts

>># Texto que quieres convertir
>>TEXTO = "Hola, bienvenido a la guía de edge-tts en Python."
>>VOZ_ESPANOL = "es-ES-AlvaroNeural" # Voz de ejemplo (español de España)

>>async def main():
>>    # Inicializa el motor con el texto y la voz
>>    communicate = edge_tts.Communicate(TEXTO, VOZ_ESPANOL)
    
>>    # Guarda el resultado en un archivo de audio
>>    await communicate.save("salida.mp3")

>># Ejecuta el código
>>asyncio.run(main())


Voces y otros comandos
Para que el audio suene más natural, puedes elegir entre diferentes acentos (como español de Colombia, México o España). [1]
  • Puedes listar todas las voces disponibles usando este comando en tu terminal:
>>edge-tts --list-voices


Si quieres que el programa lea el texto en voz alta inmediatamente en lugar de guardarlo en un archivo, puedes usar:

>>edge-playback --text "Hola, esto se lee en voz alta"


Vamos a realizar el ejemplo en Google Colab:

>># 1. instalamos la libreria
>>!pip install edge-tts

Collecting edge-tts
  Downloading edge_tts-7.2.8-py3-none-any.whl.metadata (5.5 kB)
Requirement already satisfied: aiohttp<4.0.0,>=3.8.0 in /usr/local/lib/python3.12/dist-packages (from edge-tts) (3.14.1)
Requirement already satisfied: certifi>=2023.11.17 in /usr/local/lib/python3.12/dist-packages (from edge-tts) (2026.6.17)
Requirement already satisfied: tabulate<1.0.0,>=0.4.4 in /usr/local/lib/python3.12/dist-packages (from edge-tts) (0.9.0)
Requirement already satisfied: typing-extensions<5.0.0,>=4.1.0 in /usr/local/lib/python3.12/dist-packages (from edge-tts) (4.16.0)
Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp<4.0.0,>=3.8.0->edge-tts) (2.7.1)
Requirement already satisfied: aiosignal>=1.4.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp<4.0.0,>=3.8.0->edge-tts) (1.4.0)
Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp<4.0.0,>=3.8.0->edge-tts) (26.1.0)
Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.12/dist-packages (from aiohttp<4.0.0,>=3.8.0->edge-tts) (1.8.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.12/dist-packages (from aiohttp<4.0.0,>=3.8.0->edge-tts) (6.7.1)
Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp<4.0.0,>=3.8.0->edge-tts) (0.5.2)
Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp<4.0.0,>=3.8.0->edge-tts) (1.24.2)
Requirement already satisfied: idna>=2.0 in /usr/local/lib/python3.12/dist-packages (from yarl<2.0,>=1.17.0->aiohttp<4.0.0,>=3.8.0->edge-tts) (3.18)
Downloading edge_tts-7.2.8-py3-none-any.whl (31 kB)
Installing collected packages: edge-tts
Successfully installed edge-tts-7.2.8
>>import asyncio
>>from edge_tts import Communicate

>># Configuración
>>TEXTO = input('Ingrese por favor el texto que desea convertir a audio aqui: ')
>>seleccion_voz = input('Ingrese por favor la voz que desea utilizar Hombre España 1; Hombre Mexico 2; Mujer 3;: ')
>>opcion_1 = 'es-ES-AlvaroNeural' # voz de hombre (España)
>>opcion_2 = 'es-MX-JorgeNeural' # voz de hombre (Mexico)
>>opcion_3 = 'es-ES-ElviraNeural' # voz de mujer (España)

>>if seleccion_voz == '1':
>>  VOZ = opcion_1
>>  print('Voz seleccionada: Hombre España')
>>elif seleccion_voz == '2':
>>  VOZ = opcion_2
>>  print('Voz seleccionada: Hombre Mexico')
>>elif seleccion_voz == '3':
>>  VOZ = opcion_3
>>  print('Voz seleccionada: Mujer España')
>>else:
>>  print('Opcion no valida')

>># Otras opciones: "es-ES-ElviraNeural" (Mujer), "es-MX-JorgeNeural" (México)
>>VELOCIDAD = "+10%" # Puedes poner "-20%", "+50%", etc.

>>async def generar_audio():
>>    communicate = Communicate(TEXTO, VOZ, rate=VELOCIDAD)
>>    await communicate.save("podcast_intro.mp3")

>>await generar_audio()

>># 2. Escuchar el resultado
>>from IPython.display import Audio
>>Audio("podcast_intro.mp3")

Puedes verificar el audio aquí:


No hay comentarios.:

Publicar un comentario

Entradas recientes

Convertir txt a mp3 en Python

  edge-tts es una excelente librería de Python que te permite usar las voces en línea de Microsoft Edge para convertir texto en voz . Lo me...

Entradas Populares