API pro převod textu na řeč pro hlasový doprovod videa

Pošlete svůj načasovaný scénář spolu s videem nebo zvukovou nahrávkou a vygenerujte řeč sladěnou s časovou osou. Vyberte si AI hlasy z knihovny hlasů nebo použijte klonovaný hlas ve více než 135 jazycích a dialektech. Dabing, video i titulky si stáhnete z jednoho projektu.
Ze scénáře do dabingu
AI hlasy a klonování hlasu
REST + Python SDK
script in, voiceover out
OAuth 2.0
# 1. send your script as timed segments - one speaker per line
curl -X POST https://api.rask.ai/v2/transcriptions \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"segments": [
    {"speaker": "SPEAKER_00", "start": "00:00:00,500", "end": "00:00:04,800",
     "src": {"text": "Welcome to the new dashboard.", "lang": "en"},
     "dst": {"text": "Bienvenido al nuevo panel.", "lang": "es-mx"}}
  ]}'

# 2. voice the script over your video
curl -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"es-mx\", \"transcript_id\": \"$TRANSCRIPT_ID\"}"
GET /v2/projects/{project_id}
voiceover links
# When status is merging_done, read the voiceover links
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  | jq '{status, voiceover, translated_audio, translated_video}'
Používáno týmy po celém světě
Funkce

Vše, co API pro převod textu na řeč dokáže pro video

Přeměňte psaný scénář na dabing, který perfektně sedí k obrazu: správný hlas pro každého mluvčího, načasování podle vašich segmentů, hudba na pozadí, titulky a překlad v jediném projektu. K dispozici je i volitelná synchronizace rtů, která se účtuje zvlášť.

Váš scénář mluveným slovem

Vytvořte přepis z vlastních textových částí nebo souboru SRT a API vygeneruje řeč přesně podle tohoto scénáře v cílovém jazyce.

Knihovna hlasů

Každý cílový jazyk nabízí předvolby AI hlasů s daným pohlavím. Zobrazte si je pro svůj projekt a přiřaďte je jednotlivým mluvčím pomocí ID hlasu.

Vlastní hlasy a klonování hlasu

Použijte uložený vlastní klonovaný hlas jako jednotný hlas vaší značky, nebo zachovejte původní hlas mluvčího ve videu díky okamžitému klonování hlasu v podporovaných jazycích.

Načasováno k obrazu

Každý segment má svůj začátek a konec, takže každá věta zazní přesně tam, kam ve videu patří.

Hlasy postav a dialogy

Přiřaďte mluvčího ke každému řádku a hlas ke každému mluvčímu, aby dialogy a postavy zněly srozumitelně a konzistentně.

Více než 135 jazyků a regionálních variant

Napište scénář v jednom jazyce a namluvte ho v jiném: Rask AI se postará o překlad a AI hlasy jsou dostupné pro každý cílový trh.

Zvuková stopa pouze s hlasem

U vybraných tarifů si můžete stáhnout mluvené slovo jako stopu ve formátu WAV bez zvuku v pozadí – ideální pro vlastní úpravy – nebo si stáhněte celý mix a hotové video.

Upravte řádek, vygenerujte ho znovu

Změňte text jednoho segmentu nebo hlas jednoho mluvčího a nechte ho vygenerovat znovu. Nic nemusíte nahrávat od začátku a platíte pouze za upravené části.

Růst bez omezení

Žádné limity rychlosti, žádné kvóty na souběžné úlohy ani omezování klíčů. Namluvte dlouhý obsah a celé videokatalogy paralelně.
Podívejte se na to v akci

Poslechněte si jedno video namluvené v pěti jazycích

Stejný klip namluvený v angličtině, francouzštině, němčině, portugalštině a španělštině, přesně načasovaný na obraz a se zachovaným původním pozadím.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Pracovní postup

Tři kroky od scénáře k mluvenému slovu

Vytvořením projektu se spustí generování řeči pro váš scénář. Po změně textu nebo hlasů použijte koncový bod /generate.
1

Nahrajte video nebo zvuk

Nahrajte video nebo zvukovou nahrávku, ke které má mluvené slovo patřit, pomocí souboru nebo podporované adresy URL. Časová osa poskytne načasování pro váš scénář.

POST /api/library/v1/media/link
2

Odešlete svůj scénář

Vytvořte přepis z textových segmentů s časovými značkami a mluvčími nebo ze souboru SRT a poté vytvořte projekt pomocí jeho transcript_id a cílového jazyka.

POST /v2/transcriptions
3

