Yinting Local Speech-To-Text Vault And Transcription Coordinator
把本 skill 当作用户的本地语音保险柜,外加围绕 ASR 的流程编排。和隐填(图像 OCR) 属于同一套「端侧感知」系列:一个看图,一个听声,都把感知负载放在 OpenVINO 上, 把敏感原文挡在远程大模型之外。
它回答三个问题:
- 从用户提供的本地音频里能转写出什么(带时间戳和置信度)?
- 转写出来的文本该交给哪个下游工具去做纪要/字幕/填表?
- 下游处理之后,哪些转写可靠、哪些低置信度、哪些含敏感信息需脱敏或确认?
它不实现下游写入。文档、字幕、纪要、表单由对应的浏览器/文档/字幕/表格工具完成。
Scope
本 skill 负责:
- 读取用户提供的本地音频或已有转写稿。
- 用
YINTING_VAULT_DIR限定可读目录边界。 - 通过 SenseVoice/FunASR + OpenVINO 在 CPU/GPU/NPU 上做端侧 ASR。
- 长音频按静音/时长分段,控制端侧单次负载。
- 把转写整理成带时间戳、置信度、敏感串候选、需复核项的结构化转写包。
- 协调把文本交给合适的下游能力。
- 要求最终给出已转写/低置信度/需脱敏/需确认的验收报告。
本 skill 不负责:
- 生成 Word/PDF 纪要、字幕文件、表单填写本身。
- 把原始音频、未脱敏转写、身份证号/银行卡/手机号等发给远程 LLM、在线 AI 或与用户目标无关的网络路径。
Required Workflow
- 明确目标。 用户要的是纯转写、会议纪要、字幕、还是从语音里提字段填表?据此决定下游工具。
- 本地转写。 用
scripts/asr_engine.py/scripts/transcript_extract.py在端侧转写并结构化;缺 OpenVINO/模型时,接受已有转写稿或如实标注无法转写。 - 结构化与标注。 输出转写包:片段 + 时间戳 + 置信度 + 敏感串候选 + 需复核项。
- 交接下游。 让 agent 用合适的工具做纪要/字幕/填表;本 skill 不实现这些。
- 验收。 报告已转写、低置信度、需脱敏、需确认的片段,缺失不编造。
详细指引见 references/asr-selection-and-workflow.md。
Output Contracts
Transcript Packet
{
"source_count": 1,
"files": [
{
"source": "/vault/meeting.wav",
"backend": "asr:openvino/NPU",
"segments": [
{"start": 0.0, "end": 3.2, "text": "项目周会现在开始", "score": 0.93, "low_confidence": false}
],
"full_text": "项目周会现在开始 ...",
"sensitive_hits": ["13800138000"]
}
],
"sensitive_hits": ["13800138000"],
"needs_review": ["meeting.wav @ 12.4s: 低置信度片段"]
}
Final Acceptance Report
{
"transcribed": ["meeting.wav"],
"low_confidence_segments": ["meeting.wav @ 12.4s"],
"redaction_needed": ["手机号 138****8000", "身份证号 110***...X"],
"needs_confirmation": ["人名/专有名词拼写"],
"downstream_tool": "document/subtitle/spreadsheet tool used by agent",
"missing": []
}
最终报告是本 skill 的流程职责:缺失/不确定项要列给用户,而不是编造。
Scripts
scripts/asr_engine.py: 端侧 ASR,SenseVoice/FunASR + OpenVINO。设备由YINTING_ASR_DEVICE=CPU|GPU|NPU|AUTO控制。scripts/audio_utils.py: 本地音频读取、重采样到 16kHz、按静音/时长分段。scripts/transcript_extract.py: 把音频或已有转写稿(.txt/.json/.srt)结构化为转写包。scripts/privacy.py: 保险箱路径边界 + 敏感串检测/打码。scripts/convert_to_openvino.py: 把 SenseVoice 导出为 OpenVINO 端侧模型。scripts/mcp_server.py: 把转写与结构化作为 MCP 工具暴露给 Agent。scripts/demo.py: 无需 ASR 后端的离线文本演示。
Downstream Handoff Rules
- 会议纪要 / 摘要:转写后交给文档/写作工具。
- 字幕(SRT/VTT):转写后交给字幕/视频工具。
- 从语音提字段填表:把结构化字段交给隐填或浏览器/表格工具,本 skill 只供文本。
- 未知目标:按目标选下游能力,不在本 skill 里加写入逻辑。
Quick Commands
# 离线演示(无需 OpenVINO)
python yinting-skill/scripts/demo.py
# 转写本地音频(需 OpenVINO + 已转换模型)
python yinting-skill/scripts/transcript_extract.py /path/to/meeting.wav
# 从已有转写稿结构化(无需 ASR 后端)
python yinting-skill/scripts/transcript_extract.py /path/to/transcript.srt
# 导出 SenseVoice 为 OpenVINO 模型
python yinting-skill/scripts/convert_to_openvino.py --out ./ov-sensevoice
# 启动 MCP 服务
python yinting-skill/scripts/mcp_server.py
微信扫一扫