Перейти к основному содержимому

Как улучшить производительность

Плагин использует различные методы ускорения на GPU в зависимости от платформы: Vulkan на Windows и Linux и Metal на платформах Mac и iOS, что значительно ускоряет процесс распознавания. На других платформах плагин использует CPU + intrinsics для ускорения. Однако вы можете дополнительно улучшить производительность плагина, следуя рекомендациям ниже:

  1. Используйте детектор речевой активности (VAD)

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

  2. Уменьшите размер шага

    По умолчанию размер шага составляет 5000 мс (5 секунд), что означает, что аудиоданные распознаются каждые 5 секунд во время захвата. Если вы хотите распознавать аудиоданные чаще, вы можете уменьшить размер шага, например, до 500 мс (0,5 секунды). Однако, если VAD активен (что обычно рекомендуется, если у вас нет особых требований, требующих фиксированных интервалов), не рекомендуется полагаться на уменьшение размера шага. При использовании VAD в типичных настройках, таких как Распознавание команд по голосовой активации или Автоинициализация распознавания речи с обработкой финального буфера, речь будет распознаваться, как только пользователь перестанет говорить.

  3. Используйте меньшую языковую модель

    Вы можете рассмотреть возможность использования меньшей языковой модели, такой как Tiny Quantized (Q5_1), чтобы уменьшить размер модели и повысить производительность. Инструкции по выбору языковой модели можно найти здесь.

  4. Оптимизируйте управление состоянием распознавания

    При работе с микрофонным входом избегайте ненужных остановок и запусков распознавателя речи. Вместо частых вызовов StopSpeechRecognition и StartSpeechRecognition, которые требуют перераспределения ресурсов, рассмотрите возможность прямого управления аудиовходом. Например, с захватываемой звуковой волной используйте StopCapture и StartCapture для управления потоком аудио, сохраняя при этом активным поток распознавания.