Skip to main content
Velqa

Text-to-Speech with Velqa.dev

Velqa offers text-to-speech on the OpenAI-compatible API https://api.velqa.dev/v1/audio/speech. You send text and a voice, and the API returns the audio bytes directly (mp3). Ideal for voice readers, spoken notifications and voice prototypes.

Two models, and language decides between them: kokoro-tts covers 8 languages including French but no Arabic; qwen3-tts does Arabic and French, with named voices and natural-language tone control.

Pricing and access

Like audio transcription and images, text-to-speech is billed per usage (per character), from your Recharge Boost balance (prepaid credit) — it is not included in any Starter/Dev/Pro plan.

Model IDPublic price / M charactersLanguagesVoices
kokoro-tts$28 languages incl. French, no Arabicff_siwis, af_bella, af_sarah, am_adam, am_michael, bf_emma, bm_george, hf_alpha, hm_omega
qwen3-tts$44FR, EN, AR, auto-detectVivian, Serena, Ryan, Dylan, Eric, Aiden

qwen3-tts also accepts language (force the language instead of detecting it) and instruct, a natural-language tone directive ("calm tone", "whispering", "speak slowly").

  • Access: any account with a positive Boost balance
  • The real cost depends on the number of characters in the input text, debited from your Boost balance.

If the Boost balance is insufficient, the request is rejected (HTTP 402) before it ever reaches the model.

Example with curl

curl https://api.velqa.dev/v1/audio/speech \
  -H "Authorization: Bearer $VELQA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"kokoro-tts","input":"Hello, welcome to Velqa.","voice":"af_heart"}' \
  --output output.mp3

Example with Python

from openai import OpenAI

client = OpenAI(base_url="https://api.velqa.dev/v1", api_key="VELQA_API_KEY")
resp = client.audio.speech.create(
    model="kokoro-tts",
    voice="af_heart",
    input="Hello, welcome to Velqa.",
)
resp.stream_to_file("output.mp3")

The response is a stream of audio bytes (mp3) to write to a file — not JSON. The real cost (based on the number of characters in input) is debited from your Boost balance.

Arabic example with qwen3-tts

curl https://api.velqa.dev/v1/audio/speech \
  -H "Authorization: Bearer $VELQA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen3-tts","input":"مرحبا، أهلا بك في فيلكا.","voice":"Vivian","language":"ar"}' \
  --output output-ar.mp3

An unknown voice fails with HTTP 500 (Voice ID not found) — use a name from the table above.

See also