Transcripción

Aprende a convertir audio hablado en texto con ElevenLabs.

Descripción general

La API de Voz a Texto (STT) de ElevenLabs convierte audio hablado en texto con una precisión puntera. Nuestro modelo Scribe v2 se adapta a señales textuales en más de 90 idiomas y a múltiples estilos de voz. Para probar una demostración en directo, visita nuestra página de muestra de Voz a Texto.

Las empresas que necesiten cumplir con HIPAA deben ponerse en contacto con el equipo comercial de ElevenLabs para firmar un acuerdo de asociado comercial (BAA). Asegúrate de completar este paso antes de continuar con cualquier integración o implementación relacionada con HIPAA.

Modelos

Ejemplo de respuesta de la API

El siguiente ejemplo muestra la salida de la API de Voz a Texto al usar el modelo Scribe v2 con un archivo de audio de muestra.

{
"language_code": "en",
"language_probability": 1,
"text": "With a soft and whispery American accent, I'm the ideal choice for creating ASMR content, meditative guides, or adding an intimate feel to your narrative projects.",
"words": [
{
"text": "With",
"start": 0.119,
"end": 0.259,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 0.239,
"end": 0.299,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "a",
"start": 0.279,
"end": 0.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 0.339,
"end": 0.499,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "soft",
"start": 0.479,
"end": 1.039,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.019,
"end": 1.2,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "and",
"start": 1.18,
"end": 1.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.339,
"end": 1.44,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "whispery",
"start": 1.419,
"end": 1.979,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.959,
"end": 2.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "American",
"start": 2.159,
"end": 2.719,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 2.699,
"end": 2.779,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "accent,",
"start": 2.759,
"end": 3.389,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.119,
"end": 4.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "I'm",
"start": 4.159,
"end": 4.459,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.44,
"end": 4.52,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "the",
"start": 4.5,
"end": 4.599,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.579,
"end": 4.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "ideal",
"start": 4.679,
"end": 5.099,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 5.079,
"end": 5.219,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "choice",
"start": 5.199,
"end": 5.719,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 5.699,
"end": 6.099,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "for",
"start": 6.099,
"end": 6.199,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 6.179,
"end": 6.279,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "creating",
"start": 6.259,
"end": 6.799,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 6.779,
"end": 6.979,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "ASMR",
"start": 6.959,
"end": 7.739,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 7.719,
"end": 7.859,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "content,",
"start": 7.839,
"end": 8.45,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 9,
"end": 9.06,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "meditative",
"start": 9.04,
"end": 9.64,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 9.619,
"end": 9.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "guides,",
"start": 9.679,
"end": 10.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 10.359,
"end": 10.409,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "or",
"start": 11.319,
"end": 11.439,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 11.42,
"end": 11.52,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "adding",
"start": 11.5,
"end": 11.879,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 11.859,
"end": 12,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "an",
"start": 11.979,
"end": 12.079,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 12.059,
"end": 12.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "intimate",
"start": 12.179,
"end": 12.579,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 12.559,
"end": 12.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "feel",
"start": 12.679,
"end": 13.159,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.139,
"end": 13.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "to",
"start": 13.159,
"end": 13.26,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.239,
"end": 13.3,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "your",
"start": 13.299,
"end": 13.399,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.379,
"end": 13.479,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "narrative",
"start": 13.479,
"end": 13.889,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.919,
"end": 13.939,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "projects.",
"start": 13.919,
"end": 14.779,
"type": "word",
"speaker_id": "speaker_0"
}
]
}

La salida se clasifica en tres tipos de categorías:

  • word: una palabra en el idioma del audio
  • spacing: el espacio entre palabras; no se aplica a idiomas que no usan espacios, como japonés, mandarín, tailandés, lao, birmano y cantonés
  • audio_event: sonidos no verbales, como risas o aplausos

Concurrencia y prioridad

La concurrencia es el número de solicitudes que pueden procesarse al mismo tiempo.

En Voz a Texto, los archivos de más de 8 minutos se transcriben internamente en paralelo para acelerar el procesamiento. El audio se divide en cuatro segmentos que se transcriben de forma simultánea.

Puedes calcular el límite de concurrencia con el siguiente cálculo:

Concurrency=min⁡(4,round_up(audio_ duration_secs480))Concurrency = \min(4, \text{round\_up}(\frac{\text{audio\_ duration\_secs}}{480}))

Por ejemplo, un archivo de audio de 15 minutos se transcribirá con una concurrencia de 2, mientras que uno de 120 minutos se transcribirá con una concurrencia de 4.

El cálculo anterior solo se aplica a Scribe v2 y Scribe v2 Medical. Para Scribe v2 Realtime, consulta el gráfico de límites de concurrencia.

