Prompts always give precedence to uploaded audio files over TTS text. However, GAAP retains the TTS text so you can easily switch back and forth between TTS and prerecorded audio, without having to retype the TTS or reupload the sound file.
Variables and playback of dynamic data
You can add variables to your prompts using square-bracket notation. Variables are containers for storing data, and they are replaced with real data when the application executes. For example, consider the following prompt: "Your current balance is [currency:PaymentBalance]." When the application executes, the variable [currency:PaymentBalance] is replaced with the caller's payment balance value.
GAAP uses variable data in several locations. Prebuilt modules can use them, such as in the payment balance example above, or they can be returned by web services, or set manually in Script blocks.
Every variable has a name and a formatter. The formatter indicates which sort of value the variable represents (for example: a digit, a date, or a currency).
GAAP sources variable data from several locations. Some prebuilt modules create variable data automatically, whereas others are returned by web services and can be set manually in Script blocks.
The following variable formatters are available:
|[var:myvariable]||Plays the value of myvariable as regular TTS.|
|[digits:myvariable]||Plays the value of myvariable as a series of digits.|
|[letters:myvariable]||Plays the value of myvariable as a series of letters.|
||Plays the value of myvariable as units of money. The variable value must be formatted accordingly, such as GBP12.44 or EUR3.90, which is read out as "twelve pounds and forty four pence" or "three euro and ninety cents", respectively. You can also also provide negative amounts, such as GBP-12.44, which is read out as "twelve pounds and forty four pence in credit." The "in credit" portion refers to a standard prompt defined at the application level.|
|[date:myvariable]||Plays the value of myvariable as a date. Values must be formatted as yyyy-mm-dd. For example, 2010-01-31 is read out as "the thirty-first of January, twenty-ten." You can omit part or all of the year (??10-01-31) to read out only a portion of the value. For example, to only say "the thirty-first of January", use ????-01-31.|
|[time:myvariable]||Plays the value of myvariable as time. Values must be formatted as hh-mm. For example, a value of 13:59 is read out as "one fifty nine p m."|
|[ccexpiry:myvariable]||Plays the value of myvariable in a manner consistent with credit card expiry dates. The value must be formatted in one of the following ways:
ImportantThe format mmm refers to a three-letter month name, such as jan for January.
|[pause]||Inserts a pause. You can control the pause length by including a duration in milliseconds, such as [pause:500]. The default pause duration is 750.|
|[prompt:myvariable]||Plays the value of myvariable as an audio prompt. The value can be a string that points to the name of a prompt in the Prompt List tab, such as 0034 or Standard timeout apology prompt. If the value does not match an existing prompt reference, it creates a temporary one and uses the variable value as both the name of a WAV file and as the fallback TTS.|
|[prompt:myvariable;fallback tts]||Plays the value of myvariable as an audio prompt. The value can be a string that points to the name of a prompt in the Prompt List tab, such as 0034 or Standard timeout apology prompt. If the value does not match an existing prompt reference, it creates a temporary one and uses the variable value as both the name of a WAV file and as the fallback TTS. Alternatively, you can add a semicolon and some fallback TTS text to be used in case the WAV file does not exist.
ImportantIf no variable called myvariable exists, it uses the actual string myvariable.
For example, assume a variable exists called Manufacturer with the value Acme. If you use [prompt:Manufacturer], GAAP tries to use an audio file in the company's resources folder called Acme.wav. If the audio does not exist, it plays the word "Acme" using TTS. Alternatively, you can use [prompt:Manufacturer;an American manufacturer] in the same way, but if the file does not exist then GAAP uses TTS to say "an American manufacturer".
Uploading dynamic prompt recordings
You can upload a set of audio files (in a single ZIP file) that play back dynamic information such as digit strings, currency amounts, dates, and more. These prompts are shared across a company's applications. The server attempts to use these recordings for prompts, falling back to TTS if necessary.
See the Dynamic Prompt Uploads section on the Personas page for more information.
GAAP enables you to easily make and test changes to audio files by calling the test number. You can also generate a Prompt List that you can send to the studio for recording. This list is generated based on the Prompt Ref labels seen under each prompt. If the studio labels its recordings based on the Prompt Ref labels, you can upload the audio files to the system and GAAP automatically updates the prompts according to the Prompt Ref labels.
To generate a Prompt List, go to the Prompt List tab and click Manage Prompts in the top-right corner.
Tips for writing prompts
- You can add prompts in chunks, as shown below, to play back dynamic information (such as an address) in the middle of other prompts. Or, you can upload an audio file for the first section of the prompt and use TTS for the second.
- Always click Preview Prompt after you enter a TTS prompt to confirm the speech engine reads the prompt correctly. If the speech engine has difficulty pronouncing a word, try spelling the word phonetically.
- Place your menu options in logical order. Group similar options together and place the most common ones near the top.
- When providing menu options, keep your prompt list as short as possible. Generally, three to five items are sufficient. If necessary you can use a hierarchy, but keep it to two or three levels. Otherwise, callers might become confused, unengaged, and frustrated.
- Put the DTMF option after the name of the person or department.
- Press 1 for Sales
- For Sales, Press 1
- Callers listen for their destination first, then how to get there. If you play the DTMF option first, callers are not as likely to associate the option with the department.
- Use consistent phrasing for menu options.
- For Sales press 1. To reach the Service department, press 2.
- For Sales, press 1. For Service, press 2.
- Use consistent ordering of nouns and verbs to avoid confusing the caller.
- Which would you like: Sales, Faults, or Check an Order?
- Which would you like: Sales, Faults, or Order Updates? (nouns only)
- What do you want to do: buy something, report a fault, or check an order? (verb then noun)
Configuring standard prompts
You can view a list of standard prompts in the Prompt List tab, under the Other Prompts section. GAAP uses these default apology and confirmation prompts throughout your application. You can update these prompts as required by your business needs.
You can define the following standard prompts in your application and also have these prompts used in a sub-module.
|Prompt Name||Example Wording||Further Information|
|Standard apology nomatch prompt||Sorry, I didn't get that.||Played if the caller input is not recognized as part of the active grammar during collection. This is followed by a retry prompt.|
|Standard apology timeout prompt||Sorry, I didn't hear you.||Played if the system receives no input from the caller. The timeout value is configured using the Before beginning of speech timeout parameter in Preferences. This is followed by a retry prompt.|
|Standard apology wrong confirm prompt||My mistake.||Played if the caller specifies that the confirmation prompt played by the system is incorrect. This is followed by a retry prompt.|
|Standard confirmation help prompt||Help! I need to know if I got it correctly. Please say yes or no.||Played to the caller if they invoke the global "help" command while being asked to confirm an answer.|
|Standard confirmation initial prompt 1||I think you said||Confirmation prompts are used to confirm that the system has correctly recognized the answer provided by the caller. The value as recognized by the system will be played between prompt 1 and prompt 2.|
|Standard confirmation initial prompt 2||, is that correct?|
|Standard confirmation retry prompt||Sorry, please say yes or no.||Played to the caller to confirm an option if the application thought the caller said something other than "yes" or "no" (or an active default menu option, such as "agent") during a confirmation step.|
|Standard confirmation timeout prompt||Sorry, I didn't hear you. Please say yes or no.||Played to the caller if the system times out because the caller has either not provided an answer, or the input provided does not match anything in the grammar.|
|Standard negative currency prefix prompt||Played when playing back a negative currency (for example, GBP-12.45, or "prefix twelve pounds and forty five pence suffix", which translates as "twelve pounds and forty five pence in credit."|
|Standard recovery prompt||I'm having trouble understanding you. If you want to try answering the question again press 1. Or, to speak with an advisor press 2.||This prompt is used to return the caller to the main menu and allow them to attempt the call again, therefore avoiding the failure path.
ImportantContact your Genesys representative if you want to use Recovery Mode but your callflow does not have a standard recovery prompt.
Support for Speech Synthesis Markup Language (SSML)
If using en-gb or fr-fr and the VoiceXML.SSML.AlwaysUseSSML server setting is false, then Speech Synthesis Markup Language will not be used.
To customize SSML output for different TTS engines, the VoiceXML.SSML.RulesTypeOverride server setting can be used. Depending on the TTS engine and language in use, GIA will attempt to pick the most specific vxml file for each playback type on the folder specified in the VoiceXML.SSML.RulesTypeOverride server setting. For example, GoogleSS, NuanceVocalizer5. If no TTS engine is specified, the Default value is used.
When VoiceXML.SSML.AlwaysUseSSML is enabled, the interpret option is used for generating the SSML.
For example, when VoiceXML.SSML.AlwaysUseSSML is enabled, the digits, 8574964152 is generated as:
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-gb"><say-as interpret-as="spell">8574964152</say-as></speak>.
When the VoiceXML.SSML.AlwaysUseSSML is disabled, the digits, 8574964152 is generated as:
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-gb">8 5 7 4 9 6 4 1 5 2</speak>.
The VoiceXML.SSML.Play.DynamicSSML server setting controls the Dynamic SSML playback from NLU engines like Dialogflow. This setting has a default value of false for backward compatibility. When set to false, MCP interprets the SSML tags as string values and when this setting is true, the SSML tags are interpreted as SSML tags and played.
If you are using Google TTS and playing SSML from a variable, ensure that there are no extra [" tags present in the variable content or between SSML tags.
Using the Find/Replace feature
Click Find/Replace to search for a particular word or term in your prompts.
In the pop-up window:
- Enter a search term in the Search for Prompt Text field.
- Optionally, click Filter on Persona to only search within a specific persona.
- Click Search.
GAAP displays prompts that match your search term. To edit a particular prompt, select its Edit check box. Next, edit the TTS text and upload a new audio file (if necessary). Click Save when done.