cURL
curl --fail-with-body \
--max-time 120 \
--request POST \
https://ai.kedang.net/v1/audio/translations \
-H 'Authorization: Bearer YOUR_API_KEY' \
--form-string model=MODEL_ID \
--form-string response_format=json \
--form 'file=@"audio.mp3";type=audio/mpeg'
Python
# pip install requests
import requests
url = 'https://ai.kedang.net/v1/audio/translations'
headers = {'Authorization': 'Bearer YOUR_API_KEY'}
payload = {'model': 'MODEL_ID', 'response_format': 'json'}
with open('audio.mp3', 'rb') as file_0:
files = {'file': ('audio.mp3', file_0, 'audio/mpeg')}
response = requests.request(
'POST', url, headers=headers, timeout=120, data=payload, files=files
)
response.raise_for_status()
print(response.json())
JavaScript
// Node.js 18+ · 保存为 example.mjs 后运行
import { readFile } from "node:fs/promises";
const headers = {
"Authorization": "Bearer YOUR_API_KEY"
};
const form = new FormData();
form.append("model", "MODEL_ID");
form.append("response_format", "json");
form.append("file", new Blob([await readFile("audio.mp3")], {type: "audio/mpeg"}), "audio.mp3");
const response = await fetch("https://ai.kedang.net/v1/audio/translations", {
method: "POST",
headers,
signal: AbortSignal.timeout(120_000),
body: form,
});
if (!response.ok) {
throw new Error(`${response.status}: ${await response.text()}`);
}
console.log(await response.json());
Go
package main
import (
"bytes"
"fmt"
"io"
"log"
"mime"
"mime/multipart"
"net/http"
"net/textproto"
"os"
"time")
func main() {
var payload bytes.Buffer
writer := multipart.NewWriter(&payload)
if err := writer.WriteField("model", "MODEL_ID"); err != nil {
log.Fatal(err)
}
if err := writer.WriteField("response_format", "json"); err != nil {
log.Fatal(err)
}
file0, err := os.Open("audio.mp3")
if err != nil { log.Fatal(err) }
defer file0.Close()
header0 := make(textproto.MIMEHeader)
header0.Set("Content-Disposition", mime.FormatMediaType("form-data", map[string]string{"name": "file", "filename": "audio.mp3"}))
header0.Set("Content-Type", "audio/mpeg")
part0, err := writer.CreatePart(header0)
if err != nil { log.Fatal(err) }
if _, err := io.Copy(part0, file0); err != nil { log.Fatal(err) }
if err := writer.Close(); err != nil { log.Fatal(err) }
req, err := http.NewRequest("POST", "https://ai.kedang.net/v1/audio/translations", &payload)
if err != nil { log.Fatal(err) }
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", writer.FormDataContentType())
client := &http.Client{Timeout: 120 * time.Second}
resp, err := client.Do(req)
if err != nil { log.Fatal(err) }
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil { log.Fatal(err) }
if resp.StatusCode >= 400 { log.Fatalf("%s: %s", resp.Status, data) }
fmt.Println(string(data))
}