API di sintesi vocale per la voce fuori campo nei video

Invia il tuo testo sincronizzato insieme a una registrazione video o audio e genera una voce allineata alla timeline. Scegli tra le voci AI della libreria o un clone vocale in oltre 135 lingue e varianti regionali, e scarica il doppiaggio, il video e i sottotitoli dallo stesso progetto.
Da testo a doppiaggio
Voci AI e cloni vocali
REST + SDK Python
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}'
Utilizzato da team in tutto il mondo
Funzionalità

Tutto ciò che l'API da testo a voce fa per i video

Trasforma un testo scritto in un doppiaggio che si adatta alle immagini: la voce giusta per ogni oratore, la tempistica dei tuoi segmenti, l'audio di sottofondo, i sottotitoli e la traduzione in un unico progetto. Aggiungi la sincronizzazione labial opzionale, fatturata separatamente.

Il tuo testo, parlato

Crea una trascrizione dai tuoi segmenti di testo o da un file SRT, e l'API genererà la voce esattamente per quel testo nella lingua di arrivo.

Libreria di voci

Ogni lingua di arrivo dispone di voci AI predefinite con un genere specifico. Elencale per un progetto tramite l'endpoint delle voci e assegnane una a ciascun oratore tramite l'ID della voce.

Voci personalizzate e cloni vocali

Usa un clone vocale personalizzato salvato come voce coerente per il tuo marchio, oppure mantieni la voce originale di un oratore sullo schermo con il clone vocale istantaneo, nelle lingue supportate per la clonazione della voce.

Sincronizzato con le immagini

Ogni segmento ha un orario di inizio e di fine, in modo che ogni battuta si collochi esattamente dove deve nel video.

Voci dei personaggi e dialogo

Assegna un oratore a ogni riga e una voce a ogni oratore, affinché un dialogo o un cast di voci di personaggi rimanga chiaro e coerente.

Oltre 135 lingue e varianti regionali

Scrivi il testo in una lingua e doppialo in un'altra: Rask lo traduce e le voci AI sono disponibili per ogni lingua di arrivo.

Traccia audio solo voce

Nei piani idonei, scarica l'audio parlato come traccia WAV senza sottofondo, pronta per le tue modifiche, oppure il mix completo e il video finito.

Modifica una riga, rigenera una riga

Cambia il testo di un segmento o la voce di un oratore e rigenera. Nessuno deve registrare di nuovo e vengono fatturati solo i segmenti modificati.

Cresci senza limiti

Nessun limite di velocità, nessuna quota di concorrenza, nessuna limitazione per chiave. Doppia contenuti di lunga durata e cataloghi video completi in parallelo.
Guardalo in azione

Ascolta la stessa immagine doppiata in cinque lingue

Lo stesso video doppiato in inglese, francese, tedesco, portoghese e spagnolo, perfettamente sincronizzato con le immagini e con l'audio di sottofondo originale intatto.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Flusso di lavoro

Tre passaggi dal testo al voiceover

La creazione del progetto avvia la generazione della voce per il tuo testo. Usa l'endpoint /generate dopo aver modificato il testo o le voci.
1

Carica video o audio

Carica il video o la registrazione audio a cui appartiene il tuo voiceover, usando un file o un URL multimediale supportato. La timeline fornirà i tempi per il tuo testo.

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

Invia il tuo testo

Crea una trascrizione da segmenti di testo con timestamp e speaker, oppure da un file SRT, e poi crea il progetto con il relativo transcript_id e una lingua di arrivo.

POST /v2/transcriptions
3

Scegli le voci e scarica

Elenca le voci, assegna una voce preimpostata o clonata a ciascuno speaker, rigenera se necessario e scarica il voiceover, il video e i file dei sottotitoli.

GET /v2/projects/{id}/voices
Il tempo di elaborazione varia a seconda del progetto. La voce viene generata per l'intero progetto e fornita come file, quindi questa API è adatta per video già pronti piuttosto che per conversazioni in tempo reale.
Creato intorno a te

Hai bisogno di una voce che non è presente nella libreria? Contatta il nostro team

Una voce brandizzata, una lingua non inclusa nel catalogo, maggiore velocità o un metodo di consegna personalizzato: quando un'integrazione di voiceover richiede qualcosa al di fuori del catalogo pubblico, il nostro team esamina le tue esigenze e le opzioni disponibili.

Lingue e voci

Hai bisogno di una lingua o di una voce non presenti nel catalogo pubblico? Parla con il nostro team per esporre le tue esigenze e scoprire le opzioni disponibili.

Consegna e integrazione

