Guia de uso rápido
Esse guia mostra o básico que você precisa fazer para ter o reconhecimento de voz da Iara funcionando em sua aplicação web.
OBS: esse guia assume que você já tem o SDK javascript e o serviço local (ALS) da Iara já integrados/instalados. Se esse não for o caso, dê uma olhada na página Instalação.
1. Esqueleto básico
Dada a aplicação web abaixo:
<html>
<head>
<!-- Iara Speech SDK: https://developers.iarahealth.com/javascript/docs/geral-instalacao -->
<script src="https://cdn.iarahealth.com/sdk/javascript/1.9.0/iara-speech.min.js"></script>
</head>
<body>
<button id="btnStart">Iniciar</button>
<button id="btnStop">Parar</button>
<script type="text/javascript">
// Código JS da sua aplicação aqui.
</script>
</body>
Para simplificar o entendimento, qualquer código Javascript de utilização da Iara mostrado daqui para frente ocupa o lugar do comentário // Código JS da sua aplicação aqui
do exemplo acima.
Dica: dê uma olhada nos exemplos de código disponíveis nesse SDK. Você pode utilizar algum deles como base para seu projeto ou integração.
2. Inicialização e autendicação
O primeiro passo é instanciar e inicializar o reconhecedor da Iara com seus dados de acesso, i.e. userId
e apiToken
. Você deve ter recebido seu userId
e apiToken
quando criou uma conta para utilizar o SDK.
var myUserId = 'meu@email.com'; // use o seu userId
var myApiToken = '197765800edb8affcb44a7ae7b4ff0a3'; // use o seu apiToken
// Instancia o reconhecedor da Iara
var recognition = new IaraSpeechRecognition();
// Inicializa o SDK, i.e. autenticação, checa o ALS, baixa modelo de voz, etc.
recognition.init({
userId: myUserId,
apiToken: myApiToken
}).done(function(e) {
// Tudo certo, o reconhecimento pode começar.
}).fail(function(e) {
// Algum problema aconteceu.
});
Se tudo for inicializado sem problemas, o método done()
será chamado, indicando que o SDK está pronto para fazer o reconhecimento de voz. Se algum problema acontecer, o método fail()
será chamado com as informações do erro.
Dica: cada usuário da sua aplicação deve possuir umuserId
próprio, porque o reconhecimento de voz da Iara é personalizado por usuário. O valor douserId
identifica unicamente uma pessoa e será usada para download e ajuste de um modelo de voz próprio para o usuário em questão. Veja a seção Autenticação (API Iara) para saber mais.
Você pode acompanhar em detalhes os passos de inicialização feitos pelo SDK através das chamadas ao método progress()
, descrito na próxima seção. A utilização do método progress()
é opcional, mas é recomendada para garantir uma boa experiência de uso ao usuário de sua aplicação.
IMPORTANTE: Usuários diferentes não devem utilizar um userId
com o mesmo valor. Isso degrada a acurácia do reconhecimento de voz.
2.1 Eventos de inicialização via progress()
(opcional)
Depois de autenticar o usuário, o SDK fará diversas incializações internas, como checar se o ALS está rodando, baixar o modelo de voz do usuário, etc.
O método progress()
é chamado várias vezes, uma para cada passo de inicialização feito durante a inicialização:
var recognition = new IaraSpeechRecognition();
recognition.init({
// (...)
}).done(function(e) {
// (...)
}).fail(function(e) {
// (...)
}).progress(function(e) {
console.log('Iara está inicializando: ' + e.detail.type, e.detail);
})
O método progress()
será chamado, por exemplo, quando o SDK detectar que o ALS está rodando no computador do usuário, quando o modelo de voz do usuário especificado estiver sendo baixado, quando o modelo de voz foi baixado corretamente, etc.
Veja a página Inicialização e Eventos para saber mais sobre os passos que ocorrem durante a inicialização.
2.2 Configurações do reconhecedor (opcional)
Você pode configurar o reconhecedor de voz para as suas necessidades, ex.: se quer ou não resultados intermediários de reconhecimento:
var recognition = new IaraSpeechRecognition();
recognition.init({
userId: 'meu@email.com',
apiToken: '197765800edb8affcb44a7ae7b4ff0a3',
interimResults: false,
input: 'speechmike'
})
Se você não alterar as configurações específicas, os valores padrão serão utilizados. Para mais informações, veja a página Inicialização.
Dica: veja a página Dispositivos de audio para mais informações sobre utilização e configuração de dispositivos de entrada de audio, como o SpeechMike®.
3. Reconhecimento de voz
Assumindo que tudo foi inicializado sem problemas, você pode iniciar o reconhecimento de voz depois que done()
for chamado:
var recognition = new IaraSpeechRecognition();
recognition.init({
// (...)
}).done(function(e) {
// O evento principal do reconhecimento de voz é o "onresult", chamado quando
// algum audio na entrada é reconhecido.
recognition.onresult = function(event) {
// O parâmetro "event" contem uma propriedade chamada "detail", que é um
// objeto IaraSpeechRecognitionDetail. A propriedade "transcript" desse
// objeto contém o texto que a Iara reconheceu baseados no audio de entrada.
var text = event.detail.transcript.toLowerCase();
console.log('Texto reconhecido: ' + text);
};
// Configuramos botões para ativar/desativar o reconhecimento de audio.
var botaoStart = document.getElementById('btnStart');
var botaoStop = document.getElementById('btnStop');
botaoStart.addEventListener('click', function() {
recognition.start();
});
botaoStop.addEventListener('click', function() {
recognition.stop();
});
});
No exemplo acima, quando o reconhecedor chamar o método done()
para indiciar que tudo está corretamente configurado, duas atividades são feitas. Na primeira, cria-se uma função para tratar o evento onresult
, que é chamado quando algum audio é reconhecido.
Na segunda atividade, dois botões HTML são configurados para ligar e desligar o reconhecimento de voz da Iara. O primeiro botão (cujo id é btnStart
) é configurado para ativar o reconhecimento de voz quando for clicado. Isto é feito através do evento click
do botão, que quando é disparado, faz uma chamada a recognition.start()
, iniciando o reconhecimento de voz. De forma similar, o botão de id btnStop
, quando for clicado, chama recognition.stop()
, o que termina a operação de reconhecimento. A Iara não fará novos reconhecimentos no dispositivo de entrada de audio enquanto recognition.start()
não for chamado novamente.
Depois que recognition.start()
é chamado, o evento onresult
é invocado repetidamente com um intervalo variável, que depende dos recursos computacionais disponíveis no computador do usuário.
Esqueleto básico completo
Abaixo está o esqueleto de uma aplicação básica, mas completa, que utiliza o SDK:
<html>
<head>
<!-- Iara Speech SDK: https://developers.iarahealth.com/javascript/docs/geral-instalacao -->
<script src="https://cdn.iarahealth.com/sdk/javascript/1.9.0/iara-speech.min.js"></script>
</head>
<body>
<button id="btnStart">Iniciar</button>
<button id="btnStop">Parar</button>
<script type="text/javascript">
var myUserId = 'meu@email.com'; // use o seu userId
var myApiToken = '197765800edb8affcb44a7ae7b4ff0a3'; // use o seu apiToken
// Instancia o reconhecedor da Iara
var recognition = new IaraSpeechRecognition();
// Inicializa o SDK, i.e. autenticação, checa o ALS, baixa modelo de voz, etc.
recognition.init({
userId: myUserId,
apiToken: myApiToken
}).done(function(e) {
// O evento principal do reconhecimento de voz é o "onresult", chamado quando
// algum audio na entrada é reconhecido.
recognition.onresult = function(event) {
// O parâmetro "event" contem uma propriedade chamada "detail", que é um
// objeto IaraSpeechRecognitionDetail. A propriedade "transcript" desse
// objeto contém o texto que a Iara reconheceu baseados no audio de entrada.
var text = event.detail.transcript.toLowerCase();
console.log('Texto reconhecido: ' + text);
};
// Configuramos botões para ativar/desativar o reconhecimento de audio.
var botaoStart = document.getElementById('btnStart');
var botaoStop = document.getElementById('btnStop');
botaoStart.addEventListener('click', function() {
recognition.start();
});
botaoStop.addEventListener('click', function() {
recognition.stop();
});
}).fail(function(e) {
// Algum problema aconteceu. O parâmetro "e" contem várias informações sobre o erro.
console.error('Algum problema na inicialização da Iara: ' + e.detail.userMessage);
}).progress(function(e) {
// Esse método é invocado várias vezes pelo SDK ao longo de sua inicialização.
// Você pode usar ele para acompanhar os passos da inicialização, para informar
// ao seu usuário que seu modelo de voz está sendo baixado, por exemplo.
console.debug('A Iara está inicializando: ' + e.detail.type);
});
</script>
</body>