Vyberte hlasy a stáhněte si výsledek

Zobrazte seznam hlasů, přiřaďte každému mluvčímu předvolbu nebo klon, v případě potřeby proveďte regeneraci a poté stáhněte mluvené slovo, video a soubory s titulky.

GET /v2/projects/{id}/voices
Doba zpracování závisí na projektu. Řeč se generuje pro celý projekt a dodává se jako soubory, takže toto rozhraní API se hodí spíše pro publikovaná videa než pro živou konverzaci.
Přizpůsobeno vám

Potřebujete hlas, který v knihovně není? Obraťte se na náš tým

Hlas pro vaši značku, jazyk mimo katalog, vyšší výkon nebo vlastní způsob doručení: pokud integrace mluveného slova vyžaduje něco nad rámec veřejného katalogu, náš tým posoudí vaše požadavky a dostupné možnosti.

Jazyky a hlasy

Potřebujete jazyk nebo hlas, který není uveden ve veřejném katalogu? Obraťte se na náš tým a sdělte nám své požadavky a dostupné možnosti.

Doručení a integrace

Webhooky, odesílání do vlastní fronty, uložení přímo na S3 nebo vlastní koncové body. Řekněte nám, jak funguje váš systém, a my se přizpůsobíme.

Objem a rychlost

Velikost dávek, počet jazyků nebo priorita zpracování jsou součástí smlouvy, nikoliv pevně dané limity produktu.

Zabezpečení a hosting

Zabezpečení dat, přihlašování přes SSO a SAML, pravidla uchovávání a podpora bezpečnostních auditů jsou součástí nastavení pro firemní zákazníky.
Případy použití

Kdo využívá rozhraní API pro převod textu na řeč ve videích

Platformy pracující s videem

Platformy pro správu vzdělávání a vzdělávání zákazníků, tvůrčí a video platformy, nástroje pro webináře a virtuální akce, hostování videí a SaaS pro pracovní postupy, platformy pro digitální osvojení, živé nakupování. Umožněte uživatelům psát nebo nahrávat scénáře a získat mluvené slovo pro svá videa ve více jazycích, aniž by opustili váš produkt.

Lokalizační a produkční agentury

Schvalujte scénáře pro klientská videa s hlasy vytvořenými umělou inteligencí nebo s vlastním hlasem klienta a doručte čistou zvukovou stopu ve formátu WAV pro vlastní mixáž. Po kontrole upravte řádek a vygenerujte znovu pouze tento segment.

Interní a nepřetržitá produkce videí

Mezinárodní maloobchod a e-commerce, globální franšízy, mediální vydavatelství, firemní univerzity. Vytvářejte mluvené slovo pro školicí, produktová a marketingová videa zapsaná ve scénáři a aktualizujte text, když se produkt změní.
Příběhy zákazníků

Skutečné týmy, měřitelné výsledky

Jak firmy lokalizují videa pomocí Rask v řeči čísel.
šipka
šipka
Kód

Příklady kódu rozhraní API pro převod textu na řeč

Jeden kompletní příklad v každém jazyce: odešlete scénář jako načasované segmenty, vytvořte projekt, vyberte hlas z knihovny, proveďte regeneraci a stáhněte mluvené slovo.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

async def wait(client, job):
    while job.status is not enums.ProjectStatus.MERGING_DONE:
        await asyncio.sleep(10)
        job = await client.get_project(project_id=job.id)
    return job

async def main():
    client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

    script = await client.create_transcription(data=schemas.TranscriptionCreate(segments=[
        schemas.SegmentCreate(speaker="SPEAKER_00", start="00:00:00,500", end="00:00:04,800",
            src=schemas.SegmentTextCreatePatch(text="Welcome to the new dashboard.", lang="en"),
            dst=schemas.SegmentTextCreatePatch(text="Bienvenido al nuevo panel.", lang="es-mx")),
    ]))

    job = await wait(client, await client.create_project(data=schemas.ProjectCreate(
        video_id=VIDEO_ID, dst_lang="es-mx", transcript_id=script.id)))

    # pick a female AI voice preset from the library for SPEAKER_00
    voices = await client.get_project_voices(project_id=job.id)
    preset = next(v for v in voices if v.gender == "female")
    await client.patch_project(project_id=job.id, data=schemas.ProjectPatch(voice={**job.voice, "SPEAKER_00": preset.id}))

    job = await wait(client, await client.generate_project(project_id=job.id))
    print(job.voiceover, job.translated_video)

asyncio.run(main())
github.com/braskai/rask-sdk
async, typed models
import time, requests

