跳转到内容

TTS语音合成

语音合成(Text-to-Speech, TTS)API 允许你将文本转换为自然流畅的语音。该API兼容 OpenAI 标准,同时支持通义千问 qwen-tts 系列模型,提供高质量的中文和英文语音合成服务。

  • 端点: /v1/audio/speech
  • 方法: POST
  • 内容类型: application/json
  • 认证: Bearer Token

本系统完整支持通义千问的 qwen-tts 系列模型:

模型名称描述特点
qwen-tts基础版本标准音质,适合一般场景
qwen-tts-latest最新版本音质更佳,支持更多音色
qwen-tts-2025-05-22指定版本稳定版本,适合生产环境
音色代码音色名称性别特点
Cherry甜美女声声音甜美,适合温馨场景
Serena温柔女声声音温柔,适合专业播报
Ethan稳重男声声音沉稳,适合商务场景
Chelsie活泼女声声音活泼,适合年轻化场景

高级音色(qwen-tts-latest 和 qwen-tts-2025-05-22 支持)

Section titled “高级音色(qwen-tts-latest 和 qwen-tts-2025-05-22 支持)”
音色代码音色名称性别特点
Dylan北京话青春活力,适合时尚内容
Jada吴语知性优雅,适合教育内容
Sunny四川话阳光开朗,适合儿童内容
{
"model": "qwen-tts",
"input": "你好,欢迎使用语音合成服务!",
"voice": "Cherry"
}
{
"model": "qwen-tts-latest",
"input": "这是一段需要转换为语音的文本内容。支持中文、英文以及中英混合的文本输入。",
"voice": "Serena",
"speed": 1.0,
"response_format": "wav"
}
参数类型必填描述
modelstring要使用的TTS模型,支持Openai tts和 qwen-tts 系列
inputstring要转换为语音的文本,最长512个Token
voicestring语音音色,见支持的音色列表
speednumber语音速度,范围0.25-4.0,默认1.0
response_formatstring音频格式,目前支持 wav

API 直接返回音频文件内容,响应头包含:

Content-Type: audio/wav
Content-Disposition: attachment; filename="audio.wav"

音频格式规格:

  • 格式: WAV (RIFF)
  • 编码: 16位 PCM
  • 声道: 单声道 (Mono)
  • 采样率: 24000 Hz
{
"error": {
"message": "错误描述",
"type": "invalid_request_error",
"code": "error_code"
}
}
Terminal window
curl -X POST "https://api.4allapi.com/v1/audio/speech" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-tts",
"input": "你好,这是语音合成测试",
"voice": "Cherry"
}' \
--output audio.wav
Terminal window
curl -X POST "https://api.4allapi.com/v1/audio/speech" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-tts-latest",
"input": "欢迎使用通义千问语音合成服务,我是Jada!",
"voice": "Jada",
"speed": 1.2
}' \
--output audio_jada.wav
async function generateSpeech(text, voice = 'Cherry') {
const response = await fetch('/v1/audio/speech', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'qwen-tts-latest',
input: text,
voice: voice
})
});
if (response.ok) {
const audioBlob = await response.blob();
const audioUrl = URL.createObjectURL(audioBlob);
// 播放音频
const audio = new Audio(audioUrl);
audio.play();
return audioUrl;
} else {
const error = await response.json();
throw new Error(error.error.message);
}
}
// 使用示例
generateSpeech('你好,世界!', 'Serena');
import requests
import io
def generate_speech(text, voice='Cherry', model='qwen-tts-latest'):
url = 'https://api.4allapi.com/v1/audio/speech'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
data = {
'model': model,
'input': text,
'voice': voice
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
return response.content
else:
raise Exception(f"API Error: {response.status_code} - {response.text}")
# 使用示例
audio_content = generate_speech('你好,这是Python调用示例!', 'Ethan')
# 保存音频文件
with open('output.wav', 'wb') as f:
f.write(audio_content)
const fs = require('fs');
const fetch = require('node-fetch');
async function generateSpeech(text, voice = 'Cherry') {
try {
const response = await fetch('https://api.4allapi.com/v1/audio/speech', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'qwen-tts-latest',
input: text,
voice: voice
})
});
if (response.ok) {
const buffer = await response.buffer();
fs.writeFileSync('audio.wav', buffer);
console.log('音频文件已保存为 audio.wav');
} else {
const error = await response.json();
console.error('API错误:', error);
}
} catch (error) {
console.error('请求失败:', error);
}
}
// 使用示例
generateSpeech('欢迎使用Node.js语音合成!', 'Dylan');

对于长文本,可以使用流式响应获得更快的首字节时间:

Terminal window
curl -X POST "https://api.4allapi.com/v1/audio/speech" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-SSE: enable" \
-d '{
"model": "qwen-tts",
"input": "这是一段较长的文本,使用流式响应可以获得更好的体验...",
"voice": "Chelsie"
}' \
--no-buffer
  • 单次请求最大文本长度:512个Token
  • 支持语言:中文、英文、中英混合
  • 特殊字符会被自动处理
  • 频率限制:根据你的订阅计划
  • 并发限制:默认支持多并发请求
  • 文件大小:生成的音频文件大小取决于文本长度
  • 最大音频时长:约5分钟(取决于文本长度)
  • 音频质量:24kHz, 16-bit PCM
  • 输出格式:WAV
错误码描述解决方案
invalid_api_keyAPI密钥无效检查Authorization头中的API密钥
model_not_found模型不存在确认使用正确的qwen-tts模型名称
invalid_voice音色不支持检查音色参数是否在支持列表中
text_too_long文本过长减少输入文本长度至512个Token以内
quota_exceeded配额不足检查账户余额或请求频率限制
  1. 音频文件为空或损坏
  • 检查API密钥是否有效
  • 确认渠道配置正确
  • 验证模型名称和音色参数
  1. 请求超时
  • 检查网络连接
  • 减少文本长度
  • 重试请求
  1. 音色不生效
  • 确认使用的模型版本支持该音色
  • 检查音色参数大小写

qwen-tts 系列模型按照字符数计费:

  • 计费单位: 按输入字符数计算
  • 计费方式: 预付费模式,从账户余额扣除
  • 价格: 详见管理后台的价格配置
  1. 标点符号: 合理使用标点符号可以改善语音节奏
  2. 数字处理: 建议将数字写成中文形式(如:123 → 一百二十三)
  3. 英文单词: 中英混合时,英文单词会按照中文语音规则发音
  1. 场景匹配: 根据内容类型选择合适的音色
  2. 一致性: 同一应用建议使用统一的音色
  3. 测试: 建议先测试各种音色效果再确定
  1. 缓存: 对于重复的文本可以缓存音频文件
  2. 分段: 长文本建议分段处理
  3. 并发: 合理控制并发请求数量
  • :check_mark_button: 新增qwen-tts系列模型支持
  • :check_mark_button: 支持7种不同音色
  • :check_mark_button: 兼容OpenAI标准API格式
  • :check_mark_button: 支持流式和非流式响应
  • :check_mark_button: 完整的错误处理机制
  • :check_mark_button: 多语言SDK示例

如果在使用过程中遇到问题,请:

  1. 查看本文档的故障排除部分
  2. 检查API响应中的错误信息
  3. 联系技术支持团队

注意: 本API完全兼容OpenAI的/v1/audio/speech接口规范,可以直接替换现有的OpenAI TTS调用。


4All API · 一站式AI大模型API聚合平台 | 价格 | 联系我们

© 2025 4All API. All rights reserved.