1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
/*
* Copyright (C) 2012 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// https://w3c.github.io/speech-api/#speechrecognition
enum AvailabilityStatus {
// On-device speech recognition is not supported.
"unavailable",
// On-device speech recognition is supported but not installed or downloading.
"downloadable",
// On-device speech recognition is supported and downloading.
"downloading",
// On-device speech recognition is supported and installed.
"available",
};
dictionary SpeechRecognitionOptions {
required sequence<DOMString> langs; // BCP-47 language tags
boolean processLocally = false; // Instructs the recognition to be performed on-device. If `false` (default), any available recognition method may be used.
};
[
ActiveScriptWrappable,
LegacyWindowAlias=webkitSpeechRecognition,
LegacyWindowAlias_Measure,
LegacyWindowAlias_RuntimeEnabled=ScriptedSpeechRecognition,
Exposed=Window, RuntimeEnabled=UnprefixedSpeechRecognition
] interface SpeechRecognition : EventTarget {
[CallWith=ExecutionContext, Measure] constructor();
// recognition parameters
[Measure] attribute SpeechGrammarList grammars;
attribute DOMString lang;
attribute boolean continuous;
attribute boolean interimResults;
attribute unsigned long maxAlternatives;
[RuntimeEnabled=OnDeviceWebSpeechAvailable] attribute boolean processLocally;
[RuntimeEnabled=WebSpeechRecognitionContext] attribute SpeechRecognitionPhraseList phrases;
// methods to drive the speech interaction
[RaisesException, Measure] void start();
[RaisesException, Measure, RuntimeEnabled=MediaStreamTrackWebSpeech] void start(MediaStreamTrack track);
[ImplementedAs=stopFunction] void stop();
void abort();
[
CallWith=ScriptState,
RaisesException,
RuntimeEnabled=OnDeviceWebSpeechAvailable
] static Promise<AvailabilityStatus> available(SpeechRecognitionOptions options);
[
CallWith=ScriptState,
RaisesException,
RuntimeEnabled=InstallOnDeviceSpeechRecognition
] static Promise<boolean> install(SpeechRecognitionOptions options);
// event methods
attribute EventHandler onaudiostart;
attribute EventHandler onsoundstart;
attribute EventHandler onspeechstart;
attribute EventHandler onspeechend;
attribute EventHandler onsoundend;
attribute EventHandler onaudioend;
attribute EventHandler onresult;
attribute EventHandler onnomatch;
attribute EventHandler onerror;
attribute EventHandler onstart;
attribute EventHandler onend;
};
|