AUTH = "https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token"
API  = "https://api.rask.ai"
token = requests.post(AUTH, auth=(CLIENT_ID, CLIENT_SECRET),
                      data={"grant_type": "client_credentials"}).json()["access_token"]
h = {"Authorization": f"Bearer {token}"}

def wait(pid):
    while (p := requests.get(f"{API}/v2/projects/{pid}", headers=h).json())["status"] != "merging_done":
        time.sleep(10)
    return p

script = requests.post(f"{API}/v2/transcriptions", headers=h, json={"segments": [
        {"speaker": "SPEAKER_00", "start": "00:00:00,500", "end": "00:00:04,800",
         "src": {"text": "Welcome to the new dashboard.", "lang": "en"},
         "dst": {"text": "Bienvenido al nuevo panel.", "lang": "es-mx"}},
    ]}).json()

pid = requests.post(f"{API}/v2/projects", headers=h, json={
    "video_id": VIDEO_ID, "dst_lang": "es-mx", "transcript_id": script["id"]}).json()["id"]
project = wait(pid)

voices = requests.get(f"{API}/v2/projects/{pid}/voices", headers=h).json()
preset = next(v for v in voices if v["gender"] == "female")
requests.patch(f"{API}/v2/projects/{pid}", headers=h,
               json={"voice": {**project["voice"], "SPEAKER_00": preset["id"]}})
requests.post(f"{API}/v2/projects/{pid}/generate", headers=h)
print(wait(pid)["voiceover"])
requests + polling
no SDK required
// no dependencies, Node 18+ global fetch
const API = 'https://api.rask.ai';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const auth = await fetch('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token', {
  method: 'POST',
  headers: { Authorization: 'Basic ' + btoa(`${CLIENT_ID}:${CLIENT_SECRET}`) },
  body: new URLSearchParams({ grant_type: 'client_credentials' }),
}).then((r) => r.json());
const h = { Authorization: `Bearer ${auth.access_token}`, 'Content-Type': 'application/json' };
const call = (method, path, body) => fetch(API + path, { method, headers: h, body: body && JSON.stringify(body) }).then((r) => r.json());
const wait = async (id) => { let p; while ((p = await call('GET', `/v2/projects/${id}`)).status !== 'merging_done') await sleep(10000); return p; };

const script = await call('POST', '/v2/transcriptions', { segments: [
  { speaker: 'SPEAKER_00', start: '00:00:00,500', end: '00:00:04,800',
    src: { text: 'Welcome to the new dashboard.', lang: 'en' },
    dst: { text: 'Bienvenido al nuevo panel.', lang: 'es-mx' } },
] });

const { id } = await call('POST', '/v2/projects', { video_id: VIDEO_ID, dst_lang: 'es-mx', transcript_id: script.id });
const project = await wait(id);

