How phyce/narration-studio works
Narration Studio is a desktop text-to-speech application with a Vue interface and Go runtime, plus an HTTP mode for serving TTS requests. The main workflow is selecting an engine/model/voice, composing or previewing script text, generating speech, and playing or saving audio; profiles configure reusable voice settings. The graph includes the documented local/API engines and server capability. Some subsystem wiring is inferred only from the README and tree, so uncertain links are omitted; unsampled features are represented by their existing directories.
Main entry points: engine.go Engine interface · tts.go TTS workflow · app.go Application API · modelManager.go Engine registry
Components 23
Desktop interface
- Vue pages
frontend/src/App.vue - Wails bindings
frontend/wailsjs/go/main/App.js
Application runtime
- Application API
app.go - Configuration
app/config/config.go
Speech generation
- Profile manager
app/tts/profile/profile_manager.go - Profile files
app/tts/profile/storage.go - TTS workflow
app/tts/tts.go - Engine registry
app/tts/modelManager/modelManager.go - Engine interface
app/tts/engine/engine.go - Piper engine
app/tts/engine/piper/piper.go - Microsoft engines
app/tts/engine/mssapi4/msssapi4.go - ElevenLabs engine
app/tts/engine/elevenlabs/elevenlabs.go - OpenAI engine
app/tts/engine/openai/openai.go - Google engine
app/tts/engine/google/google.go - Gemini engine
app/tts/engine/gemini/gemini.go - Audio playback
app/common/audio/audio.go
HTTP service
- HTTP server
app/server/http/http.go - TTS handlers
app/server/http/tts_handlers.go - HTTP routes
app/server/http/routes.go - Engine routes
app/server/http/routes/engines/engines.go
Other components
- Desktop user
- HTTP client
- Remote TTS APIs
Connections 28
- Desktop user → Vue pages: uses
- Vue pages → Wails bindings: calls
- Wails bindings → Application API: invokes
- Application API → TTS workflow: requests speech
- Application API → Configuration: reads settings
- Application API → Profile manager: manages profiles
- Profile manager → Profile files: reads/writes
- TTS workflow → Profile manager: uses settings
- TTS workflow → Engine registry: selects engine
- Engine registry → Configuration: reads toggles
- Engine registry → Engine interface: manages instances
- Engine interface → Piper engine: implemented by
- Engine interface → Microsoft engines: implemented by
- Engine interface → ElevenLabs engine: implemented by
- Engine interface → OpenAI engine: implemented by
- Engine interface → Google engine: implemented by
- Engine interface → Gemini engine: implemented by
- TTS workflow → Audio playback: plays output
- HTTP client → HTTP server: sends requests
- HTTP server → HTTP routes: dispatches
- HTTP routes → Engine routes: routes metadata
- HTTP routes → TTS handlers: routes speech
- TTS handlers → TTS workflow: requests speech
- Engine routes → Engine registry: queries engines
- ElevenLabs engine → Remote TTS APIs: calls API
- OpenAI engine → Remote TTS APIs: calls API
- Google engine → Remote TTS APIs: calls API
- Gemini engine → Remote TTS APIs: calls API