Mozilla Hubs Bot supporting voice rooms

--help e3ff183efd Add `workflow_dispatch` option. 11 mēneši atpakaļ
.github e3ff183efd Add `workflow_dispatch` option. 11 mēneši atpakaļ
docs b0ba3fce5b A workflow to build documentation with sphinx and push it to github pages (#1) 11 mēneši atpakaļ
examples 8ce038d96b Conference bot approaches the table. 11 mēneši atpakaļ
hubsbot 729add80a6 Make `VoskVoiceConsumer` formally implement `TextConsumer`. 11 mēneši atpakaļ
README.md 02f46a7c14 Initial bare-bone version. 1 gadu atpakaļ
pyproject.toml b0ba3fce5b A workflow to build documentation with sphinx and push it to github pages (#1) 11 mēneši atpakaļ

README.md

HubsBot


This is a course project for BICA taught in MEPhI by Alexei Samsonovich. The main goal is to create an easy-to-use programmatic API for Mozilla Hubs.

Comparison to analogues

There are quite a few similar pieces of software freely available, however none of them seem to provide an ability to use voice-chat features of the Hubs. The voice, however, is very important for any research involving the Human-AI interaction.

Therefore, the main feature of this project is that it allows to receive and send voice messages and control position and other properties of the avatar in Hubs by means of simple and minimalistic API, which the Hubs itself seems to lack.

Dependencies

  • pymediasoup -- Hubs voice capabilities are based on the MediaSoup protocol, which is inherited from the WebRTC. This library provides a python wrapper for this protocol. Note that it strictly requires Python <= 3.10 to build without errors;
  • hubsclient -- simple GraphQL wrapper for rooms and other avatars interactions;
  • aiortc -- required for audio acquisition.