Languages

In the Manage Languages tab, you can see the available languages for your OCP miniApps®, and activate or deactivate them. Depending on the type of miniApps, French (CA), German (DE), Spanish (US), and Greek (GR) might also be available.

If you activate a language, you will see the option to choose a prompt in every language in all prompts, including nice reactions, error reactions, validations, confirmations, hold functionality, agent reaction, error handling, and so on.

Supported languages

Some locales are available only for specific miniApps. The table below shows the current applicability.

miniApp type

en-US

fr-CA

es-US

en-GB

de-DE

el-GR

Intent-Banking

Intent-Banking-2.0

Intent-Covid

Intent-CarRetail

Intent-Universal

Intent-Telco

Intent-Insurance

Intent-Energy

Numeric

Alphanumeric

Alpha (only)

Amount

Date

Announcement

YesNo

Corpus

Text (chat only)

WebService

Intelli

Entity

Text To Speech engines

For certain languages there is a variety of TTS engines to select from. For example, en-US has the MS, AWS, OMILIA and OMILIA-MRCP TTS.

Each of those languages also may offer a variety of different voices that can be adjusted in terms of rate (speech tempo) and volume.

Prerecorded audio prompts

You can click on Download prerecorded audio list and get a TSV file with keys audioID, prompt, and category. This way you will be able to get all the prompts that are used during the session and, for instance, record them yourself in a voice and accent of your choosing instead of using the TTS functionality.

There are several ways in which the prompts may be presented. Read the sub-sections below for more information.

Static prompt

If it is a plaintext static prompt without dynamic values in {{}}, then you can record it as is and name the audio file for upload {audioID}.wav (instead of {audioID}, paste the audioID of the corresponding prompt from the TSV file in its entirety).

An example of this might be:

AUDIO_ID|PROMPT|CATEGORY|WARNING
1234-a123-321-40.test.Announcement.MiniApps.username.welcome.locales.en-US.omIVR.normal|Welcome! I'm your virtual assistant|miniAppConfig prompt|
SQL

where | corresponds to Tab key

This means the audio file with the recorded prompt should be named 1234-a123-321-40.test.Announcement.MiniApps.username.welcome.locales.en-US.omIVR.normal.wav.

Dynamic prompt with a realizer

If it’s a prompt that contains dynamic values and has an audio type (realizer) (for example, The weather in {{city|generic}} is {{weather|generic}}), it will be split into several different parts, such as the static plaintext parts:

AUDIO_ID|PROMPT|CATEGORY|WARNING
4567-a123-321-40.test.Announcement.MiniApps.username.welcome.locales.en-US.omIVR.normal.0|The weather in|miniAppConfig prompt|
7890-a123-321-40.test.Announcement.MiniApps.username.welcome.locales.en-US.omIVR.normal.1|is|miniAppConfig prompt|
CODE

For both of them, you can apply the same process for static prompts described in Static Prompts section and record them as is.

And then, for the dynamic part, at the bottom of the TSV file, you will have a prompt for the Generic Realizer that looks the following:

AUDIO_ID|PROMPT|CATEGORY|WARNING
1526-s26-ar0.test.Announcement.MiniApps.username.generic.en-US.{base64(value)}|ATTENTION! THIS IS A GENERIC REALIZER. MULTIPLE PROMPTS NEED TO BE UPLOADED. Please upload one prompt for every possible value of extValue1 by replacing each time the last part of the audioID with the base64 of each value|Generic Realizer|
CODE

This is essentially the placeholder ID for all the possible values that you are going to record for city and weather (as per our example above) and use in your prompts.

For each value you need to record a separate audio file, the name of which will be the audioID as indicated in the TSV entry, except with {base64(value)} replaced with each value encoded in base64 format (such as, Qm9zdG9u for Boston) and .wav, like this: 1526-s26-ar0.test.Announcement.MiniApps.username.generic.en-US.Qm9zdG9u.wav. This way the miniApp will know this is a recording of the word Boston for the prompt The weather in {{city|generic}} is {{weather|generic}}.

Each recording has a specific ID which means it can be used only in one specific prompt. So if, for instance, you need the word Boston in two different prompts, then you need to send the recording twice, with the respective ID each time (so the {base64(value)} will stay the same for the same value, but the part before that should be changed to the ID of the respective prompt).

For encoding the values, you can use any base64 encoder available online, such as base64encode.org.

Dynamic prompt without a realizer

If it’s a prompt that contains dynamic values but doesn’t have an audio type specified, you should go back to the miniApp configuration page and add one. Otherwise it will be played with TTS. As such, these prompts will have warnings attached in the TSV file, so you would be able to spot them and update them if needed.

Summary

To recap, to use the custom prerecorded prompts feature successfully you need the following:

  • an audio type (realizer) specified for dynamic values in each of the prompts

  • separate recordings for each possible value to be used inside {{}} in each prompt

  • the correct name of the prerecorded audio file (base audioID + .wav extension)

Upload pre-recorded audio list

miniAppsCustomerAdmin role is required in order to have this option available. Otherwise please contact OCP® Support.

Manage Languages tab with miniAppsCustomerAdmin role.

After creating the WAV audio lists, it is possible to upload them back to the required miniApp.

Make sure the audio files are created in the correct format - ULAW.

  1. Move all the WAV files to a single directory (no sub-directories) and compress it to a ZIP file.

  2. Click the Upload prerecorded audio list button.

  3. Add the ZIP file in the pop window and click the Upload button.

Available audio types (realizers)

  • date for realizing values of dates in the format YYYY-MM-DD

  • alphanumeric for realizing values such as abcd1234, 1234

  • amount for realizing values such as 125.60_EUR

  • generic for realizing any value

Custom Grammars

If an ASR custom grammar is available, it can be activated in the ASR field box. Follow the steps to enter a custom grammar:

  1. Turn the Custom Grammar Toggle button On.

  2. Enter the custom grammar name.

  3. (Optional) If you require further customization for your grammar's behavior, turn on the Settings Toggle button and adjust the provided ASR properties.

    • Minimum silence break: Minimum time in milliseconds that qualify as end of speech indicator.

    • Max speech timeout: Threshold in milliseconds for the maximum time allowed for speech.

Contact customer support if a custom grammar is required.

miniAppsCustomerAdmin role is required to enable custom grammars.

End Menu

A custom grammar can be used to override the default one for end menu options and take over on new task prompts. To activate the end menu custom grammar, follow the steps:

  1. Activate the Custom Grammar with the Toggle button.

  2. Enter the custom grammar name in the Grammar field text box or click the Sync arrow repeat button in the ASR field to use the same custom grammar across all steps of the dialogue.