Project aanmaken
curl --request POST \
--url https://api.voicecheap.ai/v1/projects \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"targetLanguage": "<string>",
"originalLanguage": "<string>",
"projectName": "<string>",
"webhookUrl": "<string>",
"numberOfSpeakers": "<string>",
"brandVocabulary": "<string>",
"removeFillerWords": true,
"sourceSrt": "<string>"
}
'import requests
url = "https://api.voicecheap.ai/v1/projects"
payload = {
"targetLanguage": "<string>",
"originalLanguage": "<string>",
"projectName": "<string>",
"webhookUrl": "<string>",
"numberOfSpeakers": "<string>",
"brandVocabulary": "<string>",
"removeFillerWords": True,
"sourceSrt": "<string>"
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
targetLanguage: '<string>',
originalLanguage: '<string>',
projectName: '<string>',
webhookUrl: '<string>',
numberOfSpeakers: '<string>',
brandVocabulary: '<string>',
removeFillerWords: true,
sourceSrt: '<string>'
})
};
fetch('https://api.voicecheap.ai/v1/projects', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voicecheap.ai/v1/projects",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'targetLanguage' => '<string>',
'originalLanguage' => '<string>',
'projectName' => '<string>',
'webhookUrl' => '<string>',
'numberOfSpeakers' => '<string>',
'brandVocabulary' => '<string>',
'removeFillerWords' => true,
'sourceSrt' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.voicecheap.ai/v1/projects"
payload := strings.NewReader("{\n \"targetLanguage\": \"<string>\",\n \"originalLanguage\": \"<string>\",\n \"projectName\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"numberOfSpeakers\": \"<string>\",\n \"brandVocabulary\": \"<string>\",\n \"removeFillerWords\": true,\n \"sourceSrt\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.voicecheap.ai/v1/projects")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"targetLanguage\": \"<string>\",\n \"originalLanguage\": \"<string>\",\n \"projectName\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"numberOfSpeakers\": \"<string>\",\n \"brandVocabulary\": \"<string>\",\n \"removeFillerWords\": true,\n \"sourceSrt\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voicecheap.ai/v1/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"targetLanguage\": \"<string>\",\n \"originalLanguage\": \"<string>\",\n \"projectName\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"numberOfSpeakers\": \"<string>\",\n \"brandVocabulary\": \"<string>\",\n \"removeFillerWords\": true,\n \"sourceSrt\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyVertaling
Project aanmaken
Upload een video- of audiobestand en maak een project aan zonder de vertaling te starten
Project aanmaken
curl --request POST \
--url https://api.voicecheap.ai/v1/projects \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"targetLanguage": "<string>",
"originalLanguage": "<string>",
"projectName": "<string>",
"webhookUrl": "<string>",
"numberOfSpeakers": "<string>",
"brandVocabulary": "<string>",
"removeFillerWords": true,
"sourceSrt": "<string>"
}
'import requests
url = "https://api.voicecheap.ai/v1/projects"
payload = {
"targetLanguage": "<string>",
"originalLanguage": "<string>",
"projectName": "<string>",
"webhookUrl": "<string>",
"numberOfSpeakers": "<string>",
"brandVocabulary": "<string>",
"removeFillerWords": True,
"sourceSrt": "<string>"
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
targetLanguage: '<string>',
originalLanguage: '<string>',
projectName: '<string>',
webhookUrl: '<string>',
numberOfSpeakers: '<string>',
brandVocabulary: '<string>',
removeFillerWords: true,
sourceSrt: '<string>'
})
};
fetch('https://api.voicecheap.ai/v1/projects', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voicecheap.ai/v1/projects",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'targetLanguage' => '<string>',
'originalLanguage' => '<string>',
'projectName' => '<string>',
'webhookUrl' => '<string>',
'numberOfSpeakers' => '<string>',
'brandVocabulary' => '<string>',
'removeFillerWords' => true,
'sourceSrt' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.voicecheap.ai/v1/projects"
payload := strings.NewReader("{\n \"targetLanguage\": \"<string>\",\n \"originalLanguage\": \"<string>\",\n \"projectName\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"numberOfSpeakers\": \"<string>\",\n \"brandVocabulary\": \"<string>\",\n \"removeFillerWords\": true,\n \"sourceSrt\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.voicecheap.ai/v1/projects")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"targetLanguage\": \"<string>\",\n \"originalLanguage\": \"<string>\",\n \"projectName\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"numberOfSpeakers\": \"<string>\",\n \"brandVocabulary\": \"<string>\",\n \"removeFillerWords\": true,\n \"sourceSrt\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voicecheap.ai/v1/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"targetLanguage\": \"<string>\",\n \"originalLanguage\": \"<string>\",\n \"projectName\": \"<string>\",\n \"webhookUrl\": \"<string>\",\n \"numberOfSpeakers\": \"<string>\",\n \"brandVocabulary\": \"<string>\",\n \"removeFillerWords\": true,\n \"sourceSrt\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyProject aanmaken
Maak een nieuw project aan door een video- of audiobestand te uploaden. De API start alleen de transcriptie (geen vertaling of lipsynchronisatie). Je kunt het project later openen in de VoiceCheap-app om de vertaling te activeren, of Projectdetails ophalen gebruiken om de projectstatus te inspecteren.Gelijktijdigheidslimiet
Dit eindpunt deelt dezelfde gelijktijdigheidslimiet alsPOST /v1/translate: maximaal 10 lopende vertalingen per account. Als de limiet is bereikt, retourneren verzoeken CONCURRENT_TRANSLATION_LIMIT_REACHED (HTTP 429).
Verzoek
Dit eindpunt accepteertmultipart/form-data met een bestandsupload.
Headers
string
vereist
Je VoiceCheap API-sleutel. Haal er een op via app.voicecheap.ai/page-api.
Hoofdparameters
file
vereist
Het video- of audiobestand dat moet worden geüpload.Ondersteunde videoformaten:
video/mp4, video/quicktime, video/x-matroska, video/webm, video/mpegOndersteunde audioformaten: audio/mpeg, audio/wav, audio/mp4, audio/x-m4a, audio/flac, audio/ogg, audio/aac, audio/webmMaximale bestandsgrootte per abonnement: Beginner 5 GB, Starter 10 GB, Creator 20 GB, Pro 30 GB, Scale 40 GB en Enterprise 60 GB.string
vereist
De doeltaal die aan dit project moet worden gekoppeld. Moet in kleine letters zijn.Toegestane waarden (70+):
afrikaans, albanian, amharic, arabic, armenian, assamese, azerbaijani, basque, belarusian, bengali, bosnian, bulgarian, catalan, croatian, czech, danish, dutch, english, british english, estonian, finnish, french, french canadian, galician, german, greek, gujarati, hebrew, hindi, hungarian, icelandic, indonesian, irish, italian, japanese, kannada, kazakh, khmer, korean, lao, latvian, lithuanian, macedonian, malay, malayalam, mandarin, marathi, mongolian, nepali, norwegian, persian, polish, portuguese, brazilian portuguese, punjabi, romanian, russian, serbian, slovak, slovenian, spanish, swahili, swedish, tagalog, tamil, telugu, thai, turkish, ukrainian, urdu, vietnamese, welsh, yoruba, zulustring
De brontaal van de inhoud met behulp van ISO-taalcodes (bijv. Standaard:
en, es, fr, de, ja, zh).Sterk aanbevolen: laat dit leeg voor automatische detectie.Geef deze parameter alleen op als je 100% zeker weet dat de taalcode correct is en in een geldig ISO-formaat is. Onjuiste taalcodes leiden tot transcriptiefouten. Onze automatische detectie ondersteunt 80+ talen en is zeer nauwkeurig.
auto-detectstring
Een aangepaste naam voor het project. Handig om projecten in je dashboard te identificeren.Standaard: De project-ID wordt gebruikt als er geen naam is opgegeven.
string
Een https-eindpunt dat de webhook-gebeurtenissen voor dit project ontvangt,
waarbij het eindpunt dat op je account is geconfigureerd wordt overschreven.Standaard: Het webhook-eindpunt van het account, wanneer er een is geconfigureerd.
string
auto-detect of een geheel getal van 1 tot 32. Het opgeven van het bekende aantal sprekers kan de diarisatie verbeteren.Standaard: auto-detectstring
Een JSON-stringarray van verzoekspecifieke namen, merken, acroniemen of specialistische termen. Deze termen worden samengevoegd met de opgeslagen woordenlijst van het account of team.
["VoiceCheap", "SmartSync", "ITC Global"]
boolean
Verwijder veelvoorkomende stopwoorden tijdens de transcriptie.Standaard:
truestring
Een bestaand SRT-transcript in de brontaal. Indien opgegeven, moet
originalLanguage een expliciete taalcode zijn in plaats van auto-detect.POST /v1/translate.
Voorbeeldverzoek
curl -X POST "https://api.voicecheap.ai/v1/projects" \
-H "x-api-key: YOUR_API_KEY" \
-F "file=@/path/to/video.mp4" \
-F "targetLanguage=french" \
-F "projectName=Launch Demo" \
-F "numberOfSpeakers=2" \
-F 'brandVocabulary=["VoiceCheap","SmartSync"]' \
-F "removeFillerWords=true"
Voorbeeldantwoord
{
"success": true,
"message": "Project created. Transcription started.",
"projectId": "project_123",
"projectName": "Launch Demo",
"targetLanguage": "french",
"status": "processing"
}
Fouten
| Status | Code | Beschrijving |
|---|---|---|
| 400 | FILE_REQUIRED | Er is geen bestand geüpload bij het verzoek |
| 400 | INVALID_FILE_TYPE | Het geüploade bestandstype wordt niet ondersteund |
| 400 | DURATION_DETECTION_FAILED | Kon de duur van het geüploade bestand niet detecteren |
| 400 | INVALID_MULTIPART_REQUEST | Multipart form data is misvormd of overschrijdt veldlimieten |
| 400 | INVALID_BRAND_VOCABULARY | Een verzoekspecifiek woordenlijst-item is ongeldig |
| 400 | INVALID_SOURCE_SRT | De aangeleverde bron-SRT is misvormd |
| 400 | SOURCE_LANGUAGE_REQUIRED_FOR_SRT | sourceSrt vereist een expliciete originalLanguage |
| 400 | VIDEO_TOO_LONG | De mediaduur overschrijdt de limiet van het abonnement van de gebruiker |
| 413 | FILE_TOO_LARGE | Het geüploade bestand overschrijdt de limiet van het abonnement van de gebruiker |
| 401 | MISSING_API_KEY | API-sleutel is vereist |
| 401 | INVALID_API_KEY_FORMAT | API-sleutel moet beginnen met vc_ |
| 401 | INVALID_API_KEY | De verstrekte API-sleutel is ongeldig |
| 403 | API_ACCESS_REQUIRED | API-toegang is vereist voor dit account |
| 403 | SUBSCRIPTION_REQUIRED | API-toegang vereist een betaald abonnement |
| 429 | RATE_LIMIT_EXCEEDED | Te veel verzoeken (limiet: 10 verzoeken per minuut) |
| 429 | CONCURRENT_TRANSLATION_LIMIT_REACHED | Te veel vertalingen in uitvoering (limiet: 10 gelijktijdige vertalingen) |
| 500 | INTERNAL_ERROR | Onverwachte serverfout |
Was deze pagina nuttig?

