Краткое руководство. Транскрибирование и аналитика после вызова
Документация | | по службе "Речь" в языковой службе Language Studio | для службы "Речь"
В этом кратком руководстве по C# вы выполняете анализ тональности и сводку бесед для транскрибирования центра вызовов. Пример автоматически определяет, классифицирует и редактирует конфиденциальную информацию. Краткое руководство реализует межслужбовый сценарий, использующий функции Службы "Когнитивная речь Azure" и "Когнитивный язык Azure".
Совет
Ознакомьтесь с языковой студией или Службой "Речь" для демонстрации использования служб "Язык" и "Речь" для анализа бесед в центре обработки вызовов.
Чтобы развернуть решение транскрибирования для центра обработки вызовов в Azure с использованием подхода без написания кода, попробуйте использовать клиент приема данных.
В кратком руководстве используются следующие службы ИИ Azure для функций распознавания речи:
- Пакетное транскрибирование: отправка пакета аудиофайлов для транскрибирования.
- Разделение динамиков: разделение нескольких динамиков путем диаризации моно 16 кгц 16-разрядных wav-файлов PCM.
Служба языка предлагает следующие функции, которые используются:
- Извлечение и редактирование личных сведений: идентифицируйте, классифицируйте и редактируйте конфиденциальную информацию при транскрибировании бесед.
- Формирование сводных данных бесед. Формируйте в абстрактном тексте сводных данных о том, что каждый участник беседы говорил о проблемах и их решениях. Например, центр обработки вызовов может группировать сведения о самых значительных проблемах с продуктами.
- Анализ тональности и интеллектуальный анализ мнений: анализируйте расшифровки и связывайте положительные, нейтральные или негативные тональности на уровне речевого фрагмента и беседы.
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Создайте ресурс с несколькими службами в портал Azure. В этом кратком руководстве требуется только один ресурс служб ИИ Azure с несколькими службами. Пример кода позволяет указать отдельные ключи ресурсов языка и речи .
- Получите ключ ресурса и регион. После развертывания ресурса служб искусственного интеллекта Azure выберите "Перейти к ресурсу " для просмотра ключей и управления ими.
Внимание
В этом кратком руководстве требуется доступ к сводным данным беседы. Чтобы получить доступ, необходимо отправить онлайн-запрос и утвердить его.
И --languageKey
значения в этом кратком руководстве должны соответствовать ресурсу, который находится в одном из регионов, поддерживаемых API сводки бесед: eastus
, northeurope
и uksouth
.--languageEndpoint
Выполнение анализа транскрибирования после вызова с помощью C#
Выполните следующие действия, чтобы создать и запустить пример кода быстрого запуска анализа транскрибирования после вызова.
Скопируйте сценарии,csharp/dotnetcore/call-center/примеры файлов из GitHub. Если вы установили Git, откройте командную строку и выполните
git clone
команду, чтобы скачать репозиторий примеров пакета SDK службы "Речь".git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
Откройте командную строку и перейдите в каталог проекта.
cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
Создайте проект с помощью интерфейса командной строки .NET.
dotnet build
Запустите приложение с подходящими аргументами командной строки. Список доступных параметров см. в сведениях об использовании и аргументах.
Ниже приведен пример, который транскрибирует из примера аудиофайла на сайте GitHub:
dotnet run --languageKey YourResourceKey --languageEndpoint YourResourceEndpoint --speechKey YourResourceKey --speechRegion YourResourceRegion --input "https://github.com/Azure-Samples/cognitive-services-speech-sdk/raw/master/scenarios/call-center/sampledata/Call1_separated_16k_health_insurance.wav" --stereo --output summary.json
Если у вас уже есть транскрибирование для входных данных, вот пример, который требует только ресурса языка:
dotnet run --languageKey YourResourceKey --languageEndpoint YourResourceEndpoint --jsonInput "YourTranscriptionFile.json" --stereo --output summary.json
Замените
YourResourceKey
ключ ресурса служб ИИ Azure, заменитеYourResourceRegion
регионом ресурсов служб ИИ Azure (напримерeastus
), а затем заменитеYourResourceEndpoint
конечной точкой служб ИИ Azure. Убедитесь, что пути, заданные значениями--input
и--output
, допустимы. В противном случае путь необходимо изменить.Внимание
Обязательно удалите ключ из кода, когда завершите работу, и ни в коем случае не публикуйте его в открытом доступе. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения см. в статье по безопасности служб ИИ Azure.
Проверка результатов
В выходных данных консоли отображаются полные беседы и сводки. Ниже приведен пример общей сводки с редактами для краткости:
Conversation summary:
issue: Customer wants to sign up for insurance.
resolution: Customer was advised that customer would be contacted by the insurance company.
Если указать --output FILE
необязательный аргумент, версия результатов JSON записывается в файл. Выходные данные файла — это сочетание ответов JSON из API пакетного транскрибирования (речь), тональности (язык) и сводных данных бесед (язык).
Свойство transcription
содержит объект JSON с результатами анализа тональности, объединенных с пакетным транскрибированием. Ниже приведен пример с редактами для краткости:
{
"source": "https://github.com/Azure-Samples/cognitive-services-speech-sdk/raw/master/scenarios/call-center/sampledata/Call1_separated_16k_health_insurance.wav",
// Example results redacted for brevity
"nBest": [
{
"confidence": 0.77464247,
"lexical": "hello thank you for calling contoso who am i speaking with today",
"itn": "hello thank you for calling contoso who am i speaking with today",
"maskedITN": "hello thank you for calling contoso who am i speaking with today",
"display": "Hello, thank you for calling Contoso. Who am I speaking with today?",
"sentiment": {
"positive": 0.78,
"neutral": 0.21,
"negative": 0.01
}
},
]
// Example results redacted for brevity
}
Свойство conversationAnalyticsResults
содержит объект JSON с результатами анализа сводных данных беседы и беседы. Ниже приведен пример с редактами для краткости:
{
"conversationAnalyticsResults": {
"conversationSummaryResults": {
"conversations": [
{
"id": "conversation1",
"summaries": [
{
"aspect": "issue",
"text": "Customer wants to sign up for insurance"
},
{
"aspect": "resolution",
"text": "Customer was advised that customer would be contacted by the insurance company"
}
],
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-05-15-preview"
},
"conversationPiiResults": {
"combinedRedactedContent": [
{
"channel": "0",
"display": "Hello, thank you for calling Contoso. Who am I speaking with today? Hi, ****. Uh, are you calling because you need health insurance?", // Example results redacted for brevity
"itn": "hello thank you for calling contoso who am i speaking with today hi **** uh are you calling because you need health insurance", // Example results redacted for brevity
"lexical": "hello thank you for calling contoso who am i speaking with today hi **** uh are you calling because you need health insurance" // Example results redacted for brevity
},
{
"channel": "1",
"display": "Hi, my name is **********. I'm trying to enroll myself with Contoso. Yes. Yeah, I'm calling to sign up for insurance.", // Example results redacted for brevity
"itn": "hi my name is ********** i'm trying to enroll myself with contoso yes yeah i'm calling to sign up for insurance", // Example results redacted for brevity
"lexical": "hi my name is ********** i'm trying to enroll myself with contoso yes yeah i'm calling to sign up for insurance" // Example results redacted for brevity
}
],
"conversations": [
{
"id": "conversation1",
"conversationItems": [
{
"id": "0",
"redactedContent": {
"itn": "hello thank you for calling contoso who am i speaking with today",
"lexical": "hello thank you for calling contoso who am i speaking with today",
"text": "Hello, thank you for calling Contoso. Who am I speaking with today?"
},
"entities": [],
"channel": "0",
"offset": "PT0.77S"
},
{
"id": "1",
"redactedContent": {
"itn": "hi my name is ********** i'm trying to enroll myself with contoso",
"lexical": "hi my name is ********** i'm trying to enroll myself with contoso",
"text": "Hi, my name is **********. I'm trying to enroll myself with Contoso."
},
"entities": [
{
"text": "Mary Rondo",
"category": "Name",
"offset": 15,
"length": 10,
"confidenceScore": 0.97
}
],
"channel": "1",
"offset": "PT4.55S"
},
{
"id": "2",
"redactedContent": {
"itn": "hi **** uh are you calling because you need health insurance",
"lexical": "hi **** uh are you calling because you need health insurance",
"text": "Hi, ****. Uh, are you calling because you need health insurance?"
},
"entities": [
{
"text": "Mary",
"category": "Name",
"offset": 4,
"length": 4,
"confidenceScore": 0.93
}
],
"channel": "0",
"offset": "PT9.55S"
},
{
"id": "3",
"redactedContent": {
"itn": "yes yeah i'm calling to sign up for insurance",
"lexical": "yes yeah i'm calling to sign up for insurance",
"text": "Yes. Yeah, I'm calling to sign up for insurance."
},
"entities": [],
"channel": "1",
"offset": "PT13.09S"
},
// Example results redacted for brevity
],
"warnings": []
}
]
}
}
}
Использование и аргументы
Использование: call-center -- [...]
Внимание
Вы можете использовать ресурс с несколькими службами или отдельные ресурсы языка и речи . В любом случае --languageKey
и значения должны соответствовать ресурсу, который находится в одном из регионов, поддерживаемых API сводки бесед: eastus
и northeurope
uksouth
.--languageEndpoint
Доступны следующие параметры подключения:
--speechKey KEY
: ваши службы ИИ Azure или ключ ресурса "Речь ". Требуется для транскрибирования звука с параметром--input
URL-адреса.--speechRegion REGION
: ваши службы ИИ Azure или регион ресурсов службы распознавания речи . Требуется для транскрибирования звука с параметром--input
URL-адреса. Примеры:eastus
,northeurope
--languageKey KEY
: ваши службы ИИ Azure или ключ ресурса языка . Обязательный.--languageEndpoint ENDPOINT
: ваши службы ИИ Azure или конечная точка ресурса языка. Обязательный. Пример:https://YourResourceName.cognitiveservices.azure.com
Доступны следующие параметры входных данных:
--input URL
: входной звук из URL-адреса. Необходимо задать либо--input
--jsonInput
параметр.--jsonInput FILE
: введите существующий результат json пакетной транскрибирования JSON из ФАЙЛА. С помощью этого параметра требуется только ресурс языка для обработки транскрибирования, который у вас уже есть. С помощью этого параметра не требуется звуковой файл или ресурс "Речь". Переопределяет--input
. Необходимо задать либо--input
--jsonInput
параметр.--stereo
: указывает, что звук через "'входной URL-адрес" должен быть в стереоформате. Если стерео не задано, предполагается, что предполагается, что в wav-файлах PCM используется моно 16 кбгц. Диаризация монофайлов используется для разделения нескольких динамиков. Диаризация стереофайлов не поддерживается, так как 2-каналовые стереофайлы уже должны иметь один динамик на канал.--certificate
: файл сертификата PEM. Требуется для C++.
Доступны следующие параметры языка:
--language LANGUAGE
: язык, используемый для анализа тональности и анализа бесед. Это значение должно быть двухбуквенный код ISO 639-1. Значение по умолчанию —en
.--locale LOCALE
: языковой стандарт, используемый для пакетной транскрибирования звука. Значение по умолчанию —en-US
.
Доступны следующие параметры выходных данных:
--help
: отображение справки по использованию и остановки--output FILE
: выводит транскрибирование, тональность, личные данные беседы и сводки бесед в формате JSON в текстовый файл. Дополнительные сведения см . в примерах выходных данных.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI) для удаления созданного ресурса служб искусственного интеллекта Azure.