Доработать код на Python3 для передачи данных по websocket
Цена договорная
В сущности, этот заказ было бы логичнее представить как вопрос на Stack Overflow. Лишь потому, что он там уже опубликован и до сих пор не получил никакой дельной реакции, размещаю здесь. Теперь в формате заказа и, разумеется, за вознаграждение.
Итак, имеется проект по автоматическому распознаванию речи (последняя формируется в виде аудиопотока в ходе телефонного разговора). Если вдаваться в мало что значащие детали, то фразы из телефонного диалога, организуемого через VoIP-соединение (в качестве VoIP-сервера установлен Asterisk PBX), извлекаются из канала и в реальном времени направляются в систему распознавания Kaldi, работающую на сервере Vosk (ссылка на проект, откуда весь этот софт был взят: https://github.com/alphacep/vosk-asterisk). И система, и сервер развёртываются внутри docker-контейнера, вся эта композиция ждёт входных данных по websocket на порту 2700. Вот и подобрались к сути.
Для приёма потока из канала телефонии используется промежуточный сервер, код которого представлен в файле server.pdf (в оригинале - исходник на Python, не отвечает требованиям по формату вложений в заказах). Поток поступает на сервер при выполнении функции serve(), перед вызовом которой запускается transcriber.start(), в свою очередь позволяющий начать передачу данных на сервер распознавания. Логика transcriber'а описана в файле transcription.pdf. Именно в ней и случилось столкнуться с проблемами.
С помощью инструкций, содержащихся в этом файле, требуется решить 2 задачи:
1) отправить данные на сервер распознавания по адресу ws://127.0.0.1:2700
2) получить ответ от сервера, добавив его к значению переменной output.
output - переменная, кумулирующая текст, полученный по итогам распознавания. Проблема - отсутствие достаточных знаний для того, чтобы настроить потоковый обмен данными через websocket с имплементацией на Python.
Получаем: задание состоит в доработке файла transcription.py таким образом, чтобы данные беспрепятственно перемещались от промежуточного сервера к серверу распознавания и обратно, исключительно по websocket. Критерий готовности - предоставление заказчику исходника (на основе текущего содержимого transcription.pdf), включение которого в проект позволит двум серверам вести потоковый обмен данными в пределах локальной системы.
Итак, имеется проект по автоматическому распознаванию речи (последняя формируется в виде аудиопотока в ходе телефонного разговора). Если вдаваться в мало что значащие детали, то фразы из телефонного диалога, организуемого через VoIP-соединение (в качестве VoIP-сервера установлен Asterisk PBX), извлекаются из канала и в реальном времени направляются в систему распознавания Kaldi, работающую на сервере Vosk (ссылка на проект, откуда весь этот софт был взят: https://github.com/alphacep/vosk-asterisk). И система, и сервер развёртываются внутри docker-контейнера, вся эта композиция ждёт входных данных по websocket на порту 2700. Вот и подобрались к сути.
Для приёма потока из канала телефонии используется промежуточный сервер, код которого представлен в файле server.pdf (в оригинале - исходник на Python, не отвечает требованиям по формату вложений в заказах). Поток поступает на сервер при выполнении функции serve(), перед вызовом которой запускается transcriber.start(), в свою очередь позволяющий начать передачу данных на сервер распознавания. Логика transcriber'а описана в файле transcription.pdf. Именно в ней и случилось столкнуться с проблемами.
С помощью инструкций, содержащихся в этом файле, требуется решить 2 задачи:
1) отправить данные на сервер распознавания по адресу ws://127.0.0.1:2700
2) получить ответ от сервера, добавив его к значению переменной output.
output - переменная, кумулирующая текст, полученный по итогам распознавания. Проблема - отсутствие достаточных знаний для того, чтобы настроить потоковый обмен данными через websocket с имплементацией на Python.
Получаем: задание состоит в доработке файла transcription.py таким образом, чтобы данные беспрепятственно перемещались от промежуточного сервера к серверу распознавания и обратно, исключительно по websocket. Критерий готовности - предоставление заказчику исходника (на основе текущего содержимого transcription.pdf), включение которого в проект позволит двум серверам вести потоковый обмен данными в пределах локальной системы.
- Файлы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.