Webhook, invio nella tua coda, consegna diretta al tuo S3, endpoint personalizzati. Diteci come il vostro sistema si aspetta di ricevere i dati.

Volume e capacità

Le dimensioni dei lotti, le lingue di arrivo per azione e la priorità di elaborazione sono termini contrattuali, non limiti fissi del prodotto.

Sicurezza e hosting

La residenza dei dati, l'SSO e SAML, le regole di conservazione e il supporto per la revisione della sicurezza vengono gestiti durante l'attivazione per le aziende.
Casi d'uso

Chi utilizza un'API di sintesi vocale per i video

Piattaforme con video integrati

Piattaforme di e-learning e formazione clienti, piattaforme per creatori e video, strumenti per webinar ed eventi virtuali, hosting video e SaaS di flusso di lavoro, piattaforme di adozione digitale, live shopping. Consenti agli utenti di digitare o caricare un testo e ottenere il voiceover per i loro video in più lingue, senza uscire dal tuo prodotto.

Agenzie di localizzazione e produzione

Approva i testi per i video dei clienti con voci AI o con la voce personalizzata di un cliente, e consegna l'audio WAV pulito per il tuo mix. Aggiorna una riga dopo la revisione e rigenera solo quel segmento.

Produzione video interna e continua

Retail internazionale ed e-commerce, franchising globali, editori multimediali, università aziendali. Produci voiceover per video di formazione, di prodotto e di marketing a partire da un testo scritto, e aggiorna il testo quando il prodotto cambia.
Storie di clienti

Squadre vere, risultati tangibili

Come le aziende localizzano i video con Rask, attraverso i loro numeri.
freccia
freccia
Codice

Esempi di codice per l'API di sintesi vocale

Un esempio completo per ogni lingua: invia un testo come segmenti con indicazione temporale, crea il progetto, scegli una voce dalla libreria, rigenera e scarica il voiceover.
# 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
Python è l'SDK ufficiale. Le schede Node, PHP e cURL mostrano semplici esempi HTTP sugli stessi endpoint.
Avanzamento

Come un progetto di voiceover riporta i progressi

La generazione della voce funziona come un progetto con stati documentati, così puoi mostrare i progressi reali anche per contenuti lunghi. Devi solo gestire tre gruppi.

Operazione riuscita, fermati qui

merging_done
Il voiceover è completo. Recupera ancora una volta il progetto per ottenere i link di download disponibili.

In corso, continua a verificare

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
In più la corrispondenza _done stati. Questi si adattano perfettamente a un'interfaccia a fasi.

Errore, interruzione e segnalazione

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words e forbidden_link sono abbastanza specifici da poter essere mostrati direttamente ai vostri utenti.
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

Oppure salta del tutto il controllo

Indica un endpoint webhook e ogni transizione di stato arriverà come richiesta POST, così la tua coda potrà reagire a ogni cambiamento nel momento stesso in cui si verifica. La consegna tramite webhook fa parte dell'onboarding per le aziende.
Leggi la documentazione
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Output

Audio del voiceover, video e sottotitoli

Scarica il video con il nuovo voiceover e i sottotitoli in formato SRT e VTT. Sui piani idonei, puoi anche scaricare l'audio parlato da solo in formato WAV, oppure mescolato con l'audio di sottofondo originale.
Campo
Formato
Cosa contiene
translated_video
MP4
Il video con il voiceover generato, pronto per essere pubblicato
voiceover
WAV
Solo la voce generata, senza sottofondo, per le tue modifiche
translated_audio
WAV
Voce tradotta unita all'audio di sottofondo originale
translation_srt_path
.srt
Sottotitoli nella lingua di arrivo
translation_vtt_path
.vtt
Gli stessi sottotitoli in formato WebVTT, per lettori web
original_video
MP4
Il file di origine salvato, come riferimento
Controllo

Modifica una riga o una voce, rigenera solo quella parte

Il tuo testo è suddiviso in segmenti. Modifica il testo di una riga o cambia la voce di un interlocutore, rigenera e verranno addebitati solo i segmenti modificati, con un minimo di un minuto per elaborazione.

Modifica per singoli segmenti

Modifica per singoli segmenti
Ogni progetto presenta il suo testo sotto forma di segmenti con timestamp, interlocutori e testo, in modo che una correzione richieda una sola modifica.
Scarica la trascrizione e i suoi segmenti
Modifica il testo originale e noi penseremo a ritradurlo
Modifica direttamente il testo tradotto per usare le parole che preferisci
Modifica i tempi, aggiungi segmenti o cancellane altri
Cambia la voce associata a qualsiasi speaker

Glossari per la terminologia

