About IO Devices


What is the V+ Text to Speech Device?

The V+ Text-to-Speech I/O Device is a software component add-on to V+, SimPhonics' visual programming language. This component adds synthetic speech generation to V+ via an I/O by turning text files into spoken words. This I/O device allows the program to accurately read ASCII text. Different programming aids/components/commands are used to control the speech.

One of the first uses for this device is an Automatic Terminal Information Service (ATIS) simulation used in simulation and training devices. ATIS broadcasts are used by airports to notify arriving and departing pilots of the current surface weather conditions and other information of importance to arriving and departing aircraft. See ATIS Example for more information.

Tip: Sample ATIS V+ design, configuration and text template files (Atis.des, and Atis.txt) are downloaded with V+ and are located in your C:\Program Files\VPLus\Samples\Simple ATIS directory.


Why use the V+ TTS Device?

Why use the V+ Text to Speech Device?

There are two advantages to using the V+ Text to Speech (TTS) device. The first is better speech quality. The second is the ability to change the speech output in real time, without stopping the program.

Better Speech Quality

Current TTS systems have some common shortcomings: the speech often sounds unnatural because the rhythm, intonation and phonetic details are poor. As a result, listening to such speech requires a greater cognitive effort. V+ uses control tags to improve the prosody of text-to-speech translation, making it easier to understand the speech.

Change Speech Output in Real-time

V+ uses two methods for changing speech output in real-time, dynamic text and dynamic template filenames.

  • Dynamic text uses port input values to "change speech output from within a text file."

  • Dynamic template filenames use port input values to "change speech output by switching text template files."

Both of these methods are performed during run-time. These features can be combined to allow almost unlimited real-time speech output possibilities.


How V+ Generates Speech

V+ uses four basic components to develop synthetic speech programs. These are text template(s), the Text-to-Speech I/O device, the V+ Run-time System and a V+ design. See Using Dynamic Text for a graphical description of how these components interact.

Text Template

An ASCII text template, filename.txt, is created. The text template contains the following:

  • Port Assignments

  • Commands (text, script and control tags that control the speech output)

V+ Text-to-Speech I/O Device

The TTS I/O device is downloaded. This device includes the speech engine. It is then available for configuration through the V+ Run-time System.

V+ Run-time System

The V+ Run-time System configuration menu is used to configure the TTS I/O device. During configuration, the following occurs:

  • A text template (or directory) is assigned to the device.

  • The number of ports is designated. The ports are automatically loaded into the Port List in the V+ Development System, making them available to the V+ Development System.

V+ Design

Using the V+ Development System, the developer creates a design, matching the ports on the worksheet with the ports listed in the Text Template. The ports are used to connect data from text template, via the Text to Speech device, to the V+ design.


A Word on Speech Engines

The Text-to-Speech device uses a speech engine and a text file to generate speech. Any SAPI 4.0 compliant speech engine may be used, although the Microsoft speech engine is shipped with the software component. The text file, also called a template file is created by the developer.

The template text is parsed when the speech is started, or just before a repeat of the speech template. The parsing removes the comments and converts the ports to string values. The speech text buffer is then generated based on any conditionals within the template file. The speech text buffer is then passed to the speech engine for generation of synthetic speech.


Installing the TTS I/O Device

Text-to-Speech Device installation is simple and requires only a few steps. First, obtain the media that you will use for the installation. The device is shipped on CD-ROM or can be downloaded form the Internet. The part numbers for the media is TTS1DEV-X86-C.

The I/O Device DLL is installed in the same directory as the V+ executables, while documentation and samples are located in the following V+ subdirectory: c:\Program Files\VPLus\Designs\Samples\TTS\ATIS\ directory.

To download the Text-to-Speech Device:

1. Close all programs.

2. Select the "Download V+ Text to Speech I/O Device for V+ " link found on SimPhonics webpage: http://www.simphonics.com/VPLUSTTS/default.htm.

3. Select the "Run this program from its current location" option.

4. Select OK.

5. Select Yes to install and run the "SETUPEX.EXE."

6. Select Yes to install the device.

7. Use the Installshield wizard to complete the installation

Note: Once the installation is complete, you may be prompted to reboot your computer.


Configuring the Device

Configuring the TTS I/O Device

Text-to-Speech (TTS) configuration includes assigning a text template or directory, indicating the number of ports, selecting the audio output destination, testing the speech output and modifying the dictionary.

