Install
openclaw skills install @gouchunlei2-png/sikll佛教讲说/复讲/授课/演讲的自动评测与评分工具。上传音频或视频(不支持纯文字稿),自动转写→判定类型级别(叙事/教义/实证 × 初/中/专)→六维打分(教义准确/结构逻辑/语言表达/契机应变/感悟感染/自主发挥)→生成图表化报告。含结构大纲表、来源核验(大藏经CBETA+天台藏)、读稿检测、音频-文本对齐分析。触发词:讲经评测、讲评分析、佛教演讲评分、复讲评价、授课评估、佛学讲说打分。
openclaw skills install @gouchunlei2-png/sikll触发:用户上传佛教相关讲说/复讲/授课/演讲/讲座录音或视频,要求评测、评分、分析、评价、打分。 不触发:非佛教内容的一般演讲评测(用通用演讲评测工具);纯文本校对;音视频转写(仅中间步骤)。
| 要求 | 说明 |
|---|---|
| 唯一合法输入 | 音频文件(mp3/wav/m4a/aac等)或视频文件(mp4/mov/avi等) |
| 不接受 | 纯文字稿、第三方预转写文档、PPT、讲义——即使上传者一提供,也忽略,自行从音频转写 |
| 转写引擎(按平台) | 见下文 §一.1 |
| 为何忽略文字稿 | 预转写稿会清洗掉停顿/重复/填充词/语速变化等关键特征,导致评分失真 |
若用户同时提供了文字稿,可注明"已收到参考文字稿,但本评测以自转写结果为准"。
所有转写引擎必须输出带时间戳的文本(word-level 或 segment-level),否则 F2/F4/F5 等依赖时序的特征无法计算。
本机(WB / 本地)是完整可执行主路径,不依赖任何云端:用 faster-whisper 本地转写(CPU/int8 即可,无需 GPU)。
| 运行平台 | 推荐引擎 | 费用 | 时间戳 | 中文能力 |
|---|---|---|---|---|
| WB / 本地(主路径) | faster-whisper | 免费(MIT) | ✅ 词级 | ✅ 多语言,CPU 可跑 |
| IMA 平台(备选) | IMA 内置「录音纪要 / 转录」或沙箱 faster-whisper | 免费 | ✅ 句/词级 | ✅ 腾讯云 ASR |
# 1) 安装依赖:国内环境务必用镜像,默认 PyPI 在 CN 常 <50kB/s 会超时失败
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple faster-whisper soundfile
# 2) 模型走国内镜像:默认 huggingface.co 在 CN 常被墙/极慢,否则 small(≈460MB) 下不动
export HF_ENDPOINT=https://hf-mirror.com
# 3) 转写(transcribe.py 会自动加载同目录 .deps 中的依赖,无需 venv)
python transcribe.py <音频文件> small <输出.json>
.deps 目录随 Skill 分发,transcribe.py 已内置 sys.path 注入,任何环境双击即可跑。compute_type="int8");中文用 small 起,术语密集可换 medium(更准但更慢、模型更大)。时间戳闭环保障:仅使用支持时间戳的引擎。若当前环境因故无法获得带时间戳文本,则中止音频维度分析(F2/F4/F5 等依赖时序的项),不得在无时间戳情况下评分。
上传或转写前若遇以下情况,先用 ffmpeg 预处理(本 Skill 附 convert.py;ffmpeg 取自 pip install imageio-ffmpeg 的静态二进制,轻量无重型依赖):
| 场景 | 处理 | 命令要点 |
|---|---|---|
| 文件过大(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 |
1. 输入接收 仅音频/视频 → 自转写(必须带时间戳)
1.5 术语还原 套用「佛教术语还原对照表」校正 ASR 专有名词错字(如"开示悟入佛之知见"误为"开师误入佛之之简"),还原后再进入指标计算与评分
2. 客观指标 时长·字数·段数·名相密度·问答数
3. 类型判定 叙事陈述型(A) / 教义教理型(B) / 实证行修型(C)
4. 级别判定 初级(1) / 中级(2) / 专业级(3)
5. 结构大纲 三要素双列表格(§五)
6. 音频维度 音频-文本对齐分析(§六,F1–F7 特征体系,自写中文脚本)
7. 来源核验 L0大藏经 + L1天台藏 逐条比对(§七)
8. 选用评分卡 九宫格选1(§四)
9. 六维打分 按校准原则评分(§四.3)
10. 报告输出 图表化Markdown(§九)
| 类型 | 代号 | 转写文本信号 | 典型内容 | 排除信号 |
|---|---|---|---|---|
| 叙事陈述型 | A | 名相密度低(<15/千字);叙事结构强;多"据说""历史上" | 祖师传记、佛教史、公案叙述、仪轨解说 | 无名相辨析、无止观指引 |
| 教义教理型 | B | 名相密度高(≥25/千字);释经结构;"所谓""此即""某大师云" | 经论讲解、名相专题、判教论述、教理比较 | 有明确名相定义/祖师对照 |
| 实证行修型 | C | 第一人称体验多;实操指令多;"当下""现前""亲切" | 止观教学、禅修引导、心性体认、实修答疑 | 重体验与操作,非概念辨析 |
兼类取主类为框架,兼类内容单独点评。
| 级别 | 代号 | 可靠信号(不依赖时长) | 典型场景 |
|---|---|---|---|
| 初级 | 1 | 名相少且浅;复述为主;无明显科判 | 入门级复述、初学者试讲(60分钟照本宣科也归初级) |
| 中级 | 2 | 有一定名相辨析;有少量发挥举例;有问答互动 | 常规授课、共修主讲、有基础的复讲 |
| 专业级 | 3 | 高名相密度;深度辨析;广泛引证祖典;系统性强 | 讲经比赛(15分钟极精粹亦可判专业级)、院校正式讲课 |
⚠️ 时长不进权重。15分钟可专业级;60分钟照本宣科可初级。
| 代号 | 维度 | 核心问题 |
|---|---|---|
| D1 | 教义准确度 | 内容是否符合经典/祖典原意?有无错解硬伤? |
| D2 | 结构与逻辑 | 条理是否清楚?层次分明?有章法? |
| D3 | 语言表达 | 清晰生动?深入浅出?口语化还是书面腔? |
| D4 | 契机与应变 | 能否回应听众关切?答问质量?有无灵活调整互动? |
| D5 | 感悟与感染力 | 有无个人体悟?能否启发听众?亲和力感召力? |
| D6 | 自主发挥度 | 照本宣科/读笔记,还是自有理解、举例、融通? |
| 评分卡 | D1准确 | D2结构 | D3表达 | D4应变 | D5感悟 | D6发挥 | 附加 | 关键词 |
|---|---|---|---|---|---|---|---|---|
| A1 叙事·初 | 1.5 | 1.0 | 1.5 | 0.6 | 2.4 | 2.0 | 1.0名相 | 鼓励真诚分享 |
| A2 叙事·中 | 1.5 | 1.5 | 1.5 | 1.0 | 2.4 | 2.0 | 0.1 | 要求有章法 |
| A3 叙事·专 | 2.0 | 2.0 | 1.5 | 1.0 | 2.0 | 1.5 | 0.0 | 学术/叙事水准 |
| B1 教义·初 | 2.3 | 0.8 | 1.0 | 0.7 | 2.2 | 2.0 | 1.0名相 | 宽容+鼓励 |
| B2 教义·中 | 2.3 | 1.3 | 1.0 | 1.2 | 2.2 | 1.5 | 0.5引证 | 均衡发展 |
| B3 教义·专 | 2.7 | 1.7 | 1.0 | 1.3 | 2.0 | 1.0 | 0.3引证 | 严格核验+体悟 |
| C1 实修·初 | 1.5 | 0.5 | 1.0 | 0.6 | 2.9 | 2.5 | 1.0指导 | 体悟至上 |
| C2 实修·中 | 2.0 | 1.0 | 1.0 | 1.0 | 2.5 | 2.0 | 0.5指导 | 印证教理 |
| C3 实修·专 | 2.5 | 1.5 | 1.0 | 1.0 | 2.0 | 1.0 | 1.0指导 | 师承+体验 |
权重取向:D4/D5 明显上提。体悟·灵活度·对机互动·感染力是高分关键门槛;资料详实+结构好≠高分。
客观公平:不以讲者身份(学员/授课者/出家众/在家众/年龄/资历)为标准。同一套规则、同一把尺子。
评级优先(级别即整体水平评价):先判定「类型×级别」(九宫格选1),级别本身已对该讲说作出高标准整体定性——专业级=高水平、中级=中水平、初级=入门水平。评级不依赖时长,仅看内容质量与深度。
级别内评分尺度(0–10,在级别尺度内打分):分数在「该级别对应的尺度」内评定,高级别采用更严标准,但不另设绝对封顶(专业级亦可依内部质量得高分):
| 级别 | 优秀门槛 | 良好 | 及格 | 待及格 |
|---|---|---|---|---|
| 专业级 | ≥8.8(极罕) | 7.2–8.7 | 6.0–7.1 | <6.0 |
| 中级 | ≥8.0 | 6.5–7.9 | 5.0–6.4 | <5.0 |
| 初级 | ≥7.0 | 5.5–6.9 | 4.0–5.4 | <4.0 |
级别越高的优秀门槛越严:初级相对容易取得良好/优秀(正向鼓励),中级须较扎实,专业级须高度符合标准且优秀比例极罕——整体呈"越往上越严"的梯度。
高标准制(严进严出,级别递增难度):初级讲说相对容易给优秀;中级须达到较扎实标准;专业级须真正高度符合且优秀比例极罕,不轻易给高分,留足提升空间。
拉开差距(多人评比时):若同一场景需对多人讲说/演讲排序评比,禁止人人高分,按实际质量明确分差。
🔴 读稿/念稿压分(重点):
生疏/紧张压分:高填充词 + 高重复 + 停顿多 + 语速不稳 + 表达散乱 → 下调
核心无硬伤不计枝末:D1无重大错解不抠字眼;但缺互动/启发/感染力则不得高分
具体诊断:待改进/建议须具体可操作(哪段、缺什么、怎么改)
ASR错字不入分:名相识别错误结合上下文还原,绝不扣分
文本与语音特征综合研判:本项基于 §六 的 F1–F7 特征(语速/均匀度/填充词/重复/停顿/书面口语比)综合判断,不仅凭表面通顺文字给高分。表面文字流畅但语音特征显示散乱(高重复、高停顿、语速不稳)者,依特征下调。
| 要素 | 内容 |
|---|---|
| 一、主旨 (2–4句概括核心) | (根据实际内容概括,不套固定句式) |
| 二、大纲 (逻辑架构) | ① … ② … ③ … |
| 三、核心 (1–3个关要) | 关要1 / 关要2 / 关要3 |
三要素的填写方式随实际内容自然变化,禁止套用固定句式模板。以下为各类型的方向性指引(而非填空模板):
宽泛化要求:
- 上述指引仅说明各类型的"常见方向",不限定具体表述方式
- 实际填写必须基于转写文本的真实内容,而非反向套用预设格式
- 若讲说内容跨越多个类型或不符合典型模式,以内容本身的结构为准
- 禁止将某一类型的示例句式机械套用到其他类型上
本节是音频维度分析的主要技术手段(非辅助/降级方案)。F1–F7 的计数规则(§6.2)为固化标准:跨平台、跨执行者必须按同一套算法计算,不得套用英文工具的中文指标,也不得以"自由估算"替代——否则评分漂移。
学术依据(详见附录):disfluency 分类以 Shriberg (1994) 五类框架为基底;中文不流畅检测参照 Ding et al. (2024) LLM-augmented BERT(F1=94.3%),证实中文填充词/重复须以中文专属词表与中文字符计数处理,通用英文工具(um/uh 词表、按空格分词)对中文失效(已验证)。
实际执行方式:
工具选用克制(固化护栏):音频维度核心已由「faster-whisper 时间戳 + 自写中文 F1–F7」覆盖,增强工具一律可选,不装不影响评分。不采用:Sonix(PyPI 空壳假包)、speech-analyser / myprosody(英文指标不适用于中文)、sppas / FunASR / pyannote(重依赖或需 HF 认证,非通用)。新增须免费、可运行、经实测对中文有效;失效 / 虚假及时移除。
| 代号 | 特征 | 有时间戳时提取 | 无时间戳时代理 | 解读 |
|---|---|---|---|---|
| F1 | 语速 | 字/分钟 | 字数÷时长 | 正常180–240;>280偏快;<120偏慢 |
| F2 | 语速均匀度 | 句时长CV | 句长分布方差 | CV<0.15极均匀→读稿信号;CV>0.4波动大→即兴 |
| F3 | 填充词密度 | 处/千字 | 文本统计(偏低估) | ≤22可能读稿;35–60正常即兴;>60紧张 |
| F4 | 重复句密度 | 对齐文本比对 | n-gram重复统计 | 高→不熟/反复组织思路 |
| F5 | 停顿标记 | 长>1.5s沉默数 | 依转写工具标记,可能缺失 | 多且不均→生疏/翻稿 |
| F6 | 书面语比 | PPL/书面词匹配 | 书面词密度 | 高+F3低+F2均→读稿铁证 |
| F7 | 口语化比 | 口语词占比 | 口语词密度 | 高+F3高→自然即兴 |
经验阈值说明:表中数值区间(语速 180–240、填充词 22/35/60、停顿 1.5s、CV 0.15/0.4 等)为基于演讲科学惯例与讲经场景的经验默认值,适用于一般佛教讲说;计数方法(中文字符计、中文词表、时间戳间隔)为已验证的固定核心,阈值可随真实语料校准,但变更须全局统一、不得各执行者自行其是。
| 特征组合 | 推断 | 对评分影响 |
|---|---|---|
| F3≤22 + CV<0.15 + F6高 + F4/F5低 | 读稿/念稿 | D6重扣、D3/D5扣、整体下拉 |
| F3≥35 + F4高 + F5多 + CV>0.4 | 生疏/紧张/准备不足 | D3/D4/D5下调 |
| F3 22–40 + F2适中 + F4/F5低 + F7偏高 | 脱稿流畅 | D3/D5可适度加分 |
低填充词也可能是"熟背复述"(非读稿)——须结合F6区分。读稿=生硬念读(书面腔重);熟背=用自己的话流畅复述(属正面,仅D6保守不扣读稿分)。
报告中「讲说状态观察」节用自然语言描述,例如:
"整体语速适中(约 XXX 字/分钟),讲述过程中偶有停顿和少量重复表述,能够用自己的话组织内容,有自然的现场互动感。"
或:
"整段讲述偏向于照读稿件,语速非常平均,缺少自然的口语化表达和现场互动感。"
禁止输出技术标签符号(📖😰✅⚠️)或术语("文本代理盲区""签名")。
| 层级 | 库名 | kb_id | 文档数 | 用途 | 访问方式 | 公共可用 |
|---|---|---|---|---|---|---|
| L0 | 大藏经CBETA2026简体版 | 7466305749789975 | 252 | 经论原典权威底本 | mcp__ima-mcp__search_knowledge | ✅ 订阅知识库,所有人可搜 |
| L1 | 天台藏全集2026 | 7467402761601821 | 279 | 天台宗专属(267部典籍) | mcp__ima-mcp__search_knowledge | ✅ 订阅知识库,所有人可搜 |
| L2 | 联网检索 | — | — | 现代议题/L0/L1未覆盖的内容 | WebSearch | ✅ 公开网络 |
| L3 | AI内部知识 | — | — | 仅当L0/L1/L2均无结果时兜底 | 模型内置 | ✅ 始终可用 |
关于 L0/L1 的说明:以上两个为 IMA 平台公开发布的订阅知识库,任何 IMA 用户均可搜索访问,无需额外授权。L3(AI内部知识)指模型自身训练数据中的通用知识,不依赖任何外部私有知识库。
以下所有断言/引用都必须以L0/L1为底座核验:
| 核验类型 | 示例 | 动作 | 找不到时 |
|---|---|---|---|
| 经论原文引用 | "《法华经》云…" | L0检索原文比对 | 标注"未检出确切原文,疑似意译" |
| 祖师原话/判教 | "智者大师云…""天台判某属圆教" | L0/L1检索祖师著作 | 标注"未在L0/L1检出,待复核" |
| 表法断言 | "男女表法""冰水喻表湿性" | L0/L1检索是否有先例 | 标明出处或"未见先例,似为约机施设" |
| 公案出处 | "印光大师打呼公案" | L0/L1检索原始记载 | 标注"公案出处待核" |
| 名相定义 | "性具""六即""一心三观" | L0/L1检索标准定义 | 标注"与标准释义基本一致/有偏差" |
绝对禁止:
检出时:直接给出定论 + 出处 + 判定性质(根本诠释/常见引申/罕见用法),不留悬置。
未检出时:明确标注"在 L0/L1 未检出",给出倾向性判断(约机施设/现代引申/疑似误记),并建议讲说时如何处理。
写法要点:
- 结论句式灵活适配内容类型(叙事/教义/实证各有侧重)
- 教义型需标明所属宗派/传承脉络
- 叙事型需核对史实来源
- 实证型需区分"个人体验表述"与"教理定论"
- 禁止私人化措辞和悬置式表述
【佛学讲评报告】
## 基本信息
- 标题 / 时长 / 字数 / 日期 / 转写引擎(是否带时间戳)
## 分类与评级
- 内容类型 / 专业级别 / 对应评分卡(判定依据)
## 总分:X.X / 10
- 等级(分数档,在所属评级尺度内):待及格 / 及格 / 良好 / 优秀(阈值见 §4.3 级别内评分尺度)
- [特殊标注](读稿锁顶等,用自然语言)
## 六维得分(进度条渲染)
| 维度 | 权重 | 得分 | 评分依据 |
|------|------|------|----------|
| D1 教义准确度 | XX% | X.X / X.X | ...(含来源核验结果) |
| D2 结构与逻辑 | XX% | X.X / X.X | ... |
| D3 语言表达 | XX% | X.X / X.X | ...(含语速/停顿观察) |
| D4 契机与应变 | XX% | X.X / X.X | ... |
| D5 感染感染力 | XX% | X.X / X.X | ... |
| D6 自主发挥度 | XX% | X.X / X.X | ...(含读稿/脱稿观察) |
| 附加项 | XX% | X.X / X.X | ... |
颜色映射:≥90%深绿 / 70–89%浅绿 / 50–69%黄橙 / <50%红
## 结构大纲
| 要素 | 内容 |
|:---|:---|
| **一、主旨**<br/><small>(核心概括)</small> | (按类型适配填写) |
| **二、大纲**<br/><small>(逻辑架构)</small> | ① … ② … ③ … |
| **三、核心**<br/><small>(关要名相)</small> | (按类型适配填写) |
## 来源比对
- L0 大藏经CBETA2026简体版:[已核验/未检出](附结果)
- L1 天台藏全集2026:[已核验/未适用](附结果)
- 关键断言:(逐条列出)
## 讲说状态观察
(自然语言描述,基于F1–F7音频-文本对齐分析)
## 亮点 / 待改进(具体诊断) / 提升建议
以下为实现口径的参考脚本(内部方法论,非需安装的第三方包)。已在本环境运行验证:对一段含已知填充词与 1.5s+ 停顿的样例,输出语速 / 填充词密度 / 停顿数与手工核算完全一致,证明"中文字符计数 + 中文填充词表 + 时间戳间隔"算法正确可执行。
# f1f7_reference.py —— F1–F7 带时间戳转写的参考实现口径
import re
FILLERS = ["呃","啊","嗯","那个","这个","就是说","然后呢","那么","的话","是不是","对吧","其实"]
BOOKISH = ["故而","亦即","所谓","此即","乃至","云何","是以","复次","盖","良以"] # 书面/讲章腔
ORAL = ["咱们","就是说","其实","对吧","你知道吗","咱","说白了","你看好","是不是"] # 口语化
PAUSE_SEC = 1.5
def f1f7(segments):
"""segments: list[(start_sec, end_sec, text)]"""
texts = [s[2] for s in segments]
full = "".join(texts)
chars = re.sub(r"\s", "", full) # F1 中文字符计(绝不按空格分词)
dur_min = (segments[-1][1] - segments[0][0]) / 60.0
f1 = len(chars) / dur_min # 语速 字/分钟
f3 = sum(full.count(w) for w in FILLERS) / max(len(chars),1) * 1000 # 填充词 处/千字
durs = [s[1]-s[0] for s in segments]
mean = sum(durs)/len(durs)
f2 = (sum((d-mean)**2 for d in durs)/len(durs))**0.5 / mean if mean else 0.0 # 均匀度 CV
f5 = sum(1 for i in range(1,len(segments))
if segments[i][0]-segments[i-1][1] > PAUSE_SEC) # 停顿 >1.5s
def lcs_ratio(a,b):
if not a or b: return 0.0
dp=[[0]*(len(b)+1) for _ in range(len(a)+1)]
for i in range(1,len(a)+1):
for j in range(1,len(b)+1):
if a[i-1]==b[j-1]: dp[i][j]=dp[i-1][j-1]+1
return max(max(r) for r in dp)/max(len(a),len(b),1)
f4 = sum(lcs_ratio(texts[i-1],texts[i]) for i in range(1,len(texts)))/max(len(texts)-1,1)
f6 = sum(full.count(w) for w in BOOKISH)/max(len(chars),1)*1000 # 书面语比
f7 = sum(full.count(w) for w in ORAL) /max(len(chars),1)*1000 # 口语化比
return {"F1_语速":round(f1,1),"F2_CV":round(f2,3),"F3_填充词":round(f3,1),
"F4_重复":round(f4,3),"F5_停顿":f5,"F6_书面":round(f6,1),"F7_口语":round(f7,1)}