brama voices¶
The voice library behind a voice route: list what the route's account can speak with, clone a new voice from recordings, and remove one. They run the same dispatch as GET /v1/audio/voices, POST /v1/audio/voices and DELETE /v1/audio/voices/{voice_id}.
brama voices list¶
brama voices list [--model <ALIAS|ROUTE>] [--json]
--model defaults to voice-model. It prints the provider's voice list and changes nothing; it sends no billable request.
brama voices clone¶
brama voices clone --name <NAME> --sample <FILE>... --content-type <TYPE> [--description <TEXT>] [--model <ALIAS|ROUTE>] [--json] --allow-provider-cost
Reads every --sample file, sends them with --content-type (such as audio/mpeg), and prints the new voice the provider created. The new voice stays on the provider's account until voices remove deletes it.
brama voices remove¶
brama voices remove <VOICE_ID> --confirm [--model <ALIAS|ROUTE>] [--json]
Deletes one voice from the route's account and prints the provider's answer. The provider keeps no copy, so --confirm is required.
Refusals¶
| Sentence | Exit | Meaning |
|---|---|---|
refusing a billable voice clone without explicit --allow-provider-cost | 2 | Nothing was read or sent. |
refusing to delete voice <VOICE_ID> without --confirm: the provider keeps no copy | 2 | Nothing was deleted. |
the parser's refusal for a clone without --sample, --name or --content-type | 2 | The invocation is incomplete. |
cannot read <path>: <error>; <path> names no file | 1 | A sample could not be read; nothing was sent. |
| the dispatch refusal: an undeclared alias, a route without a voice library, or the provider's own sentence | 1 | The account was reached and refused, or never reached. |
See brama speak, media or the CLI tree.