Как уменьшить задержку при переводе речи в текст (в режиме реального времени) в проекте Django-React?
Я реализовал преобразование речи в текст в своем проекте на django-react. Я записываю аудио с помощью Web Audio API, т.е. использую navigator.mediaDevices.getUserMedia для доступа к микрофону, AudioContext для создания конвейера обработки, MediaStreamAudioSourceNode для ввода аудиопотока, AudioWorkletNode для обработки фрагментов в данные Float32Array и AnalyserNode для сегментации на основе VAD.обрабатывает его в 16-разрядные PCM-совместимые сегменты и передает в серверную часть Django через веб-сокет.
Серверная часть, реализованная в consumers.py как AudioConsumer (AsyncWebsocketConsumer), получает аудиосегменты или пакеты от внешнего интерфейса через WebSocket, разумно помещает их в очередь, используя ServerSideQueueManager для немедленного или пакетного использования. обработка основана на продолжительности и энергии, и обрабатывает их с использованием Gemini API (Gemini-2.0-flash-001) для транскрипции и перевода на английский язык. Аудиоданные преобразуются в формат WAV, отправляются в Gemini API для обработки, и полученная транскрипция/перевод транслируется подключенным клиентам в группе конференц-залов Zoom. Система оптимизирует производительность за счет настраиваемой обработки пакетов (например, максимальный размер пакета составляет 3, время ожидания - 3 секунды) и обрабатывает ошибки с помощью повторных попыток и ведения журнала.
Теперь при отображении переведенного текста во внешнем интерфейсе возникает задержка. Для отображения первого переведенного текста требуется начальная задержка в 10 секунд. Последующий текст будет отображаться со сравнительно небольшой задержкой. Если мы уменьшим размер фрагмента, точность будет потеряна. В противном случае задержка увеличивается. Как мы можем уменьшить задержку, не теряя точности?