Lovely Router文档
获取密钥
模型 API

文本转语音

通过 OpenAI 的语音 API,用 Qwen3-TTS 和 ZONOS2 把文本变成语音——预置音色、按描述设计的音色、用一小段录音克隆声音、情绪控制,支持 10 到 40 多种语言,按音频分钟计价。

Lovely Router 提供 OpenAI 的语音端点 POST /v1/audio/speech,背后是运行在我们自己 GPU 上的开源语音模型。把 OpenAI SDK 指向 https://lovelyrouter.com/v1,使用你的 Lovely Router 密钥,响应里就是音频。在 OpenAI 的字段之外,你还可以按描述设计音色、用一小段录音克隆声音、指定语言,在 ZONOS2 上还能设置情绪。所有字段见音频端点参考。

模型#

模型价格擅长语言
qwen3-tts每分钟 $0.036按描述设计音色、9 个可用风格指令控制的预置音色、声音克隆10 种:中文、英语、日语、韩语、德语、法语、俄语、葡萄牙语、西班牙语、意大利语
zonos2每分钟 $0.036高还原度的声音克隆、情绪(开心、悲伤、愤怒、惊讶)40 多种,英语、中文、日语效果最好

两者都按生成音频的秒数计费,每次请求至少 1 秒。Qwen3-TTS 由阿里巴巴通义千问团队以 Apache-2.0 许可发布;ZONOS2 由 Zyphra 以 Apache-2.0 许可发布。

两个模型都运行在无人使用时会休眠的托管 GPU 上:闲置后的第一个请求需要等模型加载,qwen3-tts 约 45 秒,zonos2 最长约 2 分钟。之后,Qwen3-TTS 的生成速度约为实时的两倍;ZONOS2 单个请求约等于实时,多个请求同时进行时更快。

合成语音#

curl https://lovelyrouter.com/v1/audio/speech \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-tts",
    "input": "欢迎回来!你的订单已经发货,预计周四送达。",
    "voice": "serena",
    "instructions": "温暖开朗,语速稍快"
  }' \
  --output welcome.mp3

响应就是音频本身(默认 MP3,可用 response_format 更改),音频秒数在 x-lovely-audio-seconds 响应头里。文本最长 4,096 个字符;长文本会逐句用同一个音色朗读。

音色#

voice 可以是模型的预置音色、已保存声音的 id,或 OpenAI 的音色名——后者会映射到最接近的预置音色,所以为 OpenAI 写的代码无需修改。

qwen3-tts 音色声音特点母语
vivian明亮、略带个性的年轻女声中文
serena温暖、温柔的年轻女声中文
uncle_fu成熟男声,低沉醇厚中文
dylan年轻男声,清晰自然中文(北京话)
eric活泼男声,略带沙哑中文(四川话)
ryan富有节奏感的有力男声英语
aiden阳光的美式男声英语
ono_anna俏皮轻快的年轻女声日语
sohee温暖、情感丰富的女声韩语

zonos2 有三个:american_female、american_male 和 british_female。

每个音色都能说其模型支持的所有语言,说母语时效果最好。不传 voice 时,模型会按 language 选一个合适的预置音色(qwen3-tts:中文用 vivian,日语用 ono_anna,韩语用 sohee,其余用 ryan)。

风格指令#

在 qwen3-tts 上,instructions 控制预置或克隆音色的说话方式:情绪、语速、音量、耳语、口音。像给配音演员讲戏一样写,用任何语言都可以:

JSON
{ "model": "qwen3-tts", "voice": "uncle_fu", "input": "都过来,我告诉你们当年到底发生了什么。", "instructions": "缓慢、神秘,压低声音像在说悄悄话" }

设计音色#

不传 voice,在 instructions 里描述声音——年龄、性别、音色、语速、情绪、口音——qwen3-tts 就会为它生成一个新音色:

JSON
{ "model": "qwen3-tts", "input": "啊哈!落帆,我们要进港了。", "instructions": "一位嗓音沙哑洪亮的老海盗船长,带着醉意,觉得一切都很好笑" }

设计出来的音色每次会略有不同。想固定一个,就把生成结果保存为声音,之后使用它的 id。

情绪(ZONOS2)#

zonos2 用 emotion 代替指令:happy、sad、angry、surprised 之一,或 0 到 1 的权重,例如 {"happy": 0.7, "surprised": 0.3}。说话人的声音不变,只改变表达方式。

克隆声音#

两个模型都能用一小段录音克隆声音:3 到 15 秒、单人清晰说话、没有音乐。保存一次,之后把它的 id 作为 voice 使用:

cURL
curl https://lovelyrouter.com/v1/audio/voices \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -F name="旁白" \
  -F transcript="感谢收听,我们下周节目再见。" \
  -F consent=true \
  -F file=@narrator.wav

返回的是声音对象。然后用它的 id 合成:

cURL
curl https://lovelyrouter.com/v1/audio/speech \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "qwen3-tts", "voice": "voice_8f2c4a1e9b7d3f60a5c2e1d4", "input": "今天我们来聊聊茶的历史。"}' \
  --output episode.mp3
  • transcript 是录音里说的内容。有了它,Qwen3-TTS 的克隆更接近原声;没有它,只匹配声音的音色。ZONOS2 不需要它。
  • 必须传 consent: true:你确认这是你自己的声音,或你已获得说话人的克隆许可,并对使用方式负责。不要用克隆的声音欺骗他人或冒充他人。
  • 保存的声音免费、仅你的账户可见,删除前一直保留,每个账户最多 100 个。支持 WAV、MP3、M4A、OGG/Opus、FLAC 或 WebM,最大 10 MB。
  • 保存的声音可用于两个模型、它们支持的所有语言,在 qwen3-tts 上还可以配合 instructions。

只用一次的克隆,可以直接随请求发送录音:reference_audio(https URL、data: URL 或 base64)、reference_text 和 consent: true。

输出#

response_format得到的内容
mp3(默认)MP3,128 kbps
opusOgg Opus,64 kbps
aacAAC(ADTS)
flacFLAC
wavWAV,16 位
pcm原始 16 位小端采样,24 kHz 单声道(与 OpenAI 相同)

Qwen3-TTS 生成 24 kHz 音频,ZONOS2 生成 44.1 kHz。speed(0.25 到 4.0)改变语速而不改变音高;按返回的秒数计费。

价格与限制#

  • 两个模型都是每分钟音频 $0.036,按秒计费(每秒 $0.0006),每次请求至少 1 秒。失败的请求不收费。
  • 请求需要余额为正,不预扣。调用会出现在日志页面,并显示生成的秒数。
  • 输入最长 4,096 个字符,指令最长 1,000 个字符。
  • 不支持流式:音频生成完毕后一次返回。stream_format: "sse" 会返回 400。
  • 语音模型只响应 /v1/audio/speech。发到 Chat Completions 会返回 404 并指向本页。它们在 creative-hosted 渠道分组中提供。