プロジェクトの作成
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_body翻訳
プロジェクトの作成
動画または音声ファイルをアップロードし、翻訳を開始せずにプロジェクトを作成します
プロジェクトの作成
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_bodyプロジェクトの作成
動画または音声ファイルをアップロードして新しいプロジェクトを作成します。APIは文字起こしのみを開始します(翻訳やリップシンクは行われません)。後でVoiceCheapアプリでプロジェクトを開いて翻訳をトリガーするか、プロジェクト詳細の取得を使用してプロジェクトの状態を確認できます。同時実行制限
このエンドポイントはPOST /v1/translateと同じ同時実行制限を共有しており、アカウントごとに最大10件の翻訳が進行可能です。制限に達した場合、リクエストはCONCURRENT_TRANSLATION_LIMIT_REACHED(HTTP 429)を返します。
リクエスト
このエンドポイントはファイルアップロードを伴うmultipart/form-dataを受け付けます。
ヘッダー
string
必須
VoiceCheap APIキー。app.voicecheap.ai/page-apiから取得してください。
ボディパラメータ
file
必須
アップロードする動画または音声ファイル。サポートされている動画形式:
video/mp4、video/quicktime、video/x-matroska、video/webm、video/mpegサポートされている音声形式: audio/mpeg、audio/wav、audio/mp4、audio/x-m4a、audio/flac、audio/ogg、audio/aac、audio/webmプランごとの最大ファイルサイズ: Beginner 5 GB、Starter 10 GB、Creator 20 GB、Pro 30 GB、Scale 40 GB、およびEnterprise 60 GB。string
必須
このプロジェクトに関連付けるターゲット言語。小文字である必要があります。許可される値(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
ISO言語コードを使用したコンテンツのソース言語(例:デフォルト:
en、es、fr、de、ja、zh)。強く推奨:自動検出のために空のままにしてください。言語コードが正しいこと、および有効なISO形式であることを100%確信している場合にのみ、このパラメータを指定してください。不適切な言語コードは文字起こしの失敗を引き起こします。当社の自動検出は80以上の言語をサポートしており、非常に高精度です。
auto-detectstring
プロジェクトのカスタム名。ダッシュボードでプロジェクトを識別するのに便利です。デフォルト: 指定がない場合はプロジェクトIDが使用されます。
string
このプロジェクトのwebhookイベントを受信するhttpsエンドポイント。
アカウントに設定されたエンドポイントを上書きします。デフォルト: 設定されている場合は、アカウントのwebhookエンドポイント。
string
auto-detect、または1から32までの整数。既知の話者数を指定すると、話者分離(ダイアライゼーション)が向上する場合があります。デフォルト: auto-detectstring
リクエスト固有の名前、ブランド、頭字語、または専門用語のJSON文字列配列。これらの用語は、保存されたアカウントまたはチームの用語集とマージされます。
["VoiceCheap", "SmartSync", "ITC Global"]
boolean
文字起こし中に一般的なフィラーワードを削除します。デフォルト:
truestring
既存のソース言語のSRT文字起こしファイル。提供される場合、
originalLanguageはauto-detectではなく明示的な言語コードである必要があります。POST /v1/translateによって処理されます。
リクエスト例
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"
レスポンス例
{
"success": true,
"message": "Project created. Transcription started.",
"projectId": "project_123",
"projectName": "Launch Demo",
"targetLanguage": "french",
"status": "processing"
}
エラー
| ステータス | コード | 説明 |
|---|---|---|
| 400 | FILE_REQUIRED | リクエストにファイルが含まれていません |
| 400 | INVALID_FILE_TYPE | アップロードされたファイル形式はサポートされていません |
| 400 | DURATION_DETECTION_FAILED | アップロードされたファイルの長さを検出できませんでした |
| 400 | INVALID_MULTIPART_REQUEST | マルチパートフォームデータが不正であるか、フィールド制限を超えています |
| 400 | INVALID_BRAND_VOCABULARY | リクエスト固有の用語集エントリが無効です |
| 400 | INVALID_SOURCE_SRT | 提供されたソースSRTが不正です |
| 400 | SOURCE_LANGUAGE_REQUIRED_FOR_SRT | sourceSrtには明示的なoriginalLanguageが必要です |
| 400 | VIDEO_TOO_LONG | メディアの長さがユーザーのプラン制限を超えています |
| 413 | FILE_TOO_LARGE | アップロードされたファイルがユーザーのプラン制限を超えています |
| 401 | MISSING_API_KEY | APIキーが必要です |
| 401 | INVALID_API_KEY_FORMAT | APIキーはvc_で始まる必要があります |
| 401 | INVALID_API_KEY | 提供されたAPIキーは無効です |
| 403 | API_ACCESS_REQUIRED | このアカウントにはAPIアクセスが必要です |
| 403 | SUBSCRIPTION_REQUIRED | APIアクセスには有料サブスクリプションが必要です |
| 429 | RATE_LIMIT_EXCEEDED | リクエストが多すぎます(制限:1分間に10リクエスト) |
| 429 | CONCURRENT_TRANSLATION_LIMIT_REACHED | 進行中の翻訳が多すぎます(制限:同時に10件の翻訳) |
| 500 | INTERNAL_ERROR | 予期しないサーバーエラー |
このページは役に立ちましたか?

