W3cubDocs

/DOM

SpeechRecognition

{{APIRef(“Web Speech API”)}} {{SeeCompatTable}}

SpeechRecognition该界面的Web语音API是用于识别服务的控制器接口; 这也处理从识别服务发送的{{domxref(“SpeechRecognitionEvent”)}}。

注意:在Chrome上,在网页上使用语音识别涉及基于服务器的识别引擎。您的音频将发送到Web服务进行识别处理,因此无法脱机工作。

构造函数

{{domxref( “SpeechRecognition.SpeechRecognition()”)}}
创建一个新SpeechRecognition对象。

属性

SpeechRecognition 还从其父接口{{domxref(“EventTarget”)}}继承属性。

{{domxref( “SpeechRecognition.grammars”)}}
返回并设置{{domxref(“SpeechGrammar”)}}对象的集合,这些对象表示当前将理解的语法SpeechRecognition
{{domxref( “SpeechRecognition.lang”)}}
返回并设置当前语言SpeechRecognition。如果未指定,则默认为HTML {{htmlattrxref(“lang”,“html”)}}属性值,或者如果未设置,则默认为用户代理的语言设置。
{{domxref( “SpeechRecognition.continuous”)}}
控制是为每个识别返回连续结果,还是仅返回单个结果。默认为单(false。)
{{domxref( “SpeechRecognition.interimResults”)}}
控制是否应返回中间结果(true)或不返回(false。)中间结果是尚未最终的结果(例如{{domxref(“SpeechRecognitionResult.isFinal”)}}属性false。)
{{domxref( “SpeechRecognition.maxAlternatives”)}}
设置每个结果提供的{{domxref(“SpeechRecognitionAlternative”)}}的最大数量。默认值为1。
{{domxref( “SpeechRecognition.serviceURI”)}}
指定当前SpeechRecognition用于处理实际识别的语音识别服务的位置。默认值是用户代理的默认语音服务。

事件处理程序

{{domxref( “SpeechRecognition.onaudiostart”)}}
用户代理开始捕获音频时触发。
{{domxref( “SpeechRecognition.onaudioend”)}}
用户代理完成捕获音频时触发。
{{domxref( “SpeechRecognition.onend”)}}
语音识别服务断开连接时触发。
{{domxref( “SpeechRecognition.onerror”)}}
发生语音识别错误时触发。
{{domxref( “SpeechRecognition.onnomatch”)}}
当语音识别服务返回没有明显识别的最终结果时触发。这可能涉及某种程度的识别,其不满足或超过{{domxref(“SpeechRecognitionAlternative.confidence”,“confidence”)}}阈值。
{{domxref( “SpeechRecognition.onresult”)}}
当语音识别服务返回结果时触发 - 单词或短语已被肯定识别,并且已将其传送回应用程序。
{{domxref( “SpeechRecognition.onsoundstart”)}}
在检测到任何声音可识别的语音时触发。
{{domxref( “SpeechRecognition.onsoundend”)}}
当任何声音 - 可辨认的语音 - 没有被发现时被触发。
{{domxref( “SpeechRecognition.onspeechstart”)}}
当检测到语音识别服务识别为语音的声音时触发。
{{domxref( “SpeechRecognition.onspeechend”)}}
当语音识别服务识别的语音已经停止被检测到时被触发。
{{domxref( “SpeechRecognition.onstart”)}}
当语音识别服务已经开始收听传入音频时意图识别与当前相关联的语法SpeechRecognition

方法

SpeechRecognition 还从其父接口{{domxref(“EventTarget”)}}继承方法。

{{domxref( “SpeechRecognition.abort()”)}}
停止语音识别服务监听传入音频,并且不会尝试返回{{domxref(“SpeechRecognitionResult”)}}。
{{domxref( “SpeechRecognition.start()”)}}
启动语音识别服务,听取传入的音频,意图识别与当前相关的语法SpeechRecognition
{{domxref( “SpeechRecognition.stop()”)}}
停止语音识别服务监听传入音频,并尝试使用到目前为止捕获的音频返回{{domxref(“SpeechRecognitionResult”)}}。

例子

在我们简单的语音颜色转换器示例中,我们SpeechRecognition使用{{domxref(“SpeechRecognition.SpeechRecognition”,“SpeechRecognition()”)}}构造函数创建一个新的对象实例,创建一个新的{{domxref(“SpeechGrammarList”)}},并将其设置为SpeechRecognition使用{{domxref(“SpeechRecognition.grammars”)}}属性的实例识别的语法。

在定义了一些其他值之后,我们设置它以便在发生单击事件时启动识别服务(请参阅{{domxref(“SpeechRecognition.start()”)}}。)当成功识别结果时, {{domxref(“SpeechRecognition.onresult”)}}处理程序触发,我们提取从事件对象中说出的颜色,然后将{{htmlelement(“html”)}}元素的背景颜色设置为该颜色。

var grammar ='#JSGF V1.0; 语法颜色; public <color> = aqua | azure | 米色| 浓汤| 黑色| 蓝色| 棕色| 巧克力| 珊瑚| 深红色| 青色| 紫红色| ghostwhite | 金| 一枝黄花| 灰色| 绿色| 靛蓝| 象牙| 卡其色| 薰衣草| 石灰| 亚麻| 洋红色| 栗色| 莫卡辛| 海军| 橄榄油| 橙色| 兰花| 秘鲁| 粉红色| 李子| 紫色| 红色| 三文鱼| sienna | 银| 雪| 晒黑| 蓝绿色| 蓟| 番茄| 绿松石| 紫罗兰| 白色| 黄色 ;'
var recognition = new SpeechRecognition();
var speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar,1);
recognition.grammars = speechRecognitionList;
//recognition.continuous = false;
recognition.lang ='en-US';
recognition.interimResults = false;
recognition.max替代品= 1;

var diagnostic = document.querySelector('。output');
var bg = document.querySelector('html');

document.body.onclick = function(){
  recognition.start();
  console.log('准备接收颜色命令。');
}

recognition.onresult = function(event){
  var color = event.results [0] [0] .transcript;
  diagnostic.textContent ='收到的结果:'+ color;
  bg.style.backgroundColor = color;
}

产品规格

规格 状态 评论
{{SpecName('Web Speech API','#speechreco-section','SpeechRecognition')}} {{Spec2('Web Speech API')}}

浏览器兼容性

{{COMPAT( “api.SpeechRecognition”)}}

Firefox OS权限

要在应用中使用语音识别,您需要在清单中指定以下权限:

“权限”:{
  “audio-capture”:{
    “description”:“音频捕捉”
  },
  “语音识别” : {
    “description”:“语音识别”
  }
}

您还需要一个特权应用,因此您还需要包含此应用:

  “类型”:“特权”

也可以看看

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition