崩溃恢复|强退后 autosave 自动拯救你的工作
为什么会崩溃
虽然 OpenUtau 是开源社区维护,但稳定性已经相当不错。常见崩溃原因:
| 原因 | 频率 |
|---|---|
| 打开 Preferences → 某些旧版本有 bug | 偶发 |
| 渲染大 DiffSinger 工程 CPU 内存溢出 | 少见 |
| macOS Intel 上某些版本白屏 | 偶发 |
| 音频驱动问题(切换设备时) | 少见 |
| 导入异常格式文件 | 少见 |
任何崩溃都不会删除你的 .ustx 源文件——OpenUtau 的崩溃保护会确保 autosave 备份不丢。
崩溃后自动恢复流程
情况一:OpenUtau 崩了,手动重新打开
OpenUtau 下次启动时检测到有未恢复的 autosave(上次没正常 Exit),会弹出:
检测到之前有未恢复的工程,是否恢复?
点"恢复" → 加载 autosave → 检查内容 → 手动 File → Save 覆盖正式文件。
情况二:启动时没弹恢复对话框,但发现文件丢了
手动找 autosave:
| 工程状态 | autosave 位置 |
|---|---|
| 已保存的工程 | 工程同目录,文件名 filename-autosave.ustx |
| 未保存的工程 | Singers/Resamplers 目录下的 Backups/ 文件夹 |
手动打开 autosave → 检查内容 → 另存为正式工程。
避免崩溃损失的日常习惯
习惯一:缩短自动保存间隔
Preferences → Auto save interval → 改成 15 秒或 10 秒。大工程可能保存慢,但崩溃损失更少。
习惯二:关键节点手动多存几份
Ctrl+S 不只有一个版本:
- 版本 A 写完主旋律 → File → Save As →
song-v1.ustx - 版本 B 写完和声 → Save As →
song-v2.ustx - 版本 C 调完 DiffSinger 参数 → Save As →
song-v3.ustx
OpenUtau 不做版本控制,你自己手动存版本。
习惯三:大工程定期导出 WAV
写完一段重要的段落,导出 WAV 备份音频——就算工程全崩了,至少有音频产物。
习惯四:DiffSinger 工程特别注意
DiffSinger 引擎的渲染过程比 Classic 重采样器更容易出问题(大模型 + GPU/CPU 资源紧张):
- 渲染前先 Ctrl+S 存工程
- GPU 内存不够时,关几个其他占 GPU 的应用(浏览器、游戏)
- 如果用 CoreML,Intel Mac 上 DiffSinger 更容易崩 → 提高 DiffSinger Rendering Speedup 倍率到 100x 减少推理步骤
崩溃常见场景与对策
场景一:打开 Preferences 就崩
已知 bug(某些旧版本)。解决:
- 关 OpenUtau
- 找到 OpenUtau 安装目录 → 删
prefs.json - 重开 OpenUtau(Preferences 被重置为默认)
- 重新配置 Preferences(语言、GPU、Additional Singer Path 等)
删 prefs.json 是安全的——只是偏好设置丢失,声库、重采样器、工程文件都不受影响。
场景二:Intel Mac 上 Piano Roll 白屏
已知 bug。解决:
- 改变窗口大小(拖动边缘)→ 白屏自动消失
- 或切到其他应用再切回来
- 没根治方法,升级 OpenUtau 到最新版可能有改善
场景三:Windows 上 DiffSinger 渲染时崩溃
常见原因:
- DirectML GPU 内存不够 → 关掉其他占 GPU 的应用 → 重启 OpenUtau 重开
- DiffSinger 模型太大(2GB+)→ 确保有足够内存 → 提高 Rendering Speedup 倍率
- 声库 vocoder 版本不匹配 → 去声库发布页看推荐 vocoder → 重新导入
场景四:Linux 上渲染时进程被 OOM Killer 杀掉
Linux 内存不够时,内核会直接杀进程。解决:
- 增加 swap 空间
- 关闭其他内存占用大的进程
- DiffSinger Rendering Speedup 调大(减少推理步数)
- 用 ENUNU 代替 DiffSinger(模型更轻量)