Àkọsílẹ̀ API

Ṣàfikún TTS.ai nínú àwọn ìṣàmúlò-ètò rẹ̀ láti inú REST API wa. Ìṣàmúlò-ètò OpenAI-ọ̀fẹ̀ fun ìjánu-ìjánú rọ́ọ̀nù.

REST API Àwọn Ìṣàmúlò-ètò Àwọn ìṣàfihàn JSON Àwọn Ìṣàmúlò-ètò

Àwọn ìṣàmúlò-ètò

TTS.ai API náà náà gba ìwọlé ìṣàmúlò-ètò fún àwọn àbùdá àwọn ààyè-iṣẹ́ gbogbó: àkọlé-si-ìbàlẹ̀, àkọlé-si-ìbàlẹ̀, ìṣàfarawe-ìbàlẹ̀, ìṣàfihàn àwọn àwòrán, àti àwọn mìíràn. API náà náà ló àwọn ìṣàmúlò-ètò REST ìṣàfarawe-ètò láti mú àwọn ẹ̀yàn ìṣàfihàn/ìjánú ìṣàfihàn JSON.

Bọ́tìnì API

Gba àwọn bọ́tìnì API rẹ̀ láti Àwọn Ààtòjú Àwọn Àwọn Àwọn Àwọn Àwọn Àwọn Àwọn Àwọn. Wa ni Pro ati Enterprise plans.

URL Ìdálẹ̀

https://api.tts.ai/v1/

Àwọn Àmì-ìwé

Àwọn Ìṣàmúlò-ètò Authorization àwọn àmì-ìwé

Àwọn Ìṣàmúlò-ètò

Gbogbo àwọn ìṣàmúlò-ètò API náà fẹ́ ìṣàfihàn láti inú tónẹ́ẹ̀lì Béèrì nínú Authorization àwọn àmì-ìwé.

Àwọn Àmì-ìwé HTTP
Authorization: Bearer sk-tts-your-api-key-here
Fi àwọn bọ́tìnì API rẹ pamọ́. Kò pẹ̀lú àwọn ìṣàmúlò-ètò ààyè-iṣẹ́, àwọn ìpamọ́ àwọn alábòójútó alábòójútó, tàbí àwọn ìṣàmúlò-ètò. Àwọn bọ́tìnì ìṣàfihàn láti inú àtòjọ-ẹ̀yàn rẹ̀.

Àwọn SDK

SDKs Oṣójọ́lẹ̀ ṣé ìmọ̀ràn láti fi TTS.ai pamọ́ sínú ìṣàmúlò-ètò rẹ̀. Wọ́n ní afẹ́fẹ́ àwọn ìṣàmúlò-ètò náà, àti àwọn náà ní a lè gba nípa GitHub.

Python

pip install ttsai
from tts_ai import TTSClient

client = TTSClient(api_key="sk-tts-...")
audio = client.generate(
    text="Hello world!",
    model="kokoro"
)
client.save(audio, "output.wav")
GitHub

JavaScript / Node.js

npm install @ttsainpm/ttsai
const { TTSClient } = require('@ttsainpm/ttsai');

const client = new TTSClient({
  apiKey: 'sk-tts-...'
});
const audio = await client.generate({
  input: 'Hello world!',
  model: 'kokoro'
});
await client.saveToFile(audio, 'output.wav');
GitHub

URL Ìdálẹ̀

URL Ìdálẹ̀: https://api.tts.ai/v1/

Àwọn ààyè-iṣẹ́ ìparí gbogbó ní pàtó nípa URL̀ ìtọ́nà yìí. Fun ààyè-iṣẹ́ ìparí TTS ni:

POST https://api.tts.ai/v1/tts/

Àwọn Ìdálẹ̀ Ìjánu-ìṣàmúlò-ètò

Àwọn ìdájọ́ àwọn ìṣàmúlò-ètò API nípa àwọn ìṣàmúlò-ètò:

Àwọn ààyè-iṣẹ́ Àwọn Ìtàn/minútùù Àwọn ìṣàfarawé Ìgbà pípẹ́ àkọlé pípẹ́ jú
Àìfẹ́ 10 2 Àwọn àmì-ìwé 500
Àwọn Ìṣàmúlò-ètò 30 3 Àwọn àmì-ìwé 100,000
Àwọn Àwọn Àwọn 60 5 Àwọn àmì-ìwé 100,000
Àwọn Ìṣàfilọ́lẹ̀ 300 20 Àwọn àmì-ìwé 50,000

Àwọn àmì-ìwé-ìwé ìdáràn nínú àwọn ìsàlẹ̀-ilà gbogbo: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Àwọn Ìṣàmúlò-ètò

Àwọn Àṣẹ Àwọn Irinṣẹ́ Àwọn Ìgúnrégé
TTS (Móòdù Fẹ́ẹ̀: Piper, VITS, MeloTTS) Àwọn àyọkà 1,000 fún àwọn àmì-àṣírí 1,000
TTS (Móòdù ìpèwọ̀n: Kokoro, CosyVoice 2, abbl.) Àwọn àyọkà 2,000 fún àwọn àmì-àṣírí 1,000
TTS (Móòdù Premium: Tortoise, Chatterbox, abbl.) Àwọn ìṣàmúlò-ètò fún àwọn àmì-àṣírí 1,000
Àwọn Àmì-ìwé Àwọn àyọkà 2,000 Àwọn àwọn àwòrán
Àwọn Àmì-ìwé Àwọn ìṣàmúlò-ètò fún àwọn àmì-àṣírí 1,000
Àtòjọ-ẹ̀yàn Àwọn Àmì-ìwé Àwọn àyọkà 3,000 Àwọn àwọn àwòrán
Àwọn ìṣàfarawé àwòrán Àwọn àyọkà 2,000 Àwọn àwọn àwòrán
Ìjádè àwọn àmì-ìwé / Ìjádé àwọn àmì-ìwé Àwọn àyọkà 3,000-4,000 Àwọn àwọn àwòrán
Àwọn ìṣàfarawé kọ̀ǹpútà Àwọn àyọkà 5,000 Àwọn àwọn àwòrán
Àkọlé àwòrán Àwọn àyọkà 3,000 Àwọn ìṣàfarawé àwọn ààyè-iṣẹ́
Alábòójútó Bọ́tìnì BPM Àìfẹ́ --
Àwọn Ìjánu-ìṣàmúlò-ètò Àìfẹ́ --

Àkọlé sí Àkọ́kọ́

POST /v1/tts/

Ṣàfikún àyọkà náà sí àwòrán àkọlé. Ṣàfikún fáìlì àwòrán nínú ìrísí-lẹ́tà tí a beere.

Àwọn ìṣàmúlò-ètò

Àwọn ìkúndùǹÀwọn Ìṣàmúlò-ètòTí a fẹ́Àkóónú
model string Yà ID àwòrán (gẹ́gẹ́ bíi kokoro, chatterbox, piper)
text string Yà Àkọlé tí a fẹ́ láti yipada sí ìṣàfarawé (àwọn àmì-ìwé 100,000 lórí ìtàn)
voice string Yà Àtòjọ Àwọn Àwòrán (lo /v1/voices/ láti ṣàfihàn àwọn àwòrán tí a ní)
format string _Kò Àwọn ìṣàmúlò-ètò àwọn ààtò: mp3 (ò̀tọ́), wav, flac, ogg
speed float _Kò Àwọn ìṣàfarawé ìpele ìṣàfihàn. Àwọn ìpéwọ̀n: 1.0. Àwọn ìpele: 0.5 sí 2.0
language string _Kò Àtòjọ-ètò ìtàn (gẹ́gẹ́ bíi, en, es). Àtòjọ-ètò ìṣàfilọ́lẹ̀ láti inú ìṣàfilọ́lẹ̀.
stream boolean _Kò Fún àwọn àgbéwọlé ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu-ìjánu

Àwọn ìṣàmúlò-ètò

cURL
curl -X POST https://api.tts.ai/v1/tts/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kokoro",
    "text": "Hello from TTS.ai! This is a test.",
    "voice": "af_bella",
    "format": "mp3"
  }' \
  --output output.mp3

Àwọn ìsàlẹ̀-ilà

Fi fáìlì ìsàlẹ̀-ilà ìtàn-ẹ̀yàn padà bí àwọn àkọlé Ìdákọ́ọ̀kan-Ìyàn tí óò tọ́ (ìsàlẹ̀-ilà/mpeg, ìsàlẹ̀-ilà/wav, bbl.)

Àwọn Àmì-ìwé Ìjánu-ìwé
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

Àwọn Àmì-ìwé

POST /v1/stt/

Ṣàfihàn àwòrán láti inú àkọsílẹ̀. Ṣàfihàn àwọn ètò 99 láti inú ìṣàfilọ́lẹ̀ àtòjọ-ètò.

Àwọn ìṣàmúlò-ètò (multipart/form-data)

Àwọn ìkúndùǹÀwọn Ìṣàmúlò-ètòTí a fẹ́Àkóónú
file file Yà Fáìlì àwòrán (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Max 100MB.
model string _Kò Àwọn àwọn àwòrán STT: whisper (pípálẹ̀), faster-whisper, sensevoice
language string _Kò Àtòjọ-ẹ̀yàn. àtòjọ-ẹ̀yàn fún ìṣàfihàn-àtòjọ-ẹ̀yàn (píríǹtì).
timestamps boolean _Kò Ṣàfikún àwọn àkóónú àkóónú. Àtòjọ-ẹ̀yàn: fáìlì
diarize boolean _Kò Mú ìṣàfilọ́lẹ̀ àwọn àkọlé àwòrán ṣiṣẹ́. Àtòjọ-ẹ̀yàn: fáìlì

Àwọn ìsàlẹ̀-ilà

Àwọn ìṣàfihàn JSON
{
  "text": "Hello, this is a transcription test.",
  "language": "en",
  "duration": 3.5,
  "segments": [
    {
      "start": 0.0,
      "end": 1.8,
      "text": "Hello, this is",
      "speaker": "SPEAKER_00"
    },
    {
      "start": 1.8,
      "end": 3.5,
      "text": "a transcription test.",
      "speaker": "SPEAKER_00"
    }
  ]
}

Àwọn Àmì-ìwé

POST /v1/tts/clone/

Ṣẹ̀dà àkọlé nínú àwòrán. Lọ́ọ̀kan àwòrán àti àyọkà ìṣàfilọ́lẹ̀.

Àwọn ìṣàmúlò-ètò (multipart/form-data)

Àwọn ìkúndùǹÀwọn Ìṣàmúlò-ètòTí a fẹ́Àkóónú
reference_audio file Yà Àwọn àwòrán àwòrán ìṣàfihàn (10-30 àwọn ìsàlẹ̀-ilà). Max 20MB.
text string Yà Àkọlé láti sọ nínú ìrànwọ́ ìṣàfarawé.
model string _Kò Àwọn àwọn àwòrán: chatterbox (píríǹtì), cosyvoice2, gpt-sovits
format string _Kò Àwọn ìṣàmúlò-ètò àwọn ààtò: mp3 (pípálẹ̀), wav, flac
language string _Kò Àtòjọ-ètò ìsàlẹ̀-ilà. Ò ní ìyànfàn láti inú àwọn móòdù tí a yàn.

Àwọn ìsàlẹ̀-ilà

Fi fáìlì ìsàlẹ̀-ilà àwọn ìṣàmúlò-ètò àwọn ìṣàmúlò-ètò àwọn ìṣàmúlò-ètò TTS padà.

Àtòjọ-ẹ̀yàn Àwọn Àmì-ìwé

POST /v1/voice-convert/

Ṣàfikún àwòrán láti jẹ́ àwòrán ìṣàmúlò-ètò mìíràn. Ṣàfikún àwòrán ìṣàmúlò-ètò náà láti yan àwòrán ìṣàmúlò-ètò.

Àwọn ìṣàmúlò-ètò (multipart/form-data)

Àwọn ìkúndùǹÀwọn Ìṣàmúlò-ètòTí a fẹ́Àkóónú
file file Yà Fáìlì ìrísí-lẹ́tà (MP3, WAV, FLAC). Max 50MB.
target_voice string Yà Àtòjọ-ẹ̀yàn àwòrán tí a fẹ́ láti yipada sí (lo /v1/voices/ láti ṣàfihàn àwòrán tí a nì)
model string _Kò Móòdù ìyipadà àwòrán: openvoice (píríǹtì), knn-vc
format string _Kò Àwọn ìṣàmúlò-ètò àtòjọ-ẹ̀yàn: wav (píríǹtì), mp3, flac

Àwọn ìṣàmúlò-ètò

cURL
curl -X POST https://api.tts.ai/v1/voice-convert/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@source_audio.mp3" \
  -F "target_voice=af_bella" \
  -F "model=openvoice" \
  -o converted.wav

Àwọn ìsàlẹ̀-ilà

Fi fáìlì àwòrán tí a yipadà padà sí bí àwọn ààtòjọ-ẹ̀yàn àìṣàfilọ́lẹ̀.

Àwọn ìṣàfarawé kọ̀ǹpútà

POST /v1/speech-translate/

Ṣàfihàn àwòrán tí a sọ láti inú ede kan sí mìíràn. Ṣàfihàn àwọn àkọlé-si-àkọlé, àwọn ìtumọ̀, àwọn àkọlé-si-àkọlé nínú awájú kan.

Àwọn ìṣàmúlò-ètò (multipart/form-data)

Àwọn ìkúndùǹÀwọn Ìṣàmúlò-ètòTí a fẹ́Àkóónú
file file Yà Fáìlì ìṣàmúlò-ètò ìsàlẹ̀-ètò nínú ìrísí-lẹ́tà ìṣàfarawé. Max 100MB.
target_language string Yà Àtòjọ-ètò ìsàlẹ̀-ilà (gẹ́gẹ́ bíi es, fr, de, ja)
voice string _Kò Àwọn àwọn àyọkà ìṣàfihàn tí a tì tumọ̀. A yan nípa ìṣàfihàn látì jẹ́ pé a tì yọ̀.
preserve_voice boolean _Kò Àwọn ààyè-iṣẹ́ àwọn ìṣàfarawé àwọn àkọlé

Àwọn ìsàlẹ̀-ilà

Àwọn ìṣàfihàn JSON
{
  "original_text": "Hello, how are you?",
  "translated_text": "Hola, como estas?",
  "source_language": "en",
  "target_language": "es",
  "audio_url": "https://api.tts.ai/v1/results/translate_abc123.mp3",
  "credits_used": 5
}

Àwọn Àkọlé

POST /v1/speech-to-speech/

Ṣàfikún àwọn ìṣàmúlò-ètò ìṣàfihàn, àwọn ìrànwọ́, tàbí ìgbàdálẹ̀ nígbà tí o bá tọju àwọn ìṣàfihàn. Lòòròlò fún ìṣàfihàn àwọn ìṣàfihàn, àwọn ìṣàfihàn, àwọn ìṣàfihàn.

Àwọn ìṣàmúlò-ètò (multipart/form-data)

Àwọn ìkúndùǹÀwọn Ìṣàmúlò-ètòTí a fẹ́Àkóónú
file file Yà Fáìlì àwòrán ìṣàfihàn. Max 50MB.
voice string Yà Àwọn àwọn àmì-ìwé àwọn àmì-ìwé àwọn àwọn àmì-ìwé
model string _Kò Àwọn ìṣàmúlò-ètò: openvoice (píríǹtì), chatterbox
emotion string _Kò Àkọ́lé àwòrán: ọ̀fẹ́, ọ̀fẹ́, ọ̀pọ̀lú, ọ̀pọ̀lú, ọ̀pọ̀lú
speed float _Kò Àwọn ìṣàmúlò-ètò ìṣàfarawé ìrànwọ́. Àwọn ìpéwọ̀n: 1.0. Àwọn ìjánu-ìsún: 0.5 sí 2.0

Àwọn ìsàlẹ̀-ilà

Fi fáìlì àwòrán tí a tì yipadà padà sí bí àwọn ààtòjọ-ìdákọ àwọn ìṣàfarawé.

Àwọn Àtòjọ-ẹ̀yàn Àkọsílẹ̀

Àwọn ààyè-iṣẹ́ ìparí ìṣàfarawé àwòrán fún ìṣàfarawé, ìjánu-ìṣàmúlò-ètò, ìjánu-ìṣàfilọ́lẹ̀, àti àwọn mìíràn mìíràn.

POST /v1/audio/enhance/

Ṣàfihàn àwọn ìṣàmúlò-ètò àwòrán: denoise, ìṣàfihàn ìwọ̀n, àwọn ìṣàfihàn nla.

file fileFáìlì àwòrán tí a fẹ́ mú
denoise booleanṢàfikún àwọn ìṣàmúlò-ètò tí a kò fẹ́ (òrò: òótọ́)
enhance_clarity booleanṢẹ̀dà ìròyìn àkọlé ( ìpéwọ̀n: òótọ́)
super_resolution booleanÌdáràn àwọn ìṣàmúlò-ètò ìṣàfarawé àwọn ìṣàmúlò-ètò
strength integer1-3 (ìwọ̀n, ìsàlẹ̀-ilà, ìpéwọ̀n). Àtòjọ-ẹ̀yàn: 2
POST /v1/audio/separate/

Ṣàfarawe àwọn àwòrán láti inú àwọn àkọlé (àwọ̀n àwòrán) tàbí fi àwọn àwọn àgbèwọlé pamọ́.

file fileFáìlì àwòrán láti ṣí
model stringdemucs (Àwọn ìpéwọ̀n) tabi spleeter
stems integerÀwọn àwọn ìṣàmúlò-ètò: 2, 4, 5, tàbí 6 (òòrò: 2)
format stringÀwọn ìṣàmúlò-ètò ìjánu-ìṣàfilọ́lẹ̀: wav, mp3, flac
POST /v1/audio/dereverb/

Ṣàfikún àgbègbè àti àgbègbè láti inú àwọn àkọsílẹ̀ àwòrán.

file fileFáìlì àwòrán láti ṣe ìṣàfarawé
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Àìfihàn

Ṣàfihàn àwòrán láti ṣàfihàn bọ́tìnì, BPM, àti àwọn ìṣàmúlò-ètò àwọn ìṣàfihàn àkókò.

file fileFáìlì ìsàlẹ̀-ilà láti ṣàfihàn
Àwọn ìsàlẹ̀-ilà
{
  "key": "C",
  "scale": "Major",
  "bpm": 120.0,
  "time_signature": "4/4",
  "camelot": "8B",
  "compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
POST /v1/audio/convert/ Àìfihàn

Ṣàfikún àwòrán laarin àwọn ìrísí-lẹ́tà.

file fileFáìlì àwòrán láti yipada
format stringÀwọn ìgúnrégé àwọn àkọ́lé: mp3, wav, flac, ogg, m4a, aac
bitrate integerBítàrátì ìjánu-ìjánu nínú kbps: 64, 128, 192, 256, 320
sample_rate integerÀwọn ìṣàmúlò-ètò:
channels stringmono tabi stereo

Àkọlé àwòrán

POST /v1/voice-chat/

Fi àwòrán tàbí àkọlé pamọ́ ki o si gba ìjánu-íjánu AI nípa ìṣàfarawe-ìrọ̀.

Àwọn ìṣàmúlò-ètò (multipart/form-data tabi JSON)

Àwọn ìkúndùǹÀwọn Ìṣàmúlò-ètòTí a fẹ́Àkóónú
audio file _Kò* Ààyè-iṣẹ́ àwòrán (yàni àwòrán tàbí àyọkà tí a fẹ́)
text string _Kò* Àwọn ìṣàmúlò-ètò àyọkà (ọ̀kan ninu àwòrán tàbí àwòrán tí a fẹ́)
voice string _Kò Àwòrán fún àgbékalẹ̀ AI. Àtòjọ-ẹ̀yàn: af_bella
tts_model string _Kò Àwọn ìṣàmúlò-ètò TTS fún àgbékalẹ̀. Àtòjọ-ẹ̀yàn: kokoro
system_prompt string _Kò Àwọn àgbèwọlé ìṣàmúlò-ètò fún AI
conversation_id string _Kò Lọ́wọ́lọ́wọ́ àkọlé tí wa

Àwọn ìsàlẹ̀-ilà

Àwọn ìṣàfihàn JSON
{
  "conversation_id": "conv_abc123",
  "user_text": "What is the capital of France?",
  "ai_text": "The capital of France is Paris.",
  "audio_url": "https://api.tts.ai/v1/audio/tmp/resp_xyz.mp3",
  "credits_used": 3
}

Àwọn àwọn àwọn àwọn àwọn

POST /v1/tts/batch/

Fi àwọn àkọlé àwọn ìṣàmúlò-ètò láti fi pamọ́ fún ìṣàfihàn TTS. Lọ́wọ́lọ́wọ́ gba àgbègbè wẹ́ẹ̀bùhookù láti inú àwọn iṣẹ́ láti pari.

Àwọn Àtòjọ-ẹ̀yàn

Àwọn Àtòjọ-ẹ̀yànÀwọn Ìṣàmúlò-ètòÀwọn Àkọlé
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Àwọn ìsàlẹ̀-ilà

Àwọn ìṣàfihàn JSON
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

Àwọn ìṣàmúlò-ètò ìṣàfihàn àti GET /v1/tts/batch/result/?batch_id=abc123

Ìṣàfilọ́lẹ̀ Àwọn Àmì-ìwé

POST /v1/voice-embed/

Ṣàfikún ìṣàfilọ́lẹ̀ ìgbọ́ọ̀kan láti inú ìṣàfilọ́lẹ̀ ìgbọ́ọ̀kan. Lò àwọn àwọn ìṣàfilọ́lẹ̀_id tí a fi pamọ́ nínú àwọn ìtàn ìṣàfilọ́lẹ̀ ìgbọ́ọ̀kan láti mú ìṣàfilọ́lẹ̀ ìṣàfilọ́lẹ̀ láti inú ìṣàfilọ́lẹ̀.

Àwọn Àtòjọ-ẹ̀yàn

Àwọn Àtòjọ-ẹ̀yànÀwọn Ìṣàmúlò-ètòÀwọn Àkọlé
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

Àwọn ìsàlẹ̀-ilà

Àwọn ìṣàfihàn JSON
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Àwọn Àwọn Ààyè-iṣẹ́

GET /v1/health/

Ṣayẹwo ìṣàmúlò-ètò àwọn ààtò GPU, àwọn àwọn ìṣàmúlò-ètò àti ìwọ̀n ìṣàmúlò-ètò. Kò ní ìṣàfihàn ìṣàfihàn. A fi àwọn ìṣàfihàn pamọ́ fún àwọn ìṣísẹ̀ 30.

Àwọn ìsàlẹ̀-ilà

Àwọn ìṣàfihàn JSON
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

Àtòjọ àwọn ìṣàmúlò-ètò

GET /v1/models/

Ṣàfihàn àtòjọ àwọn ìṣàmúlò-ètò tó lè wa nínú àwọn ìṣàmúlò-ètò wọn.

Àwọn ìsàlẹ̀-ilà

Àwọn ìṣàfihàn JSON
{
  "models": [
    {
      "id": "kokoro",
      "name": "Kokoro",
      "type": "tts",
      "tier": "standard",
      "languages": ["en", "ja", "ko", "zh", "fr"],
      "supports_cloning": false,
      "supports_streaming": true,
      "credits_per_1k_chars": 2
    },
    {
      "id": "chatterbox",
      "name": "Chatterbox",
      "type": "tts",
      "tier": "premium",
      "languages": ["en"],
      "supports_cloning": true,
      "supports_streaming": true,
      "credits_per_1k_chars": 4
    }
  ]
}

Àwọn Àmì-ìwé Àtòjọ

GET /v1/voices/

Ṣàfihàn àtòjọ àwọn àwòrán tó lè wa ní pàtó, àti àwọn ìṣàmúlò-ètò ìṣàfihàn láti inú àwòrán tàbí àwòrán.

Àwọn Àlàyé Àwọn Àwọn Ààtò

Àwọn ìkúndùǹÀwọn Ìṣàmúlò-ètòÀkóónú
model string Píríǹtì láti inú ID ìṣàmúlò-ètò (gẹ́gẹ́ bíi kokoro)
language string Fi àwọn àmì-ìwé ìsàlẹ̀-ilà pamọ́ (gẹ́gẹ́ bíi en)
gender string Aṣàfilọ́lẹ̀ láti inú ìwọ̀n: ọmọkunrin, ọmọbinrin, ọ̀kan-ọ̀kan

Àwọn ìsàlẹ̀-ilà

Àwọn ìṣàfihàn JSON
{
  "voices": [
    {
      "id": "af_bella",
      "name": "Bella",
      "model": "kokoro",
      "language": "en",
      "gender": "female",
      "preview_url": "https://api.tts.ai/v1/voices/preview/af_bella.mp3"
    }
  ],
  "total": 142
}

Àwọn Ààtòjọ-ẹ̀yàn

Àkọlé sí Àkọ́kọ́

Python - requests
import requests

API_KEY = "sk-tts-your-key"

# Text to Speech
response = requests.post(
    "https://api.tts.ai/v1/tts/",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "model": "kokoro",
        "text": "Hello from TTS.ai!",
        "voice": "af_bella",
        "format": "mp3"
    }
)

with open("output.mp3", "wb") as f:
    f.write(response.content)

print(f"Credits used: {response.headers.get('X-Credits-Used')}")

Àwọn Àmì-ìwé

Python - requests
# Speech to Text
with open("recording.mp3", "rb") as f:
    response = requests.post(
        "https://api.tts.ai/v1/stt/",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"file": f},
        data={"model": "faster-whisper", "timestamps": "true"}
    )

result = response.json()
print(result["text"])

Àwọn Àmì-ìwé

Python - requests
# Voice Cloning
with open("reference.wav", "rb") as ref:
    response = requests.post(
        "https://api.tts.ai/v1/tts/clone/",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"reference_audio": ref},
        data={
            "text": "This speech uses a cloned voice.",
            "model": "chatterbox"
        }
    )

with open("cloned_output.mp3", "wb") as f:
    f.write(response.content)

Àkọlé sí Àkọ́kọ́

JavaScript - fetch
const API_KEY = 'sk-tts-your-key';

// Text to Speech
const response = await fetch('https://api.tts.ai/v1/tts/', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'kokoro',
    text: 'Hello from TTS.ai!',
    voice: 'af_bella',
    format: 'mp3'
  })
});

const audioBlob = await response.blob();
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);
audio.play();

Àwọn Àmì-ìwé

JavaScript - fetch
// Speech to Text
const formData = new FormData();
formData.append('file', audioFile);
formData.append('model', 'faster-whisper');

const response = await fetch('https://api.tts.ai/v1/stt/', {
  method: 'POST',
  headers: { 'Authorization': `Bearer ${API_KEY}` },
  body: formData
});

const result = await response.json();
console.log(result.text);

Àkọlé sí Àkọ́kọ́

cURL
# Text to Speech
curl -X POST https://api.tts.ai/v1/tts/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -H "Content-Type: application/json" \
  -d '{"model":"kokoro","text":"Hello!","voice":"af_bella","format":"mp3"}' \
  -o output.mp3

Àwọn Àmì-ìwé

cURL
# Speech to Text
curl -X POST https://api.tts.ai/v1/stt/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@recording.mp3" \
  -F "model=faster-whisper" \
  -F "timestamps=true"

Àwọn Àmì-ìwé

cURL
# Voice Cloning
curl -X POST https://api.tts.ai/v1/tts/clone/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "reference_audio=@reference.wav" \
  -F "text=This uses a cloned voice." \
  -F "model=chatterbox" \
  -o cloned.mp3

Àwọn ìṣàfarawé àwòrán

cURL
# Audio Enhancement
curl -X POST https://api.tts.ai/v1/audio/enhance/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@noisy_audio.mp3" \
  -F "denoise=true" \
  -F "enhance_clarity=true" \
  -o enhanced.mp3

Àwọn Àmì-ìwé Àṣìṣe

Àwọn àṣìṣe gbogbò náà ń fi àwọn àgbékalẹ̀ JSON pamọ́ sí error Àwọn ààyè-iṣẹ́

Àwọn Àwọn Àkọ́gbégbé
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
Ààyè HTTPÀwọn ÀṣìṣeÀkóónú
400 bad_request Àwọn ìpéwọ̀n ìtàn tí kò tọ́. Wòye àkọlé àṣẹ fún àwọn ìròyìn.
401 unauthorized Bọ́tìnì API tí kò wa tàbí kò tọ́.
402 insufficient_credits Kò ní àwọn àmì-àṣírí tòjú. Ràwọ́lù nínú /pricing/.
403 forbidden Àwọn ìṣàmúlò-ètò API kò wa nínú àtòjọ-ẹ̀yàn rẹ̀.
404 not_found A kò rí àwọn ìṣàmúlò-ètò àti àwòrán.
413 file_too_large Àwọn fáìlì tí a fi pamọ́ tí wọ́ inú àwọn ìwọ̀n ìwọ̀n.
429 rate_limited Àwọn ìtàn tí o jù lọ. Ṣayẹwo àwọn àwọn àkọlé àwọn ìdájú àwọn ìṣàmúlò-ètò.
500 internal_error Àṣìṣe àwọn sáà. Wá lẹ́ẹ̀kan nínú ìtàn.
503 model_loading Àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn àwọn

Àwọn wẹ́ẹ̀bù

Fún àwọn iṣẹ́ tí n lọ́wọ́lọ́wọ́ jú lọ́wọ́lọ́wọ́ lọ́wọ́lọ́wọ́, o lè ṣàfihàn ààtòjọ-ẹ̀yàn webhook_url. Nígbà tí iṣẹ́ náà bá parí, a á fi ààtòjọ-ẹ̀yàn náà pamọ́ sí URL rẹ̀.

Àwọn Ìṣàmúlò-ètò
{
  "event": "task.completed",
  "task_id": "task_abc123",
  "status": "success",
  "result_url": "https://api.tts.ai/v1/results/task_abc123",
  "credits_used": 12,
  "created_at": "2025-01-15T10:30:00Z",
  "completed_at": "2025-01-15T10:30:45Z"
}
Àwọn àwọn ìṣàmúlò-ètò Webhook tí wa nígbà tí a tí parí. Gẹ́gẹ́ bí a tí wa nígbà tí a bá gba wọn lọ́wọ́lọ́wọ́.

Tí O Tí Ìjánú Rẹ́?

Gba bọ́tìnì API rẹ̀ láti bẹrẹ ìdapọ TTS.ai nínú àwọn ìṣàmúlò-ètò rẹ̀.