Анализ результатов распознавания

SpeechKit API v3 может анализировать аудио во время распознавания и вместе с результатами возвращать дополнительную информацию: наличие и временные метки начала и конца определенных слов и речевых оборотов, длительность фраз и пауз, скорость речи говорящего, количество слов в фразах и другие метки и метрики речевой аналитики.

Классификаторы аудио

Примечание

Классификаторы доступны только для речи на русском языке.

Классификаторы могут применяться к промежуточным и окончательным результатам распознавания. Чтобы включить классификатор, определите параметр recognition_classifier в настройках сессии. Результаты срабатывания классификаторов будут приходить отдельным сообщением сразу после событий, указанных в настройках классификатора. Для классификаторов это могут быть события типа partial, eou_update или final.

SpeechKit поддерживает следующие классификаторы:

Классификатор Описание Результат
formal_greeting Формальное приветствие (например, "добрый день", "здравствуйте"") Вероятность соответствия фразы формальному приветствию
informal_greeting Неформальное приветствие (например, "привет", "дарова") Вероятность соответствия фразы неформальному приветствию
formal_farewell Формальное прощание (например, "до свидания", "всего доброго") Вероятность соответствия фразы формальному прощанию
informal_farewell Неформальное прощание (например, "пока", "адьёс") Вероятность соответствия фразы неформальному прощанию
insult Оскорбления (например, "дурак", "урод") Вероятность соответствия фразы классу оскорблений
profanity Мат Вероятность принадлежности фразы классу мата
gender Пол Вероятности для классов male и female
negative Негатив Вероятность негативной окраски распознанной фразы
answerphone Ответ робота Вероятность принадлежности фразы голосовому боту или автоответчику
session_options = stt_pb2.StreamingRequest(
          session_options=stt_pb2.StreamingOptions(
            recognition_model="general",
        
            # Настройки классификаторов
            recognition_classifier=stt_pb2.RecognitionClassifierOptions(
              classifiers=[
                # Определять оскорбления в фразах
                stt_pb2.RecognitionClassifier(
                  classifier="insult",
                  triggers=[stt_pb2.RecognitionClassifier.ON_UTTERANCE]
                ),
                # Определять мат в фразах
                stt_pb2.RecognitionClassifier(
                  classifier="profanity",
                  triggers=[stt_pb2.RecognitionClassifier.ON_UTTERANCE]
                ),
              ]
            )
          )
        )
        

Статистики аудио

SpeechKit позволяет анализировать диалоги и речь отдельных участников и подсчитывать статистики для каждого участника и для диалога в целом. Результаты анализа содержат дискретные характеристики аудио и описательные статистики распределений этих значений.

Для каждого участника диалога можно определить:

  • скорость и длительность речи;
  • длительность пауз;
  • количество и размеры фраз.

Для диалога в целом доступны:

  • длительность одновременной речи и пауз;
  • количество и временные метки перебиваний.

Чтобы включить подсчет статистик, в настройках сессии определите параметр speech_analysis.

recognize_options = stt_pb2.StreamingOptions(
                recognition_model=stt_pb2.RecognitionModelOptions(
                    ..
                    speech_analysis = stt_pb2.SpeechAnalysisOptions(
                        enable_speaker_analysis = True,
                        enable_conversation_analysis = True,
                        descriptive_statistics_quantiles = [0.5, 0.9]
                    ),
                    ...
                )
        

Результаты анализа будут приходить в сообщениях speaker_analysis и conversation_analysis.