Skip to main content

Потоковое распознавание речи

Описание

Используется, когда аудио формируется на ходу — при живом общении в реальном времени. Единица общения — фраза.

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

Потоковое распознавание можно использовать при диалоге пользователя с роботом или при общении с голосовым ассистентом.


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

Максимальный размер сообщения — 32 Мб.

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

Параметры запроса

Формат сообщения для потокового распознавания аудио (StreamingRecognize). Настройки распознавания streaming_config нужно отправить в первом сообщении, audio_content ― в последующих сообщениях. Максимальный размер сообщения — 32 Мб.

ПолеТипВозможные значенияОписание
streaming_configStreamingRecognitionConfigНастройки потокового распознавания.
audio_contentbytesАудиофайлОбязательный параметр.
Фрагмент аудио.

StreamingRecognitionConfig

Настройки потокового распознавания. Передаются только в первом сообщения, для последующих используется audio_content.

ПолеТипВозможные значенияОписание
configRecognitionConfigНастройки распознавания.
single_utterancebool

Значение по умолчанию — false.


  • true ― вернется первая фраза;
  • false ― вернется весь текст.
Опциональный параметр.
Включить режим распознавания одной фразы ― распознавание завершится сразу после распознавания первой фразы.
interim_results_configInterimResultsConfigНастройки промежуточных гипотез — то есть версий текста в момент, когда пришла только часть аудио, относящегося к фразе.

RecognitionConfig

Настройки распознавания.

ПолеТипВозможные значенияОписание
encodingAudioEncodingОбязательный параметр.
Формат аудио. Определяет и контейнер, и кодек. Должен задаваться явно.
Как правильно указать encoding
sample_rate_hertzuint32Значение должно соответствовать частоте дискретизации аудио — 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 96000.Обязательный параметр.
Частота дискретизации в герцах.
num_channelsuint32Значение должно соответствовать количеству каналов в аудио — 1 или 2.Обязательный параметр.
Количество каналов в аудио.
max_alternativesuint32Значение по умолчанию — 1.

Диапазон значений ― [1, 15]. Если указать значение больше 15, будет выведено 15 альтернатив.
Опциональный параметр.
Максимальное количество альтернатив для финальных и промежуточных результатов.
profanity_filterbool
  • true ― скрыть ненормативную лексику;
  • false ― оставить все слова, как есть.
Опциональный параметр.
Скрыть ненормативную лексику. Пример скрытого слова: «б****».
speech_contextsSpeechContextОпциональный параметр.
Контекст для распознавания.
enable_automatic_punctuationbool

Значение по умолчанию — false.

  • true ― вернется текст со знаками препинания и прописными буквами;
  • false ― вернется текст без знаков препинания и прописных букв
Опциональный параметр.
Добавить пунктуацию (запятые, точки и знаки вопроса) и прописные буквы.
do_not_perform_vadbool

Значение по умолчанию — false.

  • true ― распознанный текст вернется одной фразой;
  • false ― текст в ответе будет разбит на фразы.
Опциональный параметр.
Отключить разбиение текста на фразы.
vad_configVoiceActivityDetectionConfigОпциональный параметр.
Настройки разбиения на фразы.
enable_denormalizationbool

Значение по умолчанию — false.

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

Опциональный параметр.
Преобразовать текст в числовые данные — время, дата и так далее.

Примеры:

  • Числовые данные — «6:45 3 доллара 5 центов».
  • Слова — «Шесть часов сорок пять минут три доллара пять центов».
enable_sentiment_analysisboolЗначение по умолчанию — false.Опциональный параметр.
β Определить вероятность негативных и позитивных эмоций. Используется для каждой финальной гипотезы.
enable_gender_identificationboolЗначение по умолчанию — false.Опциональный параметр.
β Определить вероятность пола говорящего: мужской или женский. Используется для каждой финальной гипотезы.

StreamingRecognitionConfig.InterimResultsConfig

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

ПолеТипВозможные значенияОписание
enable_interim_resultsbool

Значение по умолчанию — false.

  • true ― вернуть промежуточные гипотезы;
  • false ― вернуть только финальные гипотезы.
Опциональный параметр.
Сгенерировать промежуточные гипотезы.
intervalfloatЗначение по умолчанию — 0.3.Опциональный параметр.
Интервал отправки промежуточных гипотез в секундах.

RecognitionConfig.SpeechContext

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

ПолеТипВозможные значенияОписание
phrasesSpeechContextPhraseОпциональный параметр. Фразы для контекста.
speech_context_dictionary_idstringЗначение, полученное при создании словаря.Опциональный параметр. Идентификатор заранее подготовленного контекстного словаря на стороне облака VoiceKit. Подробнее про контекстный словарь.

SpeechContext.SpeechContextPhrase

Фраза для контекста.

