Custom vocabulary
Expand Medallia Speech language models with nonstandard terms.
Custom vocabulary (also known as out-of-vocabulary or OOV) is an ASR tuning feature for the Voci engine (Engine 1) that improves transcription accuracy for audio that contains brand- and industry-specific terms. Custom vocabulary supports all Voci language models and enhances them with preferential treatment for new words.
Custom vocabulary is best used for phrases that are otherwise unlikely to occur in transcribed audio and words with no phonetic representation in the model's vocabulary. Both of these scenarios are prone to transcription errors and can be accounted for with custom vocabulary. This feature can also improve transcription accuracy for accented speech and words that are frequently mispronounced.
Common examples include phrases with standard vocabulary words in uncommon contexts; made-up or novel words; and people, company, brand, location, and product names.
Custom vocabulary may seem similar to the substitutions feature, but it solves transcription errors from a different angle.
Custom vocabulary works best for detecting nonstandard vocabulary. It anticipates errors by using term and pronunciation data supplied with the transcription request to expand the language model's standard vocabulary. As a result, errors are less likely to be made.
Substitution corrects errors after they are made and works best for correcting common transcription errors in particular audio scenarios.
JSON syntax
Both the Custom Vocabulary field on the Connectors Settings screen and the oov Speech API parameter accept a JSON dictionary with a list of terms, as in the following example:
{"oov" : ["Elastix", "Quinnipiac University Polls", "InvisAlign"]}
Include optional sound-outs with equality symbols (=) and hyphens (-):
{"oov" : ["Elastix", "Quinnipiac=quinn-a-pack University Polls", "InvisAlign=in-viz-align=in-vis-align"]}
Use custom vocabulary with Speech transcription
Follow the steps below to use custom vocabulary for transcription:
-
Develop a list of terms and, optionally, their pronunciations.
-
Include the parameter
oovwith your transcription request.Set the value of
oovto the custom vocabulary JSON. In Experience Cloud, this can be done on the Connector Settings screen.To learn more, see Speech API and Connector settings
There are two components to the data included with custom vocabulary requests:
-
The list of terms consisting of the novel or uncommon words and phrases to detect.
-
Optional sound-outs, which map non-standard terms to sounds.
If sound-outs are not supplied with the request, the ASR engine will use its standard interpretation of words, and in many cases this is sufficient.
Custom vocabulary anticipates transcription errors by prioritizing uncommon sound combinations that match the predefined vocabulary submitted with the request. To optimize performance, add terms and phrases that someone unfamiliar with the brand or industry would not expect to encounter in a conversation about it.
For example, to add context for the brand AcmeCorp in a telephone conversation, you might add phrases like "you have reached AcmeCorp" and "thank you for calling AcmeCorp".
Define sound-outs
Sound-outs are optional and most useful when using custom vocabulary to look for made-up words, or when the relationship between a word's spelling and its pronunciation is otherwise unusual.
If sound-outs are not included in a request's custom vocabulary configuration, the ASR engine determines pronunciation based on its internal rules and existing vocabulary.
When crafting sound-outs, use words that exist in the language's standard vocabulary. Monosyllabic filler words like "uh" and less predictable sounds like "va" can be interpreted different ways by the engine and reduce accuracy.
For example, consider defining a sound-out for the word pharaoh in English. The sound-out "feh-roh" might seem like a good starting point, but the ASR engine does not know precisely how to pronounce feh or roh, so its interpretation of the sound-out can be ambiguous. In this case, defining the sound-out for pharaoh as "fair-oh" performs better because there are precise pronunciations in the standard model for fair and oh.
Using non-standard words in sound-outs means the engine must calculate those words' pronunciations, thus possibly introducing inaccuracies. Using standard words means that initial calculation is already done.
Do not assume one sound-out fits all accents. Add multiple sound-outs to account for dialect variations, and test with diverse speaker samples.
Limitations and best practices
The theoretical or practical limit to the number of custom vocabulary rules is high, at least many thousands. The upper limit for one-word-per-line custom vocabulary data is 22,500.
When a transcription request includes custom vocabulary, the ASR engine assumes that it is more likely to detect custom words in processed audio. In other words, when transcribing speech, words decoded with the custom dictionary are strongly weighted over standard matches in the base model. As a result, poorly matched custom vocabulary sets may produce more false positives.
Generally, transcription with custom vocabulary performs better when looking for small phrases rather than single words. As a result, providing context (using a phrase that includes the custom term instead of a single word) becomes more important, as custom words sound more like words in the model's standard vocabulary. The more unique the word sounds, the less context is needed to transcribe the custom word accurately.
Providing context also improves performance when working with common words in uncommon ways. For example, transcribing the name of the brand name ProFit without context could lead to false positives if the audio includes mentions about "profit and loss." The phrase-based sound-out ProFit=pro-fit bicycles prevents those false positives.
Digits and capitalization
Custom vocabulary works neither predictably nor well with numeric digits. Some English models can spell out strings of up to four digits, but may throw an error beyond that four-digit threshold. Custom vocabulary cannot successfully process a sequence of numbers in any case.
Models for other languages cannot process digits with custom vocabulary at all. Mixing letters and digits in a custom vocabulary dictionary will cause the digits to be silently dropped from transcription output.
Custom vocabulary preserves capitalization and supports partial capitalization.
