一个歌词工具库,支持解析、生成与后处理
Warning
本项目目前仍在开发中,部分接口尚未稳定。
- 格式推断 — 支持通过输入内容自动推断格式
- 插件系统 — 内置多种插件,可按需加载
- 链式调用 — 链式调用,完全控制处理顺序
npm install music-lyric-kitPipeline 提供链式调用接口,让你完全控制歌词的处理顺序。
import { createParserPipeline } from 'music-lyric-kit'
const input = {
content: '[00:01.114]Hello world',
}
const { format, result } = createParserPipeline(input)
.infer()
.parse()
.backgroundExtract()
.agentExtract()
.pureExtract()
.pureClean()
.backgroundClean()
.interludeInsert()
.spaceInsert()
.stressMark()
.final()
console.log(format, result)每个转换方法都接受可选的 options 参数来自定义行为,不传则使用插件默认配置。
const { result } = createParserPipeline(input)
.infer()
.parse()
.interludeInsert({ checkTime: { first: 3000, normal: 8000 } })
.spaceInsert({ original: true, extended: false })
.final()如需更细粒度的控制,可以直接使用 Parser 类搭配插件。
import { Parser, Plugins } from 'music-lyric-kit'
const parser = new Parser()
// 格式插件
parser.plugin.add(new Plugins.Formats.Lrc.Parser())
parser.plugin.add(new Plugins.Formats.Ttml.AmllParser())
// 转换插件
parser.plugin.add(new Plugins.Transforms.Space.InsertPlugin())
parser.plugin.add(new Plugins.Transforms.Stress.MarkPlugin())
const input = {
original: '[00:01.114]Hello world',
}
// 推断格式
const format = parser.infer({ content: input })
if (format) {
const result = parser.parse(format, { content: input })
console.log(result)
}import { Generator, Plugins } from 'music-lyric-kit'
const generator = new Generator()
generator.plugin.add(new Plugins.Formats.Lrc.Generator())
const output = generator.generate('lrc', { content: result })
console.log(output)| 包名 | 说明 |
|---|---|
| music-lyric-kit | 主入口 |
| @music-lyric-kit/core | 插件系统 |
| @music-lyric-kit/lyric | 数据结构 |
| @music-lyric-kit/utils | 工具库 |
| 插件 | 说明 |
|---|---|
| @music-lyric-kit/plugin-format-lrc | LRC |
| @music-lyric-kit/plugin-format-ttml | TTML |
Copyright (c) 2026 - now, Folltoshe