Utwórz projekt
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_bodyTłumaczenie
Utwórz projekt
Prześlij plik wideo lub audio i utwórz projekt bez rozpoczynania tłumaczenia
Utwórz projekt
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_bodyUtwórz projekt
Utwórz nowy projekt, przesyłając plik wideo lub audio. API rozpoczyna tylko transkrypcję (bez tłumaczenia lub synchronizacji ruchu ust). Możesz później otworzyć projekt w aplikacji VoiceCheap, aby uruchomić tłumaczenie, lub użyć Pobierz szczegóły projektu, aby sprawdzić stan projektu.Limit współbieżności
Ten punkt końcowy współdzieli ten sam limit współbieżności coPOST /v1/translate: do 10 trwających tłumaczeń na konto. Jeśli limit zostanie osiągnięty, żądania zwrócą CONCURRENT_TRANSLATION_LIMIT_REACHED (HTTP 429).
Żądanie
Ten punkt końcowy akceptujemultipart/form-data wraz z przesłaniem pliku.
Nagłówki
string
wymagane
Twój klucz API VoiceCheap. Pobierz go z app.voicecheap.ai/page-api.
Parametry treści
file
wymagane
Plik wideo lub audio do przesłania.Obsługiwane formaty wideo:
video/mp4, video/quicktime, video/x-matroska, video/webm, video/mpegObsługiwane formaty audio: audio/mpeg, audio/wav, audio/mp4, audio/x-m4a, audio/flac, audio/ogg, audio/aac, audio/webmMaksymalny rozmiar pliku według planu: Beginner 5 GB, Starter 10 GB, Creator 20 GB, Pro 30 GB, Scale 40 GB oraz Enterprise 60 GB.string
wymagane
Język docelowy, który ma zostać powiązany z tym projektem. Musi być zapisany małymi literami.Dozwolone wartości (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
Język źródłowy zawartości przy użyciu kodów językowych ISO (np. Domyślnie:
en, es, fr, de, ja, zh).Zdecydowanie zalecane: Pozostaw to pole puste w celu automatycznego wykrywania.Podaj ten parametr tylko wtedy, gdy masz 100% pewności, że kod języka jest poprawny i w prawidłowym formacie ISO. Nieprawidłowe kody języków spowodują błędy transkrypcji. Nasze automatyczne wykrywanie obsługuje ponad 80 języków i jest wysoce dokładne.
auto-detectstring
Niestandardowa nazwa projektu. Przydatna do identyfikacji projektów w Twoim panelu nawigacyjnym.Domyślnie: Jeśli nie zostanie podana, użyty zostanie identyfikator projektu.
string
Punkt końcowy https, który odbiera zdarzenia webhook dla tego projektu,
zastępując punkt końcowy skonfigurowany na Twoim koncie.Domyślnie: Punkt końcowy webhook konta, jeśli jest skonfigurowany.
string
auto-detect lub liczba całkowita od 1 do 32. Podanie znanej liczby mówców może poprawić diaryzację.Domyślnie: auto-detectstring
Tablica ciągów JSON zawierająca specyficzne dla żądania nazwy, marki, akronimy lub terminy specjalistyczne. Terminy te są łączone z zapisanym słownictwem konta lub zespołu.
["VoiceCheap", "SmartSync", "ITC Global"]
boolean
Usuń typowe słowa wypełniacze podczas transkrypcji.Domyślnie:
truestring
Istniejąca transkrypcja SRT w języku źródłowym. Po dostarczeniu,
originalLanguage musi być jawnym kodem języka, a nie auto-detect.POST /v1/translate.
Przykładowe żądanie
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"
Przykładowa odpowiedź
{
"success": true,
"message": "Project created. Transcription started.",
"projectId": "project_123",
"projectName": "Launch Demo",
"targetLanguage": "french",
"status": "processing"
}
Błędy
| Status | Kod | Opis |
|---|---|---|
| 400 | FILE_REQUIRED | W żądaniu nie przesłano żadnego pliku |
| 400 | INVALID_FILE_TYPE | Przesłany typ pliku nie jest obsługiwany |
| 400 | DURATION_DETECTION_FAILED | Nie udało się wykryć czasu trwania przesłanego pliku |
| 400 | INVALID_MULTIPART_REQUEST | Dane formularza multipart są nieprawidłowe lub przekraczają limity pól |
| 400 | INVALID_BRAND_VOCABULARY | Wpis w glosariuszu specyficzny dla żądania jest nieprawidłowy |
| 400 | INVALID_SOURCE_SRT | Dostarczony plik źródłowy SRT jest nieprawidłowy |
| 400 | SOURCE_LANGUAGE_REQUIRED_FOR_SRT | sourceSrt wymaga jawnego określenia originalLanguage |
| 400 | VIDEO_TOO_LONG | Czas trwania multimediów przekracza limit planu użytkownika |
| 413 | FILE_TOO_LARGE | Przesłany plik przekracza limit planu użytkownika |
| 401 | MISSING_API_KEY | Wymagany jest klucz API |
| 401 | INVALID_API_KEY_FORMAT | Klucz API musi zaczynać się od vc_ |
| 401 | INVALID_API_KEY | Podany klucz API jest nieprawidłowy |
| 403 | API_ACCESS_REQUIRED | Dla tego konta wymagany jest dostęp do API |
| 403 | SUBSCRIPTION_REQUIRED | Dostęp do API wymaga płatnej subskrypcji |
| 429 | RATE_LIMIT_EXCEEDED | Zbyt wiele żądań (limit: 10 żądań na minutę) |
| 429 | CONCURRENT_TRANSLATION_LIMIT_REACHED | Zbyt wiele trwających tłumaczeń (limit: 10 jednoczesnych tłumaczeń) |
| 500 | INTERNAL_ERROR | Nieoczekiwany błąd serwera |
Czy ta strona była pomocna?

