mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-23 04:49:15 +08:00
indices + tests
This commit is contained in:
152
webspeechapi/webspeechapi-tests.ts
Normal file
152
webspeechapi/webspeechapi-tests.ts
Normal file
@@ -0,0 +1,152 @@
|
||||
///<reference path="webspeechapi.d.ts" />
|
||||
|
||||
/*
|
||||
Examples from the spec:
|
||||
https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#examples-recognition
|
||||
*/
|
||||
|
||||
// 6.1 Speech Recognition Examples
|
||||
|
||||
// Example 1
|
||||
declare var q: HTMLInputElement;
|
||||
() => {
|
||||
var recognition = new SpeechRecognition();
|
||||
recognition.onresult = function (event) {
|
||||
if (event.results.length > 0) {
|
||||
q.value = event.results[0][0].transcript;
|
||||
q.form.submit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Example 2
|
||||
declare var select: HTMLSelectElement;
|
||||
() => {
|
||||
var recognition = new SpeechRecognition();
|
||||
recognition.maxAlternatives = 10;
|
||||
recognition.onresult = function (event) {
|
||||
if (event.results.length > 0) {
|
||||
var result = event.results[0];
|
||||
for (var i = 0; i < result.length; ++i) {
|
||||
var text = result[i].transcript;
|
||||
select.options[i] = new Option(text, text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
select.options.length = 0;
|
||||
recognition.start();
|
||||
}
|
||||
}
|
||||
|
||||
// Example 3
|
||||
/*
|
||||
This example has some changes from the one in spec.
|
||||
`var i = resultIndex` -> `var i = event.resultIndex` (Recorded as Errata 16)
|
||||
`event.results.final` -> `event.results[i].final`
|
||||
*/
|
||||
declare var textarea: HTMLTextAreaElement;
|
||||
declare var button: HTMLButtonElement;
|
||||
() => {
|
||||
var recognizing: boolean;
|
||||
var recognition = new SpeechRecognition();
|
||||
recognition.continuous = true;
|
||||
reset();
|
||||
recognition.onend = reset;
|
||||
|
||||
recognition.onresult = function (event) {
|
||||
for (var i = event.resultIndex; i < event.results.length; ++i) {
|
||||
if (event.results[i].final) {
|
||||
textarea.value += event.results[i][0].transcript;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function reset() {
|
||||
recognizing = false;
|
||||
button.innerHTML = "Click to Speak";
|
||||
}
|
||||
|
||||
function toggleStartStop() {
|
||||
if (recognizing) {
|
||||
recognition.stop();
|
||||
reset();
|
||||
} else {
|
||||
recognition.start();
|
||||
recognizing = true;
|
||||
button.innerHTML = "Click to Stop";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Example 4
|
||||
/*
|
||||
This example has a change from the one in spec.
|
||||
`recognition.interim = true;` -> `recognition.interimResults = true;` (Recorded as Errata 1)
|
||||
*/
|
||||
declare var button: HTMLButtonElement;
|
||||
declare var final_span: HTMLSpanElement;
|
||||
declare var interim_span: HTMLSpanElement;
|
||||
() => {
|
||||
var recognizing: boolean;
|
||||
var recognition = new SpeechRecognition();
|
||||
recognition.continuous = true;
|
||||
recognition.interimResults = true;
|
||||
reset();
|
||||
recognition.onend = reset;
|
||||
|
||||
recognition.onresult = function (event) {
|
||||
var final = "";
|
||||
var interim = "";
|
||||
for (var i = 0; i < event.results.length; ++i) {
|
||||
if (event.results[i].final) {
|
||||
final += event.results[i][0].transcript;
|
||||
} else {
|
||||
interim += event.results[i][0].transcript;
|
||||
}
|
||||
}
|
||||
final_span.innerHTML = final;
|
||||
interim_span.innerHTML = interim;
|
||||
}
|
||||
|
||||
function reset() {
|
||||
recognizing = false;
|
||||
button.innerHTML = "Click to Speak";
|
||||
}
|
||||
|
||||
function toggleStartStop() {
|
||||
if (recognizing) {
|
||||
recognition.stop();
|
||||
reset();
|
||||
} else {
|
||||
recognition.start();
|
||||
recognizing = true;
|
||||
button.innerHTML = "Click to Stop";
|
||||
final_span.innerHTML = "";
|
||||
interim_span.innerHTML = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 6.2 Speech Synthesis Examples
|
||||
|
||||
// Example 1
|
||||
/*
|
||||
This example has a change from the one in spec.
|
||||
`SpeechSynthesisUtterance('Hello World')` -> `new SpeechSynthesisUtterance('Hello World')`
|
||||
*/
|
||||
() => {
|
||||
speechSynthesis.speak(new SpeechSynthesisUtterance('Hello World'));
|
||||
}
|
||||
|
||||
//Example 2
|
||||
() => {
|
||||
var u = new SpeechSynthesisUtterance();
|
||||
u.text = 'Hello World';
|
||||
u.lang = 'en-US';
|
||||
u.rate = 1.2;
|
||||
u.onend = function (event) { alert('Finished in ' + event.elapsedTime + ' seconds.'); }
|
||||
speechSynthesis.speak(u);
|
||||
}
|
||||
5
webspeechapi/webspeechapi.d.ts
vendored
5
webspeechapi/webspeechapi.d.ts
vendored
@@ -46,12 +46,14 @@ interface SpeechRecognitionAlternative {
|
||||
interface SpeechRecognitionResult {
|
||||
length: number;
|
||||
item(index: number): SpeechRecognitionAlternative;
|
||||
[index: number]: SpeechRecognitionAlternative;
|
||||
final: boolean;
|
||||
}
|
||||
|
||||
interface SpeechRecognitionResultList {
|
||||
length: number;
|
||||
item(index: number): SpeechRecognitionResult;
|
||||
[index: number]: SpeechRecognitionResult;
|
||||
}
|
||||
|
||||
interface SpeechRecognitionEvent extends Event {
|
||||
@@ -75,6 +77,7 @@ declare var webkitSpeechGrammar: SpeechGrammarStatic;
|
||||
interface SpeechGrammarList {
|
||||
length: number;
|
||||
item(index: number): SpeechGrammar;
|
||||
[index: number]: SpeechGrammar;
|
||||
addFromURI(src: string, weight: number): void;
|
||||
addFromString(string: string, weight: number): void;
|
||||
}
|
||||
@@ -102,6 +105,7 @@ interface SpeechSynthesisGetter {
|
||||
}
|
||||
interface Window extends SpeechSynthesisGetter {
|
||||
}
|
||||
declare var speechSynthesis: SpeechSynthesis;
|
||||
|
||||
interface SpeechSynthesisUtterance extends EventTarget {
|
||||
text: string;
|
||||
@@ -143,4 +147,5 @@ interface SpeechSynthesisVoice {
|
||||
interface SpeechSynthesisVoiceList {
|
||||
length: number;
|
||||
item(index: number): SpeechSynthesisVoice;
|
||||
[index: number]: SpeechSynthesisVoice;
|
||||
}
|
||||
Reference in New Issue
Block a user