App de ditado (speech-to-text) 100% local para macOS (Apple Silicon). Menu bar app, push-to-talk global, transcrição via WhisperKit no Neural Engine, foco em PT-BR.
- Baixe o
.dmgmais recente em Releases. - Abra o
.dmge arraste o FVoice para a pasta Applications. - Abra o FVoice (ícone de waveform na barra de menu). O app é assinado e notarizado pela Apple, então abre sem avisos de segurança.
- No primeiro uso, o Setup Assistant guia você: escolha de idioma e engine (o modelo Whisper baixa nessa hora, se escolhido), permissões (Microfone, Acessibilidade e Monitoramento de Entrada) e gravação do seu atalho.
- Pronto: pressione seu atalho em qualquer app, fale, pressione de novo e o texto aparece no cursor.
Atualizações chegam automaticamente pelo próprio app (menu → Check for Updates), direto dos releases do GitHub.
Requisitos: macOS 14+ em Apple Silicon. O engine da Apple (SpeechTranscriber) requer macOS 26.
Requisitos: macOS 14+, Xcode CLT, XcodeGen (brew install xcodegen).
xcodegen generate
xcodebuild -scheme FVoice -configuration Debug buildO .app sai em build/ (ou DerivedData, dependendo da invocação). O .xcodeproj é gerado e não é versionado.
Assinado com certificado Apple Development (team U843T2P7A2), bundle id estável com.jacobmoura.fvoice — identidade estável faz as permissões (Microphone, Input Monitoring, Accessibility) sobreviverem a rebuilds. Lançar sempre via open (ou task Run do Cockpit): rodar o binário direto do terminal faz o TCC atribuir permissões ao terminal, não ao app.
DDD-lite: Domain/ (entidades, use cases, protocolos — sem AVFoundation/WhisperKit), Infrastructure/ (áudio, whisper, input, persistência), App/ (SwiftUI, MenuBarExtra).
Default: ⌥Space (Option+Space) em modo toggle — pressione uma vez para começar a gravar, de novo para parar (decisão do usuário; substitui o default original de Right Option push-to-talk). O evento do hotkey é consumido pelo tap ativo, então o app em foco nunca recebe o Opt+Space.
- M0 — Scaffold (menu bar app buildando via xcodebuild)
- M1 — Captura de áudio (16kHz mono, wav de debug em
~/.fvoice/debug/) + hotkey toggle ⌥Space - M2 — Transcrição (WhisperKit large-v3_turbo,
language: pt, modelo em~/.fvoice/models) - M3 — Inserção no cursor (clipboard + ⌘V sintético com restore) + overlay de gravação
- M4 — Robustez (VAD por RMS, blocklist de alucinações, troca de mic)
- M5 — Settings (hotkey, idioma, modo de inserção, auto-Enter, launch at login; config em
~/.fvoice/config.json)