API di clonazione della voce per video tradotti

Conserva la voce di ogni oratore quando i tuoi video parlano altre lingue. L'API clona automaticamente ogni voce dal video di origine o utilizza un clone vocale personalizzato creato in precedenza, restituendo il video doppiato con le voci clonate, le tracce vocali e i sottotitoli.
Clonazione vocale istantanea
Cloni vocali personalizzati
REST + SDK Python
clone, assign, re-dub
OAuth 2.0
# 1. create the dub - each speaker gets an Instant Voice Clone by default
curl -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"video_id": "b8f7835d-e8c9-4ff4-8e34-5c336d818319", "dst_lang": "es-mx"}'

# 2. list the voices available in this project
curl https://api.rask.ai/v2/projects/$ID/voices \
  -H "Authorization: Bearer $TOKEN"
#  "label": "Voice Clone", "gender": "auto"         instant clone
#  "label": "Maria Lopez", "sample_src": "https://..."  your custom clone

# 3. assign your custom clone - include every speaker in the map
curl -X PATCH https://api.rask.ai/v2/projects/$ID \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"voice": {"SPEAKER_00": "<custom_voice_id>", "SPEAKER_01": "<voice_id>"}}'
GET /v2/projects/{project_id}
polling, 10s
# 4. re-dub with the new voices, then poll until merging_done
curl -X POST https://api.rask.ai/v2/projects/$ID/generate \
  -H "Authorization: Bearer $TOKEN"
while :; do
  curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" | jq .status
  sleep 10
done
Utilizzato da team in tutto il mondo
Funzionalità

Tutto ciò che fa l'API di clonazione della voce

Clona ogni oratore dal video di origine o utilizza un clone vocale personalizzato creato in precedenza, in ogni versione tradotta e in più lingue. Scegli le voci predefinite IA per le lingue senza clonazione vocale. Aggiungi la sincronizzazione labial facoltativa, fatturata separatamente.

Clone Vocale Istantaneo

Ogni oratore riceve un clone della propria voce dal video di origine, senza bisogno di registrare campioni audio. Viene assegnato per impostazione predefinita nelle lingue di arrivo supportate.

Cloni vocali personalizzati

Crea una voce riutilizzabile nell'app Rask da campioni audio puliti o salva la voce di un oratore da un progetto esistente nella tua libreria di cloni vocali. Con il consenso dell'oratore, riutilizza quella voce nei progetti API nelle lingue di arrivo supportate.

Una voce per oratore

Gli oratori vengono separati automaticamente e ognuno mantiene la propria voce clonata, così interviste, dibattiti e podcast rimangono facili da seguire.

Sincronizzazione labiale

Adatta il movimento della bocca alla voce clonata come attività opzionale su qualsiasi progetto completato, fatturata separatamente. Il rilevamento del volto viene eseguito per primo, così puoi applicarlo solo dove funzionerà.

Audio di sottofondo preservato

Musica, rumori ambientali ed effetti sono separati dal parlato e riemessi sotto la voce clonata, in modo che il risultato mantenga il suono della produzione originale.

Voci predefinite IA

Per le lingue senza clonazione vocale o quando una voce predefinita si adatta meglio, scegli una voce predefinita IA con un genere impostato per qualsiasi oratore.

Identità vocale tra le lingue

Il clone parla spagnolo, francese o giapponese con la voce del parlante originale, in modo che il presentatore mantenga la sua voce per il pubblico globale.

Cambia una voce, ridoppia un oratore

Assegna una voce diversa a un oratore e rigenera. Vengono fatturati solo i segmenti modificati, quindi nessuno deve registrare nuovamente nulla.

Cresci senza limiti

Nessun limite di frequenza, nessuna quota di concorrenza, nessuna restrizione per chiave. Doppia l'intero catalogo con voci clonate in parallelo, a qualsiasi volume.
Guardalo in azione

Ascolta un oratore in cinque lingue

Le voci originali in inglese, seguite dalle voci clonate in francese, tedesco, portoghese e spagnolo. Ogni oratore mantiene la propria voce e l'audio di sottofondo rimane intatto.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Flusso di lavoro

