Saltar al contenido principal
Version: 0.0.16

SofyaTranscriber

La clase principal para manejar operaciones de transcripción.

Constructor​

new SofyaTranscriber(connection: Connection)

Crea una nueva instancia del servicio de transcripción con un objeto de conexión.

Métodos​

  • startTranscription(mediaStream: MediaStream): void Inicia el proceso de transcripción con un MediaStream proporcionado.

  • stopTranscription(): Promise< void > Detiene el proceso de transcripción de forma asíncrona. Devuelve una Promise que se resuelve cuando la finalización está completa. Debe usar await o .then().

  • pauseTranscription(): void Pausa el proceso de transcripción.

  • resumeTranscription(): void Reanuda el proceso de transcripción.

  • on(event: string, callback: Function): this Registra un manejador de eventos para eventos de transcripción.

  • getSttSessionId(): string | null Devuelve el identificador de la conexión de transcripción actual. null hasta el primer mensaje de transcripción, o frente a servidores que no lo envían.

  • getSttSessionIds(): string[] Devuelve todos los identificadores de conexión de esta transcripción, en orden, desde la última llamada a startTranscription(). Se reinicia en la siguiente llamada a startTranscription().

Eventos​

El SDK emite los siguientes eventos:

  • recognizing: Se dispara cuando la transcripción está en progreso.

  • recognized: Se dispara cuando la transcripción está completa.

  • error: Se dispara cuando ocurre un error. Con autenticación por clave de API en modo directo, una clave rechazada por el servidor (código de cierre 4401) llega aquí como un SofyaAuthError con el código AUTH_REJECTED, y el SDK deja de reconectar. Consulta Autenticación en Modo Directo.

  • ready: Se dispara cuando el servicio de transcripción está listo para iniciar.

  • stopped: Se dispara cuando el proceso de transcripción se detiene.

  • connected: Se dispara cuando el servicio de transcripción está conectado al proveedor.

  • stt_session: Se dispara cuando el servidor informa el identificador de la conexión de transcripción — en el primer mensaje de transcripción, y de nuevo en cada reconexión en la que el identificador cambia.

    transcriber.on("stt_session", ({ sttSessionId, externalId, connectionAttempt }) => {
    // sttSessionId: UUID de la conexión, asignado por el servidor
    // externalId: el external_id configurado, o null
    // connectionAttempt: 1 en la primera conexión, 2 en la primera reconexión…
    });
    • Se dispara una vez por conexión: una sesión con dos reconexiones produce tres eventos con tres ids distintos.
    • Llega con el primer mensaje de transcripción (depende del audio); no es un evento de handshake. Nada en el SDK espera a que ocurra.
    • Frente a un servidor que no envíe el identificador, el evento nunca se dispara y nada más cambia.
    • Recibir sttSessionId no significa que la sesión se esté grabando. Identifica la conexión; grabar depende de record y del entorno.

Tipos​

SttSessionInfo​

Payload del evento stt_session.

interface SttSessionInfo {
sttSessionId: string;
externalId: string | null;
connectionAttempt: number;
}