tavern-speech-2.8-turbo 是高速中文语音合成模型,300 多个系统音色,同步合成约 1 秒出音频;同时支持最长 5 万字符的异步长文本合成,适合有声书、广播剧、角色配音。
快速信息
| 项目 | 说明 |
|---|---|
| 模型名称 | tavern-speech-2.8-turbo |
| 价格 | 8 元/万字符 |
| 同步合成 | POST /v1/audio/speech,单次最多 10000 字符,约 1 秒返回 |
| 异步合成 | POST /v1/chat/completions,单次最多 50000 字符,返回音频包下载链接 |
| 输出格式 | mp3(默认)/ wav / flac |
| Base URL | https://deepseektavern.com/v1 |
获取 API Key
登录 DeepSeek Tavern 控制台,在「令牌管理」中创建 API Key。详细步骤参考:API 密钥获取指南。
Base URL 统一为 https://deepseektavern.com/v1,认证方式:Authorization: Bearer <你的API密钥>。下文示例中的 YOUR_API_KEY 请替换为你自己的 Key。
同步合成
POST https://deepseektavern.com/v1/audio/speech,直接返回音频文件。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | tavern-speech-2.8-turbo |
input | string | 是 | 要合成的文本,最多 10000 字符 |
voice | string | 是 | 音色 id,见下方「音色」一节 |
response_format | string | 否 | mp3(默认)/ wav / flac |
speed / vol / pitch / emotion / voice_modify / language_boost | — | 否 | 定制参数,见「定制音色」 |
instructions | string | 否 | 上述定制参数的 JSON 字符串写法,见「定制音色」 |
curl 示例
curl https://deepseektavern.com/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "tavern-speech-2.8-turbo",
"input": "欢迎回来,<#0.5#>今天也辛苦了。(sighs)要不要先喝杯热茶?",
"voice": "female-tianmei",
"response_format": "mp3"
}' \
--output output.mp3
Python 示例(OpenAI SDK)
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://deepseektavern.com/v1")
with client.audio.speech.with_streaming_response.create(
model="tavern-speech-2.8-turbo",
voice="male-qn-jingying",
input="各位旅人,欢迎来到灰石镇。<#0.3#>今晚的篝火晚会,可别错过了。",
response_format="mp3",
) as resp:
resp.stream_to_file("output.mp3")
异步合成(长文本 / 有声书)
POST https://deepseektavern.com/v1/chat/completions,单次最多 50000 字符。用户消息内容可以是:
- 纯文本:直接放要朗读的内容,使用默认音色
- JSON 字符串:指定音色和参数,例如
{"text":"……","voice":"male-qn-jingying","speed":1.1}
长文本建议加 "stream": true 避免等待超时。返回内容是音频包下载链接:一个 tar 压缩包,里面包含音频和字幕文件,链接 9 小时内有效,请及时下载。
curl 示例
curl -N https://deepseektavern.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "tavern-speech-2.8-turbo",
"stream": true,
"messages": [
{"role": "user", "content": "{\"text\":\"那天夜里,雨下得很大。<#1.0#>他推开酒馆的门……\",\"voice\":\"male-qn-jingying\",\"speed\":1.1}"}
]
}'
Python 示例:有声书
import json
import re
import requests
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://deepseektavern.com/v1", timeout=900)
text = open("chapter1.txt", encoding="utf-8").read() # 最多 50000 字符
content = json.dumps({"text": text, "voice": "Chinese (Mandarin)_Radio_Host", "speed": 1.0},
ensure_ascii=False)
stream = client.chat.completions.create(
model="tavern-speech-2.8-turbo",
stream=True,
messages=[{"role": "user", "content": content}],
)
full = ""
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
full += chunk.choices[0].delta.content
print(full)
# 提取音频包链接并下载(tar 包含音频和字幕,9 小时内有效)
url = re.search(r"https?://[^\s)\]]+", full).group(0)
with requests.get(url, stream=True, timeout=600) as r:
r.raise_for_status()
with open("chapter1.tar", "wb") as f:
for part in r.iter_content(1 << 16):
f.write(part)
# 解压:tar -xf chapter1.tar
文本技巧
| 写法 | 效果 | 示例 |
|---|---|---|
<#秒数#> | 插入停顿,单位秒,范围 0.01–99.99 | 你好<#0.5#>我是旅人 |
(laughs) | 笑声 | 真的吗(laughs)太好了 |
(sighs) | 叹气 | (sighs)又下雨了 |
(breath) | 换气声 | 跑了好久(breath)终于到了 |
| 换行 | 代表分段,段落之间会自然停顿 | — |
音色
1. 使用现有音色
把 voice 设为 voice_id 即可。系统共有 300 多个音色(含中、英、日、韩等多语种),下表列出全部 64 个中文名音色:
| voice_id | 名字 | 描述 |
|---|---|---|
male-qn-qingse | 青涩青年音色 | |
male-qn-jingying | 精英青年音色 | |
male-qn-badao | 霸道青年音色 | |
male-qn-daxuesheng | 青年大学生音色 | |
female-shaonv | 少女音色 | |
female-yujie | 御姐音色 | |
female-chengshu | 成熟女性音色 | |
female-tianmei | 甜美女性音色 | |
male-qn-qingse-jingpin | 青涩青年音色-beta | |
male-qn-jingying-jingpin | 精英青年音色-beta | |
male-qn-badao-jingpin | 霸道青年音色-beta | |
male-qn-daxuesheng-jingpin | 青年大学生音色-beta | |
female-shaonv-jingpin | 少女音色-beta | |
female-yujie-jingpin | 御姐音色-beta | |
female-chengshu-jingpin | 成熟女性音色-beta | |
female-tianmei-jingpin | 甜美女性音色-beta | |
clever_boy | 聪明男童 | |
cute_boy | 可爱男童 | |
lovely_girl | 萌萌女童 | |
cartoon_pig | 卡通猪小琪 | |
bingjiao_didi | 病娇弟弟 | |
junlang_nanyou | 俊朗男友 | |
chunzhen_xuedi | 纯真学弟 | |
lengdan_xiongzhang | 冷淡学长 | |
badao_shaoye | 霸道少爷 | |
tianxin_xiaoling | 甜心小玲 | |
qiaopi_mengmei | 俏皮萌妹 | |
wumei_yujie | 妩媚御姐 | |
diadia_xuemei | 嗲嗲学妹 | |
danya_xuejie | 淡雅学姐 | |
Chinese (Mandarin)_Reliable_Executive | 沉稳高管 | 一位沉稳可靠的中年男性高管声音,标准普通话,传递出值得信赖的感觉。 |
Chinese (Mandarin)_News_Anchor | 新闻女声 | 一位专业、播音腔的中年女性新闻主播,标准普通话。 |
Chinese (Mandarin)_Mature_Woman | 傲娇御姐 | 一位妩媚成熟的青年御姐声音,标准普通话。 |
Chinese (Mandarin)_Unrestrained_Young_Man | 不羁青年 | 一位潇洒不羁的青年男性声音,标准普通话。 |
Arrogant_Miss | 嚣张小姐 | 一位嚣张自信的青年女性声音,标准普通话,展现出优越感。 |
Robot_Armor | 机械战甲 | 一位电子化、机器人般的青年男性声音,适合科幻或未来主义内容的标准普通话。 |
Chinese (Mandarin)_Kind-hearted_Antie | 热心大婶 | 一位温和善良的中年大婶声音,标准普通话,温暖而体贴。 |
Chinese (Mandarin)_HK_Flight_Attendant | 港普空姐 | 一位礼貌的中年女性空乘员声音,带有港式普通话口音,清晰而有礼。 |
Chinese (Mandarin)_Humorous_Elder | 搞笑大爷 | 一位爽朗幽默的老年男性大爷声音,带有北方口音的中文,充满个性。 |
Chinese (Mandarin)_Gentleman | 温润男声 | 一位温润磁性的青年男性声音,标准普通话。 |
Chinese (Mandarin)_Warm_Bestie | 温暖闺蜜 | 一位温暖清脆的青年女性闺蜜声音,标准普通话,友好而清晰。 |
Chinese (Mandarin)_Male_Announcer | 播报男声 | 一位富有磁性的中年男性播报员声音,标准普通话,清晰而权威。 |
Chinese (Mandarin)_Sweet_Lady | 甜美女声 | 一位温柔甜美的青年女性声音,标准普通话。 |
Chinese (Mandarin)_Southern_Young_Man | 南方小哥 | 一位质朴的青年男性声音,带有南方口音的中文。 |
Chinese (Mandarin)_Wise_Women | 阅历姐姐 | 一位富有阅历、声音抒情的中年姐姐声音,标准普通话。 |
Chinese (Mandarin)_Gentle_Youth | 温润青年 | 一位温柔的青年男性声音,标准普通话。 |
Chinese (Mandarin)_Warm_Girl | 温暖少女 | 一位温柔温暖的少年女声,标准普通话。 |
Chinese (Mandarin)_Kind-hearted_Elder | 花甲奶奶 | 一位慈祥和蔼的老年女性奶奶声音,标准普通话。 |
Chinese (Mandarin)_Cute_Spirit | 憨憨萌兽 | 一位呆萌可爱的少年男声,适合憨厚的萌兽角色。 |
Chinese (Mandarin)_Radio_Host | 电台男主播 | 一位富有诗意的青年男性电台主播声音,标准普通话,声音流畅引人入胜。 |
Chinese (Mandarin)_Lyrical_Voice | 抒情男声 | 一位磁性抒情的青年男性声音,标准普通话,流畅而富有表现力。 |
Chinese (Mandarin)_Straightforward_Boy | 率真弟弟 | 一位认真率真的少年弟弟声音,标准普通话。 |
Chinese (Mandarin)_Sincere_Adult | 真诚青年 | 一位真诚、富有鼓励性的青年男性声音,标准普通话。 |
Chinese (Mandarin)_Gentle_Senior | 温柔学姐 | 一位温暖温柔的青年学姐声音,标准普通话。 |
Chinese (Mandarin)_Stubborn_Friend | 嘴硬竹马 | 一位嘴硬心软、不羁的青年竹马声音,标准普通话。 |
Chinese (Mandarin)_Crisp_Girl | 清脆少女 | 一位温暖清脆的少女声音,标准普通话。 |
Chinese (Mandarin)_Pure-hearted_Boy | 清澈邻家弟弟 | 一位认真清澈的邻家少年弟弟声音,标准普通话。 |
Chinese (Mandarin)_Soft_Girl | 软软女孩 | 一位温暖柔软的青年女性声音,带有南方口音的中文。 |
Cantonese_ProfessionalHost(F) | 专业女主持 | 一位中性、专业的青年女性粤语主持人声音。 |
Cantonese_GentleLady | 温柔女声 | 一位平静温柔的青年女性粤语声音。 |
Cantonese_ProfessionalHost(M) | 专业男主持 | 一位中性、专业的青年男性粤语主持人声音。 |
Cantonese_PlayfulMan | 活泼男声 | 一位活泼深情的青年男性粤语声音。 |
Cantonese_CuteGirl | 可爱女孩 | 一位柔和可爱的青年女性粤语声音。 |
Cantonese_KindWoman | 善良女声 | 一位亲切善良的青年女性粤语声音。 |
其他语种示例 id:
| voice_id | 语种 |
|---|---|
English_Graceful_Lady | 英文女声 |
English_Persuasive_Man | 英文男声 |
Japanese_Whisper_Belle | 日文女声 |
粤语音色(如 Cantonese_GentleLady)需要配合 "language_boost": "Chinese,Yue" 使用,发音才是地道粤语。
{
"model": "tavern-speech-2.8-turbo",
"input": "今日天气几好,不如一齐去饮茶啊?",
"voice": "Cantonese_GentleLady",
"language_boost": "Chinese,Yue"
}
2. 定制音色
混合音色:把多个音色按权重混合成新声音,格式 音色id:权重,用逗号分隔,最多 4 个,权重 1–100:
"voice": "female-tianmei:60,female-chengshu:40"
情绪、语速、音量、音调:可作为请求体顶层字段传:
| 参数 | 取值 | 说明 |
|---|---|---|
emotion | happy / sad / angry / fearful / disgusted / surprised / calm | 情绪 |
speed | 0.5 – 2 | 语速 |
vol | 0 – 10 | 音量 |
pitch | -12 – 12 | 音调 |
音色微调 voice_modify:
| 字段 | 取值 | 说明 |
|---|---|---|
pitch | -100 – 100 | 音高偏移 |
intensity | -100 – 100 | 力度 / 强度 |
timbre | -100 – 100 | 音色质感 |
sound_effects | spacious_echo / auditorium_echo / lofi_telephone / robotic | 音效:空旷回声 / 礼堂回声 / 电话音 / 机器人 |
顶层字段写法(curl)
curl https://deepseektavern.com/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "tavern-speech-2.8-turbo",
"input": "哼,才不是特意等你的呢!",
"voice": "female-shaonv:70,qiaopi_mengmei:30",
"emotion": "happy",
"speed": 1.15,
"pitch": 2,
"voice_modify": {"timbre": 30, "sound_effects": "spacious_echo"}
}' \
--output tsundere.mp3
instructions 写法(任何 OpenAI SDK 通用)
上面所有定制参数也可以写成 JSON 字符串放进 instructions 字段,例如 "instructions": "{\"emotion\":\"happy\",\"voice_modify\":{\"timbre\":30}}"。instructions 是 OpenAI 语音接口的标准字段,因此这种写法在任何 OpenAI SDK 和兼容客户端里都能用,不需要额外的自定义参数支持。
import json
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://deepseektavern.com/v1")
opts = {
"emotion": "sad",
"speed": 0.9,
"voice_modify": {"pitch": -20, "timbre": 30, "sound_effects": "lofi_telephone"},
}
with client.audio.speech.with_streaming_response.create(
model="tavern-speech-2.8-turbo",
voice="Chinese (Mandarin)_Gentle_Youth",
input="喂?<#0.5#>是我。<#0.8#>(sighs)我只是……想听听你的声音。",
instructions=json.dumps(opts),
) as resp:
resp.stream_to_file("phone_call.mp3")
声音复刻(克隆你自己的声音)目前不开放自助,如有需要请联系管理员。
计费说明
| 项目 | 价格 |
|---|---|
| 按字符计费 | 8 元/万字符 |
| 示例:一章 5000 字有声书 | 约 4 元 |