跳转到主要内容
文本转语音可将书面文本合成为语音。选择一个 TTS 模型和该模型支持的音色,将文本发送到 /audio/speech,然后保存二进制的音频响应。 本指南适用于标准的语音生成。如果你希望通过自定义参考音频生成语音,请参阅 语音克隆

基本用法

import os
from pathlib import Path

import requests

response = requests.post(
    "https://api.venice.ai/api/v1/audio/speech",
    headers={
        "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={
        "model": "tts-kokoro",
        "voice": "af_sky",
        "input": "Hello, welcome to Venice Voice.",
    },
)

response.raise_for_status()
Path("speech.mp3").write_bytes(response.content)
import { writeFile } from "node:fs/promises";

const response = await fetch("https://api.venice.ai/api/v1/audio/speech", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VENICE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "tts-kokoro",
    voice: "af_sky",
    input: "Hello, welcome to Venice Voice.",
  }),
});

if (!response.ok) {
  throw new Error(await response.text());
}

await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer()));
curl https://api.venice.ai/api/v1/audio/speech \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-kokoro",
    "voice": "af_sky",
    "input": "Hello, welcome to Venice Voice."
  }' \
  --output speech.mp3

选择模型和音色

音色是模型专属的。voice 的值必须与所选的 model 匹配。 请在 文本转语音模型 页面浏览可用的模型和音色。音色选择器中列出了你在请求中需要传入的确切音色 ID。
音色 ID 区分大小写。切换 TTS 模型时,请同时更新 voice 的值。

请求结构

参数类型是否必填说明
modelstring文本转语音模型 ID。
voicestring所选模型支持的音色 ID。
inputstring需要合成的文本。

生产环境建议

  • 当源文本和音色会被重复使用时,缓存生成的音频。
  • 合成前对文本进行规范化和校对。标点符号会影响节奏和语调。
  • 输出文件请使用与模型响应格式相符的文件扩展名。

相关资源