From ec8cccc29b5f37df43a7dd56777dc09670a5e671 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Tue, 3 Feb 2015 18:14:22 +0900 Subject: [PATCH] event fix + corrections from errata --- webspeechapi/webspeechapi-tests.ts | 11 ++++--- webspeechapi/webspeechapi.d.ts | 49 +++++++++++++++++++----------- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/webspeechapi/webspeechapi-tests.ts b/webspeechapi/webspeechapi-tests.ts index 3479f897db..91e623b0ff 100644 --- a/webspeechapi/webspeechapi-tests.ts +++ b/webspeechapi/webspeechapi-tests.ts @@ -44,7 +44,7 @@ declare var select: HTMLSelectElement; /* 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` +`event.results.final` -> `event.results[i].isFinal` (Recorded as Errata 02) */ declare var textarea: HTMLTextAreaElement; declare var button: HTMLButtonElement; @@ -57,7 +57,7 @@ declare var button: HTMLButtonElement; recognition.onresult = function (event) { for (var i = event.resultIndex; i < event.results.length; ++i) { - if (event.results[i].final) { + if (event.results[i].isFinal) { textarea.value += event.results[i][0].transcript; } } @@ -83,7 +83,8 @@ declare var button: HTMLButtonElement; // Example 4 /* This example has a change from the one in spec. -`recognition.interim = true;` -> `recognition.interimResults = true;` (Recorded as Errata 1) +`recognition.interim = true;` -> `recognition.interimResults = true;` (Recorded as Errata 01) +`event.results[i].final` -> `event.results[i].isFinal` (Recorded as Errata 02) */ declare var button: HTMLButtonElement; declare var final_span: HTMLSpanElement; @@ -100,7 +101,7 @@ declare var interim_span: HTMLSpanElement; var final = ""; var interim = ""; for (var i = 0; i < event.results.length; ++i) { - if (event.results[i].final) { + if (event.results[i].isFinal) { final += event.results[i][0].transcript; } else { interim += event.results[i][0].transcript; @@ -135,7 +136,7 @@ declare var interim_span: HTMLSpanElement; // Example 1 /* This example has a change from the one in spec. -`SpeechSynthesisUtterance('Hello World')` -> `new SpeechSynthesisUtterance('Hello World')` +`SpeechSynthesisUtterance('Hello World')` -> `new SpeechSynthesisUtterance('Hello World')` (Recorded as Errata 09) */ () => { speechSynthesis.speak(new SpeechSynthesisUtterance('Hello World')); diff --git a/webspeechapi/webspeechapi.d.ts b/webspeechapi/webspeechapi.d.ts index 47e7ce5615..1b554af6a0 100644 --- a/webspeechapi/webspeechapi.d.ts +++ b/webspeechapi/webspeechapi.d.ts @@ -3,6 +3,10 @@ // Definitions by: SaschaNaz // Definitions: https://github.com/borisyankov/DefinitelyTyped +// Spec version: 19 October 2012 +// Errata version: 6 June 2014 +// Corrected unofficial spec version: 6 June 2014 + interface SpeechRecognition extends EventTarget { grammars: SpeechGrammarList; lang: string; @@ -15,16 +19,16 @@ interface SpeechRecognition extends EventTarget { stop(): void; abort(): void; - onaudiostart: (ev: SpeechRecognitionEvent) => any; - onsoundstart: (ev: SpeechRecognitionEvent) => any; - onspeechstart: (ev: SpeechRecognitionEvent) => any; - onspeechend: (ev: SpeechRecognitionEvent) => any; - onsoundend: (ev: SpeechRecognitionEvent) => any; + onaudiostart: (ev: Event) => any; + onsoundstart: (ev: Event) => any; + onspeechstart: (ev: Event) => any; + onspeechend: (ev: Event) => any; + onsoundend: (ev: Event) => any; onresult: (ev: SpeechRecognitionEvent) => any; onnomatch: (ev: SpeechRecognitionEvent) => any; onerror: (ev: SpeechRecognitionError) => any; - onstart: (ev: SpeechRecognitionEvent) => any; - onend: (ev: SpeechRecognitionEvent) => any; + onstart: (ev: Event) => any; + onend: (ev: Event) => any; } interface SpeechRecognitionStatic { prototype: SpeechRecognition; @@ -47,7 +51,8 @@ interface SpeechRecognitionResult { length: number; item(index: number): SpeechRecognitionAlternative; [index: number]: SpeechRecognitionAlternative; - final: boolean; + /* Errata 02 */ + isFinal: boolean; } interface SpeechRecognitionResultList { @@ -88,16 +93,21 @@ interface SpeechGrammarListStatic { declare var SpeechGrammarList: SpeechGrammarListStatic; declare var webkitSpeechGrammarList: SpeechGrammarListStatic; -interface SpeechSynthesis { +/* Errata 08 */ +interface SpeechSynthesis extends EventTarget { pending: boolean; speaking: boolean; paused: boolean; + /* Errata 11 */ + onvoiceschanged: (ev: Event) => any; + speak(utterance: SpeechSynthesisUtterance): void; cancel(): void; pause(): void; resume(): void; - getVoices(): SpeechSynthesisVoiceList; + /* Errata 05 */ + getVoices(): SpeechSynthesisVoice[]; } interface SpeechSynthesisGetter { @@ -110,14 +120,16 @@ declare var speechSynthesis: SpeechSynthesis; interface SpeechSynthesisUtterance extends EventTarget { text: string; lang: string; - voiceURI: string; + /* Errata 07 */ + voice: SpeechSynthesisVoice; volume: number; rate: number; pitch: number; onstart: (ev: SpeechSynthesisEvent) => any; onend: (ev: SpeechSynthesisEvent) => any; - onerror: (ev: ErrorEvent) => any; + /* Errata 12 */ + onerror: (ev: SpeechSynthesisErrorEvent) => any; onpause: (ev: SpeechSynthesisEvent) => any; onresume: (ev: SpeechSynthesisEvent) => any; onmark: (ev: SpeechSynthesisEvent) => any; @@ -131,21 +143,22 @@ interface SpeechSynthesisUtteranceStatic { declare var SpeechSynthesisUtterance: SpeechSynthesisUtteranceStatic; interface SpeechSynthesisEvent extends Event { + /* Errata 08 */ + utterance: SpeechSynthesisUtterance; charIndex: number; elapsedTime: number; name: string; } +/* Errata 12 */ +interface SpeechSynthesisErrorEvent extends SpeechSynthesisEvent { + error: string; +} + interface SpeechSynthesisVoice { voiceURI: string; name: string; lang: string; localService: boolean; default: boolean; -} - -interface SpeechSynthesisVoiceList { - length: number; - item(index: number): SpeechSynthesisVoice; - [index: number]: SpeechSynthesisVoice; } \ No newline at end of file