[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Protocol for speaking daemon (comments expected)



Having given consideration to the different ideas for 'speak', and the
desire for a queue based server with history capability, I have come up with
a protocol specification to use in the next release of the speak server
(speak/98? :), borrowing from nntp of all places.

As I envision the speak protocol, the client creates a tcp/ip connection, as
before, and then issues commands.  The 'say' command, like a nntp post,
would be followed by any number of lines of free-form 'text' to be spoken,
and a 'end of text' marker (a empty line with a '.', as in nntp 'post').
The server will then reply with a server generated 'message id' number for
the speech event.

To synchronize speech, a 'wait' command can be used which returns a message
when the specified message 'id' has been 'spoken'.  Hence, a synchronized
session might look something like this:

client                                                            server

say [options...]
the system will go down in 10 seconds
.

END-00127    (message queue id)
wait 00127

END-00127    (when spoken)
(sleep 5 seconds after wait sync's us with tts output)
say [options]
the system will go down in 5 seconds
.

END-00128

Presumably, one can have a 'repeat <msgid>' to recall a spoken phrase from
the history log, a 'cancel <msgid>' to stop playing or remove an unplayed
message from the queue, etc.

set commands can be introduced to specify global parameters for a session,
such as: set language = English.

Another obvious command would be query <msgid> to query the current status
of a message.

This approach would seem to meet most of the desired functionality within
the server I have heard requested, and would be more consistent with the
implementation of other internet protocols (such as nntp, pop, ftp, http,
etc :).

The "say" command can have options, such as to specify mode (literal, spell,
or speak), pitch and speed (assuming the tts supports it), etc.



---
Send your message for blinux-list to blinux-list@redhat.com
Blinux software archive at ftp://leb.net/pub/blinux
Blinux web page at http://leb.net/blinux
To unsubscribe send mail to blinux-list-request@redhat.com
with subject line: unsubscribe