← 返回
未分类

LRC歌词生成器

使用语音识别技术,从音频和文本歌词中生成LRC歌词文件。当用户想要创建LRC文件、将歌词与音频同步、为音乐生成字幕文件,或者将文本与音频时间戳对齐时,可以使用该功能。 Generate LRC lyric files from audio and text lyrics using speech recognition. Use when the user wants to create LRC files, sync lyrics with audio, generate subtitle files for music, or align text with audio timestamps.
user_c709f8e7
未分类 community v1.0.0 1 版本 99115 Key: 无需
★ 0
Stars
📥 112
下载
💾 1
安装
1
版本
#latest

概述

LRC歌词生成器

根据音频文件和歌词文本生成带时间轴的LRC文件。

工作流程

Task Progress:
- [ ] 步骤1: 检查依赖环境 (Whisper, FFmpeg)
- [ ] 步骤2: 读取歌词文本文件
- [ ] 步骤3: 使用Whisper识别音频获取时间戳
- [ ] 步骤4: 将识别结果与歌词文本对齐
- [ ] 步骤5: 生成LRC文件
- [ ] 步骤6: 验证输出

步骤1: 检查依赖环境

检查是否安装了必要的工具:

# 检查Whisper
python -c "import whisper; print('Whisper:', whisper.__version__)"

# 检查FFmpeg
ffmpeg -version

如未安装,执行安装:

# 安装Whisper及其依赖
pip install openai-whisper torch numba more-itertools tiktoken

# FFmpeg需单独安装,参见 https://ffmpeg.org/download.html

步骤2: 读取歌词文本

读取用户提供的歌词文件(通常是.txt格式):

with open("歌词.txt", "r", encoding="utf-8") as f:
    lyrics = f.read()

将歌词按行分割,保留空行用于表示停顿:

lyrics_lines = lyrics.strip().split("\n")

步骤3: 语音识别获取时间戳

使用Whisper识别音频,获取每句的时间戳:

import whisper
import json

model = whisper.load_model("small")  # 可选: tiny/base/small/medium/large

result = model.transcribe(
    "音频.wav",
    language="zh",
    verbose=True,
    word_timestamps=True
)

# 保存识别结果
with open("whisper_result.json", "w", encoding="utf-8") as f:
    json.dump(result, f, ensure_ascii=False, indent=2)

模型选择建议:

  • tiny: 最快,精度较低
  • base: 较快,适合清晰音频
  • small: 平衡选择(推荐)
  • medium/large: 最准确,但较慢

步骤4: 对齐歌词与时间戳

将Whisper识别的时间戳与正确歌词对齐:

def format_time(seconds):
    """转换为LRC时间格式 [mm:ss.xx]"""
    minutes = int(seconds // 60)
    secs = int(seconds % 60)
    millis = int((seconds % 1) * 100)
    return f"[{minutes:02d}:{secs:02d}.{millis:02d}]"

# 读取Whisper结果
with open("whisper_result.json", "r", encoding="utf-8") as f:
    data = json.load(f)

# 创建时间映射 (lyrics_index, start_time, end_time)
time_mapping = []
for i, seg in enumerate(data["segments"]):
    time_mapping.append((
        i,  # 对应歌词行索引
        seg["start"],
        seg["end"]
    ))

步骤5: 生成LRC文件

根据对齐结果生成LRC格式文件:

lrc_lines = []
lrc_lines.append("[ti:歌曲标题]")
lrc_lines.append("[ar:艺术家]")
lrc_lines.append("[al:专辑]")
lrc_lines.append("[by:QoderWork]")
lrc_lines.append("")

# 根据时间映射生成歌词行
for idx, start_time, end_time in time_mapping:
    if idx < len(lyrics_lines):
        line = lyrics_lines[idx]
        if line.strip():
            lrc_lines.append(f"{format_time(start_time)}{line}")
        else:
            lrc_lines.append("")

# 保存LRC文件
with open("歌词.lrc", "w", encoding="utf-8") as f:
    f.write("\n".join(lrc_lines))

步骤6: 验证输出

检查生成的LRC文件:

  1. 时间戳是否递增
  2. 歌词行数是否匹配
  3. 文件编码是否为UTF-8

完整示例脚本

scripts/generate_lrc.py

注意事项

  1. 音频质量: 清晰的音频识别效果更好
  2. 语言设置: 根据音频语言设置正确的language参数
  3. 诗歌/朗诵: 对于非歌曲类音频,识别可能有音近字错误,需要人工校对
  4. 时间调整: 生成的LRC可能需要微调,可用歌词编辑软件调整

输出格式示例

[ti:歌曲标题]
[ar:艺术家]
[al:专辑]
[by:QoderWork]

[00:11.94]绿绸半张 指落刀兵
[00:18.54]四方如城 他坐如渊
[00:26.98]筹码移山 收回江水
...

版本历史

共 1 个版本

  • v1.0.0 初始版本:支持使用Whisper语音识别生成LRC歌词文件 当前
    2026-04-13 03:15 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

security-compliance

Skill Vetter

spclaudehome
AI智能体技能安全预审工具。安装ClawdHub、GitHub等来源技能前,检查风险信号、权限范围及可疑模式。
★ 1,217 📥 266,653
developer-tools

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 670 📥 324,312
ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,362 📥 318,676