Docs / Get started

Quickstart

This guide takes you from nothing to a Swahili audio file, and back to text, in about five minutes.

1. Get an API key

Request early access at waridi.io/get-started. Once you are in, open Waridi Studio, go to Settings → API keys and create a key. It is shown once, so store it somewhere safe.

Export it as an environment variable. Both SDKs read WARIDI_API_KEY automatically.

export WARIDI_API_KEY="wrd_test_..."

The Free sandbox includes 10 minutes of audio per month, which is plenty for this guide.

2. Install an SDK

pip install waridi
npm install @waridi/sdk
# Nothing to install. cURL ships with macOS, Linux and Windows 10+.
curl --version

3. Generate speech

Send a short line of Swahili to POST /v1/tts. The response body is the audio file.

from waridi import Waridi

client = Waridi()  # reads WARIDI_API_KEY

audio = client.tts.create(
    model="sauti-standard",
    voice="zawadi",
    text="Habari! Karibu Waridi. Nikusaidie nini leo?",
    language="sw-TZ",
    format="mp3",
)
audio.save("karibu.mp3")
import { Waridi } from "@waridi/sdk";
import { writeFile } from "node:fs/promises";

const client = new Waridi(); // reads WARIDI_API_KEY

const audio = await client.tts.create({
  model: "sauti-standard",
  voice: "zawadi",
  text: "Habari! Karibu Waridi. Nikusaidie nini leo?",
  language: "sw-TZ",
  format: "mp3",
});
await writeFile("karibu.mp3", Buffer.from(await audio.arrayBuffer()));
curl https://api.waridi.io/v1/tts \
  -H "Authorization: Bearer $WARIDI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "sauti-standard", "voice": "zawadi", "language": "sw-TZ", "format": "mp3", "text": "Habari! Karibu Waridi. Nikusaidie nini leo?"}' \
  --output karibu.mp3

Play karibu.mp3. You should hear: "Hello! Welcome to Waridi. How can I help you today?"

4. Transcribe it back

Now send the same file to POST /v1/stt.

with open("karibu.mp3", "rb") as f:
    result = client.stt.transcribe(model="sikia-1", file=f, language="sw-TZ")

print(result.text)
import { createReadStream } from "node:fs";

const result = await client.stt.transcribe({
  model: "sikia-1",
  file: createReadStream("karibu.mp3"),
  language: "sw-TZ",
});
console.log(result.text);
curl https://api.waridi.io/v1/stt \
  -H "Authorization: Bearer $WARIDI_API_KEY" \
  -F model=sikia-1 \
  -F language=sw-TZ \
  -F file=@karibu.mp3

Response:

{
  "id": "stt_01J9Z3K8Q4",
  "model": "sikia-1",
  "language": "sw-TZ",
  "duration_ms": 2840,
  "text": "Habari! Karibu Waridi. Nikusaidie nini leo?"
}

Where to go next