jamesondh/chimera-vocal-synth
the ultimate vocal synthesizer - sing, speak, beatbox, and more
它是什么
CHIMERA 是一款完全在您的网页浏览器中运行的语音合成器。它不是播放录制的音频样本,而是实时模拟人声的物理过程——肺、声带、声道、舌头、嘴唇和鼻子。繁重的工作由编译为 WebAssembly 的 Rust 引擎完成,该引擎在浏览器的音频系统内运行。相同的 Rust 代码也可以原生运行,用于测试,并作为名为 chimera 的命令行工具。
您可以用它做什么
- 演奏 — 在实时剖视图中拖动舌头、嘴唇和下巴。通过元音板、旋钮、电脑键盘或 Web MIDI 设备控制声音。
- 说话 — 输入英文文本(使用 CMU 发音词典,并带有字母到声音的回退)或 IPA,引擎会将其转换为嘴部动作和语音节奏。您可以在屏幕上看到手势乐谱和辅音图表。
- 唱歌 — 使用钢琴卷帘,每个音符都有歌词;辅音会定时在节拍之前出现。
- 打节拍 — 打击垫和步进音序器,其中每个鼓声实际上是一种发音手势(如嘴部动作),而不是样本。
- 动物声音 — 非人类声音:鸣禽(具有双声带鸣管,相当于鸟类的声带)、海豹、鳄鱼和大象。
- 二重奏 — URL 参数(
?show=<id>)播放带有两个 3D 头部的预渲染歌曲。
男性、女性和儿童声道连续融合。屏幕上看到的一切——声道中的气压、气流、声带、频谱和共振峰——都从实际引擎状态实时动画化。
如何运行
您需要安装 Rust(带有 wasm32-unknown-unknown 目标)和 Bun。然后:
bun install
bun run dev # 构建 WebAssembly,然后在 127.0.0.1:5317 启动 Vite
bun run test # 构建 wasm,运行 cargo 测试,然后运行 Bun 测试
音频系统需要安全上下文,因此请在 localhost 或 HTTPS 上打开它(README 建议使用 tailscale serve 作为一种选择)。Vercel 通过 vercel.json 构建它。
离线渲染和测量
CLI 可以在没有浏览器的情况下渲染音频:
cargo run --release -p chimera-cli -- render speech|text|song|notes|beatbox|creature|vowels …
cargo run --release -p chimera-cli -- diagnose # 检查鼻漏、共振峰、带宽、音高
cargo run --release -p chimera-cli -- compare csd # 将声音与真实歌手进行评分(儿童歌曲数据集)
cargo run --release -p chimera-cli -- compare tsp # 将语音与 23 位真实说话者进行评分(TSP 语音数据库)
bun tools/spectrogram.ts in.wav out.png # 从音频文件生成频谱图图像
文档
仓库包含关于声学模型(有限差分时域声道模拟、声源、解剖结构、手势)、引擎的实时性和确定性契约、UI 设计、与真实歌手和说话者的比较,以及用于逐步调整声音的爬山日志的文档。
许可证
MIT。捆绑的第三方文件保留其自己的许可证:CMU 发音词典和字体。
相关
- 项目
- 项目
- 项目
- 项目