Ir al contenido principal

Texto a Voz + SRT

Text to Speech + Subrip Subtitle

Algunas veces me gusta leer y al mismo tiempo escuchar lo que leo. Esto me permite llevar un ritmo constante y lograr mayor concentración en la lectura.

El otro día quise subir un texto a Youtube, sintetizado con una voz Loquendo y con subtítulos, de modo que desde Youtube el lector pudiera escuchar y al mismo tiempo leer la transcripción. Procedí a sintetizar el texto a voz utilizando SodelsCot Estándar y la voz de Loquendo Ximena. SodelsCot convierte a un archivo de audio el texto copiado al portapapeles y Youtube tiene una función que permite cargar la transcripción en formato de texto y convertirla a subtítulos en el video. Pero tanto SodelsCot como Youtube han presentado algunos inconvenientes:

  • Si el texto es muy grande, SodelsCot falla en el proceso de conversión de Texto a Voz.
  • Durante la conversión, prácticamente no se puede usar el portapapeles para otra cosa, ya que interfiere con el archivo de audio generado o crea archivos de más.
  • SodelsCot solamente permite convertir un texto a audio a la vez.
  • Si el texto es relativamente grande, Youtube demora muchas horas en procesar la transcripción.
  • Youtube falla frecuentemente, mostrando un mensaje de error en el procesamiento de la transcripción.
Con tanta "fricción cognitiva", pensé que sería mejor escribir un pequeño programa de uso personal que permita realizar lo siguiente:
  1. Recibir como entrada un archivo de texto plano.
  2. Generar 2 archivos, uno de audio (mp3 o wav) y un SRT con los subtítulos correspondientes.

SubTTS

SubTTS es el nombre con el que bauticé al programa. Por ahora es una aplicación de consola parametrizable por medio de un archivo de configuración.

SubTTS fue escrito en C# sobre .Net Framework 4.


Utilizando SubTTS

  1. Lo primero es descargar el programa aquí. Para descomprimir el RAR utiliza WinRAR y la clave: cristiandlr.blogspot.com
  2. Una vez descomprimido, ejecutar TTSub.exe para comprobar el listado de voces instaladas. Presionar Ctrl + C para salir del programa.
  3. Editar el archivo de configuración TTSub.exe.config y establecer los siguientes parámetros:
    • PathToText. Ruta completa al archivo de texto que se procesará.
    • WordsPerSub. Número de palabras por cada subtítulo.
    • VoiceName. Una de las voces instaladas (listadas en el paso 2).
    • VoiceRate. Velocidad de lectura, los valores oscilan entre -10 y 10.
    • OutputFormat. WAV o MP3.
  4. Una vez guardada la configuración, ejecutar nuevamente TTSub.exe, pero esta vez presionamos Enter para continuar luego de ver las voces instaladas.
  5. La ventana se cerrará sola al finalizar el trabajo y los archivos resultantes (wav y srt) quedan en la misma carpeta donde está el archivo de texto.

Qué hacer con los archivos?

Por ahora SubTTS es una herramienta que cumple una tarea muy simple. Por sí mismos los archivos de audio (wav o mp3) y srt (subrip subtitle) no pueden utilizarse juntos en un reproductor de audio convencional. El archivo de audio debe ser codificado en un formato de video (mp4, wmv, etc.) para que el reproductor cargue y despliegue los subtítulos. Se puede utilizar una herramienta como Windows Movie Maker para crear un video.

Licenciamiento

El programa es de uso libre para cualquier fin.

2016 11 25 Actualización: He publicado el código fuente en github.

