mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
153 lines
4.1 KiB
TypeScript
153 lines
4.1 KiB
TypeScript
///<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].isFinal` (Recorded as Errata 02)
|
|
*/
|
|
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].isFinal) {
|
|
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 01)
|
|
`event.results[i].final` -> `event.results[i].isFinal` (Recorded as Errata 02)
|
|
*/
|
|
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].isFinal) {
|
|
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')` (Recorded as Errata 09)
|
|
*/
|
|
() => {
|
|
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);
|
|
} |