Presentamos Eleven v4Conoce Eleven v4, nuestro modelo más expresivo hasta la fecha.

Ir al contenido

Cómo funciona Scribe v2 Realtime

Escrito por
Tadas Petra
Publicado
Última actualización

EscucharEscucha este artículo

Scribe v2 Realtime es un modelo de Voz a Texto extremadamente rápido que se puede usar para transcripciones en directo. La combinación de velocidad y calidad permite casos de uso que antes no eran posibles.

Por ejemplo, pudimos crear este traductor de idiomas en tiempo real con Scribe v2 Realtime y la API Chrome Translator.

Live transcription on the left and committed transcripts on the right in a list

Si quieres el tutorial paso a paso de esta demo, puedes encontrarlo aquí. Esta guía se centrará en explicar a alto nivel Scribe v2 Realtime y cómo funciona.

El modelo

ElevenLabs ofrece dos modelos para transcribir audio: Scribe v2 y Scribe v2 Realtime.

Optimized For
Scribe v2
Accuracy
Scribe v2 Realtime
Ultra low latency
Use Case
Scribe v2
Batch transcription, subtitling, and captioning at scale.
Scribe v2 Realtime
Voice agents, meeting notetakers, and other live applications.

Scribe v2 es una opción ideal para transcripciones que pueden realizarse de forma asíncrona, mientras que Scribe v2 Realtime se usa cuando necesitas que la transcripción se haga en directo.

Para una aplicación de traducción de idiomas en directo, Scribe v2 Realtime es la opción más evidente.

La API

Para usar este modelo, necesitas utilizar la API de Voz a Texto. Para empezar, debes seguir estos dos pasos:

  1. Inicializar una instancia de Scribe
  2. Conectarte a la API

Según desde dónde llames a esta API, tendrás que inicializarla de forma distinta. Si la llamas desde el servidor, puedes inicializarla directamente con la clave de API y usar esa instancia para conectarte a Scribe v2 Realtime.

Sin embargo, exponer una clave de API en el cliente supone un gran riesgo de seguridad. Por tanto, si haces streaming desde el cliente, tendrás que inicializarla con un token de un solo uso.

Este token debe generarse en el servidor para proteger la clave de API.

Como estamos creando una aplicación de React, usaremos el enfoque del token. Este token se pasa durante la fase de conexión, por lo que crear una instancia de Scribe es muy sencillo.

import { useScribe } from "@elevenlabs/react";

function MyComponent() {
  const scribe = useScribe({
    modelId: "scribe_v2_realtime",
  });
  
  //...
}

Conectarse a Scribe v2 Realtime

Una vez que lo hayas inicializado correctamente, puedes conectarte a Scribe v2 Realtime. Para el proyecto de traducción de idiomas con React, usamos streaming desde el cliente y, por tanto, necesitamos un token de un solo uso del backend. Este token debe generarse y pasarse cada vez que nos conectamos a la API.

const handleStart = async () => {
  const token = await fetchTokenFromServer();

  await scribe.connect({
    token,
    microphone: {
	  echoCancellation: true,
	  noiseSuppression: true,
    },
  });
};


Estrategia de confirmación

Al trabajar con Scribe v2 Realtime, hay dos tipos de transcripciones: parciales y confirmadas.

Las transcripciones parciales son las «transcripciones en directo». Esta transcripción se realiza mediante websocket y se te devuelve mientras hablas. Así, si dices «El gato está...», verás esas palabras transmitidas en tiempo real.

El otro tipo es una transcripción confirmada. Las transcripciones funcionan por segmentos. Cuándo y cómo elijas confirmar tus transcripciones determinará cómo se segmenta la transcripción. Para ello, debes definir una estrategia de confirmación.

Hay dos opciones de estrategias de confirmación. La primera es manual y te da control total para decidir cuándo se confirman las transcripciones. Lo recomendable es hacerlo durante silencios u otros momentos lógicos, como los cambios de turno.

La otra opción es dejar que Scribe v2 Realtime determine por sí solo segmentos de calidad mediante la detección de actividad de voz (VAD). Este enfoque detecta automáticamente segmentos de voz y silencio. Cuando se alcanza un umbral de silencio, el motor de transcripción confirma automáticamente el segmento.

¿Por qué necesitas una estrategia de confirmación?

Mientras hablas, Scribe v2 Realtime transcribe cada palabra. Así que, si dices «Grito...», puede reconocerse como «Frito...». Pero cuando se dispone del contexto completo del segmento «Grito cada vez que veo una araña en el baño», el resultado es más preciso.

Por tanto, las transcripciones parciales pueden mostrarse en tiempo real, y las confirmadas pueden ofrecer una transcripción más precisa del historial de la conversación.

Mostrar transcripciones

Una vez conectado a Scribe v2 Realtime, la transcripción se está realizando. Puedes acceder a las transcripciones mediante las propiedades partialTranscript y committedTranscripts.

<div>
  <button onClick={handleStart} disabled={scribe.isConnected}>
	Start Recording
  </button>
  <button onClick={scribe.disconnect} disabled={!scribe.isConnected}>
	Stop
  </button>

  {scribe.partialTranscript && <p>Live: {scribe.partialTranscript}</p>}

  <div>
	{scribe.committedTranscripts.map((t) => (
	  <p key={t.id}>{t.text}</p>
	))}
  </div>
</div>

partialTranscript es la transcripción en tiempo real del segmento actual que se está transcribiendo. committedTranscript es el historial de la conversación y consiste en una lista de segmentos que se han confirmado mientras estabas conectado a Scribe v2 Realtime.

Traduce con IA

Eso es todo lo que necesitas para obtener transcripciones en tiempo real de tus conversaciones. Ahora puedes darle a esta app una interfaz atractiva o incluso añadir más funciones, como la traducción de idiomas en directo.

Para crear el traductor de idiomas en tiempo real de la demo, pasa las transcripciones a la API Chrome AI Translator y muestra el resultado en tiempo real.

Empieza a crear

¡Gracias por leernos! Regístrate en ElevenLabs y empieza a crear tus aplicaciones.

Escrito por

Tadas Petra es Developer Relations Engineer y ayuda a desarrolladores a crear con la suite de productos de ElevenLabs. Además, es fundador de Hungrimind, una plataforma de formación para desarrolladores. Antes fue Lead Developer Advocate en Agora e instructor en Zero To Mastery.

Artículos relacionados

Crea con el audio IA de la más alta calidad