How-To Best Monitor Agent Script Adherence With Custom Vocab & Keyword Spotting

Posted by Bryon Mathias-Fuqua on Oct 11, 2016 11:17:06 AM

script-adherence.jpg

Identifying The Presence or Absence of a Word or Phrase

Many call centers and call center monitoring software need a way to search through recordings to monitor agent script adherence. A popular question that we get from developers is, how can we use VoiceBase features to identify recordings that end with, “Thank you for calling company XYZ” with a high level of confidence that the entire phrase was present in the recording?

 What can you detect? Check out other useful blogs below


 

Great question! Here is a quick 3 step process to ensure you spot mandatory phrases:

1) Add the phrase to Custom Vocabulary

Custom Vocabulary is a new pre-processing feature that allows you to specify per file, a set of terms or phrases that are important and should be preferentially recognized when transcribed. Without using our Custom Vocabulary feature you may notice a number of slight differences which will make it annoying to detect the phrase, "Thank you for calling VoiceBase". For example, instead you may get "Thank you for calling voice space" or "Thank you fore calling VoiceBase" - where both of these phrases would result in false-negatives. By adding the correct phrase to Custom Vocabulary, the speech engine will know what to expect and will correct those similar phrases to be the expected one.

 

There are two ways to use Custom Vocabulary: 

1) Adhoc - Add words or phrases to a job at upload time on the fly, or

2) Pre-defined - Create a group of words and phrases beforehand, then reference the group name at upload time.

For Adhoc use this configuration at upload:

 
      {
         "configuration": {
              "executor": "v2",
              "transcripts": {
                 "vocabularies": [
                     {
                        "terms" : [
                           "Thank you for calling VoiceBase",
                           "Phrase Two",
                           "Phrase Three"
                        ]
                     }
                 ]
             }
          }
      }

 

or for predefined, create a group first by making a PUT request to /definitions/transcripts/vocabularies with this JSON body:

 
       {
           "vocabulary" : {
               "name": "agentScript",
               "terms": [
                           "Thank you for calling VoiceBase", 
                           "Phrase Two",
                           "Phrase Three"
               ]
           }
       }

 

then apply that group at upload using this configuration:

 
{  
   "configuration":{  
      "transcripts":{  
         "engine":"premium",
         "vocabularies":[  
            {  
               "name":"agentScript"
            }
         ]
      }
   }
}
 

2) Add the phrase to a Keyword Spotting group

By adding the phrases to a Keyword Spotting group VoiceBase will be able to identify occurrences of the phrase and return that in the JSON response. Keyword Spotting groups work similar to Custom Vocabulary groups in the API - first, create a group with phrases, then apply that group at upload time.

To create a keyword spotting group send a PUT request to /definitions/keywords/groups/{groupname}

The body of the PUT request is a JSON object (Content-Type: Application/json) that looks like this:

 
{  
   "name":"agentScript",
   "keywords":[  
      "Thank you for calling VoiceBase",
      "Phrase Two",
      "Phrase Three"
   ]
}
 

And to apply that at upload time, use the following configuration:

 
{  
   "configuration":{  
      "keywords":{  
         "groups":[  
            "agentScript"
         ]
      }
   }
}
 

Your Custom Vocabulary and Keyword Spotting groups will look similar most of the time. There are some cases for single word spotting where you may be very sensitive to false positives, in that case only using Keyword Spotting is recommended.

 

3) Collect the JSON response

The results will be available in the JSON response at /media/{mediaId} and look like this:

 
  "groups": [
          {
            "keywords": [
              {
                "t": {
                  "unknown": [
                    2.05
                  ]
                },
                "name": "Thank you for calling VoiceBase"
              }
            ],
            "name": "thankvb",
            "type": "group"
          }
        ]
 

The 2.05 indicates one occurrence beginning at 2.05 seconds into the recording.


 

READY, SET, <GET>

Ready to try the VoiceBase speech API? You can check out the docs here, or read more about what's possible here. Oh, and here are the Top 10 API Commands To Get Started, those might be helpful.

Top10_cover.png

 

We can't wait to see what you'll detect.


 

Topics: API, speech analytics, keyword spotting, custom vocab

Written by Bryon Mathias-Fuqua

Bryon has one of the most recognizable faces at VoiceBase. He has played a key role as one of our early sales engineers in onboarding many of our enterprise customers. You may have seen him at Twilio's Signal, DreamForce, Enterprise Connect, or one of our other shows with a new demo to show off! When Bryon disconnects from the speech analytics world you can typically find him in his natural habitat on the beaches of Santa Cruz, California. He is also particularly gifted at the popular 90s craze, Dance Dance Revolution, but tries to keep it "low key".
Find me on:

What is Big Voice?

AI-powered speech analytics for the cloud

VoiceBase is defining the future of deep learning and communications by providing unparalleled access to spoken information for businesses to make better decisions. With flexible APIs developers and enterprises build scalable solutions with VoiceBase by embedding speech-to-text, speech analytics, and predictive analytics capabilities into any big voice application. 

Subscribe to Email Updates

Recent Posts