API փաստաթղթեր
Ինտեգրեք TTS.ai-ն ձեր ծրագրերում մեր REST API-ի միջոցով։ OpenAI-ի հետ համընկնող ձևաչափը հեշտացնում է միգրացիան։
Համեմատություն
The TTS.ai API provides programmatic access to all platform features: text-to-speech synthesis, speech-to-text transcription, voice cloning, audio enhancement, and more. The API uses standard REST conventions with JSON request/response bodies.
API կոդ
Ձեր API կոդը ստանալ Հաշվի պարամետրեր. Ընկերության կառուցվածքը և գործունեությունը.
Հիմնական URL
https://api.tts.ai/v1/
Գործողություն
Օգտագործողի տեքստ Authorization գլխամաս
Ավտոմատացում
Բոլոր API խնդրանքները պահանջում են աուդիտացիա Bearer token- ի միջոցով Authorization գլխամաս.
Authorization: Bearer sk-tts-your-api-key-here
Հիմնական URL
Բոլոր վերջնական կետերը հարաբերական են այս հիմնային URL- ին։ Օրինակ, TTS վերջնական կետ է՝
Գործողություն
API արագության սահմանափակումները տարբերվում են պլանի համաձայն.
| Գործողություն | Պահանջներ/րոպե | Concurrent | Տեքստի առավելագույն երկարությունը |
|---|---|---|---|
| Օգտագործող | 60 | 5 | 5000 սիմվոլ |
| Ընկերություն | 300 | 20 | 50,000 սիմվոլ |
Հաճախականության սահմանափակումը ներառված է յուրաքանչյուր պատասխանում: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Ընդհանուր
| Ծառայություն | Գին | Ընդհանուր |
|---|---|---|
| TTS (Ազատ մոդելներ՝ Piper, VITS, MeloTTS) | 1 միավոր | 1000 հիերոգլիֆ |
| TTS (Ստանդարտ մոդելներ: Kokoro, CosyVoice 2, և այլն) | 2 միավոր | 1000 հիերոգլիֆ |
| TTS (Premium մոդելներ՝ Tortoise, Chatterbox և այլն) | Գործողություն | 1000 հիերոգլիֆ |
| Խոսքից տեքստName | 2 միավոր | ձայնային րոպեական |
| Ձայնի կլոնավորում | Գործողություն | 1000 հիերոգլիֆ |
| Խոսքի փոխակերպիչ | 3 միավոր | ձայնային րոպեական |
| Ձայնի բարելավում | 2 միավոր | ձայնային րոպեական |
| Ձայնի հեռացում / ձայնի բաժանում | 3-4 միավոր | ձայնային րոպեական |
| Խոսքի թարգմանություն | 5 միավոր | ձայնային րոպեական |
| Ձայնային զրույց | 3 միավոր | յուրաքանչյուր հերթին |
| Գործողություն | Ազատ | -- |
| Աուդիո փոխակերպիչ | Ազատ | -- |
Տեքստից խոսքName
Անվանել տեքստը ձայնային ձայնագրության։ Վերադարձնում է ձայնային ֆայլը պահանջված ձևաչափով։
Պահանջի մարմին
| Պարամետրեր | Տիպ | Պահանջվում է | Ապրանքանիշ |
|---|---|---|---|
| model | string | Այո | մոդելի ID (օրինակ, kokoro, chatterbox, piper) |
| text | string | Այո | Տեքստ ձայնագրելու համար (Max 5,000 characters for Pro, 50,000 characters for Enterprise) |
| voice | string | Այո | Ձայնի ID (օգտագործեք /v1/voices/ հասանելի ձայների ցանկ կազմելու համար) |
| format | string | Ոչ | Արտադրության ձևաչափը. mp3 (լավագույնը), wav, flac, ogg |
| speed | float | Ոչ | Խոսելու արագության բազմապատկիչը։ Լռելյայն՝ 1.0։ Տարբերակ՝ 0.5-ից 2.0 |
| language | string | Ոչ | Լեզվի կոդը (օրինակ, hy, hy)։ Ավտոմատորեն հայտնաբերվում է, եթե բացակայում է։ |
| stream | boolean | Ոչ | Օգտագործել հոսքի պատասխանը։ Լռելյայն՝ false |
Օրինակ
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
Պատասխան
Returns the audio file as binary data with appropriate Content-Type header (audio/mpeg, audio/wav, etc.).
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498
Խոսքից տեքստName
Արտասանել ձայնային տվյալները տեքստային ձևով։ Պահպանում է 99 լեզու` ավտոմատ հայտնաբերման միջոցով։
Պահանջի մարմին (multipart/form-data)
| Պարամետրեր | Տիպ | Պահանջվում է | Ապրանքանիշ |
|---|---|---|---|
| file | file | Այո | Աուդիո ֆայլ (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Ավելին քան 100 Մբ |
| model | string | Ոչ | STT մոդել: whisper (լռելյայն), faster-whisper, sensevoice |
| language | string | Ոչ | Լեզվի կոդ. auto ավտոմատ հայտնաբերման համար (առաջադրված). |
| timestamps | boolean | Ոչ | Լռելյայն՝ false |
| diarize | boolean | Ոչ | Օգտագործել ձայնագրիչի օրացույցը։ Լռելյայն՝ false |
Պատասխան
{
"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"
}
]
}
Ձայնի կլոնավորում
Ծննդաբերել խոսակցությունը կլոնավորված ձայնով։ Տեղադրել հղման ձայն և տեքստը։
Պահանջի մարմին (multipart/form-data)
| Պարամետրեր | Տիպ | Պահանջվում է | Ապրանքանիշ |
|---|---|---|---|
| reference_audio | file | Այո | Հղումային ձայնային ձայնագրություն (10-30 վայրկյան խորհուրդ է տրվում): Առավելագույնը 20 Մբ |
| text | string | Այո | Տեքստ, որը կլոնավորված ձայնով պետք է ասվի։ |
| model | string | Ոչ | Կլոնի մոդել՝ chatterbox (լռելյայն), cosyvoice2, gpt-sovits |
| format | string | Ոչ | Արտադրության ձևաչափը. mp3 (լավագույնը), wav, flac |
| language | string | Ոչ | Օգտագործվող լեզվի կոդը։ Պետք է աջակցվի ընտրված մոդելի կողմից։ |
Պատասխան
Վերադարձնում է ձայնային ֆայլը որպես բիներալ տվյալներ, նույնը, ինչ TTS վերջնական կետը։
Խոսքի փոխակերպիչ
Ավտոմատ կերպով փոխակերպել ձայնային տվյալները այլ ձայնի պես հնչելու համար։ Տեղադրել սկզբնական ձայնային տվյալները և ընտրել նպատակային ձայնը։
Պահանջի մարմին (multipart/form-data)
| Պարամետրեր | Տիպ | Պահանջվում է | Ապրանքանիշ |
|---|---|---|---|
| file | file | Այո | Օդիո սկզբնական ֆայլը (MP3, WAV, FLAC). Ավելին քան 50 Մբ |
| target_voice | string | Այո | Փոխանակելու նպատակային ձայնային ID-ն (օգտագործեք /v1/voices/ հասանելի ձայների ցանկ կազմելու համար) |
| model | string | Ոչ | Ձայնի փոխակերպման մոդել՝ openvoice (լռելյայն), knn-vc |
| format | string | Ոչ | Էքսպորտային ձևաչափ՝ wav (լռելյայն), mp3, flac |
Օրինակ
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
Պատասխան
Վերադարձնում է փոխակերպված ձայնային ֆայլը որպես երկակի տվյալներ։
Խոսքի թարգմանություն
Թարգմանել ձայնային հաղորդագրությունները մեկ լեզվից մյուսը։ Միավորում է ձայնային հաղորդագրությունների թարգմանությունը, թարգմանությունը և ձայնային հաղորդագրությունների թարգմանությունը մեկ զանգի ընթացքում։
Պահանջի մարմին (multipart/form-data)
| Պարամետրեր | Տիպ | Պահանջվում է | Ապրանքանիշ |
|---|---|---|---|
| file | file | Այո | Ծագման ձայնային ֆայլը սկզբնական լեզվով. առավելագույնը 100 Մբ |
| target_language | string | Այո | Օգտագործվող լեզվի կոդը (օրինակ, hy, hy, hy, hy) |
| voice | string | Ոչ | Թարգմանության ելքի ձայնը։ Ավտոմատորեն ընտրվում է, եթե բացակայում է։ |
| preserve_voice | boolean | Ոչ | Փորձել պահպանել սկզբնական խոսողին |
Պատասխան
{
"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
}
Խոսքից խոսք
Փոխել խոսքի ոճը, զգացմունքները կամ արտահայտությունը՝ պահպանելով բովանդակությունը։ Կարևոր է տոնը, արագությունը և արտահայտչականությունը կարգավորելու համար։
Պահանջի մարմին (multipart/form-data)
| Պարամետրեր | Տիպ | Պահանջվում է | Ապրանքանիշ |
|---|---|---|---|
| file | file | Այո | Ծագման ձայնային ֆայլ. 50 Մբ առավելագույն. |
| voice | string | Այո | Առաջարկվող ձայնային ID- ը արտահոսքի համար |
| model | string | Ոչ | Նմուշ: openvoice (լռելյայն), chatterbox |
| emotion | string | Ոչ | Նպատակային էմոցիա: neutral, happy, sad, angry, excited |
| speed | float | Ոչ | արագության կարգավորումը։ Լռելյայն՝ 1.0։ Տարբերակ՝ 0.5-ից մինչև 2.0 |
Պատասխան
Վերադարձնում է փոխակերպված ձայնային ֆայլը որպես բիներալ տվյալներ
Աուդիո գործիքներ
Աուդիո վերամշակման վերջնական կետերը բարելավման, ձայնի հեռացման, սկավառակի բաժանման և այլն համար։
Բարձրացնել ձայնի որակը՝ նվազեցնելով աղմուկը, բարելավելով ճշգրտությունը, ավելացնելով լուսավորությունը։
| file file | Աուդիո ֆայլի բարելավում |
| denoise boolean | Անջատել աղմուկը (լռելյայն՝ ճիշտ) |
| enhance_clarity boolean | Բարձրացնել խոսքի հստակությունը (լռելյայն՝ ճիշտ) |
| super_resolution boolean | Բարձրացնել ձայնի որակը (լռելյայն՝ false) |
| strength integer | 1-3 (թեթև, միջին, ուժեղ): Լռելյայն՝ 2 |
Առանձնացնել ձայնայինները նվագախմբայիններից (ձայնայինների հեռացում) կամ բաժանել ձայնայինները ճյուղերի.
| file file | Առանձնացնելու ձայնային ֆայլ |
| model string | demucs (լռելյայն) կամ spleeter |
| stems integer | Ծաղիկների քանակը` 2, 4, 5 կամ 6 (լռելյայն` 2) |
| format string | Արտադրության ձևաչափը. wav, mp3, flac |
Հեռացնել ձայնագրություններից հնչյունները և հնչյունափոխությունը։
| file file | Օգտագործվող ձայնային ֆայլ |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Անալիզել ձայնը նվագախմբի, BPM-ի և տեմպերի հայտնաբերման համար։
| file file | Օդիո ֆայլը վերլուծելու համար |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Աուդիո ֆորմատների փոխակերպում
| file file | Աուդիո ֆայլ փոխակերպելու համար |
| format string | Օգտագործվող ֆորմատներ՝ mp3, wav, flac, ogg, m4a, aac |
| bitrate integer | Բիթերի արտահոսքի արագությունը` kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Նմուշների քանակը: 22050, 44100, 48000 |
| channels string | mono կամ stereo |
Ձայնային զրույց
Ավտոմատ ձայնային կամ տեքստային հաղորդագրություն ուղարկել և ստանալ սինթետիկ ձայնային պատասխան։
Պահանջի մարմին (multipart/form-data կամ JSON)
| Պարամետրեր | Տիպ | Պահանջվում է | Ապրանքանիշ |
|---|---|---|---|
| audio | file | Ոչ* | Աուդիո մուտք (պահանջվում է audio կամ text) |
| text | string | Ոչ* | Տեքստային մուտք (պահանջվում է audio կամ text) |
| voice | string | Ոչ | AI-ի պատասխանի ձայնը։ Լռելյայն՝ af_bella |
| tts_model | string | Ոչ | TTS մոդելը պատասխանի համար։ Լռելյայն՝ kokoro |
| system_prompt | string | Ոչ | AI- ի համար յուրահատուկ համակարգային խնդրանք |
| conversation_id | string | Ոչ | Շարունակել առկա զրույցը |
Պատասխան
{
"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
}
Տեսակների ցուցակ
Վերադարձնում է բոլոր հասանելի մոդելների ցանկը և դրանց հնարավորությունները։
Պատասխան
{
"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
}
]
}
ձայների ցանկ
Վերադարձնում է բոլոր հասանելի ձայների ցուցակը, որը ֆիլտրվում է ըստ մոդելի կամ լեզվի։
Պարամետրեր
| Պարամետրեր | Տիպ | Ապրանքանիշ |
|---|---|---|
| model | string | Ֆիլտրել ըստ մոդելի ID-ի (օրինակ, kokoro) |
| language | string | Ֆիլտրել լեզվի կոդով (օրինակ, hy) |
| gender | string | Ֆիլտրել ըստ սեռի: male, female, neutral |
Պատասխան
{
"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
}
Կոդի օրինակներ
Տեքստից խոսքName
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')}")
Խոսքից տեքստName
# 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"])
Ձայնի կլոնավորում
# 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)
Տեքստից խոսքName
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();
Խոսքից տեքստName
// 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);
Տեքստից խոսքName
# 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
Խոսքից տեքստName
# 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"
Ձայնի կլոնավորում
# 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
Ձայնի բարելավում
# 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
Սխալի կոդեր
Բոլոր սխալները վերադառնում են JSON պատասխանով error դաշտ.
{
"error": {
"code": "insufficient_credits",
"message": "You do not have enough credits for this request.",
"credits_required": 4,
"credits_available": 2
}
}
| HTTP վիճակ | Error Code | Ապրանքանիշ |
|---|---|---|
| 400 | bad_request |
Ոչ ճիշտ պահանջված պարամետրեր. Ստուգեք սխալի հաղորդագրությունը մանրամասների համար: |
| 401 | unauthorized |
Հաշվի չառնված կամ սխալ API կոդ |
| 402 | insufficient_credits |
Չափազանց քրեդիտներ։ Գնեք ավելին /pricing/ կայքում։ |
| 403 | forbidden |
Ձեր պլանում API-ի հասանելիություն չկա։ |
| 404 | not_found |
մոդել կամ ձայն չի հայտնաբերվել։ |
| 413 | file_too_large |
Փոխադրված ֆայլը գերազանցում է չափսի սահմանը։ |
| 429 | rate_limited |
Չափազանց շատ խնդրանքներ։ Ստուգեք արագության սահմանափակումների գլխամասերը։ |
| 500 | internal_error |
Սերվերի սխալ։ Փորձեք կրկին ավելի ուշ։ |
| 503 | model_loading |
մոդելը բեռնվում է։ Կրկին փորձեք մի քանի վայրկյան անց։ |
Webhooks- ներ
Երկարաժամկետ գործողությունների համար (stamp-ի բաժանում, batch TTS), դուք կարող եք տրամադրել webhook_url պարամետրը։ Երբ գործողությունը ավարտվել է, մենք կտեղադրենք արդյունքը ձեր URL-ում։
{
"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"
}
Պատրա՞ստ եք կառուցել?
Ստացեք ձեր API կոդը և սկսեք ինտեգրել TTS.ai-ն ձեր ծրագրերում։