API vadovas
Trys svetainės paslaugos – transkripcija su kalbėtojų atpažinimu, vaizdo įrašų dubliavimas ir teksto įgarsinimas – pasiekiamos ir iš jūsų programų. Užklausa su įrašo nuoroda ar tekstu, atsakymas su rezultatu. Viena paskyra, tas pats kreditų balansas.
Turinys
- Kaip pradėti
- Kaina ir ribos
- Adresas ir autentifikacija
- Paskyra
- — GET /v1/account
- Transkripcija
- — POST /v1/transcriptions
- — GET /v1/transcriptions/{id}
- Vaizdo įrašų dubliavimas
- — POST /v1/dubbings
- — GET /v1/dubbings/{id}
- Teksto įgarsinimas
- — POST /v1/speech
- — GET /v1/speech/{id}
- Klaidos
- Pavyzdžiai
- Pagalba
Kaip pradėti
- Užsiregistruokite arba prisijunkite svetainėje ausis.lt ir patvirtinkite el. pašto adresą.
- Įsigykite kreditų (API naudoja tuos pačius kreditus kaip svetainė).
- Vartotojo meniu atidarykite skiltį „API“ ir sukurkite raktą. Raktas rodomas tik vieną kartą – nukopijuokite jį iš karto.
Kaina ir ribos
- Transkripcija – 1 kreditas už kiekvieną pradėtą įrašo minutę. Dubliavimas – 10 kreditų už pradėtą minutę. Teksto įgarsinimas – 2 kreditai už kiekvieną pradėtą 1000 simbolių. Nemokamų minučių ar simbolių per API nėra.
- Balansas tikrinamas kuriant užduotį, kreditai nuskaitomi tik kai užduotis baigta. Nepavykusios užduotys nekainuoja.
- Vienas įrašas – iki 3 valandų; failo dydis neribojamas (tinka ir kelių GB vaizdo įrašai). Failas turi būti pasiekiamas viešu https:// adresu.
- Failams iki 200 MB trukmė ir kaina nustatomos iš karto; didesniems – apdorojant, todėl atsakyme
estimatedCreditsbūnanull. - Kiekvienas API rezultatas atsiranda ir jūsų projektų sąraše svetainėje.
Adresas ir autentifikacija
Bazinis adresas: https://ausis.lt/api/v1. Prie kiekvienos užklausos pridėkite antraštę X-API-Key: ak_… (arba Authorization: Bearer ak_…).
Paskyra
GET /v1/account
Grąžina jūsų kreditų balansą.
{ "credits": 120, "creditsPerMinute": 1 }
Transkripcija
POST /v1/transcriptions
Sukuria transkripcijos užduotį. Įrašas parsiunčiamas iš nurodyto adreso, išmatuojama trukmė, patikrinamas balansas. Įrašas transkribuojamas šios svetainės kalba.
{
"audioUrl": "https://example.com/recordings/call.mp3",
"fileName": "call.mp3",
"webhookUrl": "https://example.com/hooks/transcripts"
}
| Laukas | Privalomas | Aprašymas |
|---|---|---|
audioUrl | taip | Viešas https:// garso ar vaizdo failo adresas. |
fileName | ne | Pavadinimas projektų sąraše. Numatytasis – paskutinė adreso dalis. |
webhookUrl | ne | Viešas https:// adresas, į kurį bus išsiųstas rezultatas, kai užduotis baigiasi (toks pat JSON kaip GET). Vienas bandymas, 10 s laukimas. |
Atsakymas 202 Accepted:
{
"id": "k3FgT9bQ2w",
"status": "queued",
"languageCode": "lt-LT",
"fileName": "call.mp3",
"durationSeconds": 1532,
"estimatedCredits": 26,
"pollUrl": "/v1/transcriptions/k3FgT9bQ2w"
}
GET /v1/transcriptions/{id}
Būsena arba, kai baigta, visa transkripcija. Būsenos: queued, processing, completed, failed.
Kol apdorojama:
{ "id": "k3FgT9bQ2w", "status": "processing", "progress": 40, "languageCode": "lt-LT", "fileName": "call.mp3", "durationSeconds": 1532 }
Kai baigta (?format=json, numatytasis):
{
"id": "k3FgT9bQ2w",
"status": "completed",
"creditsCharged": 26,
"speakers": ["SPEAKER_00", "SPEAKER_01"],
"segments": [
{ "speaker": "SPEAKER_00", "start": 0.0, "end": 4.2, "text": "…" },
{ "speaker": "SPEAKER_01", "start": 4.2, "end": 7.9, "text": "…" }
],
"text": "…"
}
start ir end – sekundės. ?format=txt grąžina paprastą tekstą ([MM:SS] SPEAKER_00: tekstas), ?format=srt – subtitrus SubRip formatu.
Vaizdo įrašų dubliavimas
POST /v1/dubbings
Sukuria dubliavimo užduotį: įrašas transkribuojamas, išverčiamas ir įgarsinamas pasirinkta kalba, muzika ir efektai išsaugomi. Įrašo nuoroda ir dydžio taisyklės – tokios pačios kaip transkripcijai.
{
"audioUrl": "https://example.com/recordings/talk.mp4",
"targetLanguage": "en",
"sourceLanguage": "auto",
"keepBackground": true,
"originalVoices": false,
"fileName": "talk.mp4",
"webhookUrl": "https://example.com/hooks/dubbing"
}
| Laukas | Privalomas | Aprašymas |
|---|---|---|
audioUrl | taip | Viešas https:// garso ar vaizdo failo adresas. |
targetLanguage | taip | Dubliavimo kalba (dviraidis kodas): lt, lv, pl, et, sr, hu, sk, bg, en, de, fr, es, it, pt, nl, sv, da, nb, fi, cs, ro, uk, ru, tr. |
sourceLanguage | ne | Originalo kalba (dviraidis kodas) arba auto (numatytasis). |
keepBackground | ne | Palikti muziką ir foną (numatytasis true); false – tik balsas. |
originalVoices | ne | Dubliuoti balsai primena originalo kalbėtojus (numatytasis false). |
fileName | ne | Pavadinimas projektų sąraše. Numatytasis – paskutinė adreso dalis. |
webhookUrl | ne | Viešas https:// adresas, į kurį bus išsiųstas rezultatas, kai užduotis baigiasi (toks pat JSON kaip GET). Vienas bandymas, 10 s laukimas. |
Atsakymas 202 Accepted:
{ "id": "p8Dk2Qa1Lm", "kind": "dubbing", "status": "queued", "fileName": "talk.mp4", "durationSeconds": 184, "estimatedCredits": 40, "targetLanguage": "en", "sourceLanguage": "auto", "pollUrl": "/v1/dubbings/p8Dk2Qa1Lm" }
GET /v1/dubbings/{id}
Kai baigta, downloadUrl – dubliuotas vaizdo įrašas (arba garso failas, jei įkeltas buvo garso įrašas); outputKind – video arba audio.
{ "id": "p8Dk2Qa1Lm", "kind": "dubbing", "status": "completed", "targetLanguage": "en", "durationSeconds": 184, "creditsCharged": 40, "downloadUrl": "https://…/dubbed.mp4", "outputKind": "video", "segments": 42, "flaggedSegments": 0 }
Teksto įgarsinimas
POST /v1/speech
Įgarsina tekstą natūraliu balsu ir grąžina MP3. Iki 2 000 000 simbolių; ilgi tekstai įgarsinami dalimis ir sujungiami. Teksto kalba nustatoma automatiškai.
{ "text": "…", "voice": "female", "fileName": "intro", "webhookUrl": "https://example.com/hooks/speech" }
| Laukas | Privalomas | Aprašymas |
|---|---|---|
text | taip | Įgarsinamas tekstas (1–2 000 000 simbolių). |
voice | ne | female (numatytasis) arba male. |
fileName | ne | Pavadinimas projektų sąraše. Numatytasis – paskutinė adreso dalis. |
webhookUrl | ne | Viešas https:// adresas, į kurį bus išsiųstas rezultatas, kai užduotis baigiasi (toks pat JSON kaip GET). Vienas bandymas, 10 s laukimas. |
Atsakymas 202 Accepted:
{ "id": "s4Hn7Rt9Wq", "kind": "speech", "status": "queued", "characters": 1840, "voice": "female", "estimatedCredits": 4, "pollUrl": "/v1/speech/s4Hn7Rt9Wq" }
GET /v1/speech/{id}
Kai baigta, downloadUrl – MP3 failas; durationSeconds – įrašo trukmė, characters – įgarsintų simbolių skaičius.
{ "id": "s4Hn7Rt9Wq", "kind": "speech", "status": "completed", "characters": 1840, "durationSeconds": 131.4, "creditsCharged": 4, "downloadUrl": "https://…/full.mp3" }
Klaidos
| Kodas | Reikšmė |
|---|---|
missing_api_key | Nėra rakto antraštės (401). |
invalid_api_key | Raktas nerastas arba neteisingas (401). |
api_key_revoked | Raktas panaikintas (403). |
invalid_audio_url | Adresas ne https:// arba nepasiekiamas (400). |
unsupported_media | Faile nerasta garso (400). |
max_duration_exceeded | Įrašas ilgesnis nei 3 val. (400). |
insufficient_credits | Nepakanka kreditų (402). Atsakyme: required, available, balance. |
not_found | Užduotis nerasta arba priklauso kitai paskyrai (404). |
invalid_target_language | Trūksta arba nepalaikoma dubliavimo kalba (400). |
invalid_source_language | Neteisinga originalo kalba (400). |
invalid_text | Trūksta teksto arba jis ilgesnis nei 2 000 000 simbolių (400). |
invalid_voice | Balsas turi būti female arba male (400). |
Pavyzdžiai
BASE=https://ausis.lt/api/v1
KEY=ak_...
curl -s $BASE/account -H "X-API-Key: $KEY"
curl -s -X POST $BASE/transcriptions -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"audioUrl":"https://example.com/call.mp3"}'
curl -s $BASE/transcriptions/JOB_ID -H "X-API-Key: $KEY"
curl -s "$BASE/transcriptions/JOB_ID?format=srt" -H "X-API-Key: $KEY" -o call.srt
Būseną tikrinkite kas 10–30 s, kol status taps completed arba failed.
import requests, time
BASE = "https://ausis.lt/api/v1"
H = {"X-API-Key": "ak_..."}
job = requests.post(f"{BASE}/transcriptions", headers=H,
json={"audioUrl": "https://example.com/call.mp3"}).json()
while True:
r = requests.get(f"{BASE}/transcriptions/{job['id']}", headers=H).json()
if r["status"] in ("completed", "failed"):
break
time.sleep(15)
print(r.get("text") or r.get("error"))
Pagalba
Klausimai – pagalba@ausis.lt.