5

Chciałem zaprojektować aplikację jonową, która słucha poleceń głosowych, postępując zgodnie z tutorialem here Ale wydaje się, że aplikacja rozpoznaje polecenia głosowe przez mikrofon, jeśli testowany na moim komputerze przy użyciu polecenia var recognition = new webkitSpeechRecognition(); //To Computer .Ale widząc to post Wymieniłem polecenieAplikacja jonowa nie rozpoznaje mowy w komórce z Androidem

var recognition = new SpeechRecognition(); // To Device

Ale to nie robi wydaje się działać na moim urządzeniu android .. Czy ktoś w obliczu tego samego problemu z SpeechRecognitionPlugin? Proszę podzielić się przemyśleniami i opiniami ... Dzięki

+0

Czy ktoś dostał go do pracy na Android Marshmallow? Utknąłem też z tym samym problemem, ale nie używając jonowego. – Gandhi

+0

Po opublikowaniu kodu przetestowałem na urządzeniu z Androidem 6. Daj sobie szansę po dodaniu wtyczki cordova media. – Gandhi

+0

Dodawanie wtyczki Media nie działa dla mnie! Jakieś inne rozwiązania? – vohrahul

Odpowiedz

1

Wreszcie w stanie go złamać. Sztuką było dodanie cordova media plugin.

Kodeks pracy jest następujący:

index.html

<!DOCTYPE html> 
<html> 
    <head>   
     <meta name="format-detection" content="telephone=no"> 
     <meta name="msapplication-tap-highlight" content="no"> 
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> 
     <link rel="stylesheet" type="text/css" href="css/index.css"> 
     <title>Speech Recognition</title> 
    </head> 
    <body>  
     <br> 
     <br> 
     <br> 
     <br> 
     <br> 
     <br> 
     <br> 
     <br> 
     <form> 
     Click to speak <input type="button" value="speak" name="Download" id="speak" /> <br> 
     <input type="text" id="q" name="q" size=60> 
     </form> 

     <script type="text/javascript" src="js/jquery.js"></script> 
     <script type="text/javascript" src="cordova.js"></script> 
     <script type="text/javascript" src="js/app.js"></script> 
    </body> 
</html> 

app.js

$(document).ready(function() { 
    document.addEventListener("deviceready", onDeviceReady, false); 
}); 

var recognition; 
function onDeviceReady() { 

    $('#speak').click(function() { 
     recognition = new SpeechRecognition();   
     recognition.onresult = function(event) { 
      if (event.results.length > 0) { 
       console.log(event.results[0][0].transcript);     
       q.value = event.results[0][0].transcript; 
      } 
     };  
     recognition.start(); 
    }); 
} 
2

Ograniczenie limitu czasu nie działa dla mnie. Zauważyłem jednak, że uzyskuję prawie 100% wyników, jeśli mówię NATYCHMIAST po sygnale dźwiękowym. Dodałem monit do użytkownika, jeśli nie znaleziono żadnych słów.

Oto przykład na podstawie mojego podejścia:

var recording = false; 
var spokenInput = ''; 

function startRecognition() { 
    if (!recording) { 

     recording = true; 
     spokenInput = ''; 

     var recognition = new SpeechRecognition(); 

     recognition.onresult = function(event) { 
      if (event.results.length > 0) { 
       spokenInput = event.results[0][0].transcript; 
      } 
     }; 

     recognition.onend = function() { 
      recording = false; 
      if (spokenInput) { 
       alert(spokenInput); 
      } else { 
       alert('For best results, try speaking immediately after the beep!'); 
      } 
     }; 

     setTimeout(function() { 
      recognition.stop(); 
     }, 6000); // Force stop after 6 seconds 

     recognition.start(); 

    } 
} 
+0

Nadal nie jestem w stanie nagrać mojego głosu przez telefon. Myślę, że jest to problem z rozpoznaniem var = new SpeechRecognition(); – forgottofly

+0

@forgottofly Zapomniałem dodać metodę początkową. Naprawiony. – lincolnberryiii

Powiązane problemy