Перейти к основному содержимому

$dialer.setAsrProperty

Метод устанавливает дополнительную настройку для провайдера ASR. Настройка распространяется только на текущую сессию.

подсказка

Используйте $dialer.setAsrProperty, чтобы устанавливать настройки, которые не поддерживаются в методе $dialer.setAsrConfig.

Метод поддерживает ограниченный набор настроек для следующих провайдеров ASR:

  • Yandex SpeechKit v2
  • Yandex SpeechKit v3
  • Tinkoff VoiceKit
  • SaluteSpeech
  • 3iTech

С помощью метода вы можете, например:

  • Включить анализ эмоций в Tinkoff Voicekit.
  • Указать список языков для распознавания в Yandex SpeechKit v3.
  • Указать в SaluteSpeech список фраз, которые с большой вероятностью встретятся в речи пользователя.
подсказка

Некоторые настройки добавляют дополнительные данные о запросе пользователя в $request.rawRequest. В статье Результаты распознавания речи вы можете посмотреть полный список поддерживаемых полей.

Синтаксис

$dialer.setAsrProperty({
key: "streaming_config.config.enable_sentiment_analysis",
value: true
});

Здесь:

  • key — название настройки.
  • value — значение настройки.
предупреждение
  • Если вы укажете настройку, которую провайдер не поддерживает, она будет проигнорирована.
  • Если вы укажете значение, которое не поддерживается для настройки, в сценарии возникнет ошибка и звонок завершится.

Использование в сценарии

Например, если вы используете Tinkoff ASR и разрабатываете сценарий, в котором хотите учитывать пол и эмоции пользователя:

  1. В начальном стейте сценария укажите значение true для дополнительных настроек:

    • streaming_config.config.enable_sentiment_analysis
    • streaming_config.config.enable_gender_identification
  2. В другом стейте используйте полученные данные о поле и эмоциях пользователя. Данные доступны в $request.rawRequest.data.propertiesResponse.result.

state: Start
q!: $regex</start>
a: Начнём.
script:
$dialer.setAsrProperty({
key: "streaming_config.config.enable_sentiment_analysis",
value: true
});
$dialer.setAsrProperty({
key: "streaming_config.config.enable_gender_identification",
value: true
});

state: Hello
intent!: /привет
script: $session.asrResults = $request.rawRequest.data.propertiesResponse.result;
if: $session.asrResults.recognition_result.gender_identification_result.male_proba > 0.8
# Бот произнесет реплику, если большая вероятность, что пользователь мужского пола
a: ...
if: $session.asrResults.recognition_result.sentiment_analysis_result.negative_prob_audio < 0.2
# Бот произнесет реплику, если маленькая вероятность, что у пользователя негативные эмоции
a: ...
подсказка

Чтобы получить имя провайдера ASR в текущем звонке, используйте метод $dialer.getAsrProvider.

Поддерживаемые настройки

$dialer.setAsrProperty позволяет устанавливать ограниченный набор настроек для провайдеров ASR:

  • config.specification.profanityFilter
  • config.specification.rawResults

В документации Yandex SpeechKit v2 вы можете посмотреть описание этих настроек и узнать об их влиянии на распознавание речи.

к сведению

Если вы хотите использовать настройки, которые сейчас не поддерживаются в $dialer.setAsrProperty, напишите в поддержку: support@just-ai.com.

Список установленных настроек

Список установленных настроек и их значений добавляется в $request.rawRequest. Данные доступны в поле $request.rawRequest.asrTtsProviderData.asr.asrProperties.

Пример:

{
"streaming_config.config.profanity_filter": "true",
"streaming_config.config.enable_sentiment_analysis": "true",
"streaming_config.config.enable_gender_identification": "true"
}