Funciones avanzadas

El prompting de términos clave y la edición de transcripciones tienen un coste adicional. Consulta la página de precios de la API para obtener información detallada sobre los precios.

Prompting de términos clave

El prompting de términos clave está disponible con Scribe v2, Scribe v2 Medical (por lotes) y Scribe v2 Realtime.

Destaca palabras o frases para orientar el modelo a transcribirlas. Es útil para transcribir palabras o frases concretas poco habituales en el audio, como nombres de productos, nombres propios u otros términos específicos. Los términos clave son más potentes que las palabras clave sesgadas o los vocabularios personalizados que ofrecen otros modelos, porque se basan en el contexto para decidir si deben transcribir ese término o no. El procesamiento por lotes admite hasta 1000 términos clave (50 caracteres cada uno), mientras que el tiempo real admite hasta 50 términos clave (20 caracteres cada uno).

Para saber más sobre cómo usar el prompting de términos clave, consulta la documentación sobre prompting de términos clave.

Modo sin transcripción literal

El modo sin transcripción literal está disponible con Scribe v2, Scribe v2 Medical (por lotes) y Scribe v2 Realtime.

Cuando no_verbatim está activado, el modelo elimina muletillas, arranques en falso y disfluencias de la transcripción. Esto genera una salida más limpia, adecuada para subtítulos, resúmenes o cualquier caso de uso en el que la legibilidad sea más importante que recoger cada palabra pronunciada.

Detección de entidades

La detección de entidades está disponible con todos los modelos por lotes y Scribe v2 Realtime.

Los modelos por lotes y Scribe v2 Realtime pueden detectar varias categorías de entidades en la transcripción y proporcionar sus marcas de tiempo exactas. Esto resulta útil para destacar números de tarjeta de crédito, nombres, afecciones médicas o números de la Seguridad Social estadounidense.

Para consultar la lista completa de entidades compatibles, consulta la documentación sobre detección de entidades.

Edición de transcripciones

La edición de transcripciones es una función experimental disponible con todos los modelos por lotes y Scribe v2 Realtime.

Envía una instrucción en lenguaje natural con el parámetro transcript_edit y se aplicará a la transcripción terminada. El texto editado se devuelve en edited_transcript junto a la transcripción original, por lo que las marcas de tiempo y las etiquetas de hablantes se mantienen intactas. Esto resulta útil para normalizar cómo se escriben fechas, horas o unidades, aplicar un estilo diferente o reescribir la transcripción en una sola solicitud.

Para saber más, consulta la documentación sobre edición de transcripciones y la guía de edición de transcripciones en tiempo real.

Idiomas compatibles

Scribe v2 es compatible con más de 90 idiomas, incluidos:

Afrikáans (afr), amárico (amh), árabe (ara), armenio (hye), asamés (asm), asturiano (ast), azerbaiyano (aze), bielorruso (bel), bengalí (ben), bosnio (bos), búlgaro (bul), birmano (mya), cantonés (yue), catalán (cat), cebuano (ceb), chichewa (nya), croata (hrv), checo (ces), danés (dan), neerlandés (nld), inglés (eng), estonio (est), filipino (fil), finés (fin), francés (fra), fula (ful), gallego (glg), ganda (lug), georgiano (kat), alemán (deu), griego (ell), guyaratí (guj), hausa (hau), hebreo (heb), hindi (hin), húngaro (hun), islandés (isl), igbo (ibo), indonesio (ind), irlandés (gle), italiano (ita), japonés (jpn), javanés (jav), caboverdiano (kea), canarés (kan), kazajo (kaz), jemer (khm), coreano (kor), kurdo (kur), kirguís (kir), lao (lao), letón (lav), lingala (lin), lituano (lit), luo (luo), luxemburgués (ltz), macedonio (mkd), malayo (msa), malayalam (mal), maltés (mlt), chino mandarín (zho), maorí (mri), maratí (mar), mongol (mon), nepalí (nep), sesoto septentrional (nso), noruego (nor), occitano (oci), odia (ori), pastún (pus), persa (fas), polaco (pol), portugués (por), panyabí (pan), rumano (ron), ruso (rus), serbio (srp), shona (sna), sindhi (snd), cingalés (sin), eslovaco (slk), esloveno (slv), somalí (som), español (spa), suajili (swa), sueco (swe), tamil (tam), tayiko (tgk), telugu (tel), tailandés (tha), turco (tur), ucraniano (ukr), umbundu (umb), urdu (urd), uzbeko (uzb), vietnamita (vie), galés (cym), wólof (wol), xhosa (xho) y zulú (zul).

Desglose de la compatibilidad de idiomas