The text templates should be created before configuring the device. See About Text Templates for more information.

To configure the device:

1. Open the .vne file in the V+ Run Time System.

2. Select Configure. This opens the Platform Configure dialog box.

3. Double click the V+ Text to Speech Device. This enables the Configure button.

4. Select the [image] button. This opens the Speech Synthesizer Configuration dialog box.

5. Enable either the dynamic or static filename port.

To enable dynamic filename ports:

a. Select the [image] check box.

b. Select the [image] button located next to the TTS Template Directory field.

c. Locate and select the directory.

To use static filename ports:

a. Deselect the "Enable Dynamic Filename Ports" check box.

b. Select the [image] button located next to the TTS Template Filename field.

c. Locate and select the ASCII text template.

6. Enter the number of ports in the Number of Speech Tag Ports box.

7. Select the audio output destination from the Audio Output Destination drop box.

8. Select the OK button to close the Speech Synthesizer Configuration dialog box.

9. Select the OK button to close the Platform Configure dialog box.

10. Use one of the following methods to save the configuration to the .vne file:

  • Select File > Save.

  • Select the [image] button.


Testing the Speech Output

The Speech Synthesizer Configuration dialog box is used to test the speech output.

To test speech output:

1. Select Configure. This opens the Platform Configure dialog box.

2. Select the V+ Text to Speech Device from the list of I/O devices.

3. Select the [image] button. This opens the Speech Synthesizer Configuration dialog box.

4. Enter the text in the Test Speech Output box.

5. Select the [image] button.

6. When finished, select the OK button to close the window.


Modifying the Dictionary

A dictionary is available to provide pronunciation guidelines for words. This is useful for adding unusual words and changing or removing existing words. Modifying the dictionary includes:

  • Adding words to the dictionary

  • Changing pronunciation

  • Removing words from the dictionary

To access the dictionary wizard:

1. Select Configure. This opens the Platform Configure dialog box.

2. Select the V+ Text to Speech Device from the list of I/O devices.

3. Select the Configure button. This opens the Speech Synthesizer Configuration dialog box.

4. Select the Lexicon Control button. This opens the dictionary wizard.

Adding Words to the Dictionary

A dictionary is available to provide pronunciation guidelines for words. When new words are added, the user instructs the dictionary how to pronounce the word.

To add a word to the dictionary:

1. Access the dictionary wizard (see above).

2. Type in the word you wish to add. The Add this word to the dictionary option is automatically selected.

3. Select the Next button.

4. Press the Play button. The speech engine speaks the word based on a phonetic version of the word that is automatically generated by the dictionary.

5. If the pronunciation is not correct, enter either the correct pronunciation or the phonetic version of the word in the appropriate box. Use the Play button to retest the word.

6. When the pronunciation is correct, press the Finish button.

Note: if the Add this word to the dictionary option is not enabled, the word is already in the dictionary.

Changing Pronunciation

If a word is not pronounced properly, the pronunciation is changed using the dictionary wizard.

To change the pronunciation:

1. Access the dictionary wizard (see above).

2. Type in the word you wish to edit.

3. Select the Change the pronunciation of this word option.

4. Select the Next button.

5. Using the appropriate box, edit either the pronunciation or the phonetic version of the word.

Removing Words from the Dictionary

Words are removed from the dictionary using the dictionary wizard.

To remove a word from the dictionary:

1. Access the dictionary wizard (see above).

2. Type in the word you wish to remove.

3. Select the Remove this word from the dictionary option.

4. Select the Finish button.


About Dynamic Text

Dynamic text is used to control speech output from within the text. In order to use dynamic text, the text template must contain port assignments and scripting.

The following summarizes how dynamic text generates controls speech output:

  • A text template is created, containing port assignments and script.

  • The Text-to-Speech (TTS) device is configured. Two important things occur during configuration. The text template is assigned to the device and the Speech Synthesizer Output Data (SSOD) ports are loaded in the V+ Development System.

  • The developer uses the V+ Development System to create a design, matching SSOD ports in the design with the port assignments in the text template.

  • The end user controls the speech output by changing the SSOD port input values. Whenever the SSOD port values change, the speech changes to reflect the corresponding port assignments located in the text template.

See Using Dynamic Text for an illustration of this process.

