Crie seu próprio app para reSpeaker Clip com transcrição, diarização e resumo usando o SDK Python
Introdução
reSpeaker STT Web transforma o reSpeaker Clip em um assistente de voz e de reuniões inteligente com IA, conectando hardware de áudio embarcado com tecnologias modernas de IA na web e na nuvem. Usando BLE ou Wi‑Fi, ele sincroniza continuamente as gravações do dispositivo e as processa por meio de poderosos pipelines de IA de fala e linguagem. Com fluxos de trabalho dedicados para transcrição de fala, diarização de locutor e resumos de reunião gerados por IA, os usuários podem transformar conversas em informações estruturadas e acionáveis. Desenvolvido em Python e com uma arquitetura modular, o projeto oferece uma base flexível para que desenvolvedores e engenheiros embarcados criem aplicações de voz e IA de próxima geração com o reSpeaker Clip.

Como funciona
- Conecte ao Clip via BLE (padrão) ou Wi‑Fi.
- Escolha uma aba e clique em Start. O áudio é transmitido do dispositivo em segundo plano enquanto ele grava (sincronização contínua — igual à ferramenta
clip-weboriginal). A aba de onde você iniciou determina o pipeline que será executado nessa gravação. - Pare a gravação. Quando a sincronização final terminar, o app:
- codifica o áudio mesclado para
.ogg(Opus), - converte isso para um
.wavmono de 16 kHz (via PyAV — sem necessidade de instalação separada do ffmpeg), - Aba Transcription: envia o
.wavpara o Groq e recebe texto simples de volta. - Aba Diarization: envia o
.wavpara o Speechmatics comdiarization: "speaker", obtém a transcrição em JSON em nível de palavra e a agrupa em turnos de fala por locutor (S1,S2, ...). - Aba Summary: envia o
.wavpara o Groq para transcrição e depois envia a transcrição para a API de chat do Groq (openai/gpt-oss-20b) para gerar atas de reunião estruturadas (título, pontos principais, itens de ação, decisões). - envia o resultado para o navegador pelo WebSocket já existente.
- codifica o áudio mesclado para
- Cada aba tem sua própria lista de "Recordings" (filtrada pelo pipeline sob o qual a sessão foi gravada), com reprodução e um botão Process/Re-run por gravação.
Chaves de API
Cada aba tem seu próprio cartão de Settings — chave Groq nas abas Transcription e Summary (compartilhada — defina uma vez e use em ambas), chave Speechmatics na aba Diarization. Nada é codificado em hard nem enviado para o repositório. As chaves ficam na memória durante a vida do processo do servidor. Marque "Remember on this machine" para também persistir em app/settings.local.json (ignorado pelo git), para que sobrevivam a uma reinicialização.
- Groq: obtenha uma chave em https://console.groq.com — usada tanto para transcrição (
whisper-large-v3-turbo, chamada síncrona única e rápida) quanto para sumarização (openai/gpt-oss-20bchat completions). - Speechmatics: obtenha uma chave em https://portal.speechmatics.com — usa a API REST em lote com
diarization: "speaker"(enviar → consultar → buscar transcrição JSON → agrupar em turnos de fala por locutor), ponto de operaçãoenhancedpor padrão. Consulte Batch diarization na documentação deles.
Estrutura do projeto
respeaker-stt-web/
├── clip/ # vendored Clip SDK (BLE/WiFi device control)
├── app/
│ ├── main.py # FastAPI app: device control + recording + pipeline orchestration
│ ├── audio_convert.py # PyAV-based conversion to 16kHz mono WAV
│ ├── config.py # runtime settings (per-provider API keys)
│ ├── llm/
│ │ └── groq_summarizer.py # Groq chat summarization via openai/gpt-oss-20b
│ ├── stt/
│ │ ├── base.py # STTProvider interface
│ │ ├── groq_provider.py # transcribe() — plain text
│ │ └── speechmatics_provider.py # transcribe() + diarize() — speaker turns
│ └── static/
│ └── index.html # UI — three tabs, each with recording controls, settings, results
├── recordings/ # synced audio + meta.json + transcript.json per session (gitignored)
└── requirements.txt
Requisitos
- Python 3.10+
- Nenhuma instalação separada de ffmpeg é necessária — a conversão para WAV usa PyAV (
avno PyPI), que traz suas próprias bibliotecas de codec empacotadas, inclusive no Windows - Um dispositivo reSpeaker Clip pareado (BLE) para a gravação real — esta parte não pode ser testada sem o hardware
Configuração
git clone https://github.com/KasunThushara/clip-sdk-python-usage.git && cd clip-sdk-python-usage
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python app/main.py
Depois, abra http://localhost:5000.
Para transporte via Wi‑Fi em vez de BLE:
python app/main.py --transport wifi --wifi-host 192.168.4.1 --wifi-port 8089
Visão geral da interface
Transcription
Adicione sua chave de API do Groq. Pressione o botão de gravação e, quando quiser parar, pressione stop.

Diarization
Adicione sua chave de API do Speechmatics. Pressione o botão de gravação e, quando quiser parar, pressione stop.

Summary
Adicione sua chave de API do Groq. Pressione o botão de gravação e, quando quiser parar, pressione stop.

Suporte técnico e discussão sobre o produto
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes formas de suporte e garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.