← Onidia
Setup guide · 04

Give her a voice.

Every reply she writes is also spoken, so her voice notes to the buddy. Typecast does the text-to-speech; you pick a voice and paste two identifiers.

Works out of the box Free tier available ~5 minutes
You can skip this

A demo key and voice ship with the app, so she talks from the first launch. Setting up your own account is about getting your voice and not sharing a rate limit with everyone else who did not bother.

Create the account

1

Sign up for Typecast

Typecast builds AI voices, and the free plan covers enough characters per month for ordinary chatting.

where to go
https://typecast.ai

Create an account, then confirm your email address — the API console is not available until you have.

2

Generate an API key

The API console issues keys. Create one and copy it — this is the value that goes in tts-key.

where to go
https://typecast.ai/api-console

Onidia calls the Typecast text-to-speech endpoint directly, so you do not need any of their SDKs:

the endpoint she uses
https://api.typecast.ai/v1/text-to-speech
3

Pick a voice

On the voices page you can audition every voice without spending a single character of your quota, then copy the one you like. The identifier is a tc_ string — that is tts-voice.

where to go
https://typecast.ai/voices

If you would rather list them from the terminal, the same catalogue is available as JSON. jq makes it readable:

terminal
sudo apt install jq
curl --silent -H "X-API-Key: $TYPECAST_API_KEY" \
  https://api.typecast.ai/v1/voices \
  | jq -r '.[] | "\(.voice_id)  \(.name // .voice_name.eng)"'

Choosing by ear on the voices page is far quicker than reading a JSON list. The terminal version is for when you already know roughly what you want.

4

Put both into her config

Two values, and this is the top-level section rather than a provider one — voice is independent of which model is doing the thinking.

~/.config/chat-app/chat-app.ini
tts = on
tts-key = your-api-key
tts-voice = tc_xxxxxxxxxxxxxxxxxxxxxxxx

Restart her afterwards — speech settings are read at startup, like everything else.

5

Check she can actually play it

This is the step people skip, and it is the one that matters most. Onidia needs a system audio player on PATH, and if none is there she simply goes quiet — no error, just a silent buddy.

terminal
which aplay paplay ffplay
onidia-chat -preflight warn

All three names come back empty? Install one:

terminal
sudo apt install alsa-utils pulseaudio-utils

Other ways to set it

Environment variable

Beats the config file, so you can keep the key out of the file entirely.

terminal
export TYPECAST_API_KEY="your-key"
onidia-chat

Two flags, one run

Handy for auditioning voices without editing anything: try one, then the next.

terminal
onidia-chat \
  -tts-key "your-key" \
  -tts-voice tc_xxxxxxxx

Turn her voice off

She keeps writing, she just stops speaking. Useful on a shared machine or over SSH.

terminal
onidia-chat -tts off

If it goes wrong

She types, but never speaks

No audio player. Check which aplay paplay ffplay and read the startup log — it says so explicitly when it cannot find one.

tts http 401

The API key is wrong, or belongs to a different account. Typecast's console is the only place it can be reissued.

tts http 403

The key is valid but the plan does not allow API access. Confirm the account is on a tier with API access enabled.

Out of characters

Free plans have a monthly character allowance. Speech is billed per character of text, and retries on a failed request still count — short replies help.