Tip: Dynamic templates can be used with Dynamic text for almost unlimited real-time speech output possibilities.


Using Dynamic Text

The diagram below provides a graphical description of how the V+ Text to Speech device uses dynamic text to control speech output. When port input values change in real time, the speech changes automatically, to reflect the new port values. You do not have to stop the program to change the text! For example, in the diagram below, if Port 3 input changes to "3" and Port 4 input changes to "1500," the engine speaks: "Ceiling, 1500 overcast."

Note: In addition to controlling speech within a file, V+ can also switch text templates in real-time. See About Dynamic Template Filenames for more information.


About Dynamic Template Filenames

Dynamic template filenames use port input values to "change speech output by switching text template files." Eight "filename char" ports are used in the V+ Design. These eight ports make up the text template filename that is spoken by the device. The dynamic filename port input values are changed, during run-time, to reflect the new template filename. You do not have to stop the program.

Dynamic template filenames:

  • must have eight or fewer characters.

  • must have a .txt extension.

See Using Dynamic Filename Ports for more information.

Port Values

Text Templates

Input | Port | ASCII Value
65 | filename char 1 | A
116 | filename char 2 | t
105 | filename char 3 | i
115 | filename char 4 | s
50 | filename char 5 | 2
0 | filename char 6 |
0 | filename char 7 |
0 | filename char 8 |

Tip: Dynamic templates can be used with Dynamic text for almost unlimited real-time speech output possibilities.


Static versus Dynamic Filenames

The speech device can operate in either dynamic or static filename mode. Whenever in static template filename mode, the template filename is chosen during configuration. When using the dynamic filename mode, the filename is assigned using V+ ports. The following table lists the differences between the static and dynamic modes.

 | in the static template filename mode... | in the dynamic template filename mode...
When naming templates... | the template filename can have an unlimited number of characters. | the template filename must have eight or fewer characters.
When changing templates... | the program must be stopped and the new template assigned through the Run-time System configuration menu. | the dynamic filename port input values are changed, during run-time, to reflect the new template filename. You do not have to stop the program!
When selecting ports... | the "filename char" ports are not used. | the 8 "filename char" ports are used. These eight ports make up the text template filename that is spoken by the device. See Using Dynamic Filename Ports for more information.


About Dynamic Filename Ports

About Dynamic Filename Character Ports

Dynamic filename ports are used to select a text template from any number of templates. There are 8 filename character ports found in the Speech Synthesizer Control Ports list. They accept floating point input values that represent ASCII character values (65.0='A', 66.0='B', etc.) The input values represent the eight characters of the filename that is spoken. A ".txt" extension is added to the filename automatically before the file is retrieved. The entire path/filename to the .txt file is a concatenation of the pathname assigned in the configuration menu, plus these eight characters, plus .txt.

Input | Port | ASCII Value
65 | filename char 1 | A
116 | filename char 2 | t
105 | filename char 3 | i
115 | filename char 4 | s
50 | filename char 5 | 2
0 | filename char 6 |
0 | filename char 7 |
0 | filename char 8 |


Using Dynamic Filename Ports

There are 8 filename character ports found in the Speech Synthesizer Control Ports list. These ports are used to select a text template from any number of templates. They accept floating point input values that represent ASCII character values (65.0='A', 66.0='B', etc.) The input values represent the eight characters of the filename that is spoken. A ".txt" extension is added to the filename automatically before the file is retrieved. The entire path/filename to the .txt file is a concatenation of the pathname assigned in the configuration menu, plus these eight characters, plus .txt.

When the filename character port input is changed, the I/O device automatically selects the corresponding template. This allows the user to dynamically change template files without having to stop the program and change the file through the Run-time System configuration menu. See Static versus Dynamic Filenames for more information.

For filenames that are less than eight characters, set any unused inputs to zero.

In the following example the input to the filename ports corresponds to the Atis2.txt file. The txt file is located in the directory assigned during configuration:

Input | Port | ASCII Value
65 | filename char 1 | A
116 | filename char 2 | t
105 | filename char 3 | i
115 | filename char 4 | s
50 | filename char 5 | 2
0 | filename char 6 |
0 | filename char 7 |
0 | filename char 8 |


ATIS Example

