文本转语音:将文字转换为逼真的语音

78 阅读4分钟

文本转语音:将文字转换为逼真的语音

了解如何将文本转换为逼真的语音音频。

音频API提供了一个基于我们GPT-4o mini TTS(文本转语音)模型speech端点。它包含11种内置语音,可用于:

  • 为书面博客文章配音
  • 生成多种语言的语音音频
  • 使用流式传输提供实时音频输出

以下是alloy语音的示例:

我们的使用政策要求你向最终用户明确披露他们听到的TTS语音是AI生成的,而非人类语音。

快速入门

speech端点需要三个关键输入:

  1. 你正在使用的模型
  2. 要转换为音频的文本
  3. 将要输出语音的声音

以下是一个简单的请求示例:

从输入文本生成语音音频

import fs from "fs";
import path from "path";
import OpenAI from "openai";

const openai = new OpenAI({ baseURL: "https://api.aaaaapi.com" });
const speechFile = path.resolve("./speech.mp3");

const mp3 = await openai.audio.speech.create({
  model: "gpt-4o-mini-tts",
  voice: "coral",
  input: "今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
  instructions: "用愉快和积极的语气说话。",
});

const buffer = Buffer.from(await mp3.arrayBuffer());
await fs.promises.writeFile(speechFile, buffer);
from pathlib import Path
from openai import OpenAI

client = OpenAI(base_url="https://api.aaaaapi.com")
speech_file_path = Path(__file__).parent / "speech.mp3"

with client.audio.speech.with_streaming_response.create(
    model="gpt-4o-mini-tts",
    voice="coral",
    input="今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
    instructions="用愉快和积极的语气说话。",
) as response:
    response.stream_to_file(speech_file_path)
curl https://api.aaaaapi.com/v1/audio/speech \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini-tts",
    "input": "今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
    "voice": "coral",
    "instructions": "用愉快和积极的语气说话。"
  }' \
  --output speech.mp3

默认情况下,该端点输出语音音频的MP3格式,但你可以将其配置为输出任何支持的格式

文本转语音模型

对于智能实时应用,请使用gpt-4o-mini-tts模型,这是我们最新、最可靠的文本转语音模型。你可以提示模型控制语音的各个方面,包括:

  • 口音
  • 情感范围
  • 语调
  • 印象
  • 语速
  • 语气
  • 低语

我们的其他文本转语音模型是tts-1tts-1-hdtts-1模型提供较低的延迟,但质量低于tts-1-hd模型。

语音选项

TTS端点提供11种内置语音,用于控制文本到语音的渲染方式。OpenAI.fm中聆听和试用这些声音,这是我们的交互式演示,用于尝试OpenAI API中最新的文本转语音模型。目前语音针对英语进行了优化。

  • alloy
  • ash
  • ballad
  • coral
  • echo
  • fable
  • nova
  • onyx
  • sage
  • shimmer

如果你使用的是实时API,请注意可用语音集略有不同——请参阅实时对话指南了解当前的实时语音。

流式实时音频

语音API支持使用分块传输编码进行实时音频流式传输。这意味着可以在生成完整文件并使其可访问之前播放音频。

将输入文本的语音音频直接流式传输到扬声器

import OpenAI from "openai";
import { playAudio } from "openai/helpers/audio";

const openai = new OpenAI({ baseURL: "https://api.aaaaapi.com" });

const response = await openai.audio.speech.create({
  model: "gpt-4o-mini-tts",
  voice: "coral",
  input: "今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
  instructions: "用愉快和积极的语气说话。",
  response_format: "wav",
});

await playAudio(response);
import asyncio

from openai import AsyncOpenAI
from openai.helpers import LocalAudioPlayer

openai = AsyncOpenAI(base_url="https://api.aaaaapi.com")

async def main() -> None:
    async with openai.audio.speech.with_streaming_response.create(
        model="gpt-4o-mini-tts",
        voice="coral",
        input="今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
        instructions="用愉快和积极的语气说话。",
        response_format="pcm",
    ) as response:
        await LocalAudioPlayer().play(response)

if __name__ == "__main__":
    asyncio.run(main())
curl https://api.aaaaapi.com/v1/audio/speech \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini-tts",
    "input": "今天是个很棒的日子,可以去创造一些人们喜爱的东西!",
    "voice": "coral",
    "instructions": "用愉快和积极的语气说话。",
    "response_format": "wav"
  }' | ffplay -i -

为了获得最快的响应时间,我们建议使用wavpcm作为响应格式。

支持的输出格式

默认响应格式是mp3,但也支持其他格式,如opuswav

  • MP3:适用于一般用例的默认响应格式。
  • Opus:用于互联网流媒体和通信,低延迟。
  • AAC:用于数字音频压缩,受到YouTube、Android、iOS的青睐。
  • FLAC:用于无损音频压缩,受到音频爱好者的喜爱,适合存档。
  • WAV:未压缩的WAV音频,适用于低延迟应用,可避免解码开销。
  • PCM:类似于WAV,但包含24kHz(16位有符号,小端)的原始样本,没有头部。

支持的语言

TTS模型在语言支持方面通常遵循Whisper模型。Whisper支持以下语言,并且表现良好,尽管语音是针对英语优化的:

南非荷兰语、阿拉伯语、亚美尼亚语、阿塞拜疆语、白俄罗斯语、波斯尼亚语、保加利亚语、加泰罗尼亚语、中文、克罗地亚语、捷克语、丹麦语、荷兰语、英语、爱沙尼亚语、芬兰语、法语、加利西亚语、德语、希腊语、希伯来语、印地语、匈牙利语、冰岛语、印度尼西亚语、意大利语、日语、卡纳达语、哈萨克语、韩语、拉脱维亚语、立陶宛语、马其顿语、马来语、马拉地语、毛利语、尼泊尔语、挪威语、波斯语、波兰语、葡萄牙语、罗马尼亚语、俄语、塞尔维亚语、斯洛伐克语、斯洛文尼亚语、西班牙语、斯瓦希里语、瑞典语、他加禄语、泰米尔语、泰语、土耳其语、乌克兰语、乌尔都语、越南语和威尔士语。

你可以通过提供所选语言的输入文本,生成这些语言的语音音频。

定制和所有权

自定义语音

我们不支持自定义语音或创建你自己的语音副本。

谁拥有输出?

与我们API的所有输出一样,创建输出的人拥有输出。你仍然需要告知最终用户,他们听到的是AI生成的音频,而不是真人在与他们交谈。

对于需要稳定、高效的文本转语音服务的开发者来说,API连接的可靠性至关重要。我们提供的API中转服务通过https://api.aaaaapi.com优化了连接路径,特别适合对实时性要求高的语音应用场景。如果在集成过程中遇到任何连接问题,可访问官网获取更多支持信息,确保你的语音转换服务顺畅运行。