Краткое руководство. Транскрибирование и аналитика после вызова
Документация по | языковой службеLanguage Studio | Документация по | службе "Речь"Speech Studio
В этом кратком руководстве по C# вы выполните анализ тональности и обобщение бесед для транскрибирования в центре обработки вызовов . Пример будет автоматически определять, классифицировать и отредактировать конфиденциальную информацию. В этом кратком руководстве реализован сценарий между службами, в котором используются функции Службы "Когнитивная речь Azure" и Службы "Когнитивные языки Azure ".
Совет
Попробуйте Language Studio или Speech Studio , чтобы провести демонстрацию использования служб "Язык" и "Речь" для анализа бесед в центре обработки вызовов.
Чтобы развернуть решение транскрибирования для центра обработки вызовов в Azure с использованием подхода без написания кода, попробуйте использовать клиент приема данных.
В этом кратком руководстве используются следующие службы ИИ Azure для функций службы "Речь".
- Пакетное транскрибирование. Отправьте пакет аудиофайлов для транскрибирования.
- Разделение динамиков: разделение нескольких динамиков с помощью диаризации моно-16 кГц 16-разрядных wav-файлов PCM.
Языковая служба предлагает следующие функции:
- Извлечение и редактирование личных сведений. Идентифицируйте, классифицируйте и редактируйте конфиденциальную информацию при транскрибировании бесед.
- Формирование сводных данных бесед. Формируйте в абстрактном тексте сводных данных о том, что каждый участник беседы говорил о проблемах и их решениях. Например, центр обработки вызовов может группировать сведения о самых значительных проблемах с продуктами.
- Анализ тональности и интеллектуальный анализ мнений. Анализируйте расшифровки и связывайте положительные, нейтральные или негативные тональности на уровне речевого фрагмента и беседы.
Предварительные требования
- Подписка Azure — создайте бесплатную учетную запись.
- . Создание ресурса с несколькими службами в портал Azure. Для работы с этим кратким руководством требуется только один ресурс служб ИИ Azure с несколькими службами. В примере кода можно указать отдельные ключи ресурсов ".
- Получите ключ ресурса и регион. После развертывания ресурса служб ИИ Azure выберите Перейти к ресурсу , чтобы просмотреть ключи и управлять ими. Дополнительные сведения о ресурсах служб ИИ Azure см. в статье Получение ключей для ресурса.
Важно!
Для работы с этим кратким руководством требуется доступ к сводным данным беседы. Чтобы получить доступ, необходимо отправить онлайн-запрос и утвердить его.
--languageKey
Значения и --languageEndpoint
в этом кратком руководстве должны соответствовать ресурсу, который находится в одном из регионов, поддерживаемых API формирования сводных данных о беседах: eastus
, northeurope
и uksouth
.
Выполнение анализа транскрибирования после вызова с помощью C#
Выполните следующие действия, чтобы создать и запустить пример кода быстрого запуска анализа транскрибирования вызовов.
Скопируйте scenarios/csharp/dotnetcore/call-center/ (Копирование примеров сценариев/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 -- [...]
Важно!
Вы можете использовать ресурс с несколькими службами или отдельный ресурс Язык и ". Ресурсы службы "Речь ". В любом случае значения и --languageEndpoint
должны соответствовать ресурсу, --languageKey
который находится в одном из регионов, поддерживаемых API формирования сводных данных бесед: eastus
, northeurope
и uksouth
.
Доступны следующие параметры подключения:
--speechKey KEY
: Azure или создание ключа ресурса . Требуется для транскрибирования аудио с параметром--input
from URL-адрес.--speechRegion REGION
. Создание Azure или создание в регионе ресурса "Речь". Требуется для транскрибирования аудио с параметром--input
from URL-адрес. Примеры:eastus
,northeurope
--languageKey KEY
. Создание Azure или ключ ресурса ". Обязательный.--languageEndpoint ENDPOINT
: создание Azure или конечная точка ресурса ". Обязательный. Пример:https://YourResourceName.cognitiveservices.azure.com
Доступны следующие параметры входных данных:
-
--input URL
: ввод звука из URL-адреса. Необходимо задать параметр--input
или--jsonInput
. -
--jsonInput FILE
: введите существующий результат пакетного транскрибирования JSON из FILE. При использовании этого параметра для обработки уже имеющегося транскрибирования требуется только языковой ресурс. При использовании этого параметра вам не нужен звуковой файл или ресурс службы "Речь". Переопределяет--input
. Необходимо задать параметр--input
или--jsonInput
. -
--stereo
: указывает, что звук через ""входной URL-адрес" должен быть в стереоформате. Если стерео не задано, предполагается, что wav-файлы PCM моно 16 кГц 16 кГц. Диаризация монофайлов используется для разделения нескольких динамиков. Диаризация стереофайлов не поддерживается, так как 2-канальные стереофайлы уже должны иметь по одному динамику на канал. -
--certificate
: файл сертификата PEM. Требуется для C++.
Доступны следующие параметры языка:
-
--language LANGUAGE
: язык, используемый для анализа тональности и анализа бесед. Это значение должно быть двухбуквенный код ISO 639-1. Значение по умолчанию —en
. -
--locale LOCALE
: языковой стандарт, используемый для пакетного транскрибирования аудио. Значение по умолчанию —en-US
.
Доступны следующие параметры выходных данных:
-
--help
: отображение справки по использованию и остановка -
--output FILE
: выводит транскрибирование, тональность, личные сведения беседы и сводки бесед в формате JSON в текстовый файл. Дополнительные сведения см. в примерах выходных данных.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI), чтобы удалить созданный ресурс служб ИИ Azure.
Дальнейшие действия
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по