- From: Glen Shires <gshires@google.com>
- Date: Fri, 12 Oct 2012 23:46:18 -0700
- To: Dominic Mazzoni <dmazzoni@google.com>, public-speech-api@w3.org
- Message-ID: <CAEE5bcjGehc1dmDwX8Nz3BBdNrhxTi5ahwg_0+i_f2bxkOF4hQ@mail.gmail.com>
I've updated the spec with these changes: https://dvcs.w3.org/hg/speech-api/rev/18ba5d8b0530 As always, the current draft spec is at: http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html /Glen Shires On Wed, Oct 10, 2012 at 4:02 PM, Glen Shires <gshires@google.com> wrote: > I think adding an onerror event is the best option because of: clarity of > what it means (as opposed to re-purposing onend) and because it's easy for > an author to assign both onerror and onend to the same function if he > desires (and to use event.type to distinguish). Therefore I propose the > following definition. If there's no disagreement, I will add this to the > spec on Friday. > > interface SpeechSynthesisUtterance { > ... > attribute Function onerror; > }; > > error event > Fired if there was an error that prevented successful speaking of this > utterance. If this event fires, the onend event MUST not be fired for this > utterance. > > > /Glen Shires > > On Tue, Oct 9, 2012 at 9:10 AM, Dominic Mazzoni <dmazzoni@google.com>wrote: > >> There's one case that isn't covered in the speech synthesis spec: what >> happens if there's an error with a particular utterance that isn't detected >> at the time when it's enqueued? >> >> As an example, suppose the author writes malformed SSML, but the speech >> is implemented in a remote server so the fact that there was an error isn't >> discovered until after several utterances have been enqueued? >> >> Possible solutions: >> * Yet another callback, onerror - that indicates that a particular >> utterance was not and will not be spoken, because there was an error >> processing that particular utterance. Other utterances are unaffected; if >> there was another one in the queue after it, it will start speaking next >> (or error as well). >> * An extra argument in SpeechSynthesisEvent when an 'end' event is fired, >> indicating success or failure, along with an error message. The downside is >> that these arguments wouldn't apply to all callbacks, but the upside is >> that clients could only listen to onend and be sure to get a callback for >> every utterance, rather than needing to listen to onend and onerror. >> * Or, a compromise could be that when there's an error, both onerror and >> onend get fired, in that order - to make things easier for clients. >> >> I think it'd be too limiting to expect that errors could be caught >> synchronously before the call to speak() returns. Web APIs are moving in >> the direction of being more asynchronous, and when speech is likely to be >> implemented remotely, or even locally in a different thread or process, we >> should let speak() return immediately and have an error callback later. >> >> - Dominic >> >> >
Received on Saturday, 13 October 2012 06:47:27 UTC