रिकॉर्डिंग बंद कर देता है मैं टेक्स्ट ट्रांसक्रिप्शन के लिए लगातार भाषण करने की कोशिश कर रहा हूं लेकिन विज्ञापन के रूप में काम कर रहे वेबकिट स्पीच रिकॉग्निशन को प्रतीत नहीं होता है। ऐसा लगता है कि मैं यादृच्छिक रूप से रिकॉर्डिंग करना बंद कर देता हूं (आमतौर पर चुप्पी की लंबी अवधि के बाद) भले ही मैं निरंतर = सत्य और interimResults = सत्य सेट करता हूं। मैं यह भी याद नहीं कर सकता कि इस यादृच्छिक स्टॉपपेज का कारण क्या है क्योंकि मैंने हर किसी में एक सरल लॉग स्टेटमेंट डाला है। सिंगल। ईवेंट। वह वेबकिट स्पीच रिकॉग्निशन उन दस्तावेज़ों पर आधारित है जो मुझे मिल सकता है।WebkitSpeechRecognition यादृच्छिक रूप से
कोई त्रुटि नहीं रिकॉर्डिंग से पहले लॉग इन कर रहे: यहाँ मैं क्या है की स्क्रिप्ट
मुझे क्या पता (अनिवार्य रूप से प्रदर्शन https://www.google.com/intl/en/chrome/demos/speech.html पर एक मामूली आधुनिक) है।
मैं एक गीगाबिट कनेक्शन पर हूं इसलिए अंतराल से संबंधित नहीं है।
यह लंबे समय तक रोक के बाद सामान्य रूप से बंद हो जाता है लेकिन कभी-कभी कारण के बिना बंद हो जाता है।
यह 2 मिनट या केवल 30 सेकंड के बाद हो सकता है।
मैंने नीचे दिए गए कुछ में टिप्पणी की लेकिन मैंने इस मुद्दे का पता लगाने के लिए बिना किसी सफलता के उन सभी को आजमाया है।
var final_transcript = '';
var recognizing = false;
var ignore_onend;
var start_timestamp;
if (!('webkitSpeechRecognition' in window)) {
upgrade();
} else {
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
recognition.onstart = function() {
recognizing = true;
};
recognition.onerror = function (event) {
console.log("ERROR")
recognizing = false
recognition.stop()
recognizing = true
recognition.start()
if (event.error == 'no-speech') {
console.log("NO SPEECH")
}
if (event.error == 'audio-capture') {
console.log("Capture Problem")
}
if (event.error == 'not-allowed') {
if (event.timeStamp - start_timestamp < 100) {
console.log("Block")
} else {
console.log("Deny")
}
}
};
recognition.onend = function() {
console.log("ONEND")
recognition.stop()
recognizing = false
recognition.start()
};
recognition.onresult = function (event) {
var interim_transcript = '';
if (typeof(event.results) == 'undefined') {
console.log("undefined start")
recognition.stop()
recognizing = false
recognition.start()
console.log("undefined end")
return;
}
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);
final_span.innerHTML = linebreak(final_transcript);
interim_span.innerHTML = linebreak(interim_transcript);
};
{# recognition.onspeechend = function() {#}
{# console.log("SpeechEND")#}
{# };#}
{##}
{# recognition.onpause = function() {#}
{# console.log("PAUSE")#}
{# }#}
{##}
{# recognition.onsoundend = function() {#}
{# console.log("Sound")#}
{# }#}
{##}
{##}
{# recognition.onaudioend = function() {#}
{# console.log("AUDIO")#}
{# }#}
{##}
{##}
{# recognition.onnomatch = function() {#}
{# console.log("NOMATCH")#}
{# }#}
{##}
{# recognition.onmark = function() {#}
{# console.log("MARK")#}
{# }#}
{##}
{# recognition.onboundary = function(){#}
{# console.log("BOUNDARY")#}
{# }#}
}
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();
});
}
$("#start_call").click(function() {
$("#start_call").addClass('hidden');
$("#end_call").removeClass('hidden');
final_transcript = '';
recognition.lang = 'en-US';
recognition.start();
ignore_onend = false;
});
$("#end_call").click(function() {
$("#end_call").addClass('hidden');
$("#start_call").removeClass('hidden');
stopwatchClock.addClass('hidden');
recognition.stop();
recognizing = false
});
मुझे यह वही समस्या है, क्या आपने कभी इसे समझ लिया है? –
@ निकोनस मैं इस बात का आकलन नहीं कर सका कि समस्या का कारण क्या था जिससे मैं इसके लिए कुछ तर्क जोड़ रहा था। मैंने 10 सेकंड पहले लिखे गए शब्दों की स्थिति रखी और अंतराल पर सबसे हालिया प्रतिलेखन की तुलना की। यदि कोई परिवर्तन नहीं मिला है तो मैं मैन्युअल रूप से प्रतिलेखन को रोक और पुनरारंभ करूंगा। –