ym88659208ym87991671
Выбор гипотезы | Документация для разработчиков

Выбор гипотезы

Обновлено 27 марта 2024

Использовать речевые технологии можно отдельно от инструментария Studio. Подробнее об этом в разделе SaluteSpeech.

На каждую сказанную пользователем смартапа фразу может быть несколько вариантов распознанного текста. Каждый распознанный вариант одной и той же фразы пользователя - это гипотеза. В некоторых сценариях использования смартапа пригодится выбор не самой вероятной гипотезы, а второй или третьей в списке гипотез распознанного текста.

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

Разработчик может добавить возможность выбора гипотезы в код приложения:

Пример использования

Вопрос выбора правильной гипотезы возникает, когда, например, необходимо распознавать только русские слова, похожие по произношению на английские. Если пользователь произносит слово на русском языке, которое похоже по звучанию на английское слово, то первая гипотеза может содержать слово на латинице. В таком случае можно добавить возможность выбора гипотез только на кириллице. Первый вариант на кириллице будет самым верным.

Например, русское слово «магазин» имеет почти аналогичное по звучанию, но разное по смыслу, английское слово «magazine». В определенных сценариях из-за такой особенности в смартап могут приходить не самые лучшие гипотезы в качестве распознанного слова или фразы. Если вы хотите исключить распознавание слов и названий на английском языке, применяйте гипотезы только на кириллице.

Добавление через Code

Такой скрипт возвращает список гипотез:

  script:
var hyps = $request.rawRequest.payload.asr.hypotheses;
$response.replies = $response.replies || [];
for (var i=0; i < hyps.length; i++) {
$response.replies.push({
"type":"text",
"text": String(i) + ": " + hyps[i].words,
"tts": ".",
})
}

Добавление через SmartApp API

Разрабатывая смартап с использованием Studio API вы можете применять любой язык программирования. Наш пример был написан на Python.

Пример перебора гипотез на Python

  final_hypo = hypos[0]

for hypo in hypos:
if is_okay(hypo):
final_hypo = hypo
break

Далее вы можете добавить выбор первого варианта на кириллице из списка гипотез, игнорируя гипотезы на английском языке.

Использование вместе с хинтами

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

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.