一個歌詞工具庫,支援解析、生成與後處理
Warning
本專案目前仍在開發中,部分介面(API)尚未穩定。
- 格式推斷 — 支援透過輸入內容自動推斷格式
- 外掛系統 — 內建多種外掛,可按需載入
- Pipeline — 鏈式呼叫 API,完全控制處理順序
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