$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 и разрабатываете сценарий, в котором хотите учитывать пол и эмоции пользователя:
-
В начальном стейте сценария укажите значение
true
для дополнительных настроек:streaming_config.config.enable_sentiment_analysis
streaming_config.config.enable_gender_identification
-
В другом стейте используйте полученные данные о поле и эмоциях пользователя. Данные доступны в
$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:
- Yandex SpeechKit v2
- Yandex SpeechKit v3
- Tinkoff VoiceKit
- SaluteSpeech
- 3iTech
config.specification.profanityFilter
config.specification.rawResults
В документации Yandex SpeechKit v2 вы можете посмотреть описание этих настроек и узнать об их влиянии на распознавание речи.
session_options.recognition_model.text_normalization.text_normalization
session_options.recognition_model.text_normalization.profanity_filter
session_options.recognition_model.text_normalization.literature_text
session_options.recognition_model.text_normalization.phone_formatting_mode
session_options.recognition_model.language_restriction.restriction_type
session_options.recognition_model.language_restriction.language_code
В документации Yandex SpeechKit v3 вы можете посмотреть описание этих настроек и узнать об их влиянии на распознавание речи.
streaming_config.config.profanity_filter
streaming_config.config.speech_contexts.phrases.text
streaming_config.config.speech_contexts.phrases.score
streaming_config.config.speech_contexts.speech_context_dictionary_id
streaming_config.config.enable_automatic_punctuation
streaming_config.config.vad_config.silence_max
streaming_config.config.vad_config.silence_min
streaming_config.config.enable_denormalization
streaming_config.config.enable_sentiment_analysis
streaming_config.config.enable_gender_identification
В документации Tinkoff VoiceKit вы можете посмотреть описание этих настроек и узнать об их влиянии на распознавание речи.
enable_profanity_filter
no_speech_timeout
max_speech_timeout
Hints.words
Hints.enable_letters
Hints.eou_timeout
force_cyrillic
insight_models
В документации SaluteSpeech вы можете посмотреть описание этих настроек и узнать об их влиянии на распознавание речи.
enable_answerphone_detection
enable_sentiments_detection
enable_age_identification
silence_detection_config.silence_threshold_ms
models
enable_transliteration
В документации 3iTech вы можете посмотреть описание этих настроек и узнать об их влиянии на распознавание речи.
Если вы хотите использовать настройки, которые сейчас не поддерживаются в $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"
}