FeatherTalk es una app local, gratis, ligera y segura de transcripción/dictado impulsada con AI. Con una sola tecla trae tus ideas con tu voz a texto limpio, bien redactado y sin errores.
Narramos muchísimo más rapido de lo que escribimos y en esta época de AI, es cuando más lo necesitamos.
Instagram: @buildwithber
Si este proyecto te aporta valor, de verdad me ayudaria mucho que me sigas y estes pendiente de los proximos proyectos que voy a estar compartiendo. Gracias por el apoyo! <3
Pipeline principal (siempre local):
Grabar -> NVIDIA Parakeet ASR -> Limpieza con Llama (obligatoria) -> Pegar
- Una hotkey global inicia/detiene la grabacion.
- Muestra un widget flotante mientras graba/procesa.
- Transcribe voz con Parakeet ASR local.
- Siempre ejecuta limpieza con Llama antes de pegar.
- Pega el texto final en la app activa (Chrome, VS Code, Slack, Notion, Word, etc.).
- Procesamiento 100% local despues de la configuracion.
- No se requiere API en la nube para transcripcion ni limpieza.
- El audio y el texto se quedan en tu maquina.
Implementado:
- Maquina de estados UX (
IDLE,RECORDING,PROCESSING_ASR,PROCESSING_LLAMA,PASTING,DONE,ERROR) - Regla obligatoria de limpieza con Llama (no hay autopaste si falla la limpieza)
- Runtime de Electron de escritorio con bandeja + fallback de hotkey global
- Widget flotante con estados de grabacion/procesamiento/error
- Captura de audio en Windows via
ffmpeg(WASAPI con fallback DSHOW) - Flujo de pegado seguro para portapapeles con modo copia de respaldo
- Fallback ASR local con Windows Speech cuando el endpoint ASR no esta disponible
- Logs estructurados en consola y en
app.log
npm.cmd install
npm.cmd test
npm.cmd run start:all
npm.cmd run start:desktop
npm.cmd run start:asr-worker
npm.cmd run diagnose:micUsa un solo comando para iniciar servicios locales requeridos y app de escritorio:
npm.cmd run start:allEste script:
- Resuelve y exporta la ruta de
ffmpeg - Inicia/valida Ollama
- Calienta el modelo Llama
- Inicia/valida el worker ASR Parakeet
- Detiene instancia Electron vieja de FeatherTalk
- Lanza la app de escritorio
Ubicacion del archivo de settings:
%LOCALAPPDATA%\FeatherTalk\config\settings.json
Ubicacion de respaldo (si %LOCALAPPDATA% no esta disponible):
<repo>\data\localappdata\FeatherTalk\config\settings.json
Claves importantes:
hotkey(ejemplo:Ctrl+Shift+Space)hotkeyFallbacksmicrophoneDeviceIdaudioAllowDshowFallbackffmpegPathasrWorkerUrl(defaulthttp://127.0.0.1:8787/transcribe)asrAllowWindowsSpeechFallbacklanguage(auto,es,en)llamaBackend(ollamaollama.cpp)ollamaBaseUrl(defaulthttp://127.0.0.1:11434)ollamaCommand(se recomienda ruta absoluta aollama.exe)llamaCppBaseUrlllamaModel(ejemplo:llama3.1:8b)llamaNumPredict(si quieres evitar recortes en textos largos, usa-1para ilimitado)
Los parametros de animacion estan en:
src/desktop/widgetInkRingV2Html.js
Busca el objeto cfg cerca del inicio del script inline.
Parametros mas influyentes:
talkNoisetalkThickblobLenMaxblobBodyMaxWidthblobsPerSecondAtMax
Si quieres salpicaduras de un solo lado, configura:
lockBlobSide: truelockedBlobAnglehacia el lado que prefieras
FEATHERTALK_AUDIO_MODE=stub(grabador demo)FEATHERTALK_ASR_URLFEATHERTALK_OLLAMA_URLFEATHERTALK_OLLAMA_COMMANDFEATHERTALK_LLAMA_CPP_URLFEATHERTALK_FFMPEG_PATH
Archivo de log:
%LOCALAPPDATA%\FeatherTalk\logs\app.log
Seguir logs en vivo:
Get-Content "$env:LOCALAPPDATA\FeatherTalk\logs\app.log" -WaitEjecuta:
npm.cmd run diagnose:micLuego verifica:
ffmpegexiste y es ejecutable- Tu build soporta el modo de captura requerido (WASAPI/DSHOW)
microphoneDeviceIdcoincide con un dispositivo real DSHOW cuando aplica
- Confirma que el worker ASR este corriendo en
127.0.0.1:8787 - Verifica conectividad:
Test-NetConnection 127.0.0.1 -Port 8787- Asegurate de que Ollama este instalado y corriendo
- Descarga el modelo:
ollama pull llama3.1:8b- Verifica puerto de Ollama:
Test-NetConnection 127.0.0.1 -Port 11434src/desktop/*: runtime de escritorio Electron (hotkey, tray, overlay)src/controllers/*: orquestacion y flujo UXsrc/core/*: FSM y reglas del pipelinesrc/services/*: ASR, limpieza, captura de audio, pegado, settings, loggingscripts/*: helpers de inicio/diagnostico/worker ASR
La limpieza con Llama es obligatoria antes de pegar. Si falla la limpieza, FeatherTalk no pega automaticamente la transcripcion cruda.
Instagram: @buildwithber
Si este proyecto te aporta valor, de verdad me ayudaria mucho que me sigas y estes pendiente de los proximos proyectos que voy a estar compartiendo. Gracias por el apoyo! <3