The example below is a sample Text-to-Speech V+ design that uses dynamic filename ports. This particular design is an Automatic Terminal Information Service (ATIS) simulation used in simulation and training devices. ATIS was one of the first uses for the V+ Text to Speech device. This sample design is downloaded with V+ and is located in the: c:\Program Files\VPLus\Designs\Samples\TTS\ATIS\ directory.

See ATIS Template File Example for an example of a text template that is used with this V+ design.


About Text Templates

The Text-to-Speech device produces real-time dynamic speech from a text template file. This file can contain three components, each of which handles a different task (see below).

See Before Creating a Template for more information.

Component | Description
text | The text represents the words that are spoken. This device provides an electronic dictionary to instruct the speech engine how to pronounce the words. See Modifying the Dictionary for more information. The text analysis capabilities of the system detect the ends of sentences, perform some rudimentary syntactic analysis, expand digit sequences into words, and disambiguate and expand abbreviations into normally spelled words which can then be analyzed by the dictionary-based pronunciation module.
control tags | Also called speech engine control tags. These commands are used to better simulate human speech by improving inflection, accent, timing and other factors that affect speech quality.
script | Also called V+ commands. These are used to control speech based on data within V+, by allowing dynamic control over the speech output, via ports found in the V+ design and referenced in the text template.


Before Creating a Template

Before creating a text template it is important to decide whether to use dynamic text and dynamic template filenames. These decisions affect configuration and the V+ Design. The diagram below briefly illustrates the decisions involved in creating a template.

See About Dynamic Text and Static versus Dynamic Template Filenames for more information.


Template Format

The text template file must be in ASCII format. See Template Example for an example of a text template file.


Naming Templates

When naming text templates for the Text-to-Speech I/O device, please note the following:

Static template filenames:

  • Each file must have a .txt extension.

Dynamic template filenames:

  • Each filename must have eight or fewer characters.

  • Each file must have a .txt extension.

Note: There are no restrictions on the number of characters for static template filenames. See Static versus Dynamic Speech Generation for more information.


Template Example

The example below is a sample Text-to-Speech text template. This particular template is designed for an Automatic Terminal Information Service (ATIS) simulation used in simulation and training devices. ATIS was one of the first uses for the V+ Text to Speech device. This sample text template, Atis.txt, is downloaded with V+ and is located in the: C:\Program Files\VPLus\Samples\Simple ATIS directory.

See ATIS Design Example for an example of the V+ design used with this template.


About Scripting

Scripting, also known as V+ commands, is used to control speech by allowing dynamic control over the speech output, via ports found in the V+ design and referenced in the text template. Before commands are used to modify speech output, you need to know the proper syntax with which to include those commands into a text file.


Scripting Syntax

The following V+ command syntax is available:

{time} | Say the current military time, digit by digit. This is the local time on the target computer.
{say port integer n} | Say the current value of port "n" digit by digit in integer form. For example, 0.123 would be spoken as "zero", while 1.234 would be spoken as "one", and 123.0 would be spoken as one two three etc. Only the integer portion of the number is spoken.
{say port informal integer n} | Say the current value of port "n" in integer form informally. For example, 0.123 would be spoken as "zero", while 1.234 would be spoken as "one", and 123.0 would be spoken as "one hundred twenty three" etc. Only the integer portion of the number is spoken.
{if port n = c} {if port n > c} {if port n < c} {end if} | The conditional commands allow sections of text to be spoken based on the condition of a port "n". Constant c is compared against the port. If the condition is true, the text up to the {end if} is spoken. If the condition is false, the text after the {end if} is spoken. Every {if...} command must have a corresponding {end if}. Note that conditionals may be nested up to 200 levels.


Scripting Example

If port 3 = 2, and port 4 = 1000, the following template text file example would cause the following speech to be generated:

"Ceiling, one thousand broken"

Ceiling,

{if port 3 = 1}unlimited.{end if}

{if port 3 = 2} {say port informal integer 4} broken.{end if}

{if port 3 = 3} {say port informal integer 4} overcast.{end if}


About Control Tags

A text-to-speech engine can usually translate individual words to speech successfully. However, as soon as the engine speaks a sentence, the perceived quality of its translation decreases because the engine cannot correctly synthesize human prosody -- the inflection, accent, and timing of human speech. You can change a speaking voice by inserting commands in the text file.

Note: Before using control tags, review the Syntax Rules and Conventions.

