
  The VoiceMan protocol specification

  Michael Pozhidaev <msp@altlinux.org> March 2010

This file declares exact description of VoiceMan intercommunication
protocol as it is implemented in VOiceMan speech processing daemon
since version 1.5 and backward compatible with previous versions.

1. Intro

2. General command format

3. List of available commands

4. Not implemented features

1. Intro

The VoiceMan intercommunication protocol is used to provide speech
output stream in text form generated by a set of applications
(e.g. screen readers used by blind people) to central processing
daemon to be synthesized and played. The daemon used some rules to
prevent concurrent speech playback from different sources. This
behavior differs speech servers from other types of servers, because
speech server does not guarantee complete processing of all received
data. Some portion of text can be silently ignored due to cancelling
command from another client. This situation is absolutely valid and
permitted. Since we cannot require any assurance of service quality
the server does not return any result code to indicate if some command
was successfully processed or was ignored.

However, there are cases when some callback from the server is still
required. Fore example, screen reading software can show user the
progress to indicate what part of text was already spoken or wait the
"silence" notification to transmit next part of text. Thus, we have
required feature sometimes called speech indices, but it is not
implemented in current version of VoiceMan. Last section of this file
is dedicated to this discussion.

In following two sections we will describe general command format in
VoiceMan protocol and will list all available commands with full
description of their argument.
