Поделиться через


Краткое руководство. Транскрибирование и аналитика после вызова

Документация по | языковой службеLanguage Studio | Документация по | службе "Речь"Speech Studio

В этом кратком руководстве по C# вы выполните анализ тональности и обобщение бесед для транскрибирования в центре обработки вызовов . Пример будет автоматически определять, классифицировать и отредактировать конфиденциальную информацию. В этом кратком руководстве реализован сценарий между службами, в котором используются функции Службы "Когнитивная речь Azure" и Службы "Когнитивные языки Azure ".

Совет

Попробуйте Language Studio или Speech Studio , чтобы провести демонстрацию использования служб "Язык" и "Речь" для анализа бесед в центре обработки вызовов.

Чтобы развернуть решение транскрибирования для центра обработки вызовов в Azure с использованием подхода без написания кода, попробуйте использовать клиент приема данных.

В этом кратком руководстве используются следующие службы ИИ Azure для функций службы "Речь".

Языковая служба предлагает следующие функции:

Предварительные требования

Важно!

Для работы с этим кратким руководством требуется доступ к сводным данным беседы. Чтобы получить доступ, необходимо отправить онлайн-запрос и утвердить его.

--languageKey Значения и --languageEndpoint в этом кратком руководстве должны соответствовать ресурсу, который находится в одном из регионов, поддерживаемых API формирования сводных данных о беседах: eastus, northeuropeи uksouth.

Выполнение анализа транскрибирования после вызова с помощью C#

Выполните следующие действия, чтобы создать и запустить пример кода быстрого запуска анализа транскрибирования вызовов.

  1. Скопируйте 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
    
  2. Откройте командную строку и перейдите в каталог проекта.

    cd <your-local-path>/scenarios/csharp/dotnetcore/call-center/call-center/
    
  3. Создайте проект с помощью интерфейса командной строки .NET.

    dotnet build
    
  4. Запустите приложение с подходящими аргументами командной строки. Список доступных параметров см. в сведениях об использовании и аргументах.

    Ниже приведен пример транскрибирования из примера аудиофайла на сайте 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.

Дальнейшие действия