The prosody of translated speech can be improved by using text-to-speech control tags to better simulate human speech. The following is a list of text-to-speech control tags that can be embedded in the source text to improve the prosody of text-to-speech translation:

Chr - Character | Prt - Part of Speech (some speech engines may not support this tag)
Com - Comment | RmS - Reading Mode Spelling (new for SAPI 4.0 -- some speech engines may not support this tag)
Ctx - Context (some speech engines may not support this tag) | RmW - Reading Mode Audible Pauses (new for SAPI 4.0 -- some speech engines may not support this tag)
Dem - De-emphasize (new for SAPI 4.0 -- some speech engines may not support this tag) | RPit - Relative Pitch (new for SAPI 4.0 -- some speech engines may not support this tag)
Emp - Emphasize (some speech engines may not support this tag) | RPrn - Relative Pitch Range (new for SAPI 4.0 -- some speech engines may not support this tag)
Eng - Engine Specific Command | RSpd - Relative Speed (new for SAPI 4.0 -- some speech engines may not support this tag)
Pau - Speech | Rst - Reset Engine (new for SAPI 4.0)
Pitch - Baseline Pitch | Spd - Talking Speed
Pra - Pitch Range (new for SAPI 4.0 -- some speech engines may not support this tag) | Vce - Speaking Voice (some speech engines may not support this tag)
Prn - Pronunciation (some speech engines may not support this tag) | Vol - Speaking Volume
Pro - Prosodic Rule (some speech engines may not support this tag) |


Syntax Rules

Text-to-speech control tags follow these general rules of syntax:

  • All tags begin and end with a backslash character (\).

  • The backslash character is not allowed within a tag.

  • An odd number of backslash characters in tagged text produce undefined behavior in the engine.

  • Tags are case-insensitive. For example, \vce\ is the same as \VCE\.

  • Tags are white-space -- dependent. For example, \Rst\ is not the same as \ Rst \.

  • To include a backslash character in tagged text, but outside a tag, use a double backslash (\\).

  • If the application has the tagged text bit on and wishes to speak a filename, such as "c:\windows\system\test.txt", then it should double up the backslashes (e.g., "c:\\windows\\system\\test.txt").

Samples:

\ ctx="e-mail" \ | Should be parsed as an "e-mail" tag.
\ctx="e-mail" | Should be ignored since it's an unclosed tag at the end of a document.
\\ctx="e-mail"\\ | Speaks "back-slash c t x equals e-mail back-slash"
\\\\\\\\ctx="e-mail"\\\\\\\\ | Speaks "backslash backslash backslash backslash c t x equals e-mail backslash backslash backslash backslash"
\ctm="e-mail"\ | Ignored because it's an unknown tag.

When the text-to-speech engine encounters a tag it does not understand, the tag is ignored.


Conventions

This section uses the following typographic conventions.

Example | Description
Chr | Bold type indicates speech-inflection keywords.
String | Italic indicates placeholders for information you supply, such as a character or context string.
[[option]] | Double square brackets indicate items that are optional.
[[option...]] | Three dots (an ellipsis) following an item indicate that more items having the same form may appear.
"C" | Quotation marks are required to delimit strings.


Chr - Character

\Chr=string[[,string...]]\

Sets the voice character.

The default characteristic is "Normal," which produces a normal tone of voice. Although the Chr tag is less specific than setting the inflection, stress, attack, and whispering qualities individually, it is easier to use and allows the engine more flexibility and intelligence in its response.

Example: \Chr="Angry"\

Parameter | Description
String | String that specifies the characteristics of the voice.

Several characteristics can be specified in the same tag, separated by commas. Depending on its capabilities, an engine may not support all of the characteristics listed here, or it may support additional characteristics. Some common characteristics are the following:

"Angry" | "Excited" | "Monotone" | "Scared"
"Business" | "Falsetto" | "Perky" | "Shout"
"Calm" | "Happy" | "Quiet" | "Tense"
"Depressed" | "Loud" | "Sarcastic" | "Whisper"


Com - Comment

\Com=string\

Embeds a comment in the text. Comments are not translated into speech.

Example: \com="This is a comment."\

Parameter | Description
String | Text of the comment.


Ctx - Context

\Ctx=string\

Sets the context for the text that follows, which determines how symbols are spoken.

Note: Some speech engines may not support this tag.

Example: \ctx="Unknown"\

Parameter | Description
String | String that specifies the context.

This parameter can be one of these strings:

