制作记录.md

《好了歌》道教风格 · 童声合唱版 · 制作记录

日期:2026-09-16 文本:曹雪芹《红楼梦》第一回《好了歌》(公有领域,18 世纪) 曲:YuE2-3B 生成 · 48kHz 立体声 · cot=full


一、交付(两版,用于 A/B 试听)

#文件时长中位 F0音域(5–95%)说明
101-…-忠实原文2:16297 Hz (D4)A#3 – A#4歌词与原著完全一致
202-…-瞭字版(AB对比)2:20391 Hz (G4)A#3 – C5句尾完成体"了"写作瞭,音区更高更童

推荐先听第 2 版:它的中位 391 Hz 已进入童声典型音区(儿童歌唱基频常见 300–500 Hz);第 1 版 297 Hz 更接近成年女声。两版同 seed、同提示词,唯一差别就是那 4 个句尾字。


二、风格提示词

Taoist temple ritual chant with children's choir, pure innocent children chorus singing in unison,
boys and girls voices, clear high child timbre, wooden fish, temple bells and singing bowls,
guqin and xiao flute, deep drone, slow sacred ritual pulse, serene devotional and transcendent, 64 BPM

道教法器(木鱼、钟、磬、颂钵)+古琴+箫+持续低音,节奏缓慢庄严;人声要求童声齐唱。


三、生成参数

项值
模式cot=full
semantic_max_tokens5500
cfg_scale1.2(提高文本/风格贴合度,代价是耗时约翻倍)
seed121212(两版相同)
后端attention_backend=sdpa;16GB 显存档(offload_ar + tiled/384)

四、关于"了"读 liǎo:这一版做到了什么、没做到什么

读音结论不变:全篇"了"读 liǎo(了结义)。依据是跛足道人自注"好便是了,了便是好"+四联句脚全押"了"字(忘不了/草没了/眼闭了/随人去了/谁见了)。

这一版我多做了两件事:

  1. 结尾仍是原著点题句(好便是了 / 了便是好)——但需说明:本版规划 ABC 的 outro 段 Vocal 仍是全休止(器乐 outro),所以这句在音频里不唱,和前面四版一样。
  2. 补了一个"瞭"字实验版(B 版):把句尾 4 个完成体的"了"改成 瞭("了结"义的传世字形),观察模型是否会改读 liǎo。

仍然做不到的事:YuE2 只接受文本、不接受拼音或音素,读音完全由模型决定;而我也无法验证——本机没有 ASR,中文 ASR 输出汉字(le 与 liǎo 都写作"了")区分不了,Demucs+YIN 只能测音高。

👉 所以这两版放在一起,就是给你用耳朵判的 A/B:如果 B 版那几句听起来是 liǎo,说明"瞭"这个写法管用,后面所有版本都可以照此改写;如果两版听感一样,那就是模型内部映射的问题,文字层面无解。

若要 100% 保证 liǎo,只能换人声链路:支持拼音/音素控制的歌声合成(DiffSinger 系)、或人工演唱。


五、歌词

[verse]  世人都晓神仙好 / 惟有功名忘不了 / 古今将相在何方 / 荒冢一堆草没了
[verse]  世人都晓神仙好 / 只有金银忘不了 / 终朝只恨聚无多 / 及到多时眼闭了
[bridge] 世人都晓神仙好 / 只有姣妻忘不了 / 君生日日说恩情 / 君死又随人去了
[verse]  世人都晓神仙好 / 只有儿孙忘不了 / 痴心父母古来多 / 孝顺儿孙谁见了
[outro]  好便是了 / 了便是好        (器乐 outro,未唱)

B 版仅把句尾的 草没了/眼闭了/随人去了/谁见了 四处改成 瞭(忘不了 本来就是 liǎo,不动)。 两版完整文本见 歌词-忠实原文.txt 与 歌词-瞭字版.txt。


六、复现命令

python3 yue2-run.py --cot full --lyrics-file 歌词-忠实原文.txt --sem-mx 5500 \
  --attn sdpa --cfg 1.2 --seed 121212 \
  --style "$(cat style-daoxiao-tongsheng.txt)" --tag daoxiao-tongsheng-a --outdir <输出目录>

七、可继续做

下载此文件