Bingo Γ© um assistente de voz e automaΓ§Γ£o pessoal para Linux, construΓdo com foco em arquitetura modular e privada. O sistema utiliza um Core central em Python que se comunica via WebSockets com mΓΊltiplos clientes β como aplicaΓ§Γ£o Android (Jetpack Compose), linha de comando (CLI) e cliente de Γ‘udio.
- ποΈ Reconhecimento de Voz Offline: TranscriΓ§Γ£o local e privada utilizando
faster-whisper. - π Servidor WebSocket Bidirecional: ComunicaΓ§Γ£o em tempo real entre o Core e os clientes, com suporte a heartbeats e reconexΓ£o automΓ‘tica.
- π¬ Protocolo JSON & NormalizaΓ§Γ£o: Parse de comandos de linguagem natural com tolerΓ’ncia a variaΓ§Γ΅es fonΓ©ticas via
rapidfuzze normalizador de texto. - β‘ Dispatcher de AΓ§Γ΅es do Sistema: ExecuΓ§Γ£o de comandos no Linux (abrir/fechar aplicaΓ§Γ΅es, controle de mΓdia, verificaΓ§Γ£o de status).
- π± Cliente Android Nativo: App desenvolvido em Jetpack Compose com gravaΓ§Γ£o de Γ‘udio, feedback sonoro e reconexΓ£o persistente.
- π» Clientes CLI e Γudio: Interfaces leves de terminal e clientes de teste para envio de Γ‘udio base64.
ββββββββββββββββββββββββββ
β Cliente Android β
β (Jetpack Compose) β
βββββββββββββ¬βββββββββββββ
β
βββββββββββββββββββ β (WebSockets / JSON Protocol)
β Cliente CLI βββββββββββΌββββββββββ
βββββββββββββββββββ β β
βΌ βΌ
ββββββββββββββββββββββββββ
β Bingo Core β
β (Servidor Python) β
βββββββββββββ¬βββββββββββββ
β
βββββββββββββββββββββΌββββββββββββββββββββ
βΌ βΌ βΌ
βββββββββββββββββ βββββββββββββββββ βββββββββββββββββ
β Whisper STT β β Normalizer β β Dispatcher β
β (Offline) β β & Parser NLU β β & Actions β
βββββββββββββββββ βββββββββββββββββ βββββββββ¬ββββββββ
β
βΌ
βββββββββββββββββββββββ
β Sistema Linux (OS) β
βββββββββββββββββββββββ
bingo_project/
βββ src/
β βββ bingo/
β βββ actions/ # AΓ§Γ΅es do sistema (ping, status, comandos)
β βββ client/ # AbstraΓ§Γ΅es de cliente WebSocket
β βββ network/ # Gerenciamento de sessΓ΅es e heartbeat
β βββ speech/ # TranscriΓ§Γ£o Whisper, recebimento e normalizaΓ§Γ£o
β βββ dispatcher.py # Despachante central de mensagens
β βββ main.py # Ponto de entrada do servidor Core
β βββ parser.py # Interpretador de comandos
β βββ protocol.py # CodificaΓ§Γ£o/DecodificaΓ§Γ£o do protocolo JSON
β βββ server.py # Servidor WebSocket
βββ clients/
β βββ android/ # Aplicativo Android em Jetpack Compose
β βββ audio/ # Cliente de teste para streaming de Γ‘udio
β βββ cli/ # Cliente interativo de linha de comando
βββ docs/ # DocumentaΓ§Γ£o de arquitetura, protocolo e roadmap
βββ pyproject.toml # ConfiguraΓ§Γ£o e dependΓͺncias (uv)
βββ README.md
- Core / Backend: Python 3.14+,
uv,websockets,faster-whisper,rapidfuzz - Cliente Android: Kotlin, Jetpack Compose, OkHttp (WebSockets), Android AudioRecord
- Ferramentas: Git, Gradle
- Linux (Ubuntu/Debian, Arch, Fedora, etc.)
- Python 3.14 ou superior
- Gerenciador de pacotes
uv
Instalar dependΓͺncias:
uv syncIniciar o servidor WebSocket (por padrΓ£o escuta em ws://0.0.0.0:8765):
uv run python -m bingo.mainEm outro terminal, para interagir via texto:
uv run clients/cli/main.pyAbra a pasta clients/android no Android Studio e execute o projeto no seu dispositivo ou emulador conectado Γ mesma rede local do servidor Bingo.
Consulte a pasta docs/ para mais detalhes:
- π ARCHITECTURE.md - VisΓ£o detalhada da arquitetura.
- π PROTOCOL.md - EspecificaΓ§Γ£o do protocolo JSON via WebSocket.
- π ROADMAP.md - Status de desenvolvimento e prΓ³ximas metas.
Projeto desenvolvido por Arthur Diaz. DistribuΓdo sob a licenΓ§a MIT.