零样本富有表现力的语音克隆与语音生成。
访问 scenema.ai/audio 收听所有演示并亲自试用。
现有的所有文本转语音系统都能将文字转换为声音,但没有一个能真正“表演”。Scenema Audio 生成的语音具有意图、节奏控制、呼吸调节以及在单次生成中就能转变的情感弧线,这一切都源于一个文本提示——它不仅描述要说什么,还描述要怎么说。
Scenema Audio 构建于从 LTX 2.3 的 220 亿参数视听模型中提取的音频扩散转换器之上,它学习了人们在真实场景中的真实声音:愤怒、大笑、低语、哭泣、疲惫、恐惧。
| 文件 | 大小 | 描述 |
|---|---|---|
scenema-audio-transformer.safetensors | 9.8 GB | 音频扩散转换器(bf16) |
scenema-audio-transformer-int8.safetensors | 4.9 GB | 音频扩散转换器(INT8,质量相同) |
scenema-audio-pipeline.safetensors | 6.7 GB | 音频 VAE 解码器 + 声码器 + 文本投影 |
scenema-audio-vae-encoder.safetensors | 42.7 MB | 用于参考 voice 编码的音频 VAE 编码器 |
git clone https://github.com/ScenemaAI/scenema-audio.git
cd scenema-audio
export HF_TOKEN=your_huggingface_token
docker compose up模型会在首次启动时下载(约38 GB)并缓存在 Docker 卷中。完整文档请参见 GitHub 仓库。
<speak voice="VOICE_DESCRIPTION" gender="male|female"
scene="OPTIONAL_SCENE" language="OPTIONAL_LANG_CODE">
<action>Performance direction.</action>
Speech text here.
</speak>| 属性 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|
voice | 是 | 详细的声音描述。决定 vocal 音质、情感、口音、年龄、音色和表达方式。 | |
gender | 是 | "male" 或 "female"。控制已编译提示中的代词分配。 | |
scene | 否 | 环境背景。决定语音周围的环境音频。 | |
language | 否 | "en" | 语言代码。 |
voice 属性是主要控制项。描述越丰富具体,效果越好:
<action> 标签是舞台指示,用于塑造语音的表达方式。将它们放在语音片段之间,以指导情感转变、语速和发声状态:
<speak voice="Middle-aged man, warm but weathered." gender="male">
<action>Calm, almost casual. Staring at his hands.</action>
I used to think I had all the time in the world.
<action>Voice tightens. Fighting to stay composed.</action>
Then one Tuesday morning, the doctor said three words that changed everything.
<action>Long pause. Deep breath. Raw but steady.</action>
And I realized I hadn't called my son in six months.
</speak>提供10-20秒具有一定情感变化的参考音频。模型将根据提示生成富有表现力的语音,并将参考语音的身份特征迁移到生成的语音表现中。
{
"prompt": "<speak voice="\"Gravelly" male voice, fast talking, rough.\" gender="\"male\""><action>He completely loses it</action>What are you waiting for?!</speak>",
"reference_voice_url": "https://example.com/reference.wav"
}任何声音都能演绎任何情感,即便该声音从未在那种情绪状态下被录制过。
<speak voice="A man on the edge. Explosive rage. Italian-American inflection."
gender="male" scene="A dimly lit office, late at night">
<action>He stands up slowly, voice dangerously low</action>
You come into my house, you eat my food, and then you got the nerve
to tell me how to run my business.
<action>Voice rising, finger pointing</action>
I built this thing from nothing while you were sitting on your ass.
</speak><speak voice="A six-year-old girl, bright and excited, speaking fast
with breathless enthusiasm. Slight lisp on S sounds."
gender="female">
Mommy look! There is a rainbow and it goes all the way across the whole sky!
</speak><speak voice="Male, mid 40s. Weathered. Urgent, projecting over wind."
gender="male" scene="Open dock in a thunderstorm, heavy rain"
shot="scene">
<sound>Heavy rain and wind howling</sound>
<action>He shouts over the storm</action>
Get the lines! She is pulling loose!
<sound>Thunder cracks overhead</sound>
Move! I said move!
</speak>| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
prompt | string | 必填 | <speak> XML 字符串 |
mode | string | "generate" | "generate" 表示完整流程。"voice_design" 表示 15 秒语音预览。 |
reference_voice_url | string | null | 用于零样本语音克隆的参考音频 URL。理想时长为 10-20 秒,且包含情感变化。 |
background_sfx | bool | false | 在输出中保留生成的音效。 |
validate | bool | true | 使用 Whisper 语音验证,若输出含混则重试。 |
seed | int | -1 | 生成种子。-1 表示随机。 |
pace | float | 1.5 | 时长分配乘数。值越高,语速越慢。 |
min_match_ratio | float | 0.90 | Whisper 验证阈值(0.0-1.0)。 |
skip_vc | bool | false | 跳过语音转换后处理。 |
vc_steps | int | 25 | SeedVC 扩散步数(10-50)。 |
vc_cfg_rate | float | 0.5 | SeedVC 引导率(0.0-1.0)。 |
返回包含 base64 编码 WAV 音频的 JSON:
{
"status": "succeeded",
"audio": "<base64-encoded WAV>",
"content_type": "audio/wav",
"metadata": {
"duration_s": 12.4,
"sample_rate": 48000,
"processing_ms": 8200,
"seed": 42
}
}XML prompt (voice + scene + action tags + text)
-> Gemma 3 12B text encoding
-> 8-step distilled latent diffusion
-> Audio VAE decoding
-> MelBandRoFormer vocal separation (strips SFX unless background_sfx=true)
-> SeedVC voice identity transfer (when reference provided or multi-chunk)
-> Output WAV (48kHz stereo)对于较长文本,系统会使用Kokoro音素级时长估计在句子边界处进行分割,并通过A2V潜变量条件控制来保持片段之间的语音连续性。
| 显存 | 音频模型 | Gemma | 说明 |
|---|---|---|---|
| 16 GB | INT8(4.9 GB) | CPU 流式处理 | 需要 32 GB 系统内存。每 chunk 编码约 7 秒。 |
| 24 GB | INT8(4.9 GB) | GPU 上的 NF4(约 8 GB) | 默认配置。每 chunk 编码约 0.2 秒。 |
| 48 GB | bf16(9.8 GB) | GPU 上的 bf16(24 GB) | 最佳质量。所有模型均驻留。 |
显存策略会自动检测。建议所有配置均使用 SageAttention 2。
在 NVIDIA RTX 4090(24 GB)上进行基准测试,输出约 55 秒音频:
| 配置 | 总时间 | 实时因子 |
|---|---|---|
| bf16 + bf16 流式处理 | 83秒 | 0.66x |
| INT8 + NF4(全 GPU) | 35秒 | 1.57x |
模型权重根据 LTX-2 Community License Agreement 发布。Scenema Audio 的音频扩散转换器源自 LTX 2.3 的视听模型,其权重受相同条款约束。
推理代码和服务器根据 MIT License 发布。
Gemma 3 12B(文本编码器)是一个 gated 模型,需要接受 Google 的使用条款。