Uso
O SDK Sofya Transcription fornece uma solução robusta e flexível para transcrição de áudio em tempo real. Este guia ajudará você a começar a usar o SDK em seus projetos.
Uso Básico
Aqui está um exemplo básico de como usar o Sofya Transcription em seu projeto:
-
Importe a Biblioteca:
import { MediaElementAudioCapture, SofyaTranscriber } from 'sofya.transcription'; -
Crie uma Instância do Serviço de Transcrição:
// Usando conexão com chave de API
const transcriber = new SofyaTranscriber({
apiKey: 'SUA_CHAVE_API',
config: {
language: 'pt-BR'
}
});
// Ou usando um provedor específico
const transcriber = new SofyaTranscriber({
provider: 'sofya_compliance',
endpoint: 'SEU_ENDPOINT',
config: {
language: 'pt-BR',
token: 'SEU_TOKEN',
compartmentId: 'SEU_COMPARTMENT_ID',
region: 'SUA_REGIAO'
}
}); -
Inicialize e Inicie a Transcrição:
// Aguarde o transcriber estar pronto
transcriber.on('ready', () => {
// Obtenha o fluxo de mídia
navigator.mediaDevices.getUserMedia({ audio: true })
.then(mediaStream => {
// Inicie a transcrição
transcriber.startTranscription(mediaStream);
})
.catch(error => {
console.error('Erro ao acessar o microfone:', error);
});
}); -
Gerencie Eventos de Transcrição:
transcriber.on('recognizing', (text) => {
console.log('Reconhecendo: ' + text);
});
transcriber.on('recognized', (text) => {
console.log('Reconhecido: ' + text);
});
transcriber.on('error', (error) => {
console.error('Erro na transcrição:', error);
});
transcriber.on('stopped', () => {
console.log('Transcrição parada');
}); -
Controle a Transcrição:
// Pause a transcrição
transcriber.pauseTranscription();
// Retome a transcrição
transcriber.resumeTranscription();
// Pare a transcrição
transcriber.stopTranscription();
Tratamento de Erros
O SDK Sofya Transcription fornece tratamento de erros abrangente para garantir uma experiência de transcrição robusta e confiável. O SDK usa uma combinação de lançamento de erros, emissão de eventos e registro para lidar com erros em diferentes estágios do processo de transcrição.
Estratégias de Tratamento de Erros
-
Erros de Validação
- Chave de API ausente
- Endpoint ausente para conexão com provedor
- Configuração ausente para conexão com provedor
- Objeto de conexão inválido
-
Erros de Conexão
- Falha de autenticação
- Problemas de conectividade de rede
- Indisponibilidade do serviço do provedor
- Configuração inválida do provedor
-
Erros de Transcrição
- Acesso ao microfone negado
- Erros de processamento de áudio
- Erros do serviço do provedor durante a transcrição
Melhores Práticas para Tratamento de Erros
-
Sempre Escute Eventos de Erro
transcriber.on('error', (error) => {
console.error('Erro na transcrição:', error);
// Trate o erro apropriadamente
}); -
Use Blocos Try-Catch para Inicialização
try {
const transcriber = new SofyaTranscriber({
apiKey: 'SUA_CHAVE_API',
config: {
language: 'pt-BR'
}
});
// Use o transcriber
} catch (error) {
console.error('Falha ao inicializar o transcriber:', error);
// Trate o erro apropriadamente
} -
Verifique o Evento Ready Antes de Iniciar a Transcrição
transcriber.on('ready', () => {
console.log('Serviço de transcrição está pronto');
// Obtenha o fluxo de mídia e inicie a transcrição
navigator.mediaDevices.getUserMedia({ audio: true })
.then(mediaStream => {
transcriber.startTranscription(mediaStream);
})
.catch(error => {
console.error('Erro ao acessar o microfone:', error);
// Trate o erro apropriadamente
});
}); -
Implemente Lógica de Tentativa para Operações Críticas
function startTranscriptionWithRetry(transcriber, mediaStream, maxRetries = 3) {
let retryCount = 0;
function attemptStart() {
try {
transcriber.startTranscription(mediaStream);
} catch (error) {
console.error(`Falha ao iniciar a transcrição (tentativa ${retryCount + 1}/${maxRetries}):`, error);
if (retryCount < maxRetries) {
retryCount++;
setTimeout(attemptStart, 1000); // Tente novamente após 1 segundo
} else {
console.error('Falha ao iniciar a transcrição após múltiplas tentativas');
// Trate o erro apropriadamente
}
}
}
attemptStart();
}