Comentarios

  1. Oye ¿podrias por favor compartir el codigo del programa?

    ResponderEliminar
    Respuestas
    1. Puedes encontrar el código fuente aquí:
      https://github.com/cristiandlr/SubTTS

      Eliminar
    2. Hola Cristian, puedes resubir el archivo .exe , porque ya lo borraron. Gracias

      Eliminar
    3. https://drive.google.com/file/d/0BzzoVgrvxWkwQXhfQXFndHcwVkE/view?usp=sharing

      Eliminar
    4. Gracias por el programa, pero me manda error al iniciarlo.

      Tengo una consulta: Como abro archivos .sln o .py de este programa https://github.com/openscriptures/BibleOrgSys ?

      Me interesa convertir un arhivo, pero no se como usarlo.
      Gracias y Dios te bendiga

      Eliminar
  2. Hola. Dime conoces algún programa que convierta los subtitulos SRT en audio. Sucede que el archivo SRT ya está sincronizado y me gustaría un audio en ingles y portugués que vaya leyendo los subtítulos.
    Existe tal cosa?

    ResponderEliminar
  3. una pregunta porque estuve utilizandolo, pero sabes me esta generando la voz de las horas y minutos, deberias hacer una actualizacion para que no lea esos horas, minutos y segundos, utilice con el formato SRT. me puedes escribir a oscarga20@gmail.com. Para saber cuando lo actualices. gracias. Deberias hacer uno mas grafico y mas amigable para la vista. Eres fenomenal amigo, yo pagaria por esa aplicacion. Me gusta ver muchos videos en ingles y traducirlo en español. Y me gustaria ver una mejora en este programa es el unico que existe en tu medio.

    ResponderEliminar
  4. The 5 Best Casino Bonuses in Canada - Oklahoma Casino Guru
    The 5 Best Casino Bonuses in Canada · 마틴게일 전략 1. 해외 라이브 스코어 Betway Casino · 2. 벳 365 가상 축구 주소 Betway Casino · 3. 한게임바카라 Caesars Casino · 4. LeoVegas Casino 1xbetonline · 5. BetMGM Casino.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Validador de DPI / CUI en C#

Este método valida un número de CUI / DPI de Guatemala. Se basa en la implementación Java del siguiente blog http://xcodegt.blogspot.com/2016/09/funcion-para-validar-cui-guatemala-con.html Se actualizó el dato del número de municipios por departamento, ya que ha variado desde 2016 (fecha del post original) a la fecha. 1: private static bool ValidarDPI(string dpi) 2: { 3: var regex = "^[0-9]{4}-[0-9]{5}-[0-9]{4}$"; 4: var test = Regex.IsMatch(dpi, regex); 5: 6: if (!test) 7: { 8: return false; 9: } 10: 11: var cui = dpi.Replace("-", ""); 12: 13: var numero = cui.Substring(0, 8); 14: 15: 16: var depto = Convert.ToInt32(cui.Substring(9, 2)); 17: var muni = Convert.ToInt32(cui.Substring(11, 2)); 18: 19: var validador = Convert.ToInt32(cui.Substring(8, 1)); 20: 21: // Conteo de municipios por departamento 22: int[] munisPorDepto = 23: { 24: ...

Videojuegos con Irrlicht 3D y Raknet

Hace cerca de dos años presenté un proyecto en la universidad sobre desarrollo de videojuegos. Básicamente es un documento que consta de dos partes: - Una introducción teórica a los videojuegos 3D (partiendo desde temas básicos de Álgebra lineal) y - El desarrollo de un pequeño videojuego de primera persona (con fines únicamente demostrativos) Parte del contenido del documento está basado en los tutoriales oficiales de Irrlicht Engine que están publicados en http://irrlicht.sourceforge.net/tutorials.html El documento se compone de cuatro capítulos que explican de forma general y secuencial los fundamentos utilizados para crear un videojuego 3D. Se asume que el lector tiene conocimientos de álgebra y programación, específicamente del lenguaje C++. Los primeros tres capítulos aportan la base teórica y el cuarto capítulo describe el juego irrArena (La aplicación de demostración). Contenido de los capítulos El capítulo I presenta una introducción a las Matemáticas de los ...