Потоковое распознавание речи
Описание
Используется, когда аудио формируется на ходу — при живом общении в реальном времени. Единица общения — фраза.
Промежуточные гипотезы с транскрибацией обновляются до тех пор, пока не будет достигнута финальная гипотеза, основанная на паузах или смысле. После получения финальной гипотезы фраза фиксируется.
Потоковое распознавание можно использовать при диалоге пользователя с роботом или при общении с голосовым ассистентом.
В приведенных примерах можно визуализировать распознанное в процессе формирования финальной гипотезы, а также заранее выполнять трудоемкие действия на промежуточных гипотезах, кэшируя результаты и экономя время пользователя.
Максимальный размер сообщения — 32 Мб.
Стриминговые сессии нужно закрывать после окончания передачи последнего сообщения. Если сессия не закрывается, могут расходоваться выданные лимиты.
Параметры запроса
Формат сообщения для потокового распознавания аудио (StreamingRecognize).
Настройки распознавания streaming_config
нужно отправить в первом сообщении, audio_content
― в последующих сообщениях.
Максимальный размер сообщения — 32 Мб.
Поле | Тип | Возможные значения | Описание |
---|---|---|---|
streaming_config | StreamingRecognitionConfig | Настройки потокового распознавания. | |
audio_content | bytes | Аудиофайл | Обязательный параметр. Фрагмент аудио. |
StreamingRecognitionConfig
Настройки потокового распознавания. Передаются только в первом сообщения, для последующих используется audio_content
.
Поле | Тип | Описание | |
---|---|---|---|
config | RecognitionConfig | Настройки распознавания. | |
single_utterance | bool | Значение по умолчанию —
| Опциональный параметр. Включить режим распознавания одной фразы ― распознавание завершится сразу после распознавания первой фразы. |
interim_results_config | InterimResultsConfig | Настройки промежуточных гипотез — то есть версий текста в момент, когда пришла только часть аудио, относящегося к фразе. |
RecognitionConfig
Настройки распознавания.
Поле | Тип | Возможные значения | Описание |
---|---|---|---|
encoding | AudioEncoding | Обязательный параметр. Формат аудио. Определяет и контейнер, и кодек. Должен задаваться явно. Как правильно указать encoding | |
sample_rate_hertz | uint32 | Значение должно соответствовать частоте дискретизации аудио — 8000 , 11025 , 12000 , 16000 , 22050 , 24000 , 32000 , 44100 , 48000 , 96000 . | Обязательный параметр. Частота дискретизации в герцах. |
num_channels | uint32 | Значение должно соответствовать количеству каналов в аудио — 1 или 2 . | Обязательный параметр. Количество каналов в аудио. |
max_alternatives | uint32 | Значение по умолчанию — 1 .[1, 15] . | Опциональный параметр. Максимальное количество альтернатив для финальных и промежуточных результатов. |
profanity_filter | bool |
| Опциональный параметр. Скрыть ненормативную лексику. Пример скрытого слова: «б****». |
speech_contexts | SpeechContext | Опциональный параметр. Контекст для распознавания. | |
enable_automatic_punctuation | bool | Значение по умолчанию —
| Опциональный параметр. Добавить пунктуацию (запятые, точки и знаки вопроса) и прописные буквы. |
do_not_perform_vad | bool | Значение по умолчанию —
| Опциональный параметр. Отключить разбиение текста на фразы. |
vad_config | VoiceActivityDetectionConfig | Опциональный параметр. Настройки разбиения на фразы. | |
enable_denormalization | bool | Значение по умолчанию —
| Опциональный параметр. Примеры:
|
enable_sentiment_analysis | bool | Значение по умолчанию — false . | Опциональный параметр. β Определить вероятность негативных и позитивных эмоций. Используется для каждой финальной гипотезы. |
enable_gender_identification | bool | Значение по умолчанию — false . | Опциональный параметр. β Определить вероятность пола говорящего: мужской или женский. Используется для каждой финальной гипотезы. |
StreamingRecognitionConfig.InterimResultsConfig
Настройки промежуточных гипотез — версий текста в момент, когда пришла только часть аудио, относящегося к фразе.
Поле | Тип | Возможные значения | Описание |
---|---|---|---|
enable_interim_results | bool | Значение по умолчанию —
| Опциональный параметр. Сгенерировать промежуточные гипотезы. |
interval | float | Значение по умолчанию — 0.3 . | Опциональный параметр. Интервал отправки промежуточных гипотез в секундах. |
RecognitionConfig.SpeechContext
Контекст для распознавания. С его помощью можно повысить или понизить вероятность распознавания фраз — например, можно указать имена, узкоспециализированные термины, названия брендов.
Поле | Тип | Описание | |
---|---|---|---|
phrases | SpeechContextPhrase | Опциональный параметр. Фразы для контекста. | |
speech_context_dictionary_id | string | Значение, полученное при создании словаря. | Опциональный параметр. Идентификатор заранее подготовленного контекстного словаря на стороне облака VoiceKit. Подробнее про контекстный словарь. |
SpeechContext.SpeechContextPhrase
Фраза для контекста.
Тип | Возможные значения | Описание | |
---|---|---|---|
text | string | Не рекомендуется указывать фразы длиной меньше 5 символов. | Опциональный параметр. Текст фразы на русском языке в нижнем регистре. |
score | float | Значение по умолчанию ― 1.0 . Этого достаточно, чтобы фраза распознавалась с большей вероятностью, чем фраза не из контекста. Диапазон значений ― [-10.0, 10.0] . | Опциональный параметр. Вес фразы. Чем больше вес, тем выше вероятность распознавания фразы. Если указать отрицательное значение, вероятность распознавания фразы или слова ниже. |
RecognitionConfig.VoiceActivityDetectionConfig
Настройки определения тишины в аудио (VAD).
Поле | Тип | Описание | |
---|---|---|---|
silence_duration_threshold | float | Значение по умолчанию — 0.6 . | Опциональный параметр. Длительность паузы в секундах, после которой фраза считается завершенной. |
silence_prob_threshold | float | Значение по умолчанию — 0.9 . | Опциональный параметр. Вероятность определения тишины. Фрагмент аудио считается тишиной, если она определилась с вероятностью выше этого значения. |
Параметры ответа
StreamingRecognitionResult
Распознанные фразы.
Поле | Тип | Описание |
---|---|---|
results | StreamingRecognitionResult | Распознанные фразы. |
StreamingRecognizeResponse.StreamingRecognitionResult
Поле | Тип | Описание |
---|---|---|
recognition_result | SpeechRecognitionResult | Результат распознавания. |
is_final | bool |
|
StreamingRecognitionResult.SpeechRecognitionResult
Распознанные фразы.
Поле | Тип | Описание |
---|---|---|
alternatives | SpeechRecognitionAlternative | Список альтернатив, отсортированных по убыванию confidence . |
channel | int32 | Канал, к которому относится версия фразы. Нумерация с 0. |
start_time | google.protobuf.Duration | Время начала фразы в исходном аудио. |
end_time | google.protobuf.Duration | Время окончания фразы в исходном аудио. |
sentiment_analysis_result | SpeechSentimentAnalysisResult | Результат определения негативных эмоций. |
gender_identification_result | SpeechGenderIdentificationResult | Результат определения пола. |
SpeechRecognitionResult.SpeechRecognitionAlternative
Список альтернатив, отсортированных по убыванию confidence
.
Поле | Тип | Описание |
---|---|---|
transcript | string | Распознанный текст. |
confidence | float | Показатель уверенности распознавания относительно других слов во фразе при max_alternatives > 1 . Значение может быть отрицательным. |
words | WordInfo | Список отдельных слов внутри фразы. |
SpeechRecognitionAlternative.WordInfo
Список отдельных слов внутри фразы.
Поле | Тип | Описание |
---|---|---|
start_time | google.protobuf.Duration | Время начала слова в исходном аудио. |
end_time | google.protobuf.Duration | Время окончания слова в исходном аудио. |
word | string | Слово во фразе. |
confidence | float | Показатель уверенности распознавания относительно других слов во фразе при max_alternatives > 1 . Значение может быть отрицательным |
SpeechRecognitionResult.SpeechSentimentAnalysisResult
Результат определения негативных эмоций.
Поле | Тип | Описание |
---|---|---|
negative_prob_audio | float | Вероятность негативных эмоций на основе анализа аудио. |
negative_prob_audio_text | float | Вероятность негативных эмоций на основе анализа аудио и распознанного текста. |
positive_prob_audio_text | float | Вероятность позитивных эмоций на основе анализа аудио и распознанного текста. |
SpeechRecognitionResult.SpeechGenderIdentificationResult
Результат определения пола.
Поле | Тип | Описание |
---|---|---|
male_proba | float | Вероятность, что пол мужской. |
female_proba | float | Вероятность, что пол женский. |
AudioEncoding
Формат аудио. Определяет и контейнер, и кодек. Подробнее о PCM и LPCM.
Имя | Описание |
---|---|
LINEAR16 | LPCM без заголовка, битовая глубина ― 16 бит. |
MULAW | PCM без заголовков в распределении μ-law (PCMU), битовая глубина ― 8 бит. |
ALAW | PCM без заголовков в распределении a-law (PCMA), битовая глубина ― 8 бит. |
RAW_OPUS | Фреймы Opus, запакованные в сообщения Protobuf. Каждый фрейм должен быть запакован в поле content сообщения RecognitionAudio . При этом каждый фрейм нужно отправлять так, как он был закодирован ― не нужно объединять несколько фреймов в один. |
MPEG_AUDIO | MPEG |
ADTS_AAC | AAC аудио в ADTS потоке. |
RAW_AAC_LC | AAC LC (Low Complexy) фреймы, запакованные в сообщения Protobuf. Поддерживается только в стриминговых методах. Важно Как и в RAW_OPUS-формате, каждый фрeйм должен отправляться отдельном сообщении. |
RAW_ER_AAC_LD | ER AAC LD фреймы, запакованные в сообщения Protobuf. Поддерживается только в стриминговых методах. Важно Как и в RAW_OPUS-формате, каждый фрeйм должен отправляться в отдельном сообщении. |