const voices = await call('GET', `/v2/projects/${id}/voices`);
const preset = voices.find((v) => v.gender === 'female');
await call('PATCH', `/v2/projects/${id}`, { voice: { ...project.voice, SPEAKER_00: preset.id } });
await call('POST', `/v2/projects/${id}/generate`);
console.log((await wait(id)).voiceover);
fetch, Node 18+
plain HTTP
# 1. token (valid 1 hour - cache and reuse it)
TOKEN=$(curl -s -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" -d "grant_type=client_credentials" | jq -r .access_token)

# 2. your script as an SRT file in the target language
TRANSCRIPT_ID=$(curl -s -X POST "https://api.rask.ai/v2/transcriptions/srt?dst_lang=es-mx" \
  -H "Authorization: Bearer $TOKEN" -F "dst=@script_es-mx.srt" | jq -r .id)

# 3. voice it over the video
ID=$(curl -s -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"es-mx\", \"transcript_id\": \"$TRANSCRIPT_ID\"}" | jq -r .id)

# 4. when status is merging_done, read the voiceover links
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  | jq '{status, voiceover, translated_video}'
POST /v2/transcriptions/srt
script from an SRT file
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);
$json = fn($r) => json_decode($r->getBody(), true);
$auth = $json((new Client)->post('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret], 'form_params' => ['grant_type' => 'client_credentials']]));
$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$script = $json($http->post('/v2/transcriptions', ['headers' => $h, 'json' => ['segments' => [[
    'speaker' => 'SPEAKER_00', 'start' => '00:00:00,500', 'end' => '00:00:04,800',
    'src' => ['text' => 'Welcome to the new dashboard.', 'lang' => 'en'],
    'dst' => ['text' => 'Bienvenido al nuevo panel.', 'lang' => 'es-mx'],
]]]]));

$p = $json($http->post('/v2/projects', ['headers' => $h, 'json' => [
    'video_id' => $videoId, 'dst_lang' => 'es-mx', 'transcript_id' => $script['id']]]));

while ($p['status'] !== 'merging_done') {
    sleep(10);
    $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
}
echo $p['voiceover'];
Guzzle 7
plain HTTP
Oficiálním SDK je Python. Záložky pro Node, PHP a cURL představují běžné příklady HTTP volání pro stejná koncová rozhraní.
Průběh

Jak projekt mluveného slova hlásí svůj postup

Generování řeči probíhá jako projekt s dokumentovanými stavy, takže můžete ukázat skutečný pokrok i u obsahu delšího formátu. Reagovat musíte pouze na tři skupiny.

Hotovo, tady skončete

merging_done
Mluvené slovo je hotové. Načtěte projekt ještě jednou a získejte odkazy ke stažení, které jsou pro váš projekt k dispozici.

Zpracovává se, pokračujte ve zjišťování stavu

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Plus odpovídající _done Stavy. Tyto položky přesně odpovídají uživatelskému rozhraní pro sledování průběhu.

Chyba, zastavit a nahlásit

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words a forbidden_link jsou dostatečně konkrétní na to, abyste je ukázali přímo svým vlastním uživatelům.
Voice options in a project, es-mx
GET /v2/projects/{project_id}/voices
{"label": "Renata",      "gender": "female", "sample_src": "https://..."}   AI voice preset
{"label": "Gerardo",     "gender": "male",   "sample_src": "https://..."}   AI voice preset
{"label": "Maria Lopez", "gender": "auto",   "sample_src": "https://..."}   custom voice clone
{"label": "Voice Clone", "gender": "auto",   "sample_src": null}            instant voice clone

Nebo cyklické dotazování úplně vynechte

Stačí nám zadat koncový bod webhooku a každá změna stavu dorazí jako požadavek POST, takže vaše fronta reaguje na každou změnu ihned, jak k ní dojde. Doručování webhooků je součástí procesu zapojení podnikových zákazníků.
Přečíst dokumentaci
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Výstup

Zvuk mluveného slova, video a titulky

Stáhněte si video s novým mluveným slovem a titulky ve formátech SRT a VTT. U vybraných předplatných si můžete mluvené slovo stáhnout také samostatně jako WAV nebo smíchané s původním zvukem na pozadí.
Pole
Formát
Co to je
translated_video
MP4
Video s vygenerovaným mluveným slovem, připravené k publikování
voiceover
WAV
Pouze vygenerovaná řeč, bez pozadí, pro vaše vlastní úpravy
translated_audio
WAV
Přeložený mluvený komentář smíchaný s původním zvukovým pozadím
translation_srt_path
.srt
Titulky v cílovém jazyce
translation_vtt_path
.vtt
Stejné titulky ve formátu WebVTT pro webové přehrávače
original_video
MP4
Váš původní soubor pro kontrolu
Ovládání

Změňte větu nebo hlas a upravte pouze tuto část

Váš text je rozdělen na úseky. Upravte text jedné věty nebo změňte hlas jednoho mluvčího, spusťte převod znovu a platíte pouze za upravené části, s minimální délkou jedné minuty na požadavek.

Úpravy po jednotlivých segmentech

Úpravy po jednotlivých segmentech
Každý projekt nabízí text rozdělený na úseky s časovými značkami, mluvčími a textem, takže případná oprava vyžaduje jen jednu úpravu.
Získání přepsaného textu a jeho segmentů
Upravte původní text a my jej znovu přeložíme
Upravte přeložený text přímo a zachovejte si vlastní slovosled
Úprava časových značek, přidání nebo odstranění segmentů
Změna hlasu přiřazeného k jednotlivým mluvčím

Slovníky pro správnou terminologii

Slovníky pro správnou terminologii
Když Rask přeloží vaše video do jiných jazyků, slovník zajistí, že názvy značek a odborné termíny zůstanou ve všech verzích stejné – případně záměrně v původním jazyce.

Slovník pokrývá jeden jazykový pár a platí pro všechny regionální varianty daného cílového jazyka, takže jeden španělský slovník poslouží es-mx a es-es stejně tak. Projekt uchovává záznamy glossary_version, takže pozdější úpravy nikdy nepozorovaně nezmění hotovou práci.
Vstup

Podporované formáty souborů

Nahrájte video, ke kterému chcete vytvořit dabing, v libovolném podporovaném formátu nebo vložte odkaz. Texty lze nahrát jako úseky přes rozhraní API nebo v souborech SRT.

Video

7 formátů
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

Zvuk

4 formáty
.mp3
.wav
.flac
.m4a

Metadata dříve, než cokoliv utratíte

Koncový bod pro média vrací délku, velikost souboru, video kodek, snímkovou frekvenci, rozlišení, audio kodek, vzorkovací frekvenci a uspořádání kanálů. Soubor si můžete předem ověřit a spočítat si cenu, protože dabing se účtuje po minutách videa, nikoli za jednotlivé znaky.
Bezpečnost a dodržování předpisů

Zabezpečení na firemní úrovni pro texty a hlasy

Společnost Brask Inc. splňuje normu SOC 2 Type II, řídí se nařízením GDPR a aktuální stav zabezpečení zveřejňuje ve svém Centru důvěry. Vlastní klony hlasů se vytvářejí se souhlasem mluvčího.

Certifikace

SOC 2 Type II
GDPR
Člen CAI a C2PA

Šifrování

TLS 1.2 při přenosu
AES-256 v klidu
Klíče spravované přes SSE-S3
Obměna klíčů minimálně každých 12 měsíců

Váš obsah

Uzavřené prostředí AI
Nikdy se nepoužívá k trénování obecných modelů
Úplný export, žádné závazky vůči jedné platformě

Přístup

SSO a SAML
Řízení přístupu na základě rolí
Pověření klienta OAuth 2.0

Podnik

Možnosti umístění dat
Vlastní smlouvy o úrovni služeb (SLA)
Vyhrazený správce účtu

Práva na hlas

Syntetické hlasy s právy k užívání
Klonování hlasu na základě souhlasu
Bezpečnostní opatření v oblasti umělé inteligence, zapojení člověka do procesu
Srovnání

Porovnání Rask API a vlastního řešení pro dabing

Rozhraní API pro převod textu na řeč převádí text na zvuková data pro živé vysílání. Dabing pro již hotová videa však potřebuje také správné načasování, vlastní hlas pro každého mluvčího, smíchání zvuku, titulky a často i překlad. Zde vidíte stejný dabing vytvořený dvěma různými způsoby.
Co budete potřebovat
Rask API
Sestaveno z dílů
Text přesně načasovaný k videu
Úseky s časem začátku a konce
Vlastní logika pro zarovnání
Vlastní hlas pro každého mluvčího nebo postavu
Hlasová mapa pro každý projekt
ID hlasů spravovaná pro každý požadavek
Jednotný hlas vaší značky
Vlastní klony hlasu
Samostatný dodavatel pro klonování hlasu
Stejný text v jiných jazycích
Překlad v rámci stejného projektu
Překladové API a nové načasování
Hudba na pozadí a zvukové efekty
Smícháno pod dabingem
Vlastní úprava zvuku
Titulky ve formátech .srt a .vtt
Součástí balení
Vytvořeno na základě vašich vlastních časových údajů
Zvuková stopa obsahující pouze hlas
Formát WAV u vybraných tarifů
Zvukové části, které si sami spojíte
Úprava jednoho řádku
Vygenerovat změněné části znovu
Znovu vytvořit a smíchat soubor
Rychlostní limity
Žádné
Cokoliv, co vyžaduje váš poskytovatel
Hlasoví asistenti v reálném čase se streamováním
Použijte API pro převod textu na řeč s podporou streamování
Vytvořeno přímo pro to
Často kladené otázky

API pro převod textu na řeč: nejčastější dotazy

Nenašli jste, co hledáte? Obraťte se na obchodní oddělení.

Má Rask API pro převod textu na řeč?

Můžu to použít pro hlasové asistenty nebo kontaktní centra?

Podporuje API streamování zvukového výstupu?

Jak mám odeslat svůj scénář?

Jaké hlasy jsou k dispozici?

Můžu použít vlastní hlas?

Jaké jazyky jsou podporovány?

Podporujete značky SSML nebo vlastní výslovnost?

Můžu ovládat emoce a expresivní projev?

Potřebuji k vygenerování řeči video?

Platí se za jednotlivé znaky?

Je k dispozici bezplatná verze nebo kredity zdarma?

Jak získáte přístup k API a klíč API?

Začněte dabovat už dnes odpoledne

Zadejte svůj první požadavek ještě dnes a ozvěte se nám, jakmile budete potřebovat velký objem nebo vzácný jazyk.