Tre passaggi dal video di origine alle voci clonate

La creazione del progetto avvia il doppiaggio con la clonazione istantanea della voce. Usa l'endpoint /generate dopo aver cambiato le voci o modificato il testo.
1

Carica il tuo video

Invia un file come dati di un modulo multipart o inserisci un link da YouTube, Google Drive, S3, Vimeo o qualsiasi URL diretto. Il parlato di questo video funge da campione vocale per ogni clonazione istantanea della voce.

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

Crea il progetto

Inserisci l'ID multimediale come video_id e una lingua di arrivo. Ogni interlocutore rilevato riceve una clonazione vocale istantanea nelle lingue supportate e il doppiaggio parte subito.

POST /v2/projects
3

Assegna le voci e rifai il doppiaggio

Elenca le voci per il progetto, assegna un clone personalizzato o una voce preimpostata a qualsiasi interlocutore, quindi richiama /generate e scarica i file quando il doppiaggio è completato.

PATCH /v2/projects/{project_id}
Il tempo di elaborazione varia in base al progetto. Quando cambi la voce di un interlocutore, solo i segmenti di quella persona vengono doppiati nuovamente e fatturati.
Creato intorno a te

Cerchi una voce che non sia presente nel catalogo? Contatta il nostro team

Clonazione vocale per una lingua non ancora supportata, una libreria vocale personalizzata più ampia, il tuo metodo di consegna: quando un progetto vocale richiede qualcosa che va oltre il catalogo pubblico, il nostro team esamina le tue richieste 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 per la clonazione della voce?

Piattaforme con video integrati

Piattaforme LMS e per la formazione dei clienti, piattaforme di creator e video con relative app per dispositivi mobili, strumenti per webinar e eventi virtuali, SaaS di hosting video e flussi di lavoro, piattaforme di adozione digitale, live shopping. Permetti a creator e insegnanti di mantenere la propria voce nelle lingue di clonazione vocale supportate. Usa le voci preimpostate dell'IA per le altre lingue di arrivo e rendi il doppiaggio multilingue una funzione della tua piattaforma.

Agenzie di localizzazione e produzione

Fornisci voiceover personalizzati con la voce del presentatore originale per ogni video dei clienti. Mantieni un clone vocale personalizzato per ogni presentatore ricorrente, previa autorizzazione, e riutilizzalo in ogni progetto tramite l'API senza chiedere a nessuno di registrare di nuovo.

Produzione video interna e continua

Retail internazionale ed e-commerce, franchising globali, editori multimediali, università aziendali. Formatori, dirigenti ed esperti di prodotto registrano una sola volta, poi usano la loro voce clonata per le lingue di arrivo supportate e le voci preimpostate dell'IA per le altre versioni di mercato dei video di formazione, degli aggiornamenti di prodotto e dei messaggi interni.
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 clonazione vocale

Un esempio completo per ogni lingua: autenticazione, caricamento, doppiaggio con clonazione istantanea della voce, assegnazione di un clone personalizzato a un interlocutore, nuovo doppiaggio e download.
# 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)

    video = await client.create_media_link(data=schemas.MediaCreateLink(link="https://youtu.be/..."))
    while video.status is not enums.MediaStatus.READY:
        await asyncio.sleep(5)
        video = await client.get_media(media_id=video.id)

    # first dub: every speaker gets an Instant Voice Clone
    job = await wait(client, await client.create_project(
        data=schemas.ProjectCreate(video_id=video.id, dst_lang="es-mx")))

    # assign a custom clone to SPEAKER_00, keep the other speakers as they are
    voices = await client.get_project_voices(project_id=job.id)
    custom = next(v for v in voices if v.label == "Maria Lopez")
    voice_map = {**job.voice, "SPEAKER_00": custom.id}
    await client.patch_project(project_id=job.id, data=schemas.ProjectPatch(voice=voice_map))

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

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

