Настроить потоковую передачу данных
Задание:
1. Необходимо настроить потоковую передачу данных между веб клиентом(сайтом) и нейронными сетями.
2. Сделать механизм перебивания во время общения с нейронной сетью
Как выполнено сейчас:
1. Соединение вебсокета, через webtrc захват микрофона, данные отправляются на бек через сокет. Сокет принимает байты и отправляет в дипграм, с дипграма отправляет в опенаи, переносит в голос и отправляет звук на фронт. Фронт воспроизводит звук
2. Перебивание - Есть очередь, в очередь добавляется сообщение, очередь обрабатывает сообщение и отправляет ответ, очередь обрабатывает дальше
Стек реализации:
React, Webrtc, Socket.io, OpenAI, Deepgram
ПРОБЛЕМЫ
1. Голос кодируется в байты и отправляется в дипграмм, но в 60 процентах случаев после раскодировки дипграмма выходит пустое сообщение(будто в голосе ничего не было). Но если ловить сообщение до попадания в дипграм, то оно успешно воспроизводится
2. Ассистентом можно воспользоваться 1 раз, если его закрыть/перезапустить, то дипграмм всегда выводит пустое сообщение после раскодировки. Но это проблема исправляется, если перезагрузить страницу с кешем
1. Необходимо настроить потоковую передачу данных между веб клиентом(сайтом) и нейронными сетями.
2. Сделать механизм перебивания во время общения с нейронной сетью
Как выполнено сейчас:
1. Соединение вебсокета, через webtrc захват микрофона, данные отправляются на бек через сокет. Сокет принимает байты и отправляет в дипграм, с дипграма отправляет в опенаи, переносит в голос и отправляет звук на фронт. Фронт воспроизводит звук
2. Перебивание - Есть очередь, в очередь добавляется сообщение, очередь обрабатывает сообщение и отправляет ответ, очередь обрабатывает дальше
Стек реализации:
React, Webrtc, Socket.io, OpenAI, Deepgram
ПРОБЛЕМЫ
1. Голос кодируется в байты и отправляется в дипграмм, но в 60 процентах случаев после раскодировки дипграмма выходит пустое сообщение(будто в голосе ничего не было). Но если ловить сообщение до попадания в дипграм, то оно успешно воспроизводится
2. Ассистентом можно воспользоваться 1 раз, если его закрыть/перезапустить, то дипграмм всегда выводит пустое сообщение после раскодировки. Но это проблема исправляется, если перезагрузить страницу с кешем