返回 Skill 列表
extension
分类: 内容与媒体无需 API Key

Yinting_Local_Speech_To_Text_Vault_And_Transcription_Coordinator

本地语音转写保险柜与转写协调 Skill。把会议录音、语音笔记、采访、客服通话、语音备忘、讲座等本地音频,用 SenseVoice/FunASR 经 OpenVINO 在本机(CPU/GPU/NPU)转成文字;原始音频和未脱敏转写不进远程大模型;转写整理成带时间戳、置信度、敏感串候选的结构化转写包,下游纪要/字幕/填表交给现成文档/字幕/表格工具,最后给出已转写/低置信度/需脱敏/需确认的验收报告;不自己实现下游文档/字幕模块。只要用户提到把录音/语音/会议/采访/客服通话转成文字、做会议纪要或字幕、或想从语音里提取信息填表,就用本 skill——即使没明说「语音识别/ASR/转写」。触发词:语音转文字、语音识别、转写、录音转文字、会议纪要、字幕、asr、speech to text、端侧语音识别。Local on-device speech-to-text vault — transcribe local audio via SenseVoice/FunASR on OpenVINO, keep raw audio and un-redacted transcripts off remote LLMs, structure the transcript with timestamps/confidence, hand off minutes/subtitles/form-filling to the right tool, and report transcribed/low-confidence/redaction/confirmation segments.

person作者: VCandMehubModelScope

Yinting Local Speech-To-Text Vault And Transcription Coordinator

把本 skill 当作用户的本地语音保险柜,外加围绕 ASR 的流程编排。和隐填(图像 OCR) 属于同一套「端侧感知」系列:一个看图,一个听声,都把感知负载放在 OpenVINO 上, 把敏感原文挡在远程大模型之外。

它回答三个问题:

  1. 从用户提供的本地音频里能转写出什么(带时间戳和置信度)?
  2. 转写出来的文本该交给哪个下游工具去做纪要/字幕/填表?
  3. 下游处理之后,哪些转写可靠、哪些低置信度、哪些含敏感信息需脱敏或确认?

它不实现下游写入。文档、字幕、纪要、表单由对应的浏览器/文档/字幕/表格工具完成。

Scope

本 skill 负责:

  • 读取用户提供的本地音频或已有转写稿。
  • YINTING_VAULT_DIR 限定可读目录边界。
  • 通过 SenseVoice/FunASR + OpenVINO 在 CPU/GPU/NPU 上做端侧 ASR。
  • 长音频按静音/时长分段,控制端侧单次负载。
  • 把转写整理成带时间戳、置信度、敏感串候选、需复核项的结构化转写包。
  • 协调把文本交给合适的下游能力。
  • 要求最终给出已转写/低置信度/需脱敏/需确认的验收报告。

本 skill 不负责:

  • 生成 Word/PDF 纪要、字幕文件、表单填写本身。
  • 把原始音频、未脱敏转写、身份证号/银行卡/手机号等发给远程 LLM、在线 AI 或与用户目标无关的网络路径。

Required Workflow

  1. 明确目标。 用户要的是纯转写、会议纪要、字幕、还是从语音里提字段填表?据此决定下游工具。
  2. 本地转写。scripts/asr_engine.py / scripts/transcript_extract.py 在端侧转写并结构化;缺 OpenVINO/模型时,接受已有转写稿或如实标注无法转写。
  3. 结构化与标注。 输出转写包:片段 + 时间戳 + 置信度 + 敏感串候选 + 需复核项。
  4. 交接下游。 让 agent 用合适的工具做纪要/字幕/填表;本 skill 不实现这些。
  5. 验收。 报告已转写、低置信度、需脱敏、需确认的片段,缺失不编造。

详细指引见 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