按词格逐字填中文歌词的工具:把词格(如 4/4、2/2/3)摆成田字格,
对着格子填词,不用数字数,不会超格或漏格。
桌面版(Tauri)和网页版(浏览器)同一份代码。
由于作者不会作曲,且没有为曲作词经验,大部分功能及优化实际是为填词翻唱设计的。
- 钉子格:打字覆盖当前格,后面的字不会被顶走;删字原地留空,先写好的句尾始终待在自己的格子里
- 只收汉字:不管导入还是打字,夹带的英文、拼音、标点、符号、数字一律跳过、不占格(如
空天裂降(jiàng)三军→空天裂降三军) - 句内分组(如
2/2/3),+/−只作用于光标所在的分句;/在光标处断句或与上一分句合并 Alt + ←/→整句挪动一格,会把字挤出词格时自动拦截- 每句可存多个备选写法(可命名),随时切换对比;备注不占格子
- 和声句:整行括号的歌词(如
(煌煌国运华盖将倾 分说不尽且待星移))导入时自动变成紧跟主句的「和声句」——有自己的词格、可编辑、导出还原成带括号的一行;也能「+ 和声」手动加、或用句内「和声」按钮标记 - 每句右下角「+ 新增一句」:在这一句下面插新句
- 段落管理:新增、删除、上移、下移
- 框选:按住左键横向拖可选中一串格子(可跨句),
Backspace / Delete清空选中格、Cmd/Ctrl + C复制选中的字 - 顶栏「清空」:一键清空所有格子的字(歌名、备注、和声标记保留;每句已认出的辙会被记住),可撤销
- 左侧「文档栏」:新建 / 切换 / 删除多个歌词文件,自动保存到本地、重启还原
- 撤销 / 重做,自动保存,未保存标记
- 导入:粘贴、读剪贴板、
.txt/.lrc/.md文件,或把文件拖进窗口;可选仅词格或同时导入歌词(自动填字);支持《标题》、段落关键词(Verse/Chorus/主歌/副歌…,可带数字、括号、冒号)、[段落名]、行尾(备注)、|或※备选、纯数字词格行、XXXX占位行、X当空格子、空行分段、连续超过 8 句自动断开(在第 4、5 句之间,连续不超过 9 句)、合并导入 - 导入 MIDI 生成词格:「导入 → 选择 MIDI…」——选轨道、选「分段依据」(自动 / 休止 + Marker / 词格酱标记:认 C0/C#0/D0 三个切分音)、定「换句休止」阈值或按 Marker 分段,预览段 / 句 / 格数后导入;一个音符一格,文件里带 Lyric 事件的话字也一起填进来
- 导出:「导出」下拉 = 歌词 / 词格 / 带歌词 MIDI——歌词按词格对齐(空格子
X占位,可原样再导入,可选带全部备选※、备注、创作信息);词格只出结构(X+[段落名]+ 和声括号);带歌词 MIDI 把字写回音符的 Lyric 事件(词格酱的切分标记音会自动跳过,可勾选整个去掉),导出前逐句核对与导入时是否对得上,对不上报「第几段第几句」并拦下 - 「复制」下拉 = 复制歌词 / 复制词格到剪贴板
- 复制 / 粘贴 / 清空句;
⧉一键复制本句词格插入新句 - 查找替换:工具栏「查找」或
Cmd/Ctrl+F唤起浮动面板;全曲高亮 +‹ n/m ›计数翻页(Enter/Shift+Enter);替换会按字数自动增删格子(短了删格、长了插格,后面的字跟着挪、绝不丢字),有「替换一处」和「全曲替换」;只搜当前文件当前备选、不跨句 - 溢出处理:写到末格后多出的字不丢,暂存为该句溢出(标红「+…」并计数);「整理溢出」一键顺移到下一句,末句溢出自动新建一句
- 创作信息:导入时自动提取「作词:… / 作曲:… / 编曲:… / 二胡:…」等 credit 行(含一行多条、英文标签),不生成词格;credit 块中夹着的短裸行会识别为歌名;顶栏「创作信息」可查看编辑,导出可选写在歌词上方并可回读
- 韵脚提示:光标在第i句第j格时,自动识别该句最后有字的格子的十三辙韵部,同韵同色,状态栏汇总;,光标不在第i句任何一格时,自动识别第i句最后有字的格子的十三辙韵部,同韵同色,状态栏汇总;
- 韵辙锁定:点徽章给第i句第j格锁定一个辙,之后此格只能输入押该辙的字(多音字任一读音均放行),不中就拦下并提醒;不合辙时徽章转红
- AI 填词(右侧面板,和「原文」互斥,仅桌面版):默认 DeepSeek 与小米 MiMo(填 Key 即用),有40+预设,接口参考DSH;输入框下方选模型(带搜索)、选推理等级——按模型能力显示、各模型分别记住(DeepSeek:Default / None / Low / High / Max;MiMo:Default / None / Low / Medium / High);请求自动附上词格(分组字数、锁定辙、已有字、和声、备注),回复流式显示、本地逐句校验(字数 / 汉字 / 合辙),不合格自动回喂修正最多 3 次,通过后点「填入词格」——空格直填、有字的句子进「AI」备选,整次一步撤销
- 浅色 / 深色 / 跟随系统主题
需要 Node.js 与 Rust(Tauri 前置条件)。
npm install
npm run tauri dev
npm test
npm run tauri build
同一份代码也能直接跑在浏览器里(Safari / Chrome / Edge):
npm run dev # 打开 http://localhost:1420
npm run build # 产物在 dist/,可挂到任意静态服务器(支持子路径)
npm run preview # 本地预览构建产物
- 必须通过 http(s) 打开(
localhost或自己的服务器),不能直接双击dist/index.html - 编辑、自动保存、多文件、打开工程、导入(txt / lrc / md / MIDI)、导出(歌词 / 词格 / 带歌词 MIDI)、拖拽导入都能用
- 保存方式:Chrome / Edge 支持就地覆盖(第一次选好位置,之后直接覆盖;刷新页面后要再选一次);Safari 不支持覆盖,每次保存 = 下载一份新文件
- 「AI 填词」只有桌面版有(网页版按钮置灰提示)
- 歌词自动保存在浏览器的 localStorage 里,不同浏览器、不同地址互不相通
- 所有歌词文件自动保存在本机(localStorage),关掉再打开会原样恢复;每首歌是独立文件
- 自动保存只写本机数据库,浏览器格式,不生成任何文件;点状态栏右侧的文件状态(「未保存到文件」/ 文件路径)= 保存草稿备份(把全部歌词文件导出成一个
.json,位置自选) - AI :API Key 只存本机(
cige-grid-ai,明文);提示词只发给所填接口 - 恢复:用「打开工程」选择草稿备份文件,会自动识别并整体恢复全部歌词文件
- 本机存储键:
cige-grid-docs(全部文件)、cige-grid-theme、cige-grid-sidebar-width、cige-grid-sidebar-collapsed、cige-grid-export-options、cige-grid-ai(AI 设置)、cige-grid-ai-width、cige-grid-ai-open cige-grid-docs的值是一段 JSON:{ activeId, docs: [{ id, filePath, updatedAt, project }] };其中project与「保存工程」导出的.json完全同构- 想单独拿走某首歌:用「导出」→ 歌词(.txt)或「保存工程」(.json)
- macOS 上数据实际存放在
~/Library/WebKit/<应用标识>/…/LocalStorage/localstorage.sqlite3(WebKit 的 SQLite,值按 UTF-16 编码);开发版与打包版的数据目录不同,互不相通
| 快捷键 | 作用 |
|---|---|
Cmd/Ctrl + S |
保存 |
Cmd/Ctrl + F |
查找 / 替换(Enter 下一处、Shift+Enter 上一处、Esc 关) |
Shift + Cmd/Ctrl + S |
另存为 |
Cmd/Ctrl + Z |
撤销 |
Shift + Cmd/Ctrl + Z / Ctrl + Y |
重做 |
Cmd/Ctrl + [ / Cmd/Ctrl + ] |
光标所在分句减 / 加一格 |
Cmd/Ctrl + \ |
光标处断句 / 与上一分句合并 |
Alt + ←/→ |
整句左 / 右挪一格 |
← / → / ↑ / ↓ |
在格子 / 句子间移动光标 |
Enter |
移到下一句 |
Backspace / Delete |
原地删字 |
Tauri 2 + TypeScript + Vite + Vitest。