【发布时间】:2024-01-10 20:45:01
【问题描述】:
我正在尝试使用 webkitSpeechRecognition 转录文本。我找到了这个例子:
并已将其应用到我自己的网站中。这在某些条件下效果很好。但是,我基本上只是想在人们进行讨论时让转录保持“开启”状态。
出于我的目的,我已将代码简化如下:
//Speech Transcription
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
// initiated text recognition
recognition.onstart = function() {
recognizing = true;
ignore_onend = false;
}
//
recognition.onresult = function(event) {
var interim_transcript = '';
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;
}
}
final_transcript = capitalize(final_transcript);
// update final transcript
enter.innerHTML = linebreak(final_transcript);
// update temp transcript
interim_enter.innerHTML = linebreak(interim_transcript);
}
recognition.onerror = function(event) { }
recognition.onend = function() {
recognizing = false;
if (ignore_onend) {
return;
}
}
// formatting the text
var two_line = /\n\n/g;
var one_line = /\n/g;
function linebreak(s) {
return s.replace(two_line, '<p></p>').replace(one_line, '<br>');
}
var first_char = /\S/;
function capitalize(s) {
return s.replace(first_char, function(m) { return m.toUpperCase(); });
}
// trigger the transcription
function startButton(event) {
final_transcript = '';
recognition.start();
}
它在 2 秒到 5 分钟的任何时间都可以正常工作,但不可避免地会随机停止。我在这里看到了有关问题的 cmets:
WebkitSpeechRecognition stops recording randomly
这意味着Obj3ctiv3_C_88 找到了解决方案。但是我无法弄清楚如何实现所描述的内容。
感谢任何帮助。谢谢!
【问题讨论】:
标签: javascript webkit speech-recognition speech-to-text webkitspeechrecognition