Files
hmo 04db423416 Initial commit: skills library
- 70 skills with code and documentation
- Add .gitignore (ignore __pycache__, output/, temp/, venv/)
- Clean up test intermediates and caches
2026-04-26 19:27:40 +08:00

249 lines
5.8 KiB
Python

#!/usr/bin/env python3
"""
字幕纠错词库
集中管理所有语音识别纠错规则,方便维护和扩展。
"""
# 直接替换表:错误词 -> 正确词
# 这些是已知的固定错误,直接替换即可
DIRECT_FIXES = {
# 休止相关
"羞耻": "休止",
"休指": "休止",
"修止": "休止",
"八分羞耻": "八分休止",
"四分羞耻": "四分休止",
"十六分羞耻": "十六分休止",
"二分羞耻": "二分休止",
"全羞耻": "全休止",
"分羞耻": "分休止",
# 附点相关
"负点": "附点",
"副点": "附点",
"付点": "附点",
"浮点": "附点",
# 时值相关
"实质": "时值",
"实值": "时值",
"失值": "时值",
# 延音相关
"演音": "延音",
"言音": "延音",
"盐音": "延音",
"延因": "延音",
# 乐理相关
"阅历": "乐理",
"月理": "乐理",
"乐里": "乐理",
"乐礼": "乐理",
# 音符相关
"音苻": "音符",
"音扶": "音符",
"因符": "音符",
# 调号相关
"调苻": "调号",
"调扶": "调号",
"吊号": "调号",
# 拍号相关
"拍苻": "拍符",
"拍扶": "拍符",
"排符": "拍符",
# 谱号相关
"谱苻": "谱号",
"谱扶": "谱号",
"普号": "谱号",
# 手位相关
"首位": "手位",
"守位": "手位",
"受位": "手位",
"手味": "手位",
# 指法相关
"只发": "指法",
"织法": "指法",
"纸法": "指法",
"直发": "指法",
# 抬指相关
"台指": "抬指",
"抬纸": "抬指",
"台纸": "抬指",
"太指": "抬指",
# 支撑相关
"只撑": "支撑",
"肢撑": "支撑",
"知撑": "支撑",
"直撑": "支撑",
# 反复相关
"反服": "反复",
"反副": "反复",
"翻复": "反复",
"反赴": "反复",
# 高八度相关
"搞八度": "高八度",
"搞八渡": "高八度",
"膏八度": "高八度",
# 低八度相关
"底八度": "低八度",
"抵八度": "低八度",
# 连音相关
"联音": "连音",
"连因": "连音",
"莲音": "连音",
# 跳音相关
"挑音": "跳音",
"跳因": "跳音",
"眺音": "跳音",
# 还原相关
"还原记好": "还原记号",
"缓原记号": "还原记号",
"环原记号": "还原记号",
# 节拍相关
"节牌": "节拍",
"结拍": "节拍",
"结牌": "节拍",
# 节奏相关
"节凑": "节奏",
"接奏": "节奏",
# 分手相关
"分首": "分手",
"分守": "分手",
"分收": "分手",
# 慢练相关
"漫练": "慢练",
"曼练": "慢练",
"慢炼": "慢练",
# 强弱相关
"强若": "强弱",
"强落": "强弱",
"墙弱": "强弱",
# 其他
"负其实": "附其实",
"负加": "附加",
"一数排": "一组排",
}
# 歌曲名称补全表:片段 -> 完整名称
SONG_NAME_FIXES = {
"盖头来": "《掀起你的盖头来》",
"掀起我的盖头来": "《掀起你的盖头来》",
"掀起盖头来": "《掀起你的盖头来》",
"小星星": "《小星星》",
"两只老虎": "《两只老虎》",
"欢乐颂": "《欢乐颂》",
"献给爱丽丝": "《献给爱丽丝》",
"月光": "《月光奏鸣曲》",
"梦中的婚礼": "《梦中的婚礼》",
"水边的阿狄丽娜": "《水边的阿狄丽娜》",
"土耳其进行曲": "《土耳其进行曲》",
"小步舞曲": "《小步舞曲》",
"爱的罗曼史": "《爱的罗曼史》",
}
# 语义异常词列表:这些词在钢琴教学语境中几乎不可能出现
ANOMALY_WORDS = [
"羞耻",
"尴尬",
"恶心",
"呕吐",
"死亡",
"杀人",
"犯罪",
"监狱",
"股票",
"基金",
"彩票",
"赌博",
"毒品",
"战争",
"武器",
"休指",
"修止",
]
# 音乐术语词库:用于异常词的候选替换
MUSIC_TERMS = {
"八分音符",
"十六分音符",
"四分音符",
"二分音符",
"全音符",
"休止",
"八分休止",
"十六分休止",
"四分休止",
"二分休止",
"全休止",
"附点",
"反复记号",
"反复",
"高八度",
"低八度",
"八度记号",
"还原记号",
"还原",
"连音线",
"延音线",
"延音",
"连音",
"跳音",
"调号",
"拍号",
"谱号",
"升降号",
"指法",
"支撑",
"手位",
"手腕",
"放松",
"慢练",
"分手",
"合手",
"视奏",
"节拍",
"节奏",
"强弱",
"力度",
"踏板",
"音程",
"抬指",
"落键",
"断奏",
"连奏",
"把位",
"双音",
"音阶",
"琶音",
"和弦",
"时值",
"语言节奏",
"《掀起你的盖头来》",
}
# 正则模式替换规则
ANOMALY_PATTERNS = [
{
"pattern": r"([一二三四五六七八九十百千万\d]+)分羞耻",
"replace": r"\1分休止",
"reason": "音乐教学中'羞耻'语义异常,结合'X分'上下文推断为'休止'",
},
{
"pattern": r"分羞耻",
"replace": "分休止",
"reason": "音乐教学中'分羞耻'语义异常,推断为'分休止'",
},
{
"pattern": r"([一二三四五六七八九十百千万\d]+)分休指",
"replace": r"\1分休止",
"reason": "音乐教学中'休指'语义异常,推断为'休止'",
},
{
"pattern": r"盖头来",
"replace": "《掀起你的盖头来》",
"reason": "'盖头来'是歌曲名片段,补全为完整歌曲名",
},
{
"pattern": r"掀起我的盖头来",
"replace": "《掀起你的盖头来》",
"reason": "歌曲名纠正",
},
]