在线编辑器的设计以及脚手架

2025-03-12
2025-03-14
进度 10%
Elixir FBP

Link: SynapticStrings/QyEditor: Lightweight synthesizer interface.

想法来源

关于与 DiffSinger

确定想要自己开发的 trigger 是看到 DiffSinger 交流群有一位视障的朋友关于 DiffSinger 的无障碍支持提出了意见,我思维风暴了一下,自己本身确实有很多想法,想要构建出一个原型验证可行性,确定了实时 WebUI 的方案(致敬传奇歌声合成软件大市唱 和其成名曲《摘苹果》)。

再加上自己想要实现能够在 Intel 显卡上运行用在 OpenUTAU 的 DiffSinger 声库1。但是不会 C♯ ,所以想要尝试自己踩坑。

又因为之前配置能够在 I 卡运行 PyTorch 的 Python 环境的糟糕经历,加之 Python 拉跨的速度与并发性能,果断放弃了使用 Python 来开发。

查看资料发现 Elixir 生态存在运行 ONNX 的库(elixir-nx/ortex),发现其是 pykeio/ort 的 Elixir 包装,后者可以通过 Execution Provider 在 I 卡在运行,故确定了开发计划。

大致如下:

  • [DiffSinger] 手动在性能相对优越的设备编写脚本并且执行推理,确定能够通过 Ortex 在 Elixir 生态使用 DiffSinger
  • [Ortex] 尝试自己搭建能够通过 OpenVINO EP 在 Intel GPU 执行推理任务,修改 Ortex 的源码使其可被调用,提交或是自己维护相关分支
  • [QyEditor] 实现编辑器本体
    • 贝塞尔曲线编辑参数
    • 对声库内模型的查找以及组织来确定模型之间的依赖关系,实现更强的兼容
    • 分「演奏」与「调教」等环境,不同环境的设计思路和以往的应用完全不同,并且考虑无障碍支持

很轻巧是吧?

但是在第一步就出现问题了。

在此之前我简单的讲一下 DiffSinger 。

ComfyUI-like 与流程操作

既然选了 Elixir ,那么不加点什么符合这个语言调性的特征就不大好。

在 AI 绘图爆火的 23 年年初,我就想过要构建一个节点操作的方法。

进度

曲线操作

流程构建

并行化

困境

ONNX Segment fault

逻辑混乱


  1. OpenUTAU DiffSinger 声库实质上是 ONNX 模型↩︎

——亟待更新——