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


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

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

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

Совет

Ознакомьтесь с языковой студией или Службой "Речь" для демонстрации использования служб "Язык" и "Речь" для анализа бесед в центре обработки вызовов.

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

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

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

Необходимые компоненты

Внимание

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

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

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

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

  1. Скопируйте сценарии,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 -- [...]

Внимание

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

Доступны следующие параметры подключения:

Доступны следующие параметры входных данных:

  • --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.

Следующие шаги