Install
openclaw skills install @gouchunlei2-png/sikll佛教讲说/复讲/授课/演讲的自动评测与评分工具(通用版)。上传音频或视频(不支持纯文字稿),自动转写→双轨评估(讲说风格+内容分类)→六维打分(教义准确/结构逻辑/语言表达/契机应变/感悟感染/自主发挥)→生成图表化 HTML 报告。含结构大纲(简短 inline、较长换行)、来源比对(L0 大藏经+L1 天台藏+关键断言核验,去数字 ID,附 CBETA 行级深链)、读稿检测、音频-文本对齐分析、★讲述性质识别(仅在有实锤时显示复讲判定模块;v2.26 增强来源核验行级深链,v2.25 增强收尾自陈复讲/复述识别与卡顿/重复特征)、★复讲/副讲独立量表(与原创讲授解耦,前台仅展示判定依据/加分项/减分项/说明四项;后台增强开场结尾仪式提取、念诵溯源、卡顿与前后重复密度)。输出配色与版式已固化,跨平台(WorkBuddy/IMA/其他大模型)渲染一致。触发词:讲经评测、讲评分析、佛教演讲评分、复讲评价、授课评估、佛学讲说打分。
openclaw skills install @gouchunlei2-png/sikll配套引擎:
佛学讲评/build_v2.20.py(主引擎,读取analysis/*.packet.json与scores/*.json,输出reports_v2.20/下 HTML 报告 +_汇总.html)。当前技能规范版本 v2.25.0。 本文件是 自包含技能说明,可直接作为技能描述投到 IMA 或其他大模型平台使用。
OpenCC('t2s') 转简体后再进入全部计算与比对。所有转写引擎必须输出带时间戳的文本(词级或句级),否则依赖时序的特征(F2/F4/F5 等)无法计算,此时中止音频维度分析,不得在无时间戳情况下评分。
| 运行平台 | 推荐引擎 | 费用 | 时间戳 | 中文能力 |
|---|---|---|---|---|
| WorkBuddy / 本地(主路径) | faster-whisper | 免费(MIT) | ✅ 词级 | ✅ 多语言,CPU 可跑(int8) |
| IMA 平台(备选) | IMA 内置「录音纪要 / 转录」或沙箱 faster-whisper | 免费 | ✅ 句/词级 | ✅ 腾讯云 ASR |
本机一键跑通(已实测):
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple faster-whisper soundfile
export HF_ENDPOINT=https://hf-mirror.com # CN 环境模型走镜像
python transcribe.py <音频文件> small <输出.json> # small≈460MB,首次自动下载,之后缓存
compute_type="int8");中文用 small 起,术语密集可换 medium。.deps 随 Skill 分发。| 场景 | 处理 | 命令要点 |
|---|---|---|
| 文件过大(IMA 上传上限约 200MB) | 压成 16kHz 单声道 64kbps MP3 | ffmpeg -i in.wav -ar 16000 -ac 1 -b:a 64k out.mp3 |
| 视频文件(mp4/mov/avi) | 抽取音频再压 | ffmpeg -i in.mp4 -ar 16000 -ac 1 -b:a 64k out.mp3 |
| 高码率 WAV(48k 立体声 24bit) | 同上压缩 | 50min 原 ~830MB → 压后 ~23–33MB |
音频/视频
→ 转写(带时间戳,繁体经 OpenCC t2s 转简体)
→ 特征包 build_packets(F1–F7 + 名相密度 + 叙事/实践信号 + 问答 + 术语/祖师/经论…)
→ 六维打分 gen_scores(D1–D6 + 附加,保留人工修正接口;含来源核验、结构大纲、状态观察、亮点/待改进/建议)
→ build_v2.20.py(双轨评估 + 综合评定 + 总分 + 自动标题 + 渲染 HTML)
→ reports_v2.20/*.html + _汇总.html
build_v2.20.py 只做判定与渲染:读取 analysis/*.packet.json 与 scores/*.json(按文件名对齐),输出单文件 HTML。上游转写/特征提取/六维打分沿用既定流程。
合并原「讲说风格」与「讲述方式」规则,落为单一连续轴:
pos=0 = 通俗开示型(暖色/红)pos=5 = 平衡型(中间橙黄)pos=10 = 学院专业型(冷色/蓝)档位标签(定名,不再沿用"偏学院""偏通俗"旧称):
pos ≥ 7.0 学院专业型
pos ≥ 5.5 专业兼通俗型
pos ≥ 4.0 平衡型
pos ≥ 2.5 通俗兼专业型
else 通俗开示型
判定核心:以"是否依着原文/课本讲说"为主。
academy_raw,权重 35/25/20/10/10):
verbatim_score(长连贯句占比最高权)——最核心判据;acad_per_k(科判/注疏/论师/宗派名相);seq_score(主经锚定/引用跨度/主导率/章节递进);ritual_score(开经偈/回向/翻到/PPT/下课/打铃/敲钟/问答);term_density。casual_raw,权重 30/30/20/20):
pop_per_k(公案/故事/家常);flexibility(互动密度 + 叙事/实践信号 + F7 口语化);filler_per_k(排除"然后/就是/这个"等正式讲经也用的连接词);net = academy_raw − casual_raw;pos = clip(5.0 + tanh(net·1.5)·1.15·5.0, 0.3, 9.7)。三维得分:教义教理 a、叙事陈述 b、实践修证 c(均由名相密度、叙事信号、实践信号归一化到 0–10)。
主类判定:最高维 ≥ 3.0 且第二维 < 主类 × 0.5 → 单类;第二维 ≥ 主类 × 0.5 → 混合类("主类/次类")。
类型标签(统一称"实践",不再使用"实证/实证行修"等旧名):
| 标签 | 含义 |
|---|---|
| 教义教理类 | 以经论原文、名相、教理辨析为主 |
| 叙事陈述类 | 以公案、故事、人物、事件叙述为主 |
| 实践修证类 | 以止观、禅修、实修操作、心性体认为主 |
| 教义/叙事类、教义/实践类、叙事/教义类、叙事/实践类、实践/教义类、实践/叙事类 | 混合类型(按主导维度组合命名) |
由 style_rationale_v20(mode_str, details, pkt, sc, auto_title) 生成,是报告「二、双轨评估」下的核心文字段落。原则:
auto_title(自动标题基于开场信号 + 全文分析生成),seq_info.dominant(经论词频最高者)仅作交叉验证——两者不一致时分别表述(主题 + "内容中称引较多的经论包括《X》"),避免"心经高频引用"覆盖正文主经《增一阿含》这类错判。报告「六、来源比对」独立展示 L0 大藏经核验 + L1 天台藏核验 + 关键断言核验列表;不重复渲染"综合来源判定"白框(其结论语已并入「综合评定」一段,避免双重呈现)。
https://cbetaonline.dila.edu.tw/zh/{linehead}(例 https://cbetaonline.dila.edu.tw/zh/T46n1939_p0938c04),仅卷/页级者用卷级备用链 https://cbetaonline.dila.edu.tw/zh/{work_id}_{juan}。source 字段。抽样灵活化 sample_paragraphs():
detect_classroom_rituals():课前(开经偈/三皈依)、课中(翻到/PPT/课本)、课后(回向/下课/打铃/敲钟)、问答(老师好/讲师好)。六维:D1 教义准确度 / D2 结构与逻辑 / D3 语言表达 / D4 契机与应变 / D5 感悟与感染力 / D6 自主发挥度(另有「附加」项)。
权重:按内容类型选择权重表(A/B/C 型对应不同 D 维侧重),再乘讲说风格加权 style_adj(pos)(学院/平衡/通俗三档,对 D4/D5/D6 适当调整)。
总分:norm_total = Σ(各维得分 × 风格加权) / Σ(卡权重 × 风格加权) × 10。
评分档(必须严格沿用):
| 总分 | 等级 |
|---|---|
| ≥ 8.0 | 优秀 |
| 6.0 – 8.0 | 良好 |
| 5.0 – 6.0 | 及格 |
| < 5.0 | 待及格 |
六维评语基于各维 d_scores 自动补全薄弱项,去重并各上限 5 条;不与「综合评定 / 亮点待改进」重复。
读稿/念稿压分:大段连续书面长句 + 零自问零比喻零互动 + 语速极均匀 + 填充词极少 → D4/D5/D6 重扣;生疏/紧张(高填充词 + 高重复 + 停顿多 + 语速不稳)→ 下调。
讲述性质识别(内容特征驱动,告别"回向即共修"误判):评分前必读 analysis/名称.packet.json 的 nature / recitation_signature / nature_show_badge 字段(由 build_packets.py 自动判定,无需自行重扫)。
recitation_signature(0–1):≥0.6 即判定为"依文念诵+白话释义"的复述还原型 → 启用 复讲/副讲独立量表(score_recite_native()),不再与有经验讲者的原创讲授同尺合并(否则所有复讲皆不及格,不合理)。该判定不依赖任何标签、不依赖结尾回向/合掌/南无(公开讲法常态,绝不能当信号)。nature_show_badge=True):①自陈复讲/复述("我这次复讲""复讲完毕""我今天的复述就到这里"等;v2.25 增加模糊匹配,兼容 ASR 同音错字如"部署"/"富庶");②第三者总结+回向/共修(如同辈说"师兄辛苦"+"咱们就回向")。前台只展示四项:判定依据、加分项、减分项、本评分反映说明;不展示"独立量表标尺"和"原创讲授口径参比"(二者为后台隐藏规则)。无实锤字面则不显示该模块,但后台仍按特征改用复讲量表(避免误判正常讲法,也避免漏判只录中段的复讲)。build_packets.py 额外提取开场/结尾文本与仪式信号(opening_text / closing_text / ritual_signals),细粒度检测无书名号的经论引用(quoted_sutras_detail),并计算卡顿/填充词复合指标(hesitation_score),帮助更准确地判定场景、所依原典与复讲者语言熟练度。nature=原创讲授,不受影响,分数不降。ASR 错字不入分:名相识别错误结合上下文还原,绝不扣分。
generate_title() 依据抽样段落(含开场优先)+ 内容类型 + 讲说风格生成。title 直接采用;否则按"主经《X》/祖师/名相 + 场合词(讲义/开示/讲座)+ 内容后缀(公案故事/修行禅法)"组合。一、基本信息 源文件 / 时长 / 语速节奏 / 名相密度 / 问答互动 / 口语标记
二、双轨评估 2 枚 chip(讲说风格 + 内容分类)+ 综合评定 + 双轴可视化
三、总分 score + 等级(优秀/良好/及格/待及格)
四、六维得分 D1–D6 + 附加,进度条 + 各维评语
五、结构大纲 主旨 / 大纲 / 核心 三要素表格;其中「大纲」条目较长时按编号拆分为独立行,整体极短时保持一行
六、来源比对 L0 大藏经 + L1 天台藏 + 关键断言核验;只保留知识库中文名,不显示数字 ID
七、讲说状态观察 纯自然语言描述(**严禁任何数字/符号/字母标称**:禁止 F1–F7、F4=、CV=、字/分、处/千字、填充词/千字、语速169、flexibility= 等技术标签;只写人话,如"语速偏慢沉稳""相邻句重复偏多、过渡句反复""几乎无互动")
八、亮点 / 待改进 / 提升建议 三色标签块,每条按 ①②③④ 编号独立成行,核心短语加粗
佛学讲评报告 + 版本角标 v2.25;其下为自动生成的讲说题目(.report-title,加大加粗);再下为评出日期。_汇总.html:表格(#/标题/讲说风格/内容分类/总分/等级)+ 平均分 + 讲说风格分布 + 内容分布 + 评估框架说明。#2e7d32 / ≥70% 浅绿 #66bb6a / ≥50% 黄橙 #f9a825 / <50% 红 #c62828。所有报告以单文件 HTML、CSS 内联输出,不依赖任何外部样式表或字体;繁体统一经 OpenCC('t2s') 转简体。下列颜色与规格必须严格沿用,以保证 WorkBuddy / IMA / 其他大模型渲染一致:
全局
#f5f3ee;卡片 #ffffff,圆角 14px,轻微阴影。#2c2c2c;主色金 #c9a86a。-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", serif。标题与层级
h1 30px,下边框 3px 金 #c9a86a。.report-title:20px / font-weight 700 / 色 #2c2c2c(即"加大加粗",参考 chip 字重)。h2 18px,色金 #c9a86a,左侧 4px 金竖条。.score 54px 金 #c9a86a;.band 20px。讲说风格轴渐变(左→右,通俗深红 → 平衡 → 学院蓝)
#c0392b 0% → #e74c3c 14% → #f39c12 28% → #f1c40f 42% → #aaaaaa 50% → #3498db 72% → #2980b9 86% → #1a5276 100%
指示箭头 ▼ 与游标用 #c0392b。
内容分类轴渐变(左→右,教义珊瑚 → 叙事金黄 → 实践青绿)
#e17055 0% → #fdcb6e 28% → #ffeaa7 48% → #81ecec 72% → #00cec9 100%
指示箭头 ▼ 用 #e17055,标签字色 #d35400。
Chip 配色
讲说风格 chip:
#e8f0f7 / 字 #1a5fb4 / 边 #4a90e2(冷蓝)#fde8e8 / 字 #c0392b / 边 #e57373(暖红)#fff4e0 / 字 #c07700 / 边 #f5a623(中间橙黄)内容分类 chip(type_color_map,暖亮主题、混合类型鲜亮、无灰框):
| 标签 | 底(bg) | 字(fg) | 边(border) |
|---|---|---|---|
| 教义教理类 | #fff0f0 | #e17055 | #fab1a0 |
| 叙事陈述类 | #fef9e7 | #d4a012 | #f8d97a |
| 实践修证类 | #e8faf5 | #00b894 | #55efc4 |
| 教义/叙事类 | #fef5f5 | #e77f67 | #f5c6b0 |
| 教义/实践类 | #eaf4fc | #2980b9 | #85c1e9 |
| 叙事/教义类 | #fef5f5 | #e77f67 | #f5c6b0 |
| 叙事/实践类 | #fff8e1 | #e67e22 | #f0b27a |
| 实践/教义类 | #eaf4fc | #2980b9 | #85c1e9 |
| 实践/叙事类 | #fff8e1 | #e67e22 | #f0b27a |
fallback(仅当极特殊未命中)用暖金
#f3ecd9 / #9a7b3f / #c9a86a,绝不出现灰框。
chip 通用样式:padding 9px 22px、圆角 20px、font-size 15px、font-weight 700、min-width 96px、居中。
其他
.rationale:底 #fff4e0、左边 3px #f5a623、字 #5a3a00、行高 1.9。#e8f8ed/#1e7e3a、待改进 #fbe9e7/#c0392b、建议 #fff4e0/#c07700。OpenCC('t2s') 转简体,杜绝繁体残留。analysis/*.packet.json 与 scores/*.json 后运行
python build_v2.20.py
reports_v2.20/(单场 HTML + _汇总.html)。长音频转写耗时与音频时长成正比,必须以后台任务方式启动,避免阻塞对话;完成后由平台自动回呼,agent 接力渲染,全程无需用户追问。
run_in_background)启动:python transcribe.py <音频> small <transcripts/名称.json>;模型权重走 HF 缓存,首次下载后零网络等待。<task-notification> 会重新进入 agent 循环——收到通知即自动接力,依次执行:
build_packets.py(生成 analysis/*.packet.json + .txt)→ 读取全文与 packet 做六维评分与 L0/L1 核验(写出 scores/名称.json)→ build_v2.20.py(渲染 reports_v2.20/名称.html)→ present_files 弹出报告。TaskOutput(block=false) 查看,但不要轮询空等——依赖后台回呼即可。analysis/*.packet.json 一致):F1_语速_字每分、F2_均匀度_CV、F3_填充词_处每千字、F4_重复句_比、F5_停顿_>1.5s_次、F6_书面语_处每千字、F7_口语化_处每千字、名相密度_处每千字、讲说状态;另有 narrative_signal、practical_signal、question_marks、interact_words、quote_sutras、masters_mentioned、term_top。