video = requests.post(f"{API}/api/library/v1/media/link", headers=h, json={"link": "https://youtu.be/..."}).json()
while video["status"] != "ready":
    time.sleep(5)
    video = requests.get(f"{API}/api/library/v1/media/{video['id']}", headers=h).json()

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

voices = requests.get(f"{API}/v2/projects/{pid}/voices", headers=h).json()
custom = next(v for v in voices if v["label"] == "Maria Lopez")
voice_map = {**project["voice"], "SPEAKER_00": custom["id"]}   # every speaker stays in the map

requests.patch(f"{API}/v2/projects/{pid}", headers=h, json={"voice": voice_map})
requests.post(f"{API}/v2/projects/{pid}/generate", headers=h)
print(wait(pid)["translated_video"])
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; };

let video = await call('POST', '/api/library/v1/media/link', { link: 'https://youtu.be/...' });
while (video.status !== 'ready') { await sleep(5000); video = await call('GET', `/api/library/v1/media/${video.id}`); }

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

const voices = await call('GET', `/v2/projects/${id}/voices`);
const custom = voices.find((v) => v.label === 'Maria Lopez');
await call('PATCH', `/v2/projects/${id}`, { voice: { ...project.voice, SPEAKER_00: custom.id } });
await call('POST', `/v2/projects/${id}/generate`);

console.log((await wait(id)).translated_video);
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. create the dub - Instant Voice Clones are assigned by default
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\"}" | jq -r .id)

# 3. after merging_done: read the current voice map and the voice options
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" | jq .voice
curl -s https://api.rask.ai/v2/projects/$ID/voices -H "Authorization: Bearer $TOKEN" | jq '.[] | {id, label, gender}'

# 4. assign voices for every speaker, then re-dub
curl -s -X PATCH https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" -d '{"voice": {"SPEAKER_00": "<custom_voice_id>", "SPEAKER_01": "<voice_id>"}}'
curl -s -X POST https://api.rask.ai/v2/projects/$ID/generate -H "Authorization: Bearer $TOKEN"
PATCH /v2/projects/{id}
OAuth 2.0 client credentials
<?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']];

$wait = function ($id) use ($http, $h, $json) {
    do { sleep(10); $p = $json($http->get("/v2/projects/$id", ['headers' => $h])); }
    while ($p['status'] !== 'merging_done');
    return $p;
};

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

$voices = $json($http->get("/v2/projects/$id/voices", ['headers' => $h]));
$custom = current(array_filter($voices, fn($v) => $v['label'] === 'Maria Lopez'));
$map = array_merge($project['voice'], ['SPEAKER_00' => $custom['id']]);

$http->patch("/v2/projects/$id", ['headers' => $h, 'json' => ['voice' => $map]]);
$http->post("/v2/projects/$id/generate", ['headers' => $h]);
echo $wait($id)['translated_video'];
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 clonazione vocale mostra i progressi

Un progetto segue uno stato documentato durante il primo doppiaggio e di nuovo dopo ogni nuovo doppiaggio, così i tuoi utenti vedono i progressi reali ogni volta che cambi una voce. Devi intervenire solo su tre gruppi.

Operazione riuscita, fermati qui

merging_done
Il doppiaggio è completato. Recuperate il progetto un'altra volta 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.
Observed run, 3:47 source video, en → es-mx
GET /v2/projects/{project_id}
   0s  created
  11s  transcription_started
  87s  translation_started
  99s  voiceover_started
 154s  merging_started
 165s  merging_done

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

Voce clonata, video doppiato e sottotitoli

Scarica il video doppiato con le voci clonate e i sottotitoli tradotti in SRT e VTT. Nei piani idonei, puoi anche scaricare la traccia della voce clonata da sola in formato WAV o combinata con l'audio di sottofondo originale.
Campo
Formato
Cosa contiene
translated_video
MP4
Il video doppiato, pronto per essere pubblicato
voiceover
WAV
Parlato tradotto solo con la voce clonata, per il tuo mix audio
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

Cambia una voce, poi fai il nuovo doppiaggio solo di quell'interlocutore

