# voice (adapter system)

Voice synthesis adapter system: build provider-agnostic TTS/voice requests. Each adapter (say, ssml) validates params and returns a normalized synthesis spec { engine, text/ssml, voice, format } that...


Voice / TTS **request builder**. Ported from `leumas-middleware/lib/a.voice`. The source was an
express Router that ran adapters to write an audio file on disk; that server, the file-writing ctx
(`makeOutputPath`/`publicUrl`), and native TTS binaries were stripped. This ports the pure core:
validate params and emit a normalized synthesis spec that a voice backend renders.

## Tools (`adapters`)

| tool | args | result |
|------|------|--------|
| `say` | `{ text, voice?, engine?, format?, rate?, pitch? }` | `{ kind:'tts-request', engine, text, voice, format, rate, pitch }` |
| `ssml` | `{ text, voice?, engine?, format?, rate?, pitch?, lang? }` | `{ kind:'tts-request', engine, ssml, voice, format }` |
| `listVoices` | — | `{ voices: [...] }` |

Supported formats: `mp3`, `wav`, `ogg`.


---
Source: shared/engines/adapters/domain/voice/README.md
Canonical: https://docs.leumas.tech/p/adapters/domain/voice
