Я использую chrome webkit для распознавания текста и IBM watson assistant.Каждый раз, когда моя речь / текст содержит «?»он должен отправлять содержимое стенограммы в watson через API, но мой текст стенограммы не читается Watson.Для нормального текста, вводимого с клавиатуры, этот фрагмент кода работает без проблем
<label for="textInput" class="inputOutline">
<input id="textInput" class="input responsive-column"
placeholder="Type something" type="text" value=""
onkeydown="/*globals CanvasJS */
ConversationPanel.inputKeyDown(event, this)">
</label>
Я заменил этот код на эти два ...
<label for="textInput" class="inputOutline">
<div id="textInput" class="input responsive-column" type="text" ></div></label>
if(finalTranscripts.includes('?')){
Api.sendRequest(finalTranscripts, this);
}
Это контекст ....
<body>
<div id="contentParent" class="responsive-columns-wrapper">
<div id="chat-column-holder" class="responsive-column content-column">
<div class="chat-column">
<div id="scrollingChat"></div>
<label for="textInput" class="inputOutline">
<div id="textInput" class="input responsive-column" type="text" ></div></label>
<button onclick="startConverting();"><i class="fa fa-microphone"></button>
<script type="text/javascript">
var r = document.getElementById('textInput');
function startConverting (){
if('webkitSpeechRecognition' in window){
var speechRecognizer = new webkitSpeechRecognition();
speechRecognizer.continuous = true;
speechRecognizer.interimResults = true;
speechRecognizer.lang = 'en-IN';
speechRecognizer.start();
var finalTranscripts = '';
speechRecognizer.onresult = function(event){
var interimTranscripts = '';
for(var i = event.resultIndex; i < event.results.length; i++){
var transcript = event.results[i][0].transcript;
transcript.replace("\n", "<br>");
if(event.results[i].isFinal){
finalTranscripts += transcript;
}else{
interimTranscripts += transcript;
}}
if(finalTranscripts.includes('!')){
window.alert('It works');
}
if(finalTranscripts.includes('?')){
Api.sendRequest(finalTranscripts, this);
}
r.innerHTML = finalTranscripts + '<span style="color#999' +interimTranscripts + '</span>';
};
speechRecognizer.onerror = function (event) {
};
}else {
r.innerHTML = 'please update google chrome ';
}
}
</script>
К сожалению, это не работает.Как я уже говорил, похоже, что Уотсон не читает содержание моей речи ...
(ConversationPanel и inputKeyDown определены в файле .js)
Я рад за всепомощи.