CONTENTS Title Page Copyright Page Preface Part I DECvoice Software User Manual 1 Overview of DECvoice System Components 1.1 Overview of DECvoice Hardware 1.2 DECvoice DTC04 System 1.2.1 DTC04 Voice Module 1.2.2 DTC04 TLI Module 1.3 DECvoice-T1 System 1.3.1 DTC05 Voice Module 1.3.1.1 Single-Channel Mode 1.3.1.2 8-Channel Mode 1.3.2 DTCN5 Telephony Module 1.4 Overview of DECvoice Software 1.4.1 Telephone Regulatory Protection 1.4.2 Device Mapping 1.4.3 Software Components 1.4.3.1 DECvoice RTL 1.4.3.1.1 DECvoice RTL Routines 1.4.3.2 Class Driver 1.4.3.3 Port Drivers 1.4.3.4 DECvoice Microcode 1.4.3.5 Ancillary Control Process 1.4.3.6 Configuration Program 2 Introduction to Voice Technologies 2.1 Digitized Voice Technology 2.1.1 DECvoice Voice Digitization 2.2 Text-to-speech Technology 2.2.1 DECvoice Text-to-speech Conversion Process 2.2.2 Automatic Name Pronunciation - ACNA 2.2.2.1 Applications and the Limitations of the Technology 2.2.2.2 How ACNA Works 2.2.2.3 Heuristic Issues and the Application 2.2.3 Application Issues 2.3 Automatic Speech-Recognition (ASR) Technology 2.3.1 DECvoice Recognition 2.3.1.1 DECvoice Isolated Word Recognition 2.3.1.2 DECvoice Continuous Word, Speaker-Independent Recognition 2.3.1.2.1 The Limitations of the Continuous Recognition Technology 2.4 Call Progress Technology 3 Using the DECvoice RTL 3.1 Voice Channel Services 3.2 Telephone Channel Resources 3.3 Initialization and Termination 3.3.1 Initialization 3.3.2 Application-Specific Device Initialization 3.3.3 Termination 3.4 Telephone Processing 3.4.1 Waiting For and Answering Calls 3.4.2 Call Information 3.4.3 Making Calls 3.4.4 Call Progress 3.4.4.1 Audio Call Progress 3.4.4.2 Positive Call Completion or Termination Detection 3.4.5 Call Handoff 3.4.6 Half Hold and Full Hold 3.4.7 Retrieve from Hold 3.4.8 Registering Broadcast Applications 3.4.9 Terminating Calls 3.4.10 Settable Parameters 3.5 Messages 3.5.1 Local Messages 3.5.2 Global Messages 3.5.3 Creating Messages 3.5.4 Message Handling 3.5.4.1 Message Handle Identifier 3.5.4.2 Stream Context Identifier 3.5.5 Repositioning within Messages 3.5.6 Converting Messages 3.5.7 Unloading Message Data 3.5.8 Loading Message Data 3.5.9 Replacing Global Messages 3.5.10 Deleting Messages 3.6 Text to Speech 3.6.1 Text Messages 3.6.2 Text Prompts 3.6.3 User Dictionary 3.6.4 Modifying the Voices Using In Line Text Commands 3.6.4.1 Voice Characteristics 3.6.4.2 Speaking Rate [[:ra _]] 3.6.4.3 Pause Durations [[:pp _]] and [[:cp _]] 3.6.4.4 Spell Mode [[:s_]] 3.6.4.5 Selecting a Standard Voice [[:n_]] 3.6.4.6 Voice Command Syntax 3.6.5 Settable Parameters 3.7 Recording 3.7.1 How Recording Works 3.7.2 VOX$RECORD Completion Events 3.7.3 Settable Parameters 3.7.4 Automatic Volume Leveling 3.8 Playback 3.8.1 How VOX$PLAY Works 3.8.2 VOX$PLAY Completion Events 3.8.3 Settable Parameters 3.8.4 Parsing Alphanumeric Text for Stored Voice Playback 3.9 Speech Recognition 3.9.1 DECvoice Isolated Word Recognition - VOX$K_WRECOG Parameter 3.9.1.1 Overview of the DECvoice Isolated Word Recognition Subsystem 3.9.2 DECvoice Continuous Word, Speaker-Independent Recognition - VOX$K_CRECOG Parameter 3.9.2.1 Loading the VOX$K_CRECOG Subsystem Parameter 3.9.2.2 Using the VOX$K_CRECOG Subsystem Parameter 3.9.2.3 Recognition Results of the VOX$K_CRECOG Parameter 3.9.3 Speech Recognition Routines 3.9.4 Settable Parameters 3.10 Statistics 3.10.1 DECvoice Statistics Routines 3.11 DECvoice Version 1.1 Compatibility Mode 4 Application Development Guidelines 4.1 General Guidelines 4.2 Tailoring the User Environment 4.3 Technology Related Guidelines 4.3.1 Digitized Voice Application Issues 4.3.2 Speech Recognition Application Issues 4.3.2.1 Generic Speech Recognition Issues 4.3.2.2 Isolated Word Recognition Issues 4.3.2.3 Continuous Word Recognition Specific Issues 4.3.2.4 Implementing Error Correction 4.3.2.5 Conclusion 4.3.3 Text-to-speech Application Issues 4.3.3.1 Optimizing the Quality of Spoken Text 4.3.4 DTMF Key Input Application Issues 4.3.5 Audio Call Progress Application Issues 4.3.5.1 Audio Call Progress Detection 4.3.5.2 Error Reduction of Audio Call Progress Applications Part II DECvoice Control Program Reference Section 5 DECvoice Configuration Database Control Program 5.1 Overview of DECvoice Configuration Database Control Program 5.1.1 Issuing Commands 5.1.2 Privileges 5.2 DECvoice Configuration Program Command Reference DISMOUNT EXIT LOAD LOAD DICTIONARY LOAD TEMPLATES LOAD GLOBAL_MESSAGES MOUNT SET SET CHANNEL SET DEVICE SET LINE SET LINE/CONFIGURATION SET LINE/INITIALIZE SET LINE/PROTOCOL SET LINE/RESOURCE SET LINE/SERVICES SHOW SHOW DEVICE SHOW VERSION STARTUP UNLOAD UNLOAD GLOBAL_MESSAGES VERIFY Part III DECvoice RTL Routines VOX$ADD_DICTIONARY_ENTRY VOX$ANSWER_CALL VOX$APPEND VOX$CANCEL_OPERATION VOX$CLEAR_DICTIONARY VOX$CONVERT VOX$CREATE_CONTEXT VOX$CREATE_MESSAGE VOX$CREATE_TEXT_MSG VOX$DELETE_DICTIONARY_ENTRY VOX$DELETE_TEMPLATE VOX$DIAL VOX$END_DATA VOX$END_PLAY VOX$END_RECORD VOX$FREE_CONTEXT VOX$FREE_MSG VOX$FREE_SERVICE VOX$GET_CONTEXT_INFO VOX$GET_EVENT VOX$GET_MSG_INFO VOX$GET_OPTION VOX$GET_RTL_VERSION VOX$GET_STATISTICS VOX$HANGUP VOX$HOST_LISTEN VOX$INITIALIZE VOX$INITIALIZE_PARSER VOX$INITIALIZE_STATISTICS VOX$LISTEN VOX$LOAD_DATA VOX$LOAD_FROM_FILE VOX$LOAD_STD_TEMPLATES VOX$LOAD_SUBSYSTEM VOX$LOAD_TEMPLATE VOX$MAKE_TONE VOX$MAP_GBL_MSG VOX$MATCH VOX$PARSE_NUMBER VOX$PAUSE_PLAY VOX$PAUSE_RECORD VOX$PHONE_CONTROL VOX$PICKUP VOX$PLAY VOX$POSITION VOX$PRONOUNCE_NAME VOX$PUT_EVENT VOX$RECOGNIZE VOX$RECORD VOX$REGISTER_RESOURCE VOX$REQUEST_SERVICE VOX$RESUME_PLAY VOX$RESUME_RECORD VOX$SEND_STATISTICS VOX$SET_MSG_INFO VOX$SET_OPTION VOX$SPEAK_STRING VOX$TERMINATE VOX$TERMINATE_PARSER VOX$TERMINATE_STATISTICS VOX$TRAIN VOX$UNLOAD_DATA VOX$UNLOAD_SUBSYSTEM VOX$UNLOAD_TEMPLATE VOX$UNLOAD_TO_FILE A Associated Documents B DECvoice Events B.1 Event Handling C DECvoice Settable Options D DECvoice Statistics Classes and Types D.1 Generic Statistics Packet Formats: D.2 Specific Statistics Packet Formats E DECvoice Services and Service Masks F DECvoice Text-to-speech Phonemic Input F.1 Phonemic Transcription F.2 Introduction to Phonemic Theory F.3 Phonemes F.4 Pronunciation Errors F.5 Vowel and Consonant Phonemes F.5.1 Phonemic Correction the Easy Way F.5.2 Automatic Phonemic Substitution for a Mispronounced Word F.5.3 Vowels F.5.4 Consonants F.5.5 Silence Phoneme [[_]] F.6 Stress and Syntactic Symbols F.6.1 Primary Stress [[']] F.6.2 Secondary Stress [[`]] F.6.3 Emphatic Stress [["]] F.6.4 Unstressed Syllables F.6.5 Pitch Control [[/]], [[\]], [[/ \]] F.6.6 Word Boundary F.6.7 Syllable Boundary [[-]] F.6.8 Morpheme Boundary [[ * ]] F.6.9 Compound Noun [[#]] F.6.10 Beginning of Verb Phrase [[)]] F.6.11 Clause Boundary [[,]] F.6.12 Period [[.]] F.6.13 Question Mark [[?]] F.6.14 Exclamation Point [[!]] F.6.15 New Paragraph [[+]] G Abbreviations and Acronyms G.1 Text Processing Rules G.2 Number Processing G.2.1 Part Numbers G.2.2 Cardinal Numbers G.2.3 Ordinal Numbers G.2.4 Fractions G.2.5 Money G.2.6 Dates G.2.7 Time of Day G.3 Abbreviations G.3.1 Abbreviations Processed by DECvoice G.3.2 Abbreviations in the Built-In Dictionary G.4 Word Spellout Strategies G.4.1 Word Spellout Tests G.4.2 Multinational Characters H Words with Two Pronunciations I DECvoice/Dictionary Phonemic Correspondence I.1 Webster's 9th New Collegiate Dictionary J Character Sets and Standards J.1 Character Sets J.2 CODING STANDARDS K Obsolete Routines and Features VOX$INITIALIZE L DECvoice RTL Routine Synopsis Glossary EXAMPLES 3-1 DECvoice Service Requests 3-2 Preconfiguring a voice module 3-3 Answering an Incoming Call 3-4 Making an Outbound Call 3-5 DECvoice HANDOFF_CALL example 3-6 DECvoice HOLD example 3-7 Loading a DECvoice Message Into Global Memory 3-8 Mapping a Global Message 3-9 Using VOX$GET_MSG_INFO to Retrieve Message Information 3-10 Using VOX$UNLOAD_TO_FILE to Write a Message to a File 3-11 Using VOX$UNLOAD_DATA to Unload a Message into an Application Buffer 3-12 Using VOX$LOAD_FROM_FILE to Read a Message from a File into Memory 3-13 Using VOX$LOAD_DATA to load a Message into local Memory 3-14 Using VOX$CREATE_TEXT_MSG to Create, then Output a Text Message 3-15 Using VOX$SPEAK_STRING to Output a Text Prompt 3-16 Using VOX$ADD_DICTIONARY_ENTRY Load the User Dictionary 3-17 Using VOX$RECORD 3-18 Using VOX$PLAY 3-19 Using VOX$CREATE_MESSAGE to Create an Output Context 3-20 Using VOX$RECOGNIZE with the Continuous Word Recognizer 3-21 Using VOX$LISTEN and VOX$MATCH to Recognize the Voice Input "Yes or No" B-1 Receiving DTMF keys C-1 VOX$SET_OPTION example FIGURES 2-1 Voice Digitization 2-2 DECvoice Text-to-speech Conversion 2-3 DECvoice Recognition Process 3-1 DECvoice Structured Message Header 3-2 VOX$PARSE_NUMBER and VOX$CREATE_CONTEXT interaction 3-3 DECvoice Recognition Subsystem TABLES 2-1 Text-to-speech Conversion Process 3-1 DECvoice Service Masks 3-2 VOX$DIAL Dial String Control Characters 3-3 Voice Modification Commands 3-4 New Voice Commands 3-5 Stored Voice Encoding Algorithms for the Supported Modes 3-6 Statistics Class Masks 5-1 VOX$CP Command Privilege Requirements 5-2 LOAD Command Options 5-3 SET Command Options 5-4 SET LINE Command Qualifiers 5-5 CALL_PROGRESS_DETECTION options 5-6 SIGNALING Keywords 5-7 Service Mask Keywords 5-8 TYPE_CODE Keywords 5-9 SHOW Command Options 5-10 Version Type Letter Translations RTL-1 VOX$DIAL Dial String Control Characters RTL-2 DECvoice Service Masks RTL-3 DECvoice Events and Event Values RTL-4 DECvoice Statistics Classes and Types RTL-5 Statistics Class Masks RTL-6 Default Number of Templates per Utterance RTL-7 DECvoice Service Masks B-1 DTMF key values D-1 DECvoice Statistics D-2 Statistics Packet Fields E-1 DECvoice Service Masks E-2 DECvoice Service Masks F-1 English Vowel Phonemes F-2 English Consonant Phonemes and Allophones F-3 Sample Dictionary F-4 Stress and Syntactic Symbols G-1 Numeric Abbreviations Recognized by DECvoice G-2 Abbreviations Recognized by DECvoice H-1 Words with Alternate Pronunciations I-1 DECvoice and Dictionary Phonemic Alphabets