Sun Java Solaris Communities My SDN Account
 
API Markup Language Specification

API Markup Language Specification

 
Contents  Previous  Next
This document is the technical specification for the Java Speech API Markup Language (JSML). JSML is a platform-independent, vendor-independent format for text input to speech synthesizers. JSML is an XML application (eXtensible Markup Language) that enables markup of text input to speech synthesizers to indicate document structure, control pronunciation of words, and guide the phrasing, emphasis, pitch, speaking rate and other characteristics of speech output. These features enable users and applications to produce speech output that is more natural and understandable than unmarked text.

Review Comments

This version of the JSML specification is a beta draft. We are seeking public input concerning the Java Speech API Markup Language specification. Send your comments and suggestions to:

Please be sure to include the version number and date of the document you are reviewing with your comments. The earlier we receive your feedback, the more likely it will be taken into consideration for the next update.

About JSML V0.6

This revision of JSML introduces significant changes from v0.5 (a detailed list of changes is included at the end of the preface). These changes reflect experience with JSML usage since its first release, movements in the XML specification (on which JSML is based), and advances made by the speech synthesis community on text markup through the SABLE specification (which is derived, in part, from JSML v0.5).

Several of the changes introduces with JSML in this release break compatibility with existing JSML documents and existing JSAPI speech synthesis implementations. While we were reluctant to break compatibility, these changes are important to ensuring that JSML provides a robust standard that will support a diverse set of application needs for many years, and to ensure JSML is consistent with other applications of XML.

We recommend that speech synthesis implementations move to the latest specification as soon as practical. If an implementation continues to support the old specification it should provide a warning whenever an old JSML document is detected and that support should be phased out to ensure long-term consistency of JSAPI and JSML implementations.

Technical Scope

This specification describes a format for marked-up text input to a speech synthesizer. However, this specification does not address the issues listed below. These programmatic issues are covered in the Java Speech API specification which defines the software interface for speech synthesizers as an extension to the Java platform.

  • Mechanisms for providing marked-up text to a speech synthesizer.
  • Software control of the output of annotated text such as queuing, pause and resume, and variation of pitch and speaking rate.
  • Mechanisms for receiving notification of synthesis events including marker events requested in JSML texts.
  • Error handling capabilities including detection of incorrect markup.
  • Vocabulary management issues such as provision of pronunciations.

Web Resources

For more information about the Java Speech API and for the latest information on the Java Speech API Markup Language visit the Java Speech API home page:

To obtain information about other Java Media APIs visit:

Mailing Lists

Discussion lists have been set up for everyone interested in the Java Speech API, the Java Speech API Grammar Format specification, and the Java Speech API Markup Language. The javaspeech-announce mailing list carries important announcements about releases and updates. The javaspeech-interest mailing list is for open discussion of the Java Speech API and the associated specifications. To subscribe to these mailing lists send email containing either or both of the following lines:

    subscribe javaspeech-announce YOUR NAME
    subscribe javaspeech-interest YOUR NAME

to:

To send messages to the interest list, send email to:

The javaspeech-announce mailing list is moderated and it is not possible to send email to that list.

To unsubscribe from the javaspeech-announce or javaspeech-interest lists, send email with either of the following lines:

    signoff javaspeech-announce
    signoff javaspeech-interest

to:

Future Releases

The field of speech synthesis is continuing to evolve with ongoing research and new products. As new functionality becomes widely supportable, JSML can be extended to support that functionality. Some capabilities that may be considered in future releases include:

  • Elements of attributes to indicate intonational patterns for phrases and other structural entities.
  • An element or attribute that enable a change of language within a document.
  • A new element or an extension to the "phoneme" element to specify detailed phonetic strings with pitch and timing information.
  • An element that allows audio files to be embedded within or synchronized with text output.

Revision History

Version 0.6

  • All tags and attribute names changed to lower case since this is the convention for XML applications. Where practical, tag and attribute names have been changed so that they are not abbreviated.
  • The "div" element subsumes the functionality of the "PARA" and "SENT" by specifying the structural entity type as an element attribute. This provides a smoother path for future revisions to add new structure types (e.g. discourse steps that have special spoken characteristics).
  • Implicit paragraphs are no longer supported within the "div" element.
  • Added a "voice" element to request changes in speaking voice.
  • Validation behavior is specified in conventional XML terminology.
  • Added a language attribute to the top-level "jsml" element that indicates the language contained by the document.
  • The functionality of the "SAYAS" element in JSML v0.5 is split into a new "phoneme" element and a modified "sayas" element.
  • The "EMP" element is "emphasis" and is not legal as an empty element.
  • The "BREAK" element is "break" and its "MSECS" attribute has changed to the "time" attribute with a standard CSS2 value format.
  • Other element and attribute name changes: "PROS" tag changed to "prosody "; "VOL" attribute of "prosody" changed to "volume"; "ENGID" attribute of "engine" element changed to "name"
  • The attributes of the "prosody" element now accept descriptive values (e.g. "fast", "slow") as alternatives to numerical values.

Version 0.5

  • First public beta release of JSML.

Contents  Previous  Next

Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.