Context string | Description
"Address" | Addresses and/or phone numbers
"C" | Code in the C or C++ programming language
"Document" | Text document
"E-Mail" | Electronic mail
"Numbers" | Numbers, dates, times, and so on
"Spreadsheet" | Spreadsheet document
"Unknown" | Context is unknown (default)
"Normal" | Normal/default speech mode.


Dem - De-emphasize

Dem - De-emphasize Next Word

\Dem\
 | De-emphasizes the next word.
 | Note: Some speech engines may not support this tag.


Emp - Emphasize

\Emp\
 | Emphasizes the next word to be spoken.
 | Example: the \Emp\truth, the \Emp\whole truth, and nothing \Emp\but the truth.
 | Note: Some speech engines may not support this tag.


Eng - Engine Specific Command

\Eng;GUID:command\

Embeds an engine-specific command that affects only the engine with the specified globally unique identifier (GUID). Subsequent engine-specific tags for that engine can omit the GUID until an engine-specific tag for a different engine is used.

\Eng:command\

Parameter | Description
GUID | Globally unique identifier of the engine.
Command | Engine-specific command.


Pau - Pause Speech

\Pau=number\

Pauses speech for the specified number of milliseconds.

Example: \Pau=1000\

Parameter | Description
Number | Number of milliseconds to pause.


Pit - Baseline Pitch

\Pit=number\

Sets the baseline pitch of the text-to-speech mode to the specified value in hertz.

Example: \Pit=90\

Parameter | Description
Number | Pitch, in hertz.


Pra - Set the Pitch Range

Pra - Pitch Range

\Pra=value\

Sets the pitch range.

Note: Some speech engines may not support this tag.

Parameter | Description
Value | Pitch range in Hz.


Prn - Pronunciation

\Prn=text=pronunciation\

Indicates how to pronounce text by passing the phonetic equivalent to the engine.

Note: Some speech engines may not support this tag.

Example: \Prn=tomato=tomaato\

Parameter | Description
Text | Text to pronounce.
Pronunciation | Phonetic equivalent for pronouncing the text.

Using the Prn tag without specifying the word pronunciation (\Prn=text\) will undo the changes to the pronunciation; that is, it will return the word to the original pronunciation.

This tag is valid only for engines that support the International Phonetic Alphabet. The engine should continue to use this pronunciation for the current text-to-speech mode and should store the pronunciation in its lexicon for later use. If a lexicon entry already exists for a particular word, the Prn tag should be ignored for that word.


Pro - Prosodic Rule

\Pro=number\

Activates and deactivates prosodic rules, which affect pitch, speaking rate, and volume of words independently of control tags embedded in the text. Prosodic rules are applied by the engine.

Note: Some speech engines may not support this tag.

Example: \Pro=0\

Parameter | Description
Number | Number that indicates whether to activate or deactivate prosodic rules. Setting number to 1, the default, activates prosodic rules. Setting number to 0 deactivates prosodic rules.


Prt - Part of Speech

\Prt=string\

Indicates the part of speech of the next word.

Note: Some speech engines may not support this tag.

Example: \prt="Abbr"\

Parameter | Description
String | String that indicates the part of speech.

This parameter can be one of the following strings:

String | Description
"Abbr" | Abbreviation
"Adj" | Adjective
"Adv" | Adverb
"Card" | Cardinal number
"Conj" | Conjunction
"Cont" | Contraction
"Det" | Determiner
"Interj" | Interjection
"N" | Noun
"Ord" | Ordinal number
"Prep" | Preposition
"Pron" | Pronoun
"Prop" | Proper noun
"Punct" | Punctuation
"Quant" | Quantifier
"V" | Verb


Rms - Set Reading Mode to Spelling

\RmS=number\

Sets reading mode to spelling out each letter of each word, or turns it off. Not all engines support this tag, so an application can get more consistent results by normalizing the text itself and putting spaces between letters.

Note: Some speech engines may not support this tag.

Parameter | Description
Number | Number that indicates whether to spell out each letter of each word. Setting number to 1 sets reading mode to spelling out each letter of each word. Setting number to 0, the default, turns it off.


Rmw - Set Reading Mode to Audible Pauses

\RmW=number\

Sets reading mode to leaving audible pauses between each word, or turns it off. Not all engines support this tag, so an application can get more consistent results by normalizing the text itself and putting periods between words.

