2016-12-03 11 views
1

私はWebKitSpeechRecongizerを使用してテキスト変換をスピーチに作成しています。このAPIについてのチュートリアルに続いていますが、返されたテキストを取得できません。このエラー(「Uncaught TypeError:未定義(...)」のプロパティ 'length'を読み取ることができません)。このエラーが何であるかについてはわかりません(学生のみ)。どんな助けも高く評価されます。下はテキスト変換のスピーチコードです。コンバータ Uncaught TypeError:未定義(...)のプロパティ 'length'を読み取ることができません

<style type="text/css"> 
    body{ 
     font-family: Arial; 
    } 
    #result{ 
     height: 200px; 
     border: 1px solid #ccc; 
     padding: 10px; 
     box-shadow: 0 0 10px 0 #bbb; 
     margin-bottom: 30px; 
     font-size: 14px; 
     line-height: 25px; 
    } 

    button{ 

     font-size: 20px; 
     position: absolute; 
     top: 240px; 
     left: 50%; 
    } 
</style> 

</head> 
<body> 
<h4 align="center">Speech to text convertor</h4> 
<div id = "result"></div> 
<button onclick="startConverting();"><i class = "fa fa-microphone">  </i></button> 
<script type="text/javascript"> 

var r = document.getElementById('result'); 

function startConverting(){ 


    if('webkitSpeechRecognition' in window){ 
    var speechRecognizer = new webkitSpeechRecognition(); 
    speechRecognizer.continuous = true; 
    speechRecognizer.interimResults = true; 
    speechRecognizer.lang = "en-GB"; 
    speechRecognizer.start(); 

    var finalTranscripts = ''; 

    speechRecognizer.onresult = function (event){ 
     var interimTranscripts = ''; 

     for(var i = event.resultIndex; i < event.result.length; i++){ 
      var transcript = event.results[i][0].transcript; 
      transcript.replace("\n", "<br>"); 
      if (event.results[i].isFinal){ 
       finalTranscripts += transcript; 
      }else{ 
       interimTranscripts += transcript; 
      } 
     } 
     r.innerHTML = finalTranscripts + '<span style = "color:#999">' + interimTranscripts + '</span>'; 
    }; 

    speechRecognizer.onerror = function (event){ 

    }; 
}else{ 
    r.innerHTML = 'Your browser is not supported.If Google chrome,please upgrade!'; 
} 



} 



</script> 
</body> 
</html> 
+1

'event.results'? – Other

+0

@Skyrockerどこ? –

答えて

2

Wovをテキストに スピーチ、私は実際にそれを聞いたことがないが、私が今働いてしまったようです。ここで

var r = document.getElementById('result'); 
var btn = document.getElementById('btn'); 

btn.addEventListener('click', startConverting); 

function startConverting() { 
    if ('webkitSpeechRecognition' in window) { 
    var speechRecognizer = new webkitSpeechRecognition(); 

    speechRecognizer.continuous = true; 
    speechRecognizer.interimResults = true; 
    speechRecognizer.lang = "en-GB"; 
    speechRecognizer.start(); 

    speechRecognizer.onresult = function(event) { 
     if (event.results.length) { 
     r.innerHTML = event.results[0][0].transcript; 
     } 
    }; 

    speechRecognizer.onerror = function(event) { 

    }; 
    } else { 
    r.innerHTML = 'Your browser is not supported.If Google chrome,please upgrade!'; 
    } 
} 

はフィドルです:https://jsfiddle.net/mehmetb/afd1jn2L/

+0

私はMehmet Bakerさん、私を救ったことを感謝します。返されたテキストを取得し、何か他の方法で使用する方法があることがわかりました。その方法を知っていますか? –

+0

イベントをconsole.loggedすると、 isFinalという名前です。すべての結果イベントでそれを確認することができ、trueに設定されている場合は、音声入力が終わっていると推測できます –

関連する問題