Потоковое распознавание речи
Описание
Используется, когда аудио формируется на ходу — при живом общении в реальном времени. Единица общения — фраза.
Промежуточные гипотезы с транскрибацией обновляются до тех пор, пока не будет достигнута финальная гипотеза, основанная на паузах или смысле. После получения финальной гипотезы фраза фиксируется.
Потоковое распознавание можно использовать при диалоге пользователя с роботом или при общении с голосовым ассистентом.
В приведенных примерах можно визуализировать распознанное в процессе формирования финальной гипотезы, а также заранее выполнять трудоемкие действия на промежуточных гипотезах, кэшируя результаты и экономя время пользователя.
Максимальный размер сообщения — 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. | Опциональный параметр. Определить вероятность пола говорящего: мужской или женский. Используется для каждой финальной гипотезы. |
| enable_diarization | 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йм должен отправляться в отдельном сообщении. |