La tasa de error de palabras (WER) es una métrica clave para evaluar la precisión de los sistemas de transcripción. Mide cuántos errores hay en una transcripción en comparación con una transcripción de referencia. A continuación se muestra el desglose de la WER para cada idioma compatible con Scribe v2.

Bielorruso (bel), bosnio (bos), búlgaro (bul), catalán (cat), croata (hrv), checo (ces), danés (dan), neerlandés (nld), inglés (eng), estonio (est), finés (fin), francés (fra), gallego (glg), alemán (deu), griego (ell), húngaro (hun), islandés (isl), indonesio (ind), italiano (ita), japonés (jpn), canarés (kan), letón (lav), macedonio (mkd), malayo (msa), malabar (mal), noruego (nor), polaco (pol), portugués (por), rumano (ron), ruso (rus), eslovaco (slk), español (spa), sueco (swe), turco (tur), ucraniano (ukr) y vietnamita (vie).

Armenio (hye), azerbaiyano (aze), bengalí (ben), cantonés (yue), filipino (fil), georgiano (kat), guyaratí (guj), hindi (hin), kazajo (kaz), lituano (lit), maltés (mlt), mandarín (cmn), maratí (mar), nepalí (nep), odia (ori), persa (fas), serbio (srp), esloveno (slv), suajili (swa), tamil (tam) y télugu (tel)

Afrikáans (afr), árabe (ara), asamés (asm), asturiano (ast), birmano (mya), hausa (hau), hebreo (heb), javanés (jav), coreano (kor), kirguís (kir), luxemburgués (ltz), maorí (mri), occitano (oci), panyabí (pan), tayiko (tgk), tailandés (tha), uzbeko (uzb) y galés (cym).

Amhárico (amh), ganda (lug), igbo (ibo), irlandés (gle), jemer (khm), kurdo (kur), lao (lao), mongol (mon), sotho septentrional (nso), pastún (pus), shona (sna), sindhi (snd), cingalés (sin), somalí (som), urdu (urd), wólof (wol), xhosa (xho), yoruba (yor) y zulú (zul).

Preguntas frecuentes

Sí, la API permite subir archivos de audio y vídeo para transcribirlos.

Se admiten archivos de hasta 3 GB. Los límites de duración dependen del modo de transcripción:

  • Modo estándar (use_multi_channel=false): hasta 10 horas
  • Modo multicanal (use_multi_channel=true): la duración combinada de todos los canales debe ser inferior a 10 horas

La API admite los siguientes formatos de audio y vídeo:

  • audio/aac
  • audio/x-aac
  • audio/x-aiff
  • audio/ogg
  • audio/mpeg
  • audio/mp3
  • audio/mpeg3
  • audio/x-mpeg-3
  • audio/opus
  • audio/wav
  • audio/x-wav
  • audio/webm
  • audio/flac
  • audio/x-flac
  • audio/mp4
  • audio/aiff
  • audio/x-m4a

Los formatos de vídeo compatibles incluyen:

  • video/mp4
  • video/x-msvideo
  • video/x-matroska
  • video/quicktime
  • video/x-ms-wmv
  • video/x-flv
  • video/webm
  • video/mpeg
  • video/3gpp

ElevenLabs amplía constantemente el número de idiomas compatibles con nuestros modelos. Vuelve a consultar esta página con frecuencia para conocer las novedades.

Sí, los resultados de transcripción asíncronos pueden enviarse a los webhooks configurados en la configuración de webhooks de la interfaz. Consulta más información en la guía de webhooks.

Sí, la función STT multicanal te permite transcribir audio en el que cada canal se procesa de forma independiente y recibe un ID de hablante según su número de canal. Esta función admite hasta 5 canales. Consulta más información en la guía de transcripción multicanal.

ElevenLabs cobra por Voz a Texto según la duración del audio enviado para transcribir. La facturación se calcula por hora de audio y las tarifas varían según el plan y el modelo. Consulta la página de precios de la API para obtener información detallada sobre los precios.

Datos clave

  • Entrada compatible: se aceptan archivos de audio y vídeo
  • Tamaño máximo de archivo: 3 GB
  • Duración máxima: 10 horas (modo estándar), 1 hora (modo multicanal)
  • Modo multicanal: hasta 5 canales; cada uno se procesa de forma independiente con un ID de hablante asignado por número de canal
  • Webhooks: los resultados de transcripción asíncronos pueden enviarse a un webhook; configúralo en los ajustes del espacio de trabajo
  • Formatos de audio compatibles: AAC, AIFF, OGG, MP3, OPUS, WAV, FLAC, M4A, WebM
  • Formatos de vídeo compatibles: MP4, AVI, MKV, MOV, WMV, FLV, WebM, MPEG, 3GPP