ПолеТипВозможные значенияОписание
textstringНе рекомендуется указывать фразы длиной меньше 5 символов.Опциональный параметр.
Текст фразы на русском языке в нижнем регистре.
scorefloatЗначение по умолчанию ― 1.0. Этого достаточно, чтобы фраза распознавалась с большей вероятностью, чем фраза не из контекста. Диапазон значений ― [-10.0, 10.0].Опциональный параметр.
Вес фразы. Чем больше вес, тем выше вероятность распознавания фразы. Если указать отрицательное значение, вероятность распознавания фразы или слова ниже.

RecognitionConfig.VoiceActivityDetectionConfig

Настройки определения тишины в аудио (VAD).

ПолеТипВозможные значенияОписание
silence_duration_thresholdfloatЗначение по умолчанию — 0.6.Опциональный параметр.
Длительность паузы в секундах, после которой фраза считается завершенной.
silence_prob_thresholdfloatЗначение по умолчанию — 0.9.Опциональный параметр.
Вероятность определения тишины. Фрагмент аудио считается тишиной, если она определилась с вероятностью выше этого значения.

Параметры ответа

StreamingRecognitionResult

Распознанные фразы.

ПолеТипОписание
resultsStreamingRecognitionResultРаспознанные фразы.

StreamingRecognizeResponse.StreamingRecognitionResult

ПолеТипОписание
recognition_resultSpeechRecognitionResultРезультат распознавания.
is_finalbool
  • true ― финальная гипотеза;
  • false ― промежуточная гипотеза.

StreamingRecognitionResult.SpeechRecognitionResult

Распознанные фразы.

ПолеТипОписание
alternativesSpeechRecognitionAlternativeСписок альтернатив, отсортированных по убыванию confidence.
channelint32Канал, к которому относится версия фразы. Нумерация с 0.
start_timegoogle.protobuf.DurationВремя начала фразы в исходном аудио.
end_timegoogle.protobuf.DurationВремя окончания фразы в исходном аудио.
sentiment_analysis_resultSpeechSentimentAnalysisResultРезультат определения негативных эмоций.
gender_identification_resultSpeechGenderIdentificationResultРезультат определения пола.

SpeechRecognitionResult.SpeechRecognitionAlternative

Список альтернатив, отсортированных по убыванию confidence.

ПолеТипОписание
transcriptstringРаспознанный текст.
confidencefloatПоказатель уверенности распознавания относительно других слов во фразе при max_alternatives > 1. Значение может быть отрицательным.
wordsWordInfoСписок отдельных слов внутри фразы.

SpeechRecognitionAlternative.WordInfo

Список отдельных слов внутри фразы.

ПолеТипОписание
start_timegoogle.protobuf.DurationВремя начала слова в исходном аудио.
end_timegoogle.protobuf.DurationВремя окончания слова в исходном аудио.
wordstringСлово во фразе.
confidencefloatПоказатель уверенности распознавания относительно других слов во фразе при max_alternatives > 1. Значение может быть отрицательным

SpeechRecognitionResult.SpeechSentimentAnalysisResult

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

ПолеТипОписание
negative_prob_audiofloatВероятность негативных эмоций на основе анализа аудио.
negative_prob_audio_textfloatВероятность негативных эмоций на основе анализа аудио и распознанного текста.
positive_prob_audio_textfloatВероятность позитивных эмоций на основе анализа аудио и распознанного текста.

SpeechRecognitionResult.SpeechGenderIdentificationResult

Результат определения пола.

ПолеТипОписание
male_probafloatВероятность, что пол мужской.
female_probafloatВероятность, что пол женский.

AudioEncoding

Формат аудио. Определяет и контейнер, и кодек. Подробнее о PCM и LPCM.

ИмяОписание
LINEAR16LPCM без заголовка, битовая глубина ― 16 бит.
MULAWPCM без заголовков в распределении μ-law (PCMU), битовая глубина ― 8 бит.
ALAWPCM без заголовков в распределении a-law (PCMA), битовая глубина ― 8 бит.
RAW_OPUSФреймы Opus, запакованные в сообщения Protobuf.
Каждый фрейм должен быть запакован в поле content сообщения RecognitionAudio. При этом каждый фрейм нужно отправлять так, как он был закодирован ― не нужно объединять несколько фреймов в один.
MPEG_AUDIOMPEG
ADTS_AACAAC аудио в ADTS потоке.
RAW_AAC_LCAAC LC (Low Complexy) фреймы, запакованные в сообщения Protobuf. Поддерживается только в стриминговых методах.

Важно
Как и в RAW_OPUS-формате, каждый фрeйм должен отправляться отдельном сообщении.
RAW_ER_AAC_LDER AAC LD фреймы, запакованные в сообщения Protobuf. Поддерживается только в стриминговых методах.

Важно
Как и в RAW_OPUS-формате, каждый фрeйм должен отправляться в отдельном сообщении.

openapi@tbank.ru

АО «ТБанк» использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. «Cookie» представляют собой небольшие файлы, содержащие информацию о предыдущих посещениях веб-сайта. Если вы не хотите использовать файлы «cookie», измените настройки браузера.