[英]Speech-to-text with javascript in Chrome doesn't recognize anything
I am trying to write a code in JAVASCRIPT which takes an input using voice and converts it into text and puts this text into textarea(HTML). 我正在尝试在JAVASCRIPT中编写一个代码,它使用语音输入并将其转换为文本并将此文本放入textarea(HTML)。 My code is as shown below.
我的代码如下所示。 The button appears kinda strange(smaller than usual) and when you click it, it doesnt work as desired.
按钮看起来有点奇怪(比平时小),当你点击它时,它根本无法正常工作。 Please help.
请帮忙。
My code is as follows: 我的代码如下:
<textarea id="textarea" rows=10 cols=80></textarea>
<button id="button" onclick="toggleStartStop()"></button>
<script type="text/javascript">
var recognizing;
var recognition = new SpeechRecognition();
recognition.continuous = true;
reset();
recognition.onend = reset();
recognition.onresult = function (event) {
for (var i = resultIndex; i < event.results.length; ++i) {
if (event.results.final) {
textarea.value += event.results[i][0].transcript;
}
}
}
function reset() {
recognizing = false;
button.innerHTML = "Click to Speak";
}
function toggleStartStop() {
if (recognizing) {
recognition.stop();
reset();
} else {
recognition.start();
recognizing = true;
button.innerHTML = "Click to Stop";
}
}
Looks like you are using some outdated sample code from the W3 site: http://lists.w3.org/Archives/Public/public-speech-api/2012Oct/0032.html 看起来您正在使用W3站点中的一些过时的示例代码: http : //lists.w3.org/Archives/Public/public-speech-api/2012Oct/0032.html
Are you using Google Chrome? 您使用的是Google Chrome吗? Open the JavaScript console, it should reveal this problem:
打开JavaScript控制台,它应该揭示这个问题:
Uncaught ReferenceError: SpeechRecognition is not defined
未捕获的ReferenceError:未定义SpeechRecognition
Here's a sample page that does work: https://www.google.com/intl/en/chrome/demos/speech.html 以下是一个可行的示例页面: https : //www.google.com/intl/en/chrome/demos/speech.html
It's all HTML5, so you can have a look at the entire source and learn from it. 它全部是HTML5,因此您可以查看整个源代码并从中学习。 Have fun!
玩得开心!
EDIT: Minimum changes needed to make OP's code sample work on Google Chrome: 编辑:使OP的代码示例在Google Chrome上运行所需的最小更改:
SpeechRecognition
by webkitSpeechRecognition
SpeechRecognition
通过webkitSpeechRecognition
resultIndex
by event.resultIndex
event.resultIndex
替换resultIndex
event.results.final
by event.results[i].isFinal
event.results[i].isFinal
替换event.results.final
Resulting code: 结果代码:
<textarea id="textarea" rows=10 cols=80></textarea>
<button id="button" onclick="toggleStartStop()"></button>
<script type="text/javascript">
var recognizing;
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
reset();
recognition.onend = reset();
recognition.onresult = function (event) {
for (var i = event.resultIndex; i < event.results.length; ++i) {
if (event.results[i].isFinal) {
textarea.value += event.results[i][0].transcript;
}
}
}
function reset() {
recognizing = false;
button.innerHTML = "Click to Speak";
}
function toggleStartStop() {
if (recognizing) {
recognition.stop();
reset();
} else {
recognition.start();
recognizing = true;
button.innerHTML = "Click to Stop";
}
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.