Text-to-Speech
Convert text to audio.
Try It
POST
/v1/audio/speechhttps://api-platform.ope.aiAuthentication
Uses Bearer Token authentication.
- Header:
Authorization: Bearer <token> - Example:
Authorization: Bearer sk-xxxxxx
Request body (application/json)
| Field | Type | Required | Description | Default / Range |
|---|---|---|---|---|
model | string | Yes | Model ID | - |
text | string | Yes | Text to convert | Length <= 4096 |
voice | string | Yes | Voice | Each model supports different voices, please check specific model documentation |
response_format | string | No | Audio format | Default "mp3"; "mp3" | "opus" | "aac" | "flac" | "wav" | "pcm" |
speed | number | No | Speed | Default 1; Range 0.1~4 |
Request examples
The domain below is an example:
https://api-platform.ope.ai.
- cURL
- JavaScript
- Go
- Python
- Java
- C#
curl -X POST "https://api-platform.ope.ai/v1/audio/speech" \
-H "Authorization: Bearer $OPEAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "AudioLLM/Voice1.0",
"text": "Supports multi-scenario customization for advertising voiceovers, tutorial narrations, and more",
"voice": "James"
}' --output speech.mp3
const url = "https://api-platform.ope.ai/v1/audio/speech";
const apiKey = process.env.OPEAI_API_KEY;
const res = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
Accept: "audio/mpeg",
},
body: JSON.stringify({
model: "AudioLLM/Voice1.0",
text: "Supports multi-scenario customization for advertising voiceovers, tutorial narrations, and more",
voice: "James",
}),
});
const arrayBuffer = await res.arrayBuffer();
// In Node environment write file:
// import { writeFileSync } from "node:fs";
// writeFileSync("speech.mp3", Buffer.from(arrayBuffer));
console.log(res.status, arrayBuffer.byteLength);
package main
import (
"bytes"
"io"
"net/http"
"os"
)
func main() {
body := []byte(`{"model":"AudioLLM/Voice1.0","text":"Supports multi-scenario customization for advertising voiceovers, tutorial narrations, and more","voice":"James"}`)
req, _ := http.NewRequest("POST", "https://api-platform.ope.ai/v1/audio/speech", bytes.NewBuffer(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("OPEAI_API_KEY"))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Accept", "audio/mpeg")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
out, _ := os.Create("speech.mp3")
defer out.Close()
io.Copy(out, resp.Body)
}
import os
import requests
resp = requests.post(
"https://api-platform.ope.ai/v1/audio/speech",
headers={
"Authorization": f"Bearer {os.environ.get('OPEAI_API_KEY')}",
"Content-Type": "application/json",
"Accept": "audio/mpeg",
},
json={"model": "AudioLLM/Voice1.0", "text": "Supports multi-scenario customization for advertising voiceovers, tutorial narrations, and more", "voice": "James"},
timeout=60,
)
with open("speech.mp3", "wb") as f:
f.write(resp.content)
import java.io.FileOutputStream;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String apiKey = System.getenv("OPEAI_API_KEY");
String url = "https://api-platform.ope.ai/v1/audio/speech";
String json = """
{ "model": "AudioLLM/Voice1.0", "text": "Supports multi-scenario customization for advertising voiceovers, tutorial narrations, and more", "voice": "James" }
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer " + apiKey)
.header("Content-Type", "application/json")
.header("Accept", "audio/mpeg")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<byte[]> response = client.send(request, HttpResponse.BodyHandlers.ofByteArray());
try (FileOutputStream fos = new FileOutputStream("speech.mp3")) {
fos.write(response.body());
}
System.out.println(response.statusCode());
}
}
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
public class Program
{
public static async Task Main()
{
var apiKey = Environment.GetEnvironmentVariable("OPEAI_API_KEY");
var url = "https://api-platform.ope.ai/v1/audio/speech";
var json = """
{ "model": "AudioLLM/Voice1.0", "text": "Supports multi-scenario customization for advertising voiceovers, tutorial narrations, and more", "voice": "James" }
""";
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
http.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("audio/mpeg"));
var content = new StringContent(json, Encoding.UTF8, "application/json");
var resp = await http.PostAsync(url, content);
var bytes = await resp.Content.ReadAsByteArrayAsync();
await File.WriteAllBytesAsync("speech.mp3", bytes);
Console.WriteLine((int)resp.StatusCode);
}
}
Response example
- 200:
audio/mpeg(binary audio data, saved asspeech.mp3in examples)