语音到文本(Webkit)只在控制台中可见。如何打印到文本字段?

时间:2018-05-20 12:33:05

标签: javascript html webkit speech-recognition speech-to-text

我想用webkit for chrome进行带语音的应用程序。它工作正常,但我只是不能将我的语音文本放到一个专用的字段中,它现在出现在控制台上......它应该出现在我也可以写的同一个文本区域中。附上你可以找到我的HTML / JS的一部分....如果有必要,我也可以发布整个文件。



        <label for="textInput" class="inputOutline">
          <input id="textInput" class="input responsive-column"
            placeholder="Type something" type="text"
            onkeydown="/*globals CanvasJS */
            ConversationPanel.inputKeyDown(event, this)">
        </label>


<button onclick="startConverting();"><i class="fa fa-microphone"></button> <!-- NEW TILL /SCRIPT-->
<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;
          	}

          }

          r.innerHTML = finalTranscripts + '<span style="color#999' +interimTranscripts + '</span>'; 
	};

	speechRecognizer.onerror = function (event) {

	};
}else {
	r.innerHTML = 'use google chrome';
}

	}



</script>
&#13;
&#13;
&#13;

控制台正在向我显示......但文本需要出现在屏幕上。

&#13;
&#13;
<input id="textInput" class="input responsive-column" placeholder="Type something" type="text" onkeydown="/*globals CanvasJS */
            ConversationPanel.inputKeyDown(event, this)" style="width:100%">this text should appear in the text area not just in the console</input> ==$0
&#13;
&#13;
&#13;

我非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您输入的字段错误,它没有结束标记。你应该:

<input id="textInput" class="input responsive-column" placeholder="Type something" type="text" onkeydown="/*globals CanvasJS */
            ConversationPanel.inputKeyDown(event, this)" style="width:100%" value="this text should appear in the text area not just in the console"/>

您还可以使用textarea元素:

<textarea id="textInput" class="input responsive-column" placeholder="Type something" type="text" onkeydown="/*globals CanvasJS */
            ConversationPanel.inputKeyDown(event, this)" style="width:100%">this text should appear in the text area not just in the console</textarea>