Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

(e) - Como identificar o seu uso nos docs

Por volta do minuto 1 do vídeo, o Guilherme diz que tudo o que é dito fica salvo em um evento (e). E, assim, usamos o evento na função para conseguir capturar a transcrição do nosso áudio.

Fiquei muito intrigada para saber exatamente onde na documentação da API isso é indicado. Na página de SpeechRecognition, logo no início, encontrei um pequeno diagrama logo abaixo da primeira nota: EventTarget <-- SpeechRecognition Mas não estou certa de que esse é o indicativo que eu estava buscando.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeDando mais uma fuçada, ali em 'Events', não encontrei menção nenhuma da utilização de (e) como um parâmetro a ser passado ao utilizar a instância onde guardamos SpeechRecognition (encontrei eventos como start(), que usamos para iniciar o microfone). Só fui encontrar ao descer mais um pouco a página e ver o primeiro exemplo dele sendo utilizado:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

const grammar =
  "#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;";
const recognition = new SpeechRecognition();
const speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar, 1);
recognition.grammars = speechRecognitionList;
recognition.continuous = false;
recognition.lang = "en-US";
recognition.interimResults = false;
recognition.maxAlternatives = 1;

const diagnostic = document.querySelector(".output");
const bg = document.querySelector("html");

document.body.onclick = () => {
  recognition.start();
  console.log("Ready to receive a color command.");
};

recognition.onresult = (event) => {
  const color = event.results[0][0].transcript;
  diagnostic.textContent = `Result received: ${color}`;
  bg.style.backgroundColor = color;
};

Senti a necessidade de trazer essa discussão pro fórum porque ainda sinto muita dificuldade em ler a documentação de uma API e implementá-la nos meus códigos sem recorrer, antes, a vídeos e tutoriais. Gostariam de me dar um insight sobre?

2 respostas
solução!

Oii Thaís, tudo bem?

Entendo que a documentação de APIs pode ser um pouco complexa de interpretar inicialmente.

O evento (e) que você mencionou é uma referência comum em JavaScript para o objeto de evento que é passado para uma função de manipulador de eventos. No contexto da API SpeechRecognition, esse objeto de evento é do tipo SpeechRecognitionEvent.

Na documentação que você explorou, o diagrama "EventTarget <-- SpeechRecognition" indica que SpeechRecognition é um tipo de EventTarget. Isso significa que objetos do tipo SpeechRecognition podem despachar eventos que podem ser capturados por ouvintes de eventos (listeners). Esses eventos incluem, mas não se limitam a, start, result, end, entre outros.

No segundo exemplo que você encontrou, o evento (event) é usado dentro da função manipuladora recognition.onresult para acessar os resultados do reconhecimento de voz.

recognition.onresult = (event) => {
  const color = event.results[0][0].transcript;
  diagnostic.textContent = `Result received: ${color}`;
  bg.style.backgroundColor = color;
};

Neste código, event é um objeto SpeechRecognitionEvent, e event.results é um array que contém os resultados do reconhecimento. Cada resultado é acessado como event.results[0][0].transcript, onde transcript é a transcrição textual do que foi reconhecido pelo microfone.

Então, o uso de (e) ou (event) como parâmetro nas funções de manipulação de eventos é uma prática padrão para acessar as propriedades do objeto de evento, que neste caso inclui os resultados do reconhecimento de voz.

Espero ter te ajudado.

Um abraço e bons estudos.

Muito obrigada, Lorena!! Me ajudou demais.