Audio

Text-to-speech and transcription (Whisper) endpoints for generating audio from text and converting audio files to text.

Tchavi supports two audio endpoints: text-to-speech (TTS) for generating audio from text, and transcription (Whisper) for converting audio files to text.

Text-to-Speech

POST/v1/audio/speech

Converts text to spoken audio. Returns raw audio bytes. Billing is per 1K characters of input, prorated to the character and rounded up once to a thousandth of a credit.

ModelCredits / 1K charsMax inputNotes
tts-1324 096 charsFastest
tts-1-hd644 096 charsHigher audio quality
gpt-4o-mini-tts442 000 charsSteerable: accepts instructions to direct tone, pace, accent, emotion
ParameterTypeRequiredDescription
modelstringYestts-1, tts-1-hd or gpt-4o-mini-tts
inputstringYesThe text to convert to speech (max 4 096 characters; 2 000 for gpt-4o-mini-tts)
voicestringYesalloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer. gpt-4o-mini-tts also accepts cedar, marin and verse
instructionsstringNogpt-4o-mini-tts only — how to speak, e.g. "Warm, slow, like a bedtime story". Other models reject it with a 400
response_formatstringNomp3, opus, aac, flac, wav, pcm. Default: mp3
speednumberNoPlayback speed 0.25–4.0. Default: 1.0
import Tchavi from '@tchavi/sdk';
import { writeFileSync } from 'fs';

const client = new Tchavi({ apiKey: 'YOUR_API_KEY' });

const response = await client.audio.speech.create({
  model: 'tts-1',
  input: 'Tchavi is the best AI API gateway in Africa.',
  voice: 'nova',
  response_format: 'mp3',
});

const buffer = Buffer.from(await response.arrayBuffer());
writeFileSync('speech.mp3', buffer);

Transcription (Whisper)

POST/v1/audio/transcriptions

Transcribes audio files to text. Send as multipart/form-data. Billing is 13 credits per minute of audio, rounded up to the next whole minute; the billed duration is returned in tchavi.duration_minutes.

ParameterTypeRequiredDescription
modelstringYes"whisper-1"
filefileYesAudio file (mp3, wav, m4a, webm, ogg…). Max 25 MB
languagestringNoISO-639-1 code (e.g. "fr", "en"). Auto-detected if omitted
response_formatstringNojson, text, srt, vtt, verbose_json. Default: json
promptstringNoOptional text to guide the model's style or continue a previous segment. Must match the audio language.
temperaturenumberNoSampling temperature 0–1. Higher values yield more varied transcriptions. Default: 0
import Tchavi from '@tchavi/sdk';
import { createReadStream } from 'fs';

const client = new Tchavi({ apiKey: 'YOUR_API_KEY' });

const result = await client.audio.transcriptions.create({
  model: 'whisper-1',
  file: createReadStream('audio.mp3'),
  language: 'fr',
});

console.log(result.text);
console.log('Duration:', result.tchavi.duration_minutes, 'min');
console.log('Credits used:', result.tchavi.credits_used);

On this page