【发布时间】:2014-01-16 22:56:22
【问题描述】:
我正在开发一个系统,该系统应该可以选择使用 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 textarea。但是我必须如何更改代码,以便将已识别的输出即时粘贴到 textarea 中?
谢谢!
【问题讨论】:
标签: javascript jquery html webspeech-api