La posibilidad de crear archivos de texto puedan ser leídos en voz alta por una voz artificial, plantea la duda de cual es la relación entre el tamaño de un texto y el tamaño de un archivo de audio generado por una voz artificial.
Una solución gratuita para textos pequeños la ofrece la API de Google para Text-to-Speech.
Se puede utilizar con python con el proyecto gTTS.
Pero ahora que existe una forma de convertir archivos de texto en archivo de audio, sería interesante conocer la relación entre el tamaño del texto y la características del archivo MP3 generado. Como estamos en el siglo XXI y la era de la IA, aquí dejo lo que le pregunté a chatGPT y lo que contestó:
PREGUNTA:
Con estos datos muestra las formulas que permiten calcular tamaño de archivo de audio y duración de audio a partir del tamaño del texto
muestra 1: onda.txt
40.5 kb texto
15.4 mb audio
duración: 1h 07 minutos
muestra 2: pajaro.txt
19.9 kb texto
6.1 mb audio
duración: 26 minutos
muestra 3:ciclope.txt
60.2 kb texto
18.3 mb audio
duración : 1h 20 minutos
RESPUESTA:
Para calcular el tamaño del archivo de audio y la duración del audio a partir del tamaño del texto, primero necesitamos establecer relaciones entre los datos proporcionados. Vamos a utilizar las tres muestras proporcionadas para crear proporciones entre texto, audio y duración:
Muestra 1:
Texto: 40.5 KB
Audio: 15.4 MB
Duración: 1 h 7 min = 67 min
Muestra 2:
Texto: 19.9 KB
Audio: 6.1 MB
Duración: 26 min
Muestra 3:
Texto: 60.2 KB
Audio: 18.3 MB
Duración: 1 h 20 min = 80 min
Proporción entre tamaño del texto y tamaño del archivo de audio:
Para cada muestra, calcularemos la proporción entre el tamaño del texto y el tamaño del archivo de audio.
Muestra 1: (15.4 MB * 1024 KB/MB) / 40.5 KB ≈ 391.11
Muestra 2: (6.1 MB * 1024 KB/MB) / 19.9 KB ≈ 314.57
Muestra 3: (18.3 MB * 1024 KB/MB) / 60.2 KB ≈ 311.96
La proporción no es constante entre las muestras, pero podemos tomar un promedio de las tres proporciones para obtener una relación aproximada:
Promedio de proporciones ≈ (391.11 + 314.57 + 311.96) / 3 ≈ 339.21
Entonces, podemos usar la siguiente fórmula aproximada para calcular el tamaño del archivo de audio a partir del tamaño del texto:
Tamaño del archivo de audio ≈ (Tamaño del texto) * 339.21
Proporción entre tamaño del texto y duración del audio:
Para cada muestra, calcularemos la proporción entre el tamaño del texto y la duración del audio.
Muestra 1: 67 min / 40.5 KB ≈ 1.65 min/KB
Muestra 2: 26 min / 19.9 KB ≈ 1.31 min/KB
Muestra 3: 80 min / 60.2 KB ≈ 1.33 min/KB
De nuevo, la proporción no es constante, pero podemos tomar un promedio de las tres proporciones para obtener una relación aproximada:
Promedio de proporciones ≈ (1.65 + 1.31 + 1.33) / 3 ≈ 1.43 min/KB
Entonces, podemos usar la siguiente fórmula aproximada para calcular la duración del audio a partir del tamaño del texto:
Duración del audio ≈ (Tamaño del texto) * 1.43 min/KB
Recuerda que estas fórmulas son aproximadas y pueden no ser precisas para todos los casos, ya que las proporciones pueden variar dependiendo de la naturaleza de los datos y otros factores como la tasa de bits, frecuencia de muestreo y codificación utilizada.
A esto añado que la sintesis de voz de Google habla muy despacio y no he sido capaz de que hable más rápido. Una posible solución seria acelerar el tempo el archivo con sox.
sox <filein.mp3> <fileout.mp3> tempo 1.33
parece dar buen resultado, pero eso va con gustos y es sólo una idea.
No hay comentarios:
Publicar un comentario