Editor's Guide to Silent Markup Language (SML)

Navigable Text

The
SpeakAlong software for Mac OS X combines an advanced text-to-speech program with electronic texts in the form of plain text with special annotations to provide users with navigable audio books. These annotations are written according to a simple specification called the Silent Markup Language (or SML).

SML was invented here at
ThingTone Software to make it easy to place text navigation markers in a standard text file without interfering with speech synthesis. The markup is "silent" because it uses only characters that are ignored by the speech synthesis engine. In other words, the markup characters are not spoken.

Many of the texts we have edited are lengthy and benefit the listener by providing an interactive, hierarchical table of contents and location cues throughout the listening experience. The reader sees the structure of a large document within the SpeakAlong reader and can jump to a particular chapter or section of the spoken text without the need to search or scroll.

SML enables this kind of text navigation as well as the unique ability to display the current table of contents headings as a reading progresses from one section to the next. SpeakAlong can open and read any plain text document (usually having a .txt extension), too. But such texts can offer no navigational features to the user, and will be of limited use.

Offering texts having SML annotations (always having a .book extension) is easy to do can greatly improve the reading experience of your listener.

A Working Example

Here is an excerpt of some sample text from a plain text file called "Sample.txt":

The Book Title

by Book Author

Chapter 1: First Test Chapter

The text of chapter one goes here as you would expect. The text of chapter one goes here as you would expect. The text of chapter one goes here as you would expect.


If one were to open the "Sample.txt" file in SpeakAlong, the "Section" menu for navigating through the document would be empty, providing no information about the content or structure of the document.

After annotation using an ordinary text editor we can add SML to make the complete, edited text look like what you see below. This file is then saved under the new name "Sample.book":

:: The Book Title

by Book Author

:: :: Chapter 1: First Test Chapter

The text of chapter one goes here as you would expect. The text of chapter one goes here as you would expect. The text of chapter one goes here as you would expect.

:: :: Chapter 2: Second Test Chapter

The text of chapter two goes here as you would expect. The text of chapter two goes here as you would expect. The text of chapter two goes here as you would expect.

:: :: :: Part 1: First Part of Chapter Two

This is for part one of the second chapter. This is for part one of the second chapter. This is for part one of the second chapter. This is for part one of the second chapter.

:: :: :: Part 2: Second Part of Chapter Two

This is for part two of the second chapter. This is for part two of the second chapter. This is for part two of the second chapter. This is for part two of the second chapter.

:: :: :: Part 3: Third Part of Chapter Two

This is for part three of the second chapter. This is for part three of the second chapter. This is for part three of the second chapter. This is for part three of the second chapter.

:: :: Chapter 3: Third Test Chapter

The text of the third and last chapter goes here. The text of the third and last chapter goes here. The text of the third and last chapter goes here. The text of the third and last chapter goes here.


When the "Sample.book" text is opened up for reading in SpeakAlong the "Section" menu will be filled with a meaningful navigation hierarchy for this text. This screenshot shows the resulting table of contents generated for this book:

Sample-TOC


That's all there is to it. The "Sample.book" file is ready to be read in SpeakAlong or distributed to other SpeakAlong users for them to enjoy.


The SML 1.0 General Format

The SML 1.0 specification is so simple it can be described formally in just a few words. Future versions of the specification will include an SML version identifier in each text to help the reader interpret the text. With version 1.0 this is not needed and any version of SpeakAlong will correctly interpret SML 1.0.

Title Markup

::{space}{title-text}

First Heading Markup

::{space}::{space}{heading-text}

Second Heading Markup

::{space}::{space}::{space}{heading-text}

Third Heading Markup (and so on for greater levels of indentation)

::{space}::{space}::{space}::{space}{heading-text}

Symbol Definitions

The "{space}" symbol means a single whitespace character.
Any line containing SML markings must begin with the two-colon symbol ("::") shown above.
Text labeled "{title-text}" or "{heading-text}" must fit on a single line with no breaks.