Saltar al contenido principal
Version: 0.0.16

Uso

El SDK Sofya Transcription proporciona una solución robusta y flexible para la transcripción de audio en tiempo real. Esta guía le ayudará a comenzar a usar el SDK en sus proyectos.

Nota de migración

¿Qué cambió?

  • El método stopTranscription ahora es asíncrono y devuelve una Promise<void>.
  • Ahora debe usar await o .then() al llamar a stopTranscription para asegurarse de que el proceso de transcripción se detenga completamente antes de continuar.

¿Por qué se cambió?

  • Este cambio garantiza que todas las operaciones de limpieza (como finalizar transcripciones en curso) se completen antes de que su código continúe. Previene condiciones de carrera y fugas de recursos que podrían ocurrir si el método fuera síncrono.

Cómo migrar

Antes:

transcriber.stopTranscription();
// Continuar inmediatamente con otra lógica

Después:

await transcriber.stopTranscription();
// o
transcriber.stopTranscription().then(() => {
// Continuar con otra lógica
});

Ejemplo en React:

const stopTranscription = async () => {
if (transcriber.current) {
await transcriber.current.stopTranscription();
transcriber.current = null;
}
};

Acción requerida

  • Actualice todos los usos de stopTranscription en su base de código para manejar la Promise devuelta.
  • Si utiliza este método dentro de controladores de eventos o componentes React, haga que el controlador sea async y use await.

Resumen:
stopTranscription ahora es asíncrono. Siempre utilice await o .then() para asegurar una limpieza adecuada. Este cambio mejora la confiabilidad y la gestión de recursos en sus flujos de trabajo de transcripción.

Uso Básico

Aquí hay un ejemplo básico de cómo usar Sofya Transcription en su proyecto:

  1. Importe la Biblioteca:

    import { MediaElementAudioCapture, SofyaTranscriber } from 'sofya.transcription';
  2. Cree una Instancia del Servicio de Transcripción:

    // Usando conexión con clave de API
    const transcriber = new SofyaTranscriber({
    apiKey: 'SU_CLAVE_API',
    config: {
    language: 'es-419'
    }
    });

    // O usando un proveedor específico
    const transcriber = new SofyaTranscriber({
    provider: 'sofya_compliance',
    endpoint: 'SU_ENDPOINT',
    config: {
    language: 'es-419',
    token: 'SU_TOKEN',
    compartmentId: 'SU_COMPARTMENT_ID',
    region: 'SU_REGION'
    }
    });
  3. Inicialice e Inicie la Transcripción:

    // Espere a que el transcriber esté listo
    transcriber.on('ready', () => {
    // Obtenga el flujo de medios
    navigator.mediaDevices.getUserMedia({ audio: true })
    .then(mediaStream => {
    // Inicie la transcripción
    transcriber.startTranscription(mediaStream);
    })
    .catch(error => {
    console.error('Error al acceder al micrófono:', error);
    });
    });
  4. Gestione Eventos de Transcripción:

    transcriber.on('recognizing', (text) => {
    console.log('Reconociendo: ' + text);
    });

    transcriber.on('recognized', (text) => {
    console.log('Reconocido: ' + text);
    });

    transcriber.on('error', (error) => {
    console.error('Error en la transcripción:', error);
    });

    transcriber.on('stopped', () => {
    console.log('Transcripción detenida');
    });

Identificar la Consulta y Pedir la Grabación

Si su aplicación necesita asociar una transcripción con una consulta específica, o pedirle al servidor que grabe la sesión, configure external_id y record en la conexión y escuche el evento stt_session:

import { SofyaTranscriber } from 'sofya.transcription';

const transcriber = new SofyaTranscriber({
apiKey: 'SU_CLAVE_API',
config: {
language: 'es-419',
external_id: consultation.id, // el mismo valor en cada reconexión
record: true,
},
});

const sttSessionIds: string[] = [];
transcriber.on('stt_session', ({ sttSessionId }) => sttSessionIds.push(sttSessionId));

transcriber.startTranscription(mediaStream);
// …
await transcriber.stopTranscription();
// sttSessionIds === transcriber.getSttSessionIds()

Guarde external_id y los sttSessionId junto con la consulta: son las dos claves para localizar la grabación después. Consulte Conexiones para la referencia completa de external_id/record y SofyaTranscriber para el evento stt_session y los métodos getSttSessionId/getSttSessionIds.