nanzhipro/questskills · Archived

xiaoyuzhou-podcast-transcriber

Downloads Xiaoyuzhou podcasts, transcribes using FunASR, and generates raw, structured, and optimized text files. Invoke when user provides a Xiaoyuzhou episode link.

First seen Apr 9, 2026

Installation

$ npx skills add nanzhipro/questskills --skill xiaoyuzhou-podcast-transcriber

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from nanzhipro/questskills.

npx skills add nanzhipro/questskills

Browse all from nanzhipro/questskills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,353 B
  • docs SUMMARY.md 204 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

小宇宙播客转写助手 (Xiaoyuzhou Podcast Transcriber)

本 Skill 自动化将小宇宙 (Xiaoyuzhou) 播客单集转换为高质量文本归档的流程。

核心能力 (Capabilities)

  1. 下载 (Download):从小宇宙单集页面提取并下载音频。
  2. 转写 (Transcribe):使用本地部署的 Alibaba FunASR (Paraformer) 模型,实现高精度的中文语音识别。
  3. 处理 (Process):生成三个层级的文档:

- transcriptraw.txt:逐字逐句的原始文本 (Raw Text)。 - podcastfullstructured.md:保留全文但优化了可读性(包含标题、分段)的结构化文稿。 - podcastoptimized.md:精简、润色后的精华摘要 (Summary) 和 Show Note。

前置条件 (Prerequisites)

  • Python 3.8+
  • FFmpeg (必须安装并添加到系统 PATH)
  • Internet Connection (用于下载音频和模型文件)

工作流指南 (Workflow Instructions)

请按以下顺序执行任务。

第一阶段:准备与下载 (Preparation & Download)

  1. 提取音频 URL (Extract Audio URL)

- 获取提供的小宇宙 (Xiaoyuzhou) 单集页面的 HTML。 - 查找音频文件 URL(通常是 mp3, m4a 格式)。特征模式通常包含 https://media.xyzcdn.net/...。 - 提示:使用 curl 获取 HTML 并用 grep 提取 URL。

  1. 下载音频 (Download Audio)

- 将音频文件下载为 podcast.m4a (或 podcast.mp3)。

  1. 格式转换与切片 (Convert & Chunk)

- 将音频转换为 16kHz 单声道 WAV 格式(FunASR 模型要求)。 - 将音频切分为 5 分钟的片段 (Chunks),以确保稳定性并降低内存占用。 - 命令示例: ``bash ffmpeg -i podcast.m4a -ar 16000 -ac 1 podcast.wav mkdir -p chunks ffmpeg -i podcast.wav -f segment -segment_time 300 -c copy chunks/part%03d.wav ``

第二阶段:本地转写 (Local Transcription with FunASR)

  1. 环境配置 (Environment Setup)

- 如果不存在,创建一个 Python 虚拟环境 (venv)。 - 安装必要的包:modelscope, funasr, torch, torchaudio。 - 注意:使用 pip install modelscope funasr torch torchaudio

  1. 编写转写脚本 (Transcription Script)

- 创建一个名为 transcribe_chunked.py 的 Python 脚本,包含以下逻辑:

```python import os import glob import traceback from funasr.auto.auto_model import AutoModel

# Model Definitions (模型定义) modelid = "iic/speechparaformer-largeasrnat-zh-cn-16k-common-vocab8404-pytorch" vadmodelid = "iic/speechfsmnvadzh-cn-16k-common-pytorch" puncmodelid = "iic/puncct-transformer_zh-cn-common-vocab272727-pytorch"

try: print("Loading models...") model = AutoModel( model=modelid, vadmodel=vadmodelid, puncmodel=puncmodelid, disableupdate=True )

files = sorted(glob.glob("chunks/part*.wav")) print(f"Found {len(files)} chunks.")

# Initialize output file (初始化输出文件) outputfile = "transcriptraw.txt" with open(output_file, "w", encoding="utf-8") as f: f.write("")

for i, filepath in enumerate(files): print(f"Processing {filepath} ({i+1}/{len(files)})...") try: res = model.generate( input=filepath, batchsize_s=300, # Add hotwords if relevant to the specific podcast context )

textpart = "" if isinstance(res, list): for item in res: if 'text' in item: textpart += item['text'] elif isinstance(res, dict) and 'text' in res: text_part = res['text']

with open(outputfile, "a", encoding="utf-8") as f: f.write(textpart + "\n") f.flush()

except Exception as innere: print(f"Error processing {filepath}: {innere}") traceback.printexc()

print("All chunks processed.")

except Exception as e: print("Fatal error:") traceback.print_exc() ```

  1. 执行转写 (Execute Transcription)

- 在虚拟环境中运行脚本。 - 确保生成了 transcript_raw.txt

第三阶段:后处理 (Post-Processing)

  1. 生成 podcastfullstructured.md

- 目标:创建一个阅读友好的全文 (Full Text) 版本。 - 输入transcript_raw.txt。 - 指令: - 读取原始转写文本 (Raw Transcript)。 - 不要删除内容。保留原始措辞(包括能增加语感的口语填充词,但可以微调结巴重复的部分)。 - 增加结构 (Structure):将长段落拆分为逻辑清晰的段落 (Paragraphs)。 - 添加标题 (Headings):为不同话题/部分插入描述性的 H2/H3 标题。 - 格式化 (Formatting):使用粗体 (Bold) 强调关键点。

  1. 生成 podcast_optimized.md

- 目标:创建一个高质量的 "Show Note" 或精华摘要 (Essence Summary)。 - 输入transcriptraw.txtpodcastfull_structured.md。 - 指令: - 去噪 (Remove Noise):去除口语填充词(如 uh, um, you know)、重复句和无关闲聊。 - 润色 (Refine):将句子打磨为流畅、专业的书面中文 (Written Chinese)。 - 总结 (Summarize):整理成带有标题的清晰章节。 - 高亮 (Highlight):提取关键洞见或“金句” (Golden Sentences)。

第四阶段:最终交付 (Final Output)

报告以下四个产出物 (Artifacts) 的成功创建:

  1. podcast_optimized.md
  2. transcript_raw.txt
  3. podcast.m4a / podcast.wav
  4. podcastfullstructured.md