Skip to content

About

作词助手 · Lyric Assistant —— 按词格逐字填词 + AI 辅助的桌面工具

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

作词助手(Lyric Assistant)

按词格逐字填中文歌词的工具:把词格(如 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。

许可证

AGPL-3.0

About

作词助手 · Lyric Assistant —— 按词格逐字填词 + AI 辅助的桌面工具

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages