- From: Dominic Mazzoni <dmazzoni@google.com>
- Date: Tue, 11 Sep 2012 16:06:20 -0700
- To: Glen Shires <gshires@google.com>
- Cc: public-speech-api@w3.org
Sorry for being unclear. What I meant was to just extend the onstart
and onend events already in the spec.
- Dominic
On Tue, Sep 11, 2012 at 2:48 PM, Glen Shires <gshires@google.com> wrote:
> Is this preferable to:
>
> interface SpeechSynthesisUtterance {
> ...
> attribute Function onstart;
> attribute Function onend;
>
>
> On Tue, Sep 11, 2012 at 1:19 AM, Dominic Mazzoni <dmazzoni@google.com>
> wrote:
>>
>> I propose adding a mechanism by which JavaScript clients can attach
>> event listeners to an utterance to get notified when it starts
>> speaking, when it finishes, and optionally with updates of the
>> progress.
>>
>> Here's what could be added to the spec:
>>
>> callback SpeechSynthesisStartCallback = void();
>> callback SpeechSynthesisEndCallback = void();
>> callback SpeechSynthesisUpdateCallback = void(DOMString markerName,
>> unsigned long charIndex, float elapsedTime);
>>
>> interface SpeechSynthesisUtterance {
>> ...
>> attribute SpeechSynthesisStartCallback onstart;
>> attribute SpeechSynthesisEndCallback onend;
>> attribute SpeechSynthesisUpdateCallback onupdate;
>> }
>>
>> I propose that "onstart" and "onend" must be supported for an
>> implementation to be fully compliant. There are too many applications
>> that can't be implemented without these.
>>
>> I think "onupdate" should be optional because it depends on what's
>> possible in the speech engine. If the speech engine provides
>> word-level information, for example, then every time there's a break
>> between works it'd call onupdate() with the character index (into the
>> original utterance string) and the elapsed time since speech began. An
>> engine might also notify when certain named "markers" (e.g. in SSML)
>> are reached.
>>
>> Other ideas - in the Chrome TTS extension API I also implemented these
>> events - what do you think?
>>
>> * Error
>> * Cancelled (stopAndFlushQueue called before it ever started playing)
>> * Interrupted (stop called while it was in the middle of speaking)
>>
>> - Dominic
>>
>
Received on Tuesday, 11 September 2012 23:06:47 UTC