Tinkoff / voicekit-examples

Examples on how to use Tinkoff Voicekit
https://voicekit.tinkoff.ru/
Apache License 2.0
55 stars 32 forks source link

Question: VAD #11

Closed subnetsRU closed 4 years ago

subnetsRU commented 5 years ago

Доброго дня.

В stt.proto есть упоминание о Voice Activity Detection (VoiceActivityDetectionConfig)

Хочу попросить Вас написать пару слов об этом. Т.е. для чего именно тут служит VAD и каково его состояние по умолчанию. Он включен ? Он выключен ? Стоит ли его включать ? Описание параметров ?

Хоть пару слов. Спасибо.

standy66 commented 5 years ago

VAD служит для определения времени начала и конца фразы. По умолчанию он включен для Recognize и StreamingRecognize. Его можно выключить для Recognize, передав RecognitionConfig.do_not_perform_vad = True. Это может помочь, если аудиофайл уже разделён на фразы на клиентской стороне, и нужно только распознать эти фразы. Для StreamingRecognize в текущей версии API VAD выключить нельзя, но на подходе новая, в которой можно будет использовать параметр single_utterance для того, чтобы распознать в потоке одну фразу и завершить распознавание по её окончании.

В VoiceActivityDetectionConfig довольно много параметров, большая часть из них не будет иметь значения в новой API, но хочется выделить один, который будет. Это silence_duration_threshold - количество секунд, которое должно пройти с того момента, как закончилась речь, чтобы VAD считал это концом фразы и прислал финальную гипотезу.

subnetsRU commented 5 years ago

Попробовал выставить silence_duration_threshold. Итоговый конфиг:

        sttServiceConfig = {
            streaming_config: {
                config: {
                    encoding: 'LINEAR16',
                    sample_rate_hertz: 8000,
                    language_code: "ru-RU",
                    max_alternatives: 1,
                    num_channels: 1,
                },
                interim_results_config:{
                    enable_interim_results: true,
                    interval: 2,
                },
                vad_config: {
                    silence_duration_threshold: 0.7
                }
            }
        };

Мне сказали, что вы передали что параметр silence_duration_threshold не видите.

Я не верно интерпретировал proto ?

subnetsRU commented 5 years ago

Осознал свой косяк. vad_config должен быть внутри config. Сейчас переделаю.

standy66 commented 4 years ago

Добавил в репозиторий примеры c silence_duration_threshold