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
/v1/audio/speechConverts 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.
| Model | Credits / 1K chars | Max input | Notes |
|---|---|---|---|
tts-1 | 32 | 4 096 chars | Fastest |
tts-1-hd | 64 | 4 096 chars | Higher audio quality |
gpt-4o-mini-tts | 44 | 2 000 chars | Steerable: accepts instructions to direct tone, pace, accent, emotion |
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | tts-1, tts-1-hd or gpt-4o-mini-tts |
input | string | Yes | The text to convert to speech (max 4 096 characters; 2 000 for gpt-4o-mini-tts) |
voice | string | Yes | alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer. gpt-4o-mini-tts also accepts cedar, marin and verse |
instructions | string | No | gpt-4o-mini-tts only — how to speak, e.g. "Warm, slow, like a bedtime story". Other models reject it with a 400 |
response_format | string | No | mp3, opus, aac, flac, wav, pcm. Default: mp3 |
speed | number | No | Playback 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)
/v1/audio/transcriptionsTranscribes 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | "whisper-1" |
file | file | Yes | Audio file (mp3, wav, m4a, webm, ogg…). Max 25 MB |
language | string | No | ISO-639-1 code (e.g. "fr", "en"). Auto-detected if omitted |
response_format | string | No | json, text, srt, vtt, verbose_json. Default: json |
prompt | string | No | Optional text to guide the model's style or continue a previous segment. Must match the audio language. |
temperature | number | No | Sampling 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);