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 发音词典和字体。

相关

  • 项目
  • 项目
  • 项目
  • 项目