API փաստաթղթեր

Ինտեգրեք TTS.ai-ն ձեր ծրագրերում մեր REST API-ի միջոցով։ OpenAI-ի հետ համընկնող ձևաչափը հեշտացնում է միգրացիան։

REST API OpenAI համընկնող JSON պատասխաններ Ցանցային աջակցություն

Համեմատություն

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 գլխամաս.

HTTP գլխամաս
Authorization: Bearer sk-tts-your-api-key-here
Ձեր API կոդը գաղտնի պահեք։ Չբաժանել այն հաճախորդի կողմի կոդի, հանրային ռեպորտաժների կամ գրանցումների մեջ։ Կրկնեք կոճակները ձեր հաշվի պարամետրերում։

Հիմնական URL

Հիմնական URL: https://api.tts.ai/v1/

Բոլոր վերջնական կետերը հարաբերական են այս հիմնային URL- ին։ Օրինակ, TTS վերջնական կետ է՝

POST https://api.tts.ai/v1/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

POST /v1/tts/

Անվանել տեքստը ձայնային ձայնագրության։ Վերադարձնում է ձայնային ֆայլը պահանջված ձևաչափով։

Պահանջի մարմին

ՊարամետրերՏիպՊահանջվում էԱպրանքանիշ
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
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

POST /v1/stt/

Արտասանել ձայնային տվյալները տեքստային ձևով։ Պահպանում է 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

Պատասխան

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"
    }
  ]
}

Ձայնի կլոնավորում

POST /v1/tts/clone/

Ծննդաբերել խոսակցությունը կլոնավորված ձայնով։ Տեղադրել հղման ձայն և տեքստը։

Պահանջի մարմին (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 վերջնական կետը։

Խոսքի փոխակերպիչ

POST /v1/voice-convert/

Ավտոմատ կերպով փոխակերպել ձայնային տվյալները այլ ձայնի պես հնչելու համար։ Տեղադրել սկզբնական ձայնային տվյալները և ընտրել նպատակային ձայնը։

Պահանջի մարմին (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
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

Պատասխան

Վերադարձնում է փոխակերպված ձայնային ֆայլը որպես երկակի տվյալներ։

Խոսքի թարգմանություն

POST /v1/speech-translate/

Թարգմանել ձայնային հաղորդագրությունները մեկ լեզվից մյուսը։ Միավորում է ձայնային հաղորդագրությունների թարգմանությունը, թարգմանությունը և ձայնային հաղորդագրությունների թարգմանությունը մեկ զանգի ընթացքում։

Պահանջի մարմին (multipart/form-data)

ՊարամետրերՏիպՊահանջվում էԱպրանքանիշ
file file Այո Ծագման ձայնային ֆայլը սկզբնական լեզվով. առավելագույնը 100 Մբ
target_language string Այո Օգտագործվող լեզվի կոդը (օրինակ, hy, hy, hy, hy)
voice string Ոչ Թարգմանության ելքի ձայնը։ Ավտոմատորեն ընտրվում է, եթե բացակայում է։
preserve_voice boolean Ոչ Փորձել պահպանել սկզբնական խոսողին

Պատասխան

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
}

Խոսքից խոսք

POST /v1/speech-to-speech/

Փոխել խոսքի ոճը, զգացմունքները կամ արտահայտությունը՝ պահպանելով բովանդակությունը։ Կարևոր է տոնը, արագությունը և արտահայտչականությունը կարգավորելու համար։

Պահանջի մարմին (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

Պատասխան

Վերադարձնում է փոխակերպված ձայնային ֆայլը որպես բիներալ տվյալներ

Աուդիո գործիքներ

Աուդիո վերամշակման վերջնական կետերը բարելավման, ձայնի հեռացման, սկավառակի բաժանման և այլն համար։

POST /v1/audio/enhance/

Բարձրացնել ձայնի որակը՝ նվազեցնելով աղմուկը, բարելավելով ճշգրտությունը, ավելացնելով լուսավորությունը։

file fileԱուդիո ֆայլի բարելավում
denoise booleanԱնջատել աղմուկը (լռելյայն՝ ճիշտ)
enhance_clarity booleanԲարձրացնել խոսքի հստակությունը (լռելյայն՝ ճիշտ)
super_resolution booleanԲարձրացնել ձայնի որակը (լռելյայն՝ false)
strength integer1-3 (թեթև, միջին, ուժեղ): Լռելյայն՝ 2
POST /v1/audio/separate/

Առանձնացնել ձայնայինները նվագախմբայիններից (ձայնայինների հեռացում) կամ բաժանել ձայնայինները ճյուղերի.

file fileԱռանձնացնելու ձայնային ֆայլ
model stringdemucs (լռելյայն) կամ spleeter
stems integerԾաղիկների քանակը` 2, 4, 5 կամ 6 (լռելյայն` 2)
format stringԱրտադրության ձևաչափը. wav, mp3, flac
POST /v1/audio/dereverb/

Հեռացնել ձայնագրություններից հնչյունները և հնչյունափոխությունը։

file fileՕգտագործվող ձայնային ֆայլ
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Ազատ

Անալիզել ձայնը նվագախմբի, 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"]
}
POST /v1/audio/convert/ Ազատ

Աուդիո ֆորմատների փոխակերպում

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 stringmono կամ stereo

Ձայնային զրույց

POST /v1/voice-chat/

Ավտոմատ ձայնային կամ տեքստային հաղորդագրություն ուղարկել և ստանալ սինթետիկ ձայնային պատասխան։

Պահանջի մարմին (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 Ոչ Շարունակել առկա զրույցը

Պատասխան

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
}

Տեսակների ցուցակ

GET /v1/models/

Վերադարձնում է բոլոր հասանելի մոդելների ցանկը և դրանց հնարավորությունները։

Պատասխան

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
    }
  ]
}

ձայների ցանկ

GET /v1/voices/

Վերադարձնում է բոլոր հասանելի ձայների ցուցակը, որը ֆիլտրվում է ըստ մոդելի կամ լեզվի։

Պարամետրեր

ՊարամետրերՏիպԱպրանքանիշ
model string Ֆիլտրել ըստ մոդելի ID-ի (օրինակ, kokoro)
language string Ֆիլտրել լեզվի կոդով (օրինակ, hy)
gender string Ֆիլտրել ըստ սեռի: male, female, neutral

Պատասխան

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
}

Կոդի օրինակներ

Տեքստից խոսքName

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')}")

Խոսքից տեքստName

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"])

Ձայնի կլոնավորում

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)

Տեքստից խոսքName

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();

Խոսքից տեքստName

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);

Տեքստից խոսքName

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

Խոսքից տեքստName

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"

Ձայնի կլոնավորում

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

Ձայնի բարելավում

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

Սխալի կոդեր

Բոլոր սխալները վերադառնում են 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"
}
Webhook- ի արդյունքները հասանելի են ներբեռնման համար կատարումից հետո 24 ժամվա ընթացքում։ Պարզապես ներբեռնեք դրանք անմիջապես։

Պատրա՞ստ եք կառուցել?

Ստացեք ձեր API կոդը և սկսեք ինտեգրել TTS.ai-ն ձեր ծրագրերում։