Synth (Audio Synthesis): foundations
Synth (Audio Synthesis) — foundations RFC
Status
*ccepted*— ratificada 20260509 (mesmo dia da abertura) como parte da onda piloto de bootstrap servicesai. Implementação iniciada em `servicesaisynth; tickets em servicesaisynthbacklogpending/{001..005}`.
Summary
Foundation pra síntese de áudio — TTS (texttospeech), música, SFX. Self-hosted CoquiPiperAudioCraft + proxy ElevenLabs/Suno via gateway.
Motivation
voice/ faz só STT (in). TTS, música, SFX = zero. Bloqueia Talk Mode bidirecional (specs/voice/wake-word.kmd), narração, audio branding. Koder Talk só responde por texto hoje.
Scope
In
- TTS (multilíngue pt
BR + enUS prioritário) - Voice cloning consensual
- SFX gen
- Música curta (até 30s)
Out (yet)
- Música longa (custo proibitivo)
- Audio editing/mastering
Initial design
Surfaces
backend/— Go API + worker GPUapp/— não aplicável v1
Key APIs
POST /v1/synth/tts— texto pra falaPOST /v1/synth/clone— voice cloning a partir de samplePOST /v1/synth/music— geração musicalPOST /v1/synth/sfx— sound effects
Dependencies
services/ai/voice— compartilha pipeline áudioservices/ai/gateway— proxy ElevenLabs/Sunoservices/ai/runtime— modelos locais (CoquiPiperAudioCraft)
Relation to existing sectors
- Par de
voice/(input) — possível fusão futura comoaudio/(in + out) - Bloqueador de Talk Mode bidirecional em produtos Koder
Selfhostedfirst analysis (5 gates)
- *1 Feature parity* zero
- *2 Performance* N/A
- *3 Stability* N/A
- *4 Capability* Coqui/Piper viáveis local
- *5 Critical
path readiness* bloqueia Talk Mode roundtrip
Open questions
- Q1: Renomear
voice→audiocomaudio.stt/audio.ttsou manter sectors separados? - Q2: Voice cloning — política de consent?
Next steps
- Ratificar esta RFC (1 round de comments).
- Criar sector dir
services/ai/synth/comkoder.toml,README.md, skeleton. - Abrir tickets de implementação em
services/ai/synth/backlog/pending/. - Registrar em
meta/docs/stack/registries/self-hosted-pairs.mdse substituir externo.