Skip to content

About

πŸ€– Assistente de voz privado e modular para Linux com transcriΓ§Γ£o offline (faster-whisper), servidor WebSockets em Python e aplicativo Android nativo em Jetpack Compose.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

24 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– Bingo - Assistente Pessoal Modular para Linux

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.


πŸš€ Funcionalidades Principais

  • πŸŽ™οΈ 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 rapidfuzz e 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.

πŸ—οΈ Arquitetura do Sistema

                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                  β”‚     Cliente Android    β”‚
                  β”‚   (Jetpack Compose)    β”‚
                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚ (WebSockets / JSON Protocol)
  β”‚   Cliente CLI   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚         β”‚
                              β–Ό         β–Ό
                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                  β”‚       Bingo Core       β”‚
                  β”‚   (Servidor Python)    β”‚
                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β–Ό                   β–Ό                   β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Whisper STT  β”‚   β”‚   Normalizer  β”‚   β”‚  Dispatcher   β”‚
  β”‚   (Offline)   β”‚   β”‚  & Parser NLU β”‚   β”‚  & Actions    β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
                                                  β”‚
                                                  β–Ό
                                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                       β”‚ Sistema Linux (OS)  β”‚
                                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Estrutura do Projeto

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

πŸ› οΈ Tecnologias Utilizadas

  • Core / Backend: Python 3.14+, uv, websockets, faster-whisper, rapidfuzz
  • Cliente Android: Kotlin, Jetpack Compose, OkHttp (WebSockets), Android AudioRecord
  • Ferramentas: Git, Gradle

⚑ Como Executar

PrΓ³-requisitos

  • Linux (Ubuntu/Debian, Arch, Fedora, etc.)
  • Python 3.14 ou superior
  • Gerenciador de pacotes uv

1. Iniciar o Core (Servidor Bingo)

Instalar dependΓͺncias:

uv sync

Iniciar o servidor WebSocket (por padrΓ£o escuta em ws://0.0.0.0:8765):

uv run python -m bingo.main

2. Executar o Cliente CLI

Em outro terminal, para interagir via texto:

uv run clients/cli/main.py

3. Executar o App Android

Abra a pasta clients/android no Android Studio e execute o projeto no seu dispositivo ou emulador conectado Γ  mesma rede local do servidor Bingo.


πŸ“š DocumentaΓ§Γ£o Adicional

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.

πŸ“ LicenΓ§a

Projeto desenvolvido por Arthur Diaz. DistribuΓ­do sob a licenΓ§a MIT.

About

πŸ€– Assistente de voz privado e modular para Linux com transcriΓ§Γ£o offline (faster-whisper), servidor WebSockets em Python e aplicativo Android nativo em Jetpack Compose.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages