À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ù.
À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é.
Authorization: Bearer sk-tts-your-api-key-here
À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")
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');
URL Ìdálẹ̀
Àwọn ààyè-iṣẹ́ ìparí gbogbó ní pàtó nípa URL̀ ìtọ́nà yìí. Fun ààyè-iṣẹ́ ìparí TTS ni:
À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ọ́
Ṣà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 -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.)
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498
Àwọn Àmì-ìwé
Ṣà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à
{
"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é
Ṣẹ̀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é
Ṣà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 -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à
Ṣà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à
{
"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é
Ṣà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.
Ṣàfihàn àwọn ìṣàmúlò-ètò àwòrán: denoise, ìṣàfihàn ìwọ̀n, àwọn ìṣàfihàn nla.
| file file | Fáì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 integer | 1-3 (ìwọ̀n, ìsàlẹ̀-ilà, ìpéwọ̀n). Àtòjọ-ẹ̀yàn: 2 |
Ṣà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 file | Fáìlì àwòrán láti ṣí |
| model string | demucs (À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 |
Ṣàfikún àgbègbè àti àgbègbè láti inú àwọn àkọsílẹ̀ àwòrán.
| file file | Fáìlì àwòrán láti ṣe ìṣàfarawé |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Ṣà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 file | Fáìlì ìsàlẹ̀-ilà láti ṣàfihàn |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Ṣàfikún àwòrán laarin àwọn ìrísí-lẹ́tà.
| file file | Fáì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 integer | Bítàrátì ìjánu-ìjánu nínú kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Àwọn ìṣàmúlò-ètò: |
| channels string | mono tabi stereo |
Àkọlé àwòrán
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à
{
"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
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é |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Optional URL to POST results when batch completes. |
Àwọn ìsàlẹ̀-ilà
{
"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é
Ṣà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é |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Àwọn ìsàlẹ̀-ilà
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Àwọn Àwọn Ààyè-iṣẹ́
Ṣ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à
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
Àtòjọ àwọn ìṣàmúlò-ètò
Ṣà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à
{
"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ọ
Ṣà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à
{
"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ọ́
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é
# 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é
# 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ọ́
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é
// 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ọ́
# 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é
# 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é
# 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
# 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ṣẹ́
{
"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ẹ̀.
{
"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"
}
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ẹ̀.