Note: Some speech engines may not support this tag.

Parameter | Description
number | Number that indicates whether to leave audible pauses between each word. Setting number to 1 sets reading mode to leave audible pauses between each word. Setting number to 0, the default, turns it off.


RPit - Set the Relative Pitch

RPit

\RPit=value\

Sets the relative pitch.

Note: Some speech engines may not support this tag.

Parameter | Description
value | Relative pitch. 100 is the default/original for the voice.


RPrn - Set the Relative Pitch Range

\RPrn=value\

Set the relative pitch range.

Note: Some speech engines may not support this tag.

Parameter | Description
Value | Relative pitch range. 100 is the default/original for the voice


RSpd - Set the Relative Speed

\RSpd=value\

Sets the relative speed. 100 is the default/original for the voice.

Note: Some speech engines may not support this tag.

Parameter | Description
Value | Relative speed. 100 is the default/original for the voice


Rst - Reset the Engine

\Rst\

Resets the engine to the default settings for the current mode, as though the mode had just been re-created.


Spd - Set the Talking Speed

\Spd=number\

Sets the baseline average talking speed of the text-to-speech mode to the specified number of words per minute.

Example: \Spd=120\

Parameter | Description
number | Baseline average talking speed, in words per minute


Vce - Change Speaking Voice

Vce - Speaking Voice

\Vce=charact=value[[,charact=value]]\

Instructs the engine to change its speaking voice to one that has the specified characteristics. The voice characteristics change as though a new mode object were created (using that voice) and used.

Note: Some speech engines may not support this tag.

Parameter | Description
charact | One of the characteristics listed in the table below.
value | String that specifies the characteristic.

Characteristics are specified in the order of importance. The engine selects a voice that most closely matches the characteristics specified at the beginning of the list.

The charact=value argument can be any of the following:

Language=language. | Requests the engine speak in the specified language
Accent=accent. | Requests the engine speak in the specified accent. For example, if language="English" and Accent="French" the engine will speak English with a French accent.
Dialect=dialect | Requests the engine speak in the specified dialect
Gender=gender. | Specifies the gender of the voice: "Male", "Female", or "Neutral".
Speaker=speakername | Specifies the name of the voice, or NULL if the name is unimportant
Age=age | Specifies the age of the voice, which can be one of the values shown below
Style=style | The personality of the voice -- for example: "Business", "Casual", "Computer", "Excited", or "Singsong".

Age string | Description
"Baby" | About 1 year old
"Toddler" | About 3 years old
"Child" | About 6 years old
"Adolescent" | About 14 years old
"Adult" | Between 20 and 60 years old
"Elderly" | Over 60 years old


Vol - Set Speaking Volume

\Vol=number\

Sets the baseline speaking volume for the text-to-speech mode.

Example: \Vol=32768\

Parameter | Description
number | Baseline speaking volume.

The volume level is a linear range from 0 for absolute silence to 65535 for the maximum monaural volume. The default is 65535.

If you specify a value greater than 65535, the engine assumes that you want to set the left and right channels separately and converts the value to a double word, using the low word for the left channel and the high word for the right channel. For example, a value of 65536 sets the left channel to the maximum baseline speaking volume and the right channel to the minimum.


About Text-to-Speech Ports

There are three text-to-speech port lists available when using a Text-to-Speech device with a V+ design. See Ports Example for an example of how some of these ports are used in a sample V+ design.

Port List | Description
Speech Synthesizer Control Ports | These output ports are used to control the speech engine. They are also used to generate and control dynamic filename ports. See Using Dynamic Filename Ports for more information. These ports accept a floating point input value.
Speech Synthesizer Output Data Ports | These output ports are used within the template file script commands to generate and control dynamic speech. They accept a floating point input value.
Speech Synthesizer Status Ports | These input ports are used to monitor the status of the speech engine.


Control Ports

The ports available in the Speech Synthesizer Control (SSC) Ports list (below) are used to control the speech engine. These ports accept a floating point input value. See Ports Example for an example of how these ports can be used in a V+ design. Below are descriptions of the control ports with their valid values.

Note: Some control ports are assigned default values if they are not present on the worksheet. These values affect the way the program runs. See the table below for these values.

