API TESTE

 

Ligamos para si gratuitamente

<html lang="pt-BR">
   <head>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
      <title>Web Speech API – Reconhecimento de voz com JavaScript</title>
      <!-- Bootstrap -->
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
      <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
      <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
      <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
      <![endif]-->
   </head>
   <body>
      <div class="container">
         <div class="row" style="height:10px">
            <div id="" class="col-xs-12">&nbsp;</div>
         </div>
         <!-- LINHA SEPARADORA-->
         <div class="row">
            <div class="col-md-12">
               <div class="panel panel-default">
                  <div class="panel-heading">
                     <h1>Web Speech API – Reconhecimento de voz TESTE</h1>
                  </div>
                  <div class="panel-body">
                     <div class="row">
                        <div class="col-md-12">
                           <form action="">
                              <div class="form-group">
                                 <label for="meu_campo">RECEBER AUDIO</label>
                              </div>

                              <div class="form-group">
                                <textarea class="form-control" rows="3" id="campo_texto"></textarea>
                              </div>


                           </form>
                           <button class="btn btn-success btn-lg pull-right" id="btn_gravar_audio">Gravar Audio</button>
                        </div>
                        <div class="row" style="height:10px">
                           <div id="" class="col-xs-12">
                              <hr/>
                           </div>
                        </div>
                     </div>
                     <!-- /.row final linha -->
                  </div>
               </div>
            </div>
         </div>
         <!-- /.row final linha -->
      </div>


      <script type="text/javascript">
window.addEventListener('DOMContentLoaded', function(){
  var btn_gravacao = document.querySelector('#btn_gravar_audio');
  
  var transcricao_audio =  '';// variavel com a transcrição do audio

  var gravando = false;  // valor false para fazer validação(confimar se esta a gravar ou nao)

  
  if(window.SpeechRecognition || window.webkitSpeechRecognition){// Verificação se o browser tem suporte ao API
    
    var speech_api = window.SpeechRecognition || window.webkitSpeechRecognition;// Como não se sabe qual biblioteca o broser usa atribuimos a api retornada pelo navegador

    var recebe_audio = new speech_api();// novo objeto com a API Speech
    
    recebe_audio.continuous = true;// gravação continua ou não
    
    recebe_audio.interimResults = true;// resultado final pode ser alterado ou não pela compreenção da api
    
    recebe_audio.lang = "pt-PT";// Especificar o idioma utilizado pelo usuario
    
    
    recebe_audio.onstart = function(){// metodo onstart para mudar a variavel gravando como true
      gravando = true;
      btn_gravacao.innerHTML = 'Gravando! Parar gravação.';// modificar o texto do botão
    };

    recebe_audio.onend = function(){// metodo onend para mudar a variavel gravando como false
      gravando = false;
      btn_gravacao.innerHTML = 'Iniciar Gravação';// modificar o texto do botão
    };
    
    recebe_audio.onresult = function(event){// metodo onresult para capturar a transcrição do resultado 
      
      var interim_transcript = '';// Defenir a variavel interim_transcript como vazia
      
      for(var i = event.resultIndex; i < event.results.length; i++){// for para contatenar os resultados da transcrição 
           
          if(event.results[i].isFinal){// se o parametro isFinal esta como true com isso identifica-se se é o final captura
            
            transcricao_audio += event.results[i][0].transcript;// Contatenação do resultado final da transcrição
          }else{
            
            interim_transcript += event.results[i][0].transcript;// caso ainda não seja o resultado final contatena-se os resultados obtidos
          }
          var resultado = transcricao_audio || interim_transcript;// Virificação de qual das variaveis não esta vazia e atribui-se-a na variavel resultado


         document.getElementById('campo_texto').innerHTML = resultado;// Escrever o resultado no campo da textarea
      }

    };
    
    
    btn_gravacao.addEventListener('click', function(e){// ação do click no botão a Inicia ou Para a Gravação(dependendo da função gravando)
      if(gravando){// Se estiver a gravar para-se a gravação
        recebe_audio.stop();
        return;
      }
      // Caso não esteja a gravar o audio inicia a transcrição
      recebe_audio.start();
    }, false);

  }else{
    // Caso a API nao seja suportada
        console.log('navegador não apresenta suporte a web speech api');
  }

}, false);

</script>


   </body>
</html>