I clone istantanei sono adatti alla maggior parte degli interlocutori. Quando una voce richiede una scelta diversa, assegna un clone personalizzato o una voce preimpostata a quell'interlocutore e rigenera. Vengono fatturati solo i segmenti modificati.

Modifica per singoli segmenti

Modifica per singoli segmenti
Ogni progetto mostra la sua trascrizione suddivisa in segmenti con i nomi degli interlocutori, quindi spostare una riga su un altro interlocutore o cambiare una voce richiede una sola richiesta.
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
Allega un glossario in modo che nomi di marchi, prodotti e termini tecnici vengano tradotti allo stesso modo in ogni lingua, indipendentemente dalla voce che li pronuncia.

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 uno qualsiasi dei sette formati video e quattro formati audio, oppure invia un URL. Il parlato nel file è il riferimento per la clonazione istantanea della voce, quindi un audio pulito offre i risultati migliori.

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 configurazione dei canali. Valuta un file e stima il costo in anticipo, perché il doppiaggio con voci clonate viene fatturato al minuto.
Sicurezza e conformità

Dati vocali che il tuo team legale può approvare

Rask Inc. possiede la certificazione SOC 2 Tipo II, opera nel rispetto del GDPR e pubblica lo stato dei controlli in tempo reale nel proprio Trust Center. Le copie vocali personalizzate vengono create con il consenso del parlante e, per garantire la sicurezza dei dati, l'audio non viene mai utilizzato per addestrare modelli generali.

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

API di Rask rispetto a una pipeline vocale creata da zero

Un'API di clonazione vocale text-to-speech dà voce al testo inviato. Le voci clonate nei video tradotti richiedono anche trascrizione, traduzione, separazione dei parlanti, sincronizzazione e missaggio. Ecco lo stesso risultato ottenuto in due modi diversi.
Ciò di cui hai bisogno
Rask API
Assemblato da componenti
Clona ciascun parlante dal video di origine
Clonazione Vocale Istantanea, predefinita
Raccogli e carica campioni per ogni parlante
Voci personalizzate riutilizzabili
Copie vocali personalizzate tramite voice_id
Una libreria vocale che crei e mantieni
Trascrizione, traduzione, sintesi, missaggio
Un'unica API
Da tre a quattro fornitori e il codice per collegarli
Rilevamento dei parlanti e una voce per ciascuno
Incluso
Un fornitore di diarizzazione più la tua logica di assegnazione delle voci
Musica di sottofondo ed effetti preservati
Incluso
Un passaggio di separazione delle sorgenti da creare e ottimizzare
Lingue senza clonazione vocale
Voci predefinite IA
Un altro fornitore di text-to-speech
Sincronizzazione labiale
Opzionale, fatturato separatamente
Un fornitore separato
Modifica della voce di un parlante
Esegui nuovamente il doppiaggio per quel parlante, con fatturazione basata sui segmenti modificati
Esegui nuovamente la pipeline per l'intero file
Limiti di velocità
Nessuno
Il livello di sicurezza più severo richiesto dai tuoi fornitori
Una voce o una lingua non presenti nel catalogo
Da discutere con il nostro team
Dipende da ciascun fornitore
Domande frequenti

API di clonazione vocale: domande frequenti

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

Esiste un'API per la clonazione vocale?

Come funziona la clonazione della voce con le API?

Qual è la differenza tra Clonazione Vocale Istantanea e Copia Vocale Personalizzata?

Posso creare una Copia Vocale Personalizzata tramite l'API?

Quale audio serve per creare una clonazione vocale personalizzata?

Quali lingue supportano la clonazione della voce?

Posso usare l'API di clonazione vocale come text-to-speech?

Come faccio a cambiare la voce di un oratore dopo il doppiaggio?

Quante voci personalizzate posso salvare?

È necessario il consenso per clonare una voce?

La voce clonata mantiene l'emozione e l'accento dell'oratore?

Posso usare le voci clonate per scopi commerciali?

Quanto costa la clonazione vocale?

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.