文本转语音
将文本转换为音频。
Try It
POST
/v1/audio/speechhttps://api-platform.ope.ai认证
使用 Bearer Token 认证。
- Header:
Authorization: Bearer <token> - 示例:
Authorization: Bearer sk-xxxxxx
请求体(application/json)
| 字段 | 类型 | 必填 | 说明 | 默认值 / 范围 |
|---|---|---|---|---|
model | string | 是 | 模型 ID | - |
text | string | 是 | 要转换的文本 | 长度 <= 4096 |
voice | string | 是 | 发音人 | 每个模型支持的发音人不同,请查看具体模型文档 |
response_format | string | 否 | 音频格式 | 默认 "mp3";"mp3" | "opus" | "aac" | "flac" | "wav" | "pcm" |
speed | number | 否 | 语速 | 默认 1;范围 0.1~4 |
请求示例
下方域名为示例:
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": "支持多场景定制,可满足广告配音、教程解说等需求",
"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: "支持多场景定制,可满足广告配音、教程解说等需求",
voice: "James",
}),
});
const arrayBuffer = await res.arrayBuffer();
// 在 Node 环境写文件:
// 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":"支持多场景定制,可满足广告配音、教程解说等需求","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": "支持多场景定制,可满足广告配音、教程解说等需求", "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": "支持多场景定制,可满足广告配音、教程解说等需求", "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": "支持多场景定制,可满足广告配音、教程解说等需求", "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);
}
}
响应示例
- 200:
audio/mpeg(二进制音频数据,示例里保存为speech.mp3)