提示可控的情感 / 韵律语音合成框架。 用文本、风格与情感提示驱动 TTS,生成 情感与韵律可控的语音,并支持流式推理。
把「怎么读」从「读什么」里解耦出来:你用一句自然语言描述语气,prosodia 把它 翻译成可解释的控制量,再合成对应的语音。
- 🗣️ 提示驱动:中英双语自然语言提示 → 可解释的控制量(情感 / 语速 / 基频 / 能量)。
- 🎭 情感可控:8 类内置情感 + 连续 VAD 情感空间,支持强度调节与情感插值。
- 🎚️ 韵律可控:时长 / 基频 / 能量在推理期可乘性缩放,配合分类器无关引导(CFG)。
- ⚡ 流式推理:梅尔谱按帧切块、逐块出声,重叠相加消除边界咔哒,降低首包延迟。
- 🧩 可插拔声码器:默认 Griffin-Lim(无需权重、离线可跑),可替换为神经声码器。
- 🀄 中英混排:拼音 g2p + 英文字素回退,标点转停顿。
git clone https://github.com/weijietan09/prosodia.git
cd prosodia
pip install -e ".[dev]"
# 如需 CPU 版 torch:
pip install torch --index-url https://download.pytorch.org/whl/cpu要求 Python ≥ 3.10。
from prosodia import Synthesizer
synth = Synthesizer()
wav = synth.synthesize("今天天气真好,我们出去走走吧。", prompt="温柔而缓慢地说")from prosodia import StreamingSynthesizer
streamer = StreamingSynthesizer()
for chunk in streamer.stream("很高兴见到你!我们来聊聊可控语音合成。", prompt="开心、语速偏快"):
play(chunk) # 拿到一块就能播一块prosodia synth "你好世界" -o out.wav --prompt "开心地说"
prosodia stream "你好世界,欢迎使用 prosodia。" -o stream.wav
prosodia prompt "非常生气地大声质问" # 只看解析结果
prosodia emotions # 列出内置情感与 VAD 锚点文本 ─▶ 前端(规整+g2p) ─▶ 音素 ─┐
提示 ─▶ 提示系统 ─▶ 控制量/风格 ─┤
▼
编码器 ─▶ 情感/风格条件化 ─▶ 方差适配器 ─▶ 解码器 ─▶ 梅尔谱 ─▶ 声码器 ─▶ 波形
细节见 docs/architecture.md。
早期阶段(Alpha)。内置模型为随机初始化的参考实现,用于跑通链路与验证结构, 不代表音质;训练脚本与预训练权重仍在推进中。API 在 1.0 前可能变动。
MIT © Cheng Jiawei