还有一个onwebkitspeechchange的方法,发生在语言识别成功,且文字输入到文本框后触发。
原理:主流的大词汇量语音识别系统多采用统计模式识别技术。典型的基于统计模式识别方法的 语音识别系统由以下几个基本模块所构成:
信号处理及特征提取模块。该模块的主要任务是从输入信号中提取特征,供声学模型处理。同时,它一般也包括了一些信号处理技术,以尽可能降低环境噪声、信道、说话人等因素对特征造成的影响。
统计声学模型。典型系统多采用基于一阶隐马尔科夫模型进行建模。
发音词典。发音词典包含系统所能处理的词汇集及其发音。发音词典实际提供了声学模型建模单元与语言模型建模单元间的映射。
语言模型。语言模型对系统所针对的语言进行建模。理论上,包括正则语言,上下文无关文法在内的各种语言模型都可以作为语言模型,但目前各种系统普遍采用的还是基于统计的N元文法及其变体。
解码器。解码器是语音识别系统的核心之一,其任务是对输入的信号,根据声学、语言模型及词典,寻找能够以最大概率输出该信号的词串。
以上是语音识别的各个组成部分,而离线的语音识别,应该也是基于以上的原理,而且在手机内部内置了语音的字典,从而实现无线的识别
如:
1、浏览器提供的功能,比如chrome,如果没有提供的话就不能用。
2、具体实现的细节主要是chrome的离线语音识别引擎。
3、调用系统api,浏览器是个app,可以访问所有底层的api,只要系统提供就可以实现。
相关代码如下:
<!DOCTYPE HTML><html><head><title>简单通过html5实现语音识别</title><script>if (document.createElement(“input”).webkitSpeech === undefined) { alert(“Speech input is not supported in your browser.”)} </script></head><body>
<input type=”text” name=”value_2″ x-webkit-speech/>
</body></html>
<script type="text/javascript">var msg = new SpeechSynthesisUtterance("输入要朗读的文字")
window.speechSynthesis.speak(msg)
</script>
这样就行,不需要任何第三方api集成。
补充一下,不是win10的用户,可能不会朗读
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)