Glossari per la terminologia
Quando Rask traduce il tuo testo in altre lingue, un glossario mantiene i nomi dei brand e i termini tecnici invariati in ogni versione, o volutamente nella lingua originale.

Un glossario copre una coppia di lingue e si applica a tutte le varianti regionali di quella lingua, così un unico glossario in spagnolo è utile per es-mx e es-es allo stesso modo. Il progetto registra glossary_version, così le modifiche successive non alterano mai inaspettatamente il lavoro completato.
Input

Formati di file supportati

Carica il video del tuo voiceover in qualsiasi formato supportato o invia un URL. I testi arrivano come segmenti di testo tramite API o come file SRT.

Video

7 formati
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

Audio

4 formati
.mp3
.wav
.flac
.m4a

Tutte le informazioni prima di iniziare

L'endpoint multimediale restituisce durata, dimensioni del file, codec video, frequenza dei fotogrammi, risoluzione, codec audio, frequenza di campionamento e disposizione dei canali. Valuta un file e stima il costo in anticipo, poiché il voiceover viene fatturato al minuto di video e non per carattere.
Sicurezza e conformità

Sicurezza di livello aziendale per testi e voci

Brask Inc possiede la certificazione SOC 2 Type II, opera nel rispetto del GDPR e pubblica lo stato dei controlli in tempo reale nel suo Trust Center. I cloni vocali personalizzati vengono creati con il consenso del parlante.

Certificazioni

SOC 2 Tipo II
GDPR
Membro CAI e C2PA

Crittografia

TLS 1.2 in transito
AES-256 a riposo
Chiavi gestite SSE-S3
Rotazione delle chiavi almeno ogni 12 mesi

I tuoi contenuti

Ambiente di intelligenza artificiale chiuso
Mai utilizzato per addestrare modelli generali
Esportazione completa, senza vincoli

Accesso

SSO e SAML
Controllo degli accessi basato sui ruoli
Credenziali client OAuth 2.0

Enterprise

Opzioni di localizzazione dei dati
SLA personalizzati
Account manager dedicato

Diritti sulle voci

Voci sintetiche con diritti di utilizzo
Clonazione vocale basata sul consenso
Controlli di sicurezza dell'IA, supervisione umana
Confronto

Rask API a confronto con un sistema di voiceover creato da te

Un'API di sintesi vocale in streaming converte il testo in byte audio per l'uso in tempo reale. Il voiceover per i video pubblicati richiede anche la sincronizzazione temporale, una voce per ciascun interlocutore, il mixaggio, i sottotitoli e spesso la traduzione. Ecco lo stesso voiceover realizzato in due modi diversi.
Ciò di cui hai bisogno
Rask API
Assemblato da componenti
Un testo sincronizzato con il video
Segmenti con orari di inizio e fine
La tua logica di allineamento
Una voce per ciascun interlocutore o personaggio
Mappa vocale per progetto
ID vocali gestiti per richiesta
Una voce del brand coerente
Cloni vocali personalizzati
Un fornitore di clonazione separato
Lo stesso testo in altre lingue
Traduzione nello stesso progetto
Un'API di traduzione più una nuova sincronizzazione temporale
Musica di sottofondo ed effetti
Mixati sotto il voiceover
Una fase di mixaggio gestita da te
Sottotitoli in formato .srt e .vtt
Incluso
Generato dai tuoi dati di tempistica
Una traccia audio con sola voce
Formato WAV nei piani idonei
Frammenti audio che unisci tu stesso
Modifica di una riga
Rigenera i segmenti modificati
Risyntetizza e rimischia il file
Limiti di velocità
Nessuno
Qualsiasi cosa il vostro provider richieda
Agenti vocali in tempo reale con streaming
Usa un'API di sintesi vocale in streaming
Progettato appositamente per questo
Domande frequenti

API di sintesi vocale: domande frequenti

Non riesci a trovare quello che cerchi? Contatta l'ufficio vendite.

Rask dispone di un'API di sintesi vocale?

Posso usarlo per agenti vocali o contact center?

L'API supporta l'output audio in streaming?

Come invio il mio script?

Quali voci sono disponibili?

Posso usare una voce personalizzata?

Quali lingue sono supportate?

Supportate i tag SSML o la pronuncia personalizzata?

Posso controllare le emozioni e l'espressività?

Ho bisogno di un video per generare la voce?

I prezzi sono calcolati in base ai caratteri?

È disponibile un piano gratuito o dei crediti gratuiti?

Come posso ottenere l'accesso alle API e una chiave API?

Inizia a doppiare in un solo pomeriggio

Fai la tua prima prova oggi e contattaci se hai bisogno di tariffe per grandi volumi o di una lingua che nessun altro offre.