私は、Webspeech API を使用して音声で制御するオプションが必要なシステムに取り組んでいます。私の問題または質問は、音声認識の結果 (「transcript-div」に保存されている) を「usercomment textarea-div」にコピーするにはどうすればよいかということです。ユーザーが何かを言うように、認識された文字列はユーザーコメントに自動的にコピーされます。
対応するコード行:
音声認識:
var recognition = new webkitSpeechRecognition();
var final_transcript = '';
var interim_transcript = '';
var language = 'en-GB';
recognition.continuous = true; // keep processing input until stopped
recognition.interimResults = true; // show interim results
recognition.lang = language; // specify the language
recognition.onresult = function (event) {
// Assemble the transcript from the array of results
for (var i = event.resultIndex; i < event.results.length; ++i) {
if (event.results[i].isFinal) {
final_transcript = event.results[i][0].transcript;
} else {
interim_transcript = event.results[i][0].transcript;
}
}
console.log("interim: " + interim_transcript);
console.log("final: " + final_transcript);
// update the web page
if (final_transcript.length > 0) {
$('#transcript').html(final_transcript);
}
if (interim_transcript.length > 0) {
$('#interim').html(interim_transcript);
}
デバッグの目的で、認識されたフレーズを表示する別の div を作成しました。これは機能しています!
<div id="console" style="margin-top: 100px;">
<h3>Console:</h3>
<div id="transcript"></div>
<div id="interim"></div>
</div>
そして、「transcript-Div」の内容を usercomment -textarea-Divにコピーする必要があります:
<div id="UsercommentDiv" style="margin-top: 100px;">
<br> User Comment :<br> <textarea id="usercomment" style="width: 300px; height: 150px;" name="description" onLoad="fillUsercomment();"></textarea><br>
</div>
私は次の関数でこれをやろうとしました:
function fillUsercomment(){
document.getElementById('usercomment').innerHTML = document.getElementById('transcript').innerHTML
}
fillUsercomment();
fillUsercomment 関数は機能します (この関数を手動で呼び出すと、内容が usercomment テキストエリアに貼り付けられます。しかし、認識された出力をオンザフライでテキストエリアに貼り付けるには、コードをどのように変更する必要があるのでしょうか?
ありがとう!