(cheerful music)
- Welcome back to Azure AI Essentials.
Today we're going to take a look at how you can add
language and speech capabilities to your applications
with Azure Cognitive Services.
We're going to focus on a call center scenario,
since this is a common use case,
but the concepts you'll learn here
will apply to many other scenarios as well.
Organizations across industries rely on call centers
to help provide excellent customer service.
These call center interactions
can be a source of rich information about customer needs,
employee performance, and more, that's largely untapped.
Call centers today often sample just a fraction of calls
to understand agent performance, and customer insights
are often classified manually by agents during or after
the call, which can be inefficient and error-prone.
With AI, organizations are increasingly building
intelligent call centers, which automate processes
and enable them to gain learnings from every customer call.
This can help reduce costs, identify areas of improvement,
and improve customer experience.
This diagram represents
the main components of an intelligent call center
built on Azure AI.
Over the next few minutes,
I'll walk you through some basics
of Azure's Speech and Language Cognitive Services.
The first step in creating
an intelligent call center solution
is typically to implement automated transcription of calls,
which can be done using Azure's Speech service.
This is a helpful first step for scenarios
like compliance audit, associate training,
gaining insights to improve products,
and understanding customer satisfaction.
Call centers often come with their own set of challenges
to address when it comes to converting speech to text.
A combination of low quality phone signals,
substantial background noise,
and a wide variety of languages and dialects
can result in audio that's difficult
for even a human to understand.
In addition, company and industry-specific vocabulary
can be difficult for a model to transcribe accurately.
There are numerous ways to connect call center audio
to Azure, and the specifics depend on the environment.
Here, let's assume you have a way to access
the call center audio either as recordings or in real-time.
Azure's pre-built speech to text models are trained
on a variety of telephony data and are accurate
for transcribing call center data,
as well as other types of audio.
The models can also be easily customized to handle
different acoustic conditions
and domain-specific terminology.
In this next example, imagine we have a call center
in the healthcare industry,
and we want to train a model using our own data.
This will allow us to increase accuracy
of the speech transcriptions,
taking into account medical vocabulary.
I've already taken the steps of deploying a speech resource
and setting up a custom speech project.
Starting on the data tab in the Speech Studio,
you can upload data to train the custom speech model.
This data is used to tune the provided baseline models
to recognize your domain-specific vocabulary.
The custom model will be trained using audio data
along with human-labeled transcriptions.
Notice the use of the term "Tenex" in these examples.
This is a medication name.
Keep in mind that each audio file used as a training example
must be under 60 seconds-long.
The audio with human-labeled transcriptions should be
between 10 and 1,000 hours long for the best results.
Once we've uploaded the data, we can use the training tab
to train our model.
From here we can also see which data has been used
to train the model.
Here, we've already run an evaluation of our new model
against the baseline.
Notice the significant improvement in performance
between our custom model and baseline model.
We can click in to learn more
and see that the baseline model has trouble recognizing
the medical term, "Tenex," but our custom model
now recognizes this accurately.
Continue to test and refine your model until you've reached
the desired level of accuracy,
and deploy a custom endpoint to use your model
in your application.
If you prefer a code-first approach, there's also an option
to use the Speech SDK, which is available
in many programming languages.
You can also use the Speech service to translate audio
to different languages in real-time, and to convert text
to speech, which can be helpful
if there's a virtual agent component to your call center.
Once the audio has been transcribed and translated,
the next step is often to analyze that text
to extract insights.
For organizations with many customer service calls,
it can become overwhelming to analyze them all
to spot trends such as commonly reported issues.
With Azure's Language cognitive services,
this analysis can be automated,
cutting down on the time needed to optimize your models.
Text Analytics has pre-built
natural language processing models
that can take in-the-call transcriptions,
and analyze for sentiment, extract key phrases, and more.
Here, we call the Text Analytics API and pull out
key phrases, like names of products, as well as analyze
for positive, negative, or neutral customer sentiment.
With Azure's Language Understanding service,
you can easily train natural language understanding models
to help support your call center by enabling computers
to accept language as input, understand what's being said,
and act accordingly.
For a call center, you can train a model to understand
and categorize calls in a way that's specific
to your business, which can help filter calls
and direct customers to get appropriate help more quickly.
For example, a retail company may want to categorize calls
based on categories like design or pricing,
and use that information to bring in the right team
to help solve the customer's issue.
You can build two types of language models,
the first is classifier models, which help categorize data.
In the call center, this may be useful to classify calls
to get a sense of top customer issues.
The second type is extractor models,
which extract key information from the text.
For example, you could use these models to extract
and understand customer sentiment over time.
These models are often used together to enable you
to get the most appropriate extractions.
Training a custom model can be done visually,
through the Language Understanding service's
UI-based experience, or through an API or SDK.
Here, we're building a classifier model
in the Language portal.
An intent represents a task or action
the user wants to perform.
For each intent, you'll train the model by providing
some examples of what customers might say.
These examples are called "utterances."
An example utterance might be, "My dishwasher is broken.
"How fast can I receive a new one?"
The output would be the intent of "speed."
Language Understanding uses a technique called
"machine teaching," which enables you to teach a computer
the same way you'd teach a person.
This is an iterative process that uses fewer labels
than traditional machine-learning techniques,
and allows you to effectively build
and maintain custom models.
To train your model, you can upload a labeled dataset
or label it manually using the online UI,
which has an interface that allows you to easily label
utterances from your training dataset.
A good guideline to follow is to use 70% of your data
to train the model, and use the other 30% to test it.
Click "train" to train your model,
publish your Language Understanding app,
and then you can test the trained model for accuracy.
Given a test utterance, the model will return an intent
with a score between zero and one, indicating how confident
the model is that its prediction is correct.
Now, these insights can be aggregated and visualized
using a business intelligence tool,
to help inform business decisions.
These visualizations were built
using custom Python scripts in Power BI.
A dashboard like this makes it easier to understand
how to resolve common issues,
reduce future support call volumes,
and improve customer service.
As we just demonstrated, this process is helpful
for post-call analytics.
But the same process can also be done in real-time,
for an agent assist scenario, where real-time insights
are provided to call center agents
during their customer calls.
Imagine a solution which recommends the next best action,
or pulls up relevant documents.
For example, if the customer is asking a question
about a particular order, the system can retrieve
the order details, saving time for the agent.
Modernizing a call center is just one of the ways
Speech and Language AI capabilities can be applied
to solve business challenges.
And this general pattern we've discussed today
can be applied to any scenario
where you want to make sense of conversations,
including medical consultations, sales calls,
business meetings, and more.
Thanks for tuning in, and we'll see you next time
on Azure AI Essentials.
(lively music)