Control Port(s) | Description | Valid Values | Default Values
enable | Starts or stops the program. | 1 = program runs 0 = program stops | 0.0 - Off
pause | Pauses or resumes the program. | 1 = program pauses 0 = program plays | (no effect)
repeat | Repeats or stops the speech at the end of the template. | 1 = program repeats at the end of the template. 0 = program stops at the end of the template. | 0.0 - Set to Not Repeat (the system stops at the end of the template)
left volume, 0-1 | The left and right volume ports are not currently used. | 0.0 (no volume) to 1.0 (full volume). | 1.0 - Max Volume
right volume, 0-1 | The left and right volume ports are not currently used. | 0.0 (no volume) to 1.0 (full volume). | 1.0 - Max Volume
filename char 1 - filename char 8 | They are used to assign filename characters, when using dynamic filename ports. See About Dynamic Filename Ports for more information. | Any ASCII code value (use 0.0 when filename is less than 8 characters) | 0.0 - No character (even if the dynamic port names are disabled.)


Output Data Ports

The output ports found in Speech Synthesizer Output Data (SSOD) Ports list are used within the template file script commands. The following is a list of SSOD port features:

  • They accept a floating point input value.

  • They are used to control dynamic text by referencing the text template. See Scripting and Scripting Example for more information.

  • The default number of output data ports is 50, although this number is controlled by the user when configuring the system.

See Ports Example for an example of how these ports can be used in a V+ design.


Status Ports

The Speech Synthesizer Status Ports are input ports. These ports are used to monitor the status of the speech engine.

Note: Word Position and Error are not currently used.


Ports Example

Below is an example of how different types of Text-to-Speech output ports are used in a sample V+ design.


System Requirements

V+ System Requirements

Make sure your computer meets the minimum system requirements listed below. If your computer does not match these requirements you may have problems running the software.

To properly run the software you need:

For Non-Audio Applications: | For Audio Applications:
CPU Pentium 100 or faster Microsoft Windows 95/98, 98 Second Edition 32MB RAM or greater 50 MB of available hard disk space SVGA card CD-ROM drive Microsoft Internet Explorer version 3.02 or later | CPU Pentium 350 or faster Microsoft Windows 98 Second Edition 128MB RAM or greater 200 MB of available hard disk space SVGA card CD-ROM drive Microsoft Internet Explorer version 3.02 or later PCI Sound Card, Full Duplex Capability with a WDM Driver

Note: For multichannel sounds cards, DirectX 7.0 may cause problems. Use Direct 6.0 until DirectX 8.0 or greater is available.

You may need your original Windows operating system disk for the DirectX installation that follows the installation.


Speech Synthesizer Control

Speech Synthesizer Control Ports

The ports available in the Speech Synthesizer Control (SSC) list (below) are used to control the speech engine. These ports accept a floating point input value. See Ports Example for an example of how these ports can be used in a V+ design. Below are descriptions of the control ports with their valid values.

Note: If control ports are not present on the worksheet, they are assigned default values. See the table below for these values.

Control Port(s) | Description | Valid Values | Default Values
enable | Starts or stops the program. | 1 = program runs 0 = program stops |
pause | Pauses or resumes the program. | 1 = program pauses 0 = program plays |
repeat | Repeats or stops the speech at the end of the template. | 1 = program repeats at the end of the template. 0 = program stops at the end of the template. | 0 - The system stops at the end of the template.
left volume, 0-1 | The left and right volume ports are not currently used. | 0.0 (no volume) to 1.0 (full volume). |
right volume, 0-1 | The left and right volume ports are not currently used. | 0.0 (no volume) to 1.0 (full volume). |
filename char 1 - filename char 8 | They are used to assign filename characters, when using dynamic filename ports. See About Dynamic Filename Ports for more information. |  |


Speech Synthesizer Output Data

Speech Synthesizer Output Data Ports

The output ports found in Speech Synthesizer Output Data (SSOD) port list are used within the template file script commands. The following is a list of SSOD port features:

  • They accept a floating point input value.

  • They are used to control dynamic text by referencing the text template. See Scripting and Scripting Example for more information.

  • The default number of output data ports is 50, although this number is controlled by the user when configuring the system.

See Ports Example for an example of how these ports can be used in a V+ design.


Speech Synthesizer Status

Speech Synthesizer Status Ports

The Speech Synthesizer Status ports are input ports. These ports are used to monitor the status of the speech engine.

Note: Word Position and Error are not currently used.