Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Документация | для службы "Речь"
В этом кратком руководстве по C# вы выполняете анализ тональности и сводку бесед для транскрибирования центра вызовов. Пример автоматически определяет, классифицирует и редактирует конфиденциальную информацию. Краткое руководство реализует межслужбовый сценарий, использующий функции Службы "Когнитивная речь Azure" и "Когнитивный язык Azure".
Совет
Ознакомьтесь с Языковой Студией или Речевой Студией для демонстрации использования служб Azure Language и Speech для анализа бесед в центре обработки вызовов.
Чтобы развернуть решение транскрибирования для центра обработки вызовов в Azure с использованием подхода без написания кода, попробуйте использовать клиент приема данных.
В быстром старте используются следующие средства Foundry для работы с речью.
- Пакетное транскрибирование: отправка пакета аудиофайлов для транскрибирования.
- Разделение динамиков: разделение нескольких динамиков путем диаризации моно 16 кгц 16-разрядных wav-файлов PCM.
Служба языка предлагает следующие функции, которые используются:
- Извлечение и редактирование личных сведений: идентифицируйте, классифицируйте и редактируйте конфиденциальную информацию при транскрибировании бесед.
- Формирование сводных данных бесед. Формируйте в абстрактном тексте сводных данных о том, что каждый участник беседы говорил о проблемах и их решениях. Например, центр обработки вызовов может группировать сведения о самых значительных проблемах с продуктами.
- Анализ тональности и интеллектуальный анализ мнений: анализируйте расшифровки и связывайте положительные, нейтральные или негативные тональности на уровне речевого фрагмента и беседы.
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- с несколькими службами на портале Azure. Для этого краткого руководства требуется только один ресурс Foundry Tools с несколькими службами. Пример кода позволяет указать отдельные ключи ресурсов языка и речи.
- Получите ключ ресурса и регион. После развертывания ресурса Microsoft Foundry выберите "Перейти к ресурсу " для просмотра ключей и управления ими.
Внимание
В этом кратком руководстве требуется доступ к сводным данным беседы. Чтобы получить доступ, необходимо отправить онлайн-запрос и утвердить его.
И --languageKey значения в этом кратком руководстве должны соответствовать ресурсу, который находится в одном из регионов, поддерживаемых --languageEndpoint сводки бесед: , eastusи northeurope.uksouth
Выполнение анализа транскрибирования после вызова с помощью 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на ключ ресурса Microsoft Foundry, заменитеYourResourceRegionна регион Microsoft Foundry (например,eastus), и заменитеYourResourceEndpointна конечную точку инструментов Foundry. Убедитесь, что пути, заданные значениями--inputи--output, допустимы. В противном случае путь необходимо изменить.Внимание
Обязательно удалите ключ из кода, когда завершите работу, и ни в коем случае не публикуйте его в открытом доступе. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения см. в статье о безопасности средств Foundry.
Проверка результатов
В выходных данных консоли отображаются полные беседы и сводки. Ниже приведен пример общей сводки с редактами для краткости:
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 и значения должны соответствовать ресурсу, который находится в одном из регионов, поддерживаемых --languageEndpoint сводки бесед: и eastusnortheurope.uksouth
Доступны следующие параметры подключения:
--speechKey KEY: ключ ресурса . Требуется для транскрибирования звука с параметром--inputURL-адреса.--speechRegion REGION: регион ресурса . Требуется для транскрибирования звука с параметром--inputURL-адреса. Примеры:eastus,northeurope--languageEndpoint ENDPOINT: конечная точка ресурса . Обязательный. Пример:https://YourResourceName.cognitiveservices.azure.com
Доступны следующие параметры входных данных:
-
--input URL: входной звук из URL-адреса. Необходимо задать либо--input--jsonInputпараметр. -
--jsonInput FILE: введите существующий результат json пакетной транскрибирования JSON из ФАЙЛА. С помощью этого параметра требуется только ресурс языка для обработки транскрибирования, который у вас уже есть. С помощью этого параметра не требуется звуковой файл или ресурс Foundry для распознавания речи. Переопределяет--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), чтобы удалить созданный ресурс Microsoft Foundry.