1. Resumen de los modelos de voz
1.1. Introducción a los Modelos TTS y STT de OpenAI
Modelo de Texto a Voz (TTS)
El modelo TTS de OpenAI puede convertir datos de texto en salida de voz. Este proceso implica análisis de texto, aplicación de algoritmos de síntesis de voz y ajustes de calidad de sonido. Permite que la computadora lea cualquier texto escrito, haciendo que el contenido sea más comprensible y accesible. TTS es una tecnología importante para personas con discapacidad visual, conductores o cualquier persona que prefiera recibir información a través de la escucha.
Modelo de Voz a Texto (STT)
Correspondiendo al TTS, el modelo STT puede convertir información de voz en texto escrito. Al procesar la entrada de audio original, el sistema STT primero realiza la detección de voz, seguida de la extracción de características. Luego mapea la señal de audio al vocabulario usando modelos acústicos y de lenguaje, generando finalmente la salida de texto. La tecnología STT se utiliza ampliamente en reconocimiento de voz, transcripción de reuniones y generación de subtítulos en tiempo real.
1.2. Escenarios de Aplicación
- Lectura en voz alta de blogs
- Generación de voz multilingüe
3. API de Texto a Voz
3.1. Inicio rápido
En esta sección, demostraremos cómo convertir rápidamente texto en voz utilizando el comando curl y un cliente Python. Ya sea que seas un desarrollador o un usuario no técnico, puedes generar archivos de voz fácilmente simplemente enviando una solicitud a la API.
Envío de solicitudes usando Curl
Para generar voz utilizando la herramienta de línea de comandos curl, sigue estos pasos:
- Asegúrate de que curl esté instalado en tu sistema y de que tengas una clave de API válida de OpenAI.
- Usa el siguiente comando curl para convertir texto en voz:
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "¡Hoy es un gran día para construir productos que a la gente le encante!",
"voice": "alloy"
}' \
--output discurso.mp3
En el comando anterior, $OPENAI_API_KEY
representa tu clave de API, el campo input
es el texto que deseas convertir, el campo model
especifica el modelo de voz a utilizar y el parámetro voice
selecciona la voz. Aquí elegimos la voz sintética de metal alloy
. La opción final --output
especifica el nombre y el formato del archivo de salida.
Uso del Cliente Python
Si prefieres utilizar el lenguaje de programación Python, puedes usar el siguiente ejemplo de código:
from openai import OpenAI
cliente = OpenAI()
respuesta = cliente.audio.speech.create(
model="tts-1",
voice="alloy",
input="¡Hoy es un gran día para construir productos que a la gente le encante!"
)
respuesta.stream_to_file("salida.mp3")
En este fragmento de código, primero importamos la biblioteca openai
y creamos una instancia del cliente de OpenAI. Luego, utilizamos el método audio.speech.create
para enviar una solicitud, especificando el modelo, la voz y el texto a convertir. Finalmente, usamos el método stream_to_file
para guardar el flujo de voz generado en un archivo.
3.2. Elección de la Calidad de Audio y la Voz
Seleccionar la calidad de audio y la voz adecuadas para tu proyecto es un paso crucial para garantizar la mejor experiencia de usuario. Nuestra API ofrece dos opciones de modelos de calidad de audio: tts-1
y tts-1-hd
.
-
tts-1
: Proporciona menor latencia, adecuado para aplicaciones en tiempo real, pero con calidad de audio relativamente menor. -
tts-1-hd
: Ofrece salida de audio de mayor calidad, adecuada para necesidades de generación de voz de alta calidad no en tiempo real.
Además, la API de TTS de OpenAI ofrece varias opciones de voz:
- Alloy
- Echo
- Fable
- Onyx
- Nova
- Shimmer
Dependiendo de los requisitos del proyecto y del público objetivo, puedes probar diferentes muestras de voz para elegir la voz más adecuada. Considera factores como el estilo de habla, la velocidad de habla y la entonación para encontrar una voz que transmita emociones y profesionalismo apropiados.
3.3. Formatos de Salida y Idiomas Soportados
La API de TTS de OpenAI se configura de forma predeterminada para el formato de salida MP3, pero también admite varios otros formatos de audio:
- Opus: Adecuado para transmisión e internet y comunicación, con baja latencia.
- AAC: Utilizado para compresión de audio digital, preferido por plataformas como YouTube, Android e iOS.
- FLAC: Formato de compresión de audio sin pérdidas utilizado por entusiastas del audio para archivar.
En cuanto al soporte de idiomas, la API sigue principalmente el modelo Whisper, proporcionando una amplia gama de opciones de idiomas para admitir muchos idiomas nacionales.
3.4. Funcionalidad de transmisión de audio en tiempo real
Para satisfacer las necesidades de las aplicaciones en tiempo real, nuestra API proporciona soporte para la transmisión de audio en tiempo real. A continuación se muestra un ejemplo en Python para implementar la transmisión de audio en tiempo real:
from openai import OpenAI
cliente = OpenAI()
respuesta = cliente.audio.speech.create(
model="tts-1",
voice="alloy",
input="¡Hola mundo! Esto es una prueba de transmisión.",
)
respuesta.stream_to_file("output.mp3")
4. API de conversión de voz a texto
4.1. Inicio rápido
En esta sección, principalmente presentaremos la funcionalidad de la API de OpenAI para la conversión de voz a texto.
Primero, necesitas tener una clave de API válida de OpenAI y preparar un archivo de audio.
Puedes usar el comando curl
para enviar una solicitud POST que contenga el archivo de audio. Reemplaza OPENAI_API_KEY
con tu clave de API y establece la ruta de archivo correcta.
curl --request POST \
--url https://api.openai.com/v1/audio/transcriptions \
--header 'Authorization: Bearer OPENAI_API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form file=@/ruta/hacia/tu/archivo_de_audio.mp3 \
--form model=whisper-1
Al ejecutar el comando anterior, recibirás una respuesta formateada en JSON que contiene la información del texto transcrito.
Por ejemplo:
{
"texto": "Imagina la idea más salvaje que hayas tenido, y tienes curiosidad sobre cómo podría escalar a algo que sea 100, 1,000 veces más grande..."
}
4.2. Formatos y tamaños de archivo admitidos
Esta API admite varios formatos comunes de archivos de audio para cumplir con diferentes necesidades en diferentes escenarios. Los formatos de archivo admitidos incluyen, entre otros, mp3
, mp4
, mpeg
, mpga
, m4a
, wav
, webm
, etc. Esto permite a los usuarios procesar fácilmente archivos de audio de diversas fuentes.
En cuanto al tamaño del archivo, la API actual tiene un límite de no más de 25MB. Esto significa que si tu archivo de audio es más grande que 25MB, deberás dividirlo en varios segmentos más pequeños que 25MB, o utilizar un formato de compresión más eficiente. Por ejemplo, los formatos mp3
y opus
suelen ofrecer compresión eficiente, reduciendo el tamaño del archivo sin sacrificar demasiada calidad de audio.
Si te encuentras con un archivo mayor a 25MB, puedes considerar utilizar la biblioteca PyDub
en Python para segmentar tu audio:
from pydub import AudioSegment
archivo_de_audio = AudioSegment.from_file("tu_archivo_de_audio_grande.mp3")
intervalo = 10 * 60 * 1000 # 10 minutos
segmentos = make_chunks(archivo_de_audio, intervalo)
for i, segmento in enumerate(segmentos):
nombre_segmento = f"audio_segmento{i}.mp3"
segmento.export(nombre_segmento, format="mp3")
En el código anterior, la función make_chunks
dividirá un archivo de audio grande en múltiples segmentos de audio con un intervalo de tiempo de 10 minutos. Estos segmentos están todos dentro del límite de tamaño de archivo requerido por la API y pueden ser subidos por separado a la API de OpenAI para su transcripción.
Ten en cuenta que aunque PyDub
nos proporciona una manera fácil de manejar archivos de audio, se recomienda prestar especial atención a la seguridad y estabilidad de cualquier software de terceros al usarlo. OpenAI no proporciona garantías para software de terceros.