podcastcut-content
npx skills add https://github.com/luoyuweidu1/podcastcut-skills --skill podcastcut-content
Agent 安装分布
Skill 文档
å 容åªè¾
çæéå稿 â çæå®¡æ¥ç¨¿ï¼è¯é¢çº§å¤§çº² + å¥å级å é¤å»ºè®®ï¼â ç¨æ·å®¡æ ¸ â æ§è¡åªè¾
å¿«é使ç¨
ç¨æ·: 帮æåªææå®¢éçåºè¯
ç¨æ·: å
容åªè¾
ç¨æ·: çæéåç¨¿ï¼æ è®°è¦å çå
容
è¾å ¥
- é³é¢/è§é¢æä»¶
- ï¼å¯éï¼è¯´è¯äººååå表ï¼å¦
["Maia", "åææ", "å®å®"]
è¾åº
- 审æ¥ç¨¿ – ä¸ä¸ªæä»¶å å«ï¼å 容大纲 + 宿´éå稿 + å 餿 è®°
- ç¡®è®¤å – æ§è¡åªè¾
注æï¼ä¸åç¬è¾åºéå稿æä»¶ï¼å®¡æ¥ç¨¿å·²å å«å®æ´éå稿
两个å±çº§é å使ç¨
| å±çº§ | ä½ç½® | ç²åº¦ | éç¨åºæ¯ |
|---|---|---|---|
| è¯é¢çº§ | 审æ¥ç¨¿ 第ä¸é¨åï¼å å®¹å¤§çº²ï¼ | 5-30åé/å | å¿«éç²åªï¼å 餿´æ®µè·é¢/é²è |
| å¥å级 | 审æ¥ç¨¿ 第ä¸é¨åï¼æ£æï¼ | éå¥å èæ è®° | ç²¾ç»è°æ´ï¼æ¥çä¸ä¸æ |
æµç¨
1. 转å½é³é¢ï¼FunASR + å¥å级æ¶é´æ³ + 说è¯äººå离ï¼
â
2. é鳿£æµï¼FFmpeg silencedetectï¼è¯å«å¤§æ®µç©ºç½ï¼
â
3. çæéå稿ï¼å¸¦è¯´è¯äººæ ç¾ï¼
â
4. AIåæï¼è¯å«è¯é¢ç»æ + æ 记建议å é¤
â
5. è¾åºå®¡æ¥ç¨¿ï¼å
容大纲 + éé³ç段 + å é¤å»ºè®®ï¼
â
ãç¨æ·å¨å®¡æ¥ç¨¿ä¸ç´æ¥ä¿®æ¹å 餿 è®°ã
â
6. æ§è¡åªè¾ â /podcastcut-editï¼ä»å®¡æ¥ç¨¿è§£æå 餿 è®°ï¼
ææ¯è¯´æ
| åè½ | å®ç° |
|---|---|
| è½¬å½ | FunASRï¼å¿ é¡»ç¨å®æ´æ¨¡åè·¯å¾ï¼è§ä¸æ¹ä»£ç ï¼ |
| æ¶é´æ³ | å¥å级ï¼èªå¨è¿å sentence_infoï¼ |
| 说è¯äººå离 | FunASR å ç½® CAM++ 模å |
| é鳿£æµ | FFmpeg silencedetectï¼éå¼ -40dBï¼æå°æ¶é¿ 3sï¼ |
â ï¸ è½¬å½å¿ 须使ç¨èæ¬
ä¸è¦èªå·±å代ç ï¼ç´æ¥è°ç¨ç°æèæ¬ï¼
# 转å½ï¼è¾åº podcast_transcript.jsonï¼
python ~/.claude/skills/podcastcut-content/scripts/transcribe.py <é³é¢æä»¶> <è¾åºç®å½>
# çæéå稿ï¼è¾åº podcast_éå稿.mdï¼
python ~/.claude/skills/podcastcut-content/scripts/generate_transcript.py \
<transcript.json> <è¾åº.md> '{"0":"åææ","1":"麦é
","2":"å®å®"}'
为ä»ä¹ä¸è½èªå·±åï¼ FunASR å¿
须使ç¨å®æ´æ¨¡åè·¯å¾ + VAD + Punc + Speaker å个模åæè½è·å sentence_infoãç®ååæ³ï¼å¦ model="paraformer-zh"ï¼ä¼å¯¼è´è½¬å½å¤±è´¥ã
æ§è½åèã常è§é®é¢è§
tips/è½¬å½æä½³å®è·µ.md
为ä»ä¹ç¨å¥å级èéåç¬¦çº§ï¼ å符级 + 说è¯äººå离å¨é¿é³é¢ä¸ä¸ç¨³å®ï¼OOMã对é½é误ï¼
æ¬ Skill åªå 餿´å¥ï¼æ´ç²¾ç»çå é¤ï¼åå¥ãè¯æ°è¯ï¼çç» /podcastcut-transcribe
éåç¨¿æ ¼å¼
**Maia** 00:05
å¼å§äºã
**åææ** 00:06
æ¯åï¼
**Maia** 00:08
å¼å¿çOKãHelloï¼å¤§å®¶å¥½ï¼æ¬¢è¿æ¥å°ä»å¤©ç5ç¹1å»ï¼ææ¯ä¸»æMaiaãä»å¤©æä»¬èç¹å¼å¿çè¯é¢ã
**åææ** 00:20
ææ¯ä¸»æåææã好çï¼é£æä»¬å¼å§å§ã
æ ¼å¼è§å
| å ç´ | æ ¼å¼ |
|---|---|
| 说è¯äºº | **åå** å ç² |
| æ¶é´æ³ | MM:SS æ HH:MM:SSï¼è¯´è¯äººå¼å§æ¶é´ï¼ |
| å 容 | åä¸è¯´è¯äººçå 容è¿å¨ä¸èµ·ï¼ä¸é奿¢è¡ |
| æ¢äºº | 空ä¸è¡ |
审æ¥ç¨¿æ ¼å¼
审æ¥ç¨¿æ´åäºè¯é¢çº§å¤§çº²åå¥å级å é¤å»ºè®®ï¼ä¸ä¸ªæä»¶å®æå®¡æ ¸ã
# æå®¢å®¡æ¥ç¨¿
**æä»¶**: podcast.mp3
**æ»æ¶é¿**: 2:08:07
---
## ä¸ãå
容大纲ï¼è¯é¢çº§ï¼
| # | è¯é¢ | æ¶é´ | æ¶é¿ | AI建议 | åå |
|---|------|------|------|--------|------|
| 1 | ç头坿 + ææ¯è°è¯ | 00:00 - 04:45 | 04:45 | ðï¸ å é¤ | å½å¶åå¤ãææ¯é®é¢ |
| 2 | æ£å¼å¼åº + å宾ä»ç» | 04:45 - 07:00 | 02:15 | â
ä¿ç | æå®¢æ£å¼å¼å§ |
| 3 | é²èï¼åå®¾èæ¯ | 05:48 - 07:01 | 01:13 | ðï¸ å é¤ | ä¸ä¸»é¢æ å
³ |
| 4 | 主é¢è®¨è®º | 07:01 - 40:00 | 32:59 | â
ä¿ç | æ ¸å¿å
容 |
| 5 | å½å¶è®¨è®ºï¼ä¸é´ï¼ | 49:59 - 51:13 | 01:14 | ðï¸ å é¤ | 讨论åªè¾äºå® |
**ç»è®¡**: 建议ä¿ç 2:03:21 | 建议å é¤ 08:12
**æä½**: `å é¤è¯é¢ 1, 3, 5` æ `åªä¿çè¯é¢ 2, 4`
---
## äºãéé³ç段
| # | æ¶é´ | æ¶é¿ | ä½ç½®è¯´æ |
|---|------|------|----------|
| 1 | 12:34 - 12:48 | 00:14 | è¯é¢2åè¯é¢3ä¹é´ |
| 2 | 35:20 - 35:58 | 00:38 | å宾æèåé¡¿ |
| 3 | 1:02:15 - 1:02:45 | 00:30 | ä¸éæçº¿/éé³ |
**ç»è®¡**: å
± 3 å¤éé³ï¼æ»æ¶é¿ 01:22
**æä½**: `å 餿æéé³` æ `å é¤éé³ 1, 3`ï¼ä¿ç2ï¼å¯è½æ¯ææåé¡¿ï¼
---
## ä¸ãç»è®¡
- æ»å¥åæ°: 3390
- 建议å é¤: 377 å¤
- éé³ç段: 3 å¤ï¼01:22ï¼
### æç±»å
- ç头坿: 31å¤
- é²è-ä¸ªäººèæ¯: 23å¤
- ææ¯è°è¯: 15å¤
- å½å¶è®¨è®º: 6å¤
- éç§-å
¬å¸å: 5å¤
- éç§-å°ç¹: 4å¤
- éç§-妿 ¡å: 3å¤
---
## åãæ£æï¼éå稿 + å 餿 è®°ï¼
**â ï¸ å¿
é¡»å
å«å®æ´éå稿ï¼ä»ç¬¬ä¸å¥å°æåä¸å¥ï¼ä¸è½çç¥ä»»ä½å
容ï¼**
éè¯¯åæ³ï¼`ï¼åç»å
容为主é¢è®¨è®ºï¼ä¿ç...ï¼` â ä¸å
许ï¼
æ£ç¡®åæ³ï¼è¾åºææå¥åï¼æ 论æ¯å¦æ è®°å é¤
宿´éå稿ï¼AI建议å é¤çå
å®¹ç¨ ~~å é¤çº¿~~ æ 记并注æåå ãåä¸è¯´è¯äººçå
容è¿å¨ä¸èµ·ï¼ä¸é奿¢è¡ã
**åææ** 00:00
~~è¡åï¼å¯¹ï¼ä½ 们åºè¯¥æ²¡æå¬å°åªé³å§ãå 为æè®°å¾å¥½åä¸ä¸ä¸ï¼ä¸æ¬¡æä»¬æ¯ç¨è¿ä¸ªæ¯æåªé³çï¼å°±è·é£ä¸ªå¿çå¿çå¨è¯¢é£é£é£æ¬¡å¯ï¼å¯¹ï¼é£è¿æ¬¡åºè¯¥å¥½äºã~~ `[å é¤: ç头坿]`
**麦é
** 00:23
~~ææè¿ä¸ªè¿ä¸ª dog æå¼å¥½å¦ï¼~~ `[å é¤: ç头坿]`
**å®å®** 00:27
~~æä¹æå¼ä¸ä¸èªæä»ç»ã~~ `[å é¤: ç头坿]`
...
**麦é
** 04:50
Helloï¼å¤§å®¶å¥½ï¼æ¬¢è¿æ¥å°ä»å¤©çäºç¹ä¸å»ï¼ææ¯ä¸»æéº¦é
ã
**åææ** 04:58
ææ¯ä¸»æåææã
**麦é
** 05:02
ä»å¤©æä»¬è¯·å°äºä¸ä½ç¹å«çå宾å®å®ã
**å®å®** 05:08
å¤§å®¶å¥½ï¼ææ¯å®å®ã
...
**å®å®** 15:32
~~æä¹åå¨Googleå·¥ä½çæ¶å~~ `[å é¤: éç§-å
¬å¸å]` æä¹åå·¥ä½çæ¶åï¼éå°è¿ç±»ä¼¼çæ
åµã
...
**麦é
** 49:59
~~è¿æ®µè¦ä¸è¦åªæï¼~~ `[å é¤: å½å¶è®¨è®º]`
**åææ** 50:02
~~å¯ï¼å头ççå§ã~~ `[å é¤: å½å¶è®¨è®º]`
**å®å®** 50:05
~~æè§å¾å¯ä»¥ä¿çã~~ `[å é¤: å½å¶è®¨è®º]`
...
ï¼å®æ´éå稿继ç»...ï¼
ç»æè¯´æ
| é¨å | å 容 | ç¨é |
|---|---|---|
| ä¸ãå 容大纲 | è¯é¢çº§è¡¨æ ¼ | å¿«éäºè§£ç»æï¼æ´åå é¤ |
| äºãéé³ç段 | 大段空ç½å表 | å 餿 å£°æ®µè½ |
| ä¸ãç»è®¡ | å 餿°éæç±»åæ±æ» | ä¸ç¼çåºå é¤è§æ¨¡ |
| åãæ£æ | 宿´éå稿 + å èå 餿 è®° | æ¥çä¸ä¸æï¼éå¥å®¡æ ¸ |
è¯é¢è¯å«è§å
| è¯é¢ç±»å | è¯å«æ¹å¼ |
|---|---|
| ç头坿 | æ£å¼å¼åºï¼”大家好”ï¼ä¹åçå 容 |
| æ£å¼å¼åº | “Hello/大家好” å¼å§çæ®µè½ |
| é²è | ä¸ä¸»é¢æ å ³çä¸ªäººèæ¯è®¨è®º |
| 主é¢è®¨è®º | å´ç»æå®¢ä¸»é¢çæ ¸å¿å 容 |
| å½å¶è®¨è®º | 讨论åªè¾ãå 容åèçæ®µè½ |
| çå°¾ | “好ï¼é£ä»å¤©å°±å°è¿” çæ¶å°¾è¯ |
å é¤ç±»å
â ï¸ åå·¥åå
| Skill | å ³æ³¨ç¹ | å¤çå 容 | æ¶é´æ³ç²åº¦ |
|---|---|---|---|
/podcastcut-content |
å 容è¯ä¹ | ç头ãè·é¢ãéç§ãå°å¦ã大段éé³ | å¥å级 |
/podcastcut-transcribe |
å£è¯¯ææ¯ | è¯æ°è¯ãå£è¯¯ãçåé¡¿ãåå¥å é¤ | å符级 |
æ¬ Skill èç¦å 容å±é¢ï¼ä»ä¹è¯¥å ãä»ä¹è¯¥çï¼æ¯è¯ä¹å¤æï¼å 餿´å¥ã å£è¯¯è¯å«æ¯ææ¯å±é¢ï¼éè¦æ´ç²¾ç»çè§åï¼éå¤åãå顿模å¼ï¼ï¼ä½¿ç¨å符级æ¶é´æ³ã
为ä»ä¹è¿æ ·åå·¥ï¼
- å¥åçº§è½¬å½ + 说è¯äººå离 = 说è¯äººåç¡®
- åç¬¦çº§è½¬å½ + 说è¯äººå离 = 说è¯äººå®¹æéä½ï¼é¿é³é¢ OOMï¼å段åå并对é½å°é¾ï¼
- å å 大段å 容ï¼å¥å级ï¼ï¼åç²¾ç»å¤çå©ä½é¨åï¼å符级ï¼
å 容å é¤ç±»åï¼æ¬ Skill å¤çï¼
| ç±»å | æ è®° | ç¤ºä¾ |
|---|---|---|
| ç头坿 | [å é¤: ç头坿] |
“å¼å§äºåï¼” “è½å¬å°åï¼” |
| çå°¾é²è | [å é¤: çå°¾é²è] |
“好ï¼é£å°±è¿æ ·” “ææ” |
| å½å¶ç¸å ³ | [å é¤: å½å¶ç¸å
³] |
“è¿æ®µéå½” “çä¸åªæ” |
| è·é¢å 容 | [å é¤: è·é¢] |
ä¸ä¸»é¢æ å ³ç讨论 |
| å°å¦éå¤ | [å é¤: å°å¦] |
大段éå¤è¡¨è¾¾åä¸è§ç¹ |
| éç§-å ¬å¸ | [å é¤: éç§-å
¬å¸å] |
“æå¨Google工佔 |
| éç§-人å | [å é¤: éç§-人å] |
“æåäºå¼ ä¸è¯´” |
| éç§-å°ç¹ | [å é¤: éç§-å°ç¹] |
“æä½å¨xxx” |
| é¿éé³ | 审æ¥ç¨¿ç¬¬äºé¨ååç¬ååº | 3ç§ä»¥ä¸çæ å£°çæ®µ |
å£è¯¯å é¤ç±»åï¼ç± /podcastcut-transcribe å¤çï¼
| ç±»å | 说æ |
|---|---|
| å£å¤´ç¦ /è¯æ°è¯ | “寔ã”å°±æ¯è¯´”ã”ç¶å”ã”对对对” |
| å£è¯¯ | 说éäºé说 |
| çåé¡¿ | å¥ä¸å°åé¡¿ï¼< 3ç§ï¼ |
注æï¼å¤§æ®µéé³ï¼â¥3ç§ï¼ç±æ¬ Skill å¤çï¼çåé¡¿ç± /podcastcut-transcribe å¤çã
为ä»ä¹å£å¤´ç¦ ä¸å¨è¿éå¤çï¼ å£å¤´ç¦ çè¯å«éè¦æ´ç²¾ç»çè§åï¼è¿ç»éå¤ãå顿模å¼ï¼ï¼å±äºææ¯å±é¢èéå 容è¯ä¹ã
AIåææ¹æ³
â ï¸ å¿ é¡»ä½¿ç¨ Claude åè¯ä¹åæ
å ³é®è¯å¹é ä¸å¤ç¨ï¼ åºäºè§åçæ¹æ³æ æ³è¯å«ï¼
- è¯ä¹å±é¢çè·é¢/é²èï¼æ²¡æææ¾å ³é®è¯ï¼
- åå®¾èæ¯ä»ç»åçé²èï¼ä½å¨åªéãåªå¹´æ¯ä¸ã妿 ¡æä¹æ ·ï¼
- éèçå½å¶è®¨è®ºï¼æ²¡æ”åªæ”çå ³é®è¯ï¼
å¿ é¡»ç¨ Claude åæ®µåæéå稿ï¼è´¨é为å ã
åææµç¨
1. å°éå稿æ15åéåæ®µ
2. æ¯æ®µåéç» Claude åæï¼è¯å«å»ºè®®å é¤çå
容
3. Claude è¿åï¼å¥åç´¢å¼ + å é¤ç±»å + åå
4. åå¹¶æææ®µçç»æï¼çæå®¡æ¥ç¨¿
Claude åæ Prompt
å¯¹æ¯æ®µéå稿ï¼ä½¿ç¨ä»¥ä¸ promptï¼
ä½ æ¯æå®¢å
å®¹å®¡æ ¸å©æãåæä»¥ä¸éå稿ï¼è¯å«å»ºè®®å é¤çå¥åã
## å é¤ç±»å
1. **ç头坿**ï¼æ£å¼å¼åºï¼"大家好"ï¼ä¹åçé²èãææ¯è°è¯
2. **å½å¶è®¨è®º**ï¼è®¨è®ºåªè¾ãå½å¶ç¶æãææ¯é®é¢ã"è¿æ®µè¦ä¸è¦åª"
3. **éç§-å
¬å¸å**ï¼æå°å
·ä½å
¬å¸åï¼GoogleãMetaãåèçï¼
4. **éç§-妿 ¡å**ï¼æå°å
·ä½å¦æ ¡åï¼Stanfordãæ¸
åçï¼
5. **éç§-å°ç¹**ï¼æå°å
·ä½å°ç¹ï¼Palo Altoãç¡
è°·çï¼
6. **éç§-人å**ï¼æå°å
·ä½äººåï¼éå
¬ä¼äººç©ï¼
7. **è·é¢/é²è**ï¼ä¸æå®¢ä¸»é¢æ å
³ç讨论ï¼ä¸ªäººèæ¯é²èãå°ç讨论çï¼
8. **å°å¦éå¤**ï¼åä¸è§ç¹åå¤è¯´ã大段éå¤
## è¾åºæ ¼å¼
对æ¯ä¸ªå»ºè®®å é¤çå¥åï¼è¾åºï¼
- å¥åæ¶é´æ³
- å é¤ç±»å
- åå ï¼ç®ç说æï¼
åªæ è®°éè¦å é¤çå¥åï¼ä¸éè¦æ è®°çè·³è¿ã
## éå稿
{transcript_segment}
å é¤ç±»å详解
| ç±»å | è¯å«è¦ç¹ |
|---|---|
| ç头坿 | æ£å¼å¼åºåçææå 容ï¼å æ¬ææ¯è°è¯ãè天 |
| å½å¶è®¨è®º | “åªæ”ã”å½ä¸äºå”ã”è¿æ®µå¤ªææ”ã”å头媔 |
| éç§ä¿¡æ¯ | å ¬å¸åã妿 ¡åãå°ç¹ã人å |
| è·é¢/é²è | ä¸ä¸»é¢æ å ³ï¼ä½åªéãåªå¹´æ¥çã妿 ¡æä¹æ · |
| å°å¦éå¤ | å䏿æè¯´3éä»¥ä¸ |
é²èæ£æµéç¹
å宾ä»ç»åçé²èç¹å«å®¹ææ¼æ£ï¼æ³¨æè¿äºä¿¡å·ï¼
- çªç¶åºç°å°åã妿 ¡åã年份
- “ä½ å¨åªä¸ªarea” “ä½ æ¯åªå¹´æ¥ç” “é£è¾¹æä¹æ ·”
- è¿ç»å¤å¥è®¨è®ºé主é¢å 容ï¼å°çã妿 ¡ãå叿¯è¾ï¼
å½å¶è®¨è®ºæ£æµéç¹
ä¸åªå¨çå¤´ï¼ å ¨ç¨å¯è½åºç°ï¼
- ææ¯é®é¢ï¼”è½å¬è§å”ã”æäº”ã”è³æºæ²¡çµ”
- å 容顾è4太ä½è°äº”ã”䏿³share”ã”ç»èä¸è¯´”
- åªè¾è®¨è®ºï¼”åå¤´åªæ”ã”è¿æ®µè¦ä¸è¦”
é鳿£æµæ¹æ³
ä½¿ç¨ FFmpeg ç silencedetect æ»¤éæ£æµå¤§æ®µç©ºç½ã
æ£æµå½ä»¤
ffmpeg -i video.mp4 -af "silencedetect=noise=-40dB:d=3" -f null - 2>&1 | grep silencedetect
| åæ° | 说æ | æ¨èå¼ |
|---|---|---|
noise |
éé³éå¼ï¼ä½äºæ¤é³éè§ä¸ºéé³ï¼ | -40dB |
d |
æå°é鳿¶é¿ï¼ç§ï¼ | 3ï¼å 容åªè¾å ³æ³¨å¤§æ®µç©ºç½ï¼ |
è¾åºè§£æ
[silencedetect @ 0x...] silence_start: 752.341
[silencedetect @ 0x...] silence_end: 766.512 | silence_duration: 14.171
è§£æ silence_start å silence_end çæéé³ç段å表ã
éå¼éæ©
| åºæ¯ | noise | dï¼æå°æ¶é¿ï¼ |
|---|---|---|
| å 容åªè¾ï¼æ¬Skillï¼ | -40dB | 3ç§ |
| å£è¯¯è¯å«ï¼ç²¾ç»ï¼ | -50dB | 0.5ç§ |
为ä»ä¹ç¨ 3 ç§ï¼ çäº 3 ç§çåé¡¿å¯è½æ¯èªç¶çæèé´éï¼ä¸å»ºè®®å é¤ã
è¾åºæä»¶
podcast_transcript.json # å¥å级æ¶é´æ³ + 说è¯äººï¼ä¾åªè¾ä½¿ç¨ï¼
podcast_审æ¥ç¨¿.md # 审æ¥ç¨¿ï¼å
å«å®æ´éå稿 + å 餿 è®°ï¼
â ï¸ åªè¾åºå®¡æ¥ç¨¿ï¼ä¸åç¬è¾åºéå稿
审æ¥ç¨¿ç¬¬åé¨å”æ£æ”å°±æ¯å®æ´éåç¨¿ï¼æ ééå¤è¾åºã
å¥å级 JSON æ ¼å¼
{
"file": "podcast.mp3",
"duration": 3600.5,
"sentences": [
{"text": "大家好ï¼", "start": 0.50, "end": 1.20, "spk": 0},
{"text": "æ¬¢è¿æ¥å°ä»å¤©çæå®¢ã", "start": 1.20, "end": 2.80, "spk": 0},
{"text": "ææ¯ä¸»æå°æã", "start": 2.80, "end": 3.90, "spk": 1},
...
]
}
â ï¸ å®¡æ¥ç¨¿åå 餿¸ åå¿ é¡»åæ¥
ç¨æ·å¯è½ç´æ¥å¨å®¡æ¥ç¨¿ä¸ä¿®æ¹å 餿 è®°ï¼æ·»å /ç§»é¤å é¤çº¿ï¼ï¼æ¤æ¶å 餿¸ åä¼è¿æ¶ã
è§åï¼
- 审æ¥ç¨¿æ¯ç¨æ·å®¡æ ¸çæç»æ¥æº
- æ§è¡åªè¾åï¼ä»å®¡æ¥ç¨¿éæ°è§£æå 餿 è®°
- ä¸è¦ä¾èµå¯è½è¿æ¶ç
podcast_å 餿¸ å.json
è§£ææ¹æ³ï¼æ«æå®¡æ¥ç¨¿ä¸ ~~å é¤çº¿~~ æ è®°çææ¬ï¼å¹é
transcript.json ä¸çæ¶é´æ³ã
ä¸å ¶ä» Skill çå ³ç³»
/podcastcut-content â å
容åªè¾ï¼è¯ä¹å±é¢ï¼â æ¬ Skill
/podcastcut-edit â æ§è¡åªè¾
/podcastcut-transcribe â å£è¯¯è¯å«ï¼ææ¯å±é¢ï¼å¯éï¼
/podcastcut-subtitle â çæåå¹
æ¨èæµç¨ï¼
åå§è§é¢
â
/podcastcut-content â æ 记大段å
容ï¼å¯æãè·é¢ãå°å¦ãéç§ï¼
â
/podcastcut-edit â æ§è¡å é¤ï¼è¾åº v2
â
ãå¯éãè¿éè¦å¤çå£è¯¯ï¼
â æ¯
/podcastcut-transcribe â è¯å«å£è¯¯ãè¯æ°è¯ãéé³
â
/podcastcut-edit â æ§è¡å é¤ï¼è¾åº v3
â
宿
为ä»ä¹å å å 容åå¤çå£è¯¯ï¼
- 大段å 容å é¤åï¼è§é¢åç
- å£è¯¯è¯å«çè½¬å½æ´å¿«ï¼å®¡æ¥èå´æ´å°
- è¢«å æç大段éçå£è¯¯ä¸ç¨å¤çäº
说è¯äººå离
FunASR å
置说è¯äººå离åè½ï¼spk_model="cam++"ï¼ï¼èªå¨è¾åºè¯´è¯äººIDã
æµç¨
FunASR 转å½ï¼å¯ç¨ spk_modelï¼
â
è¾åºå¸¦è¯´è¯äººIDçå¥åï¼è¯´è¯äºº0ã说è¯äºº1...ï¼
â
æç´¢èªæä»ç»ç¡®è®¤ ID 对åºççå®äººå
â
çæå®¡æ¥ç¨¿æ¶æ¿æ¢ä¸ºçå®åå
â ï¸ è¯´è¯äººæ å°ç¡®è®¤æ¹æ³
ä¸è¦ç´æ¥ç¨ç¨æ·æä¾ç顺åºï¼ å¿ é¡»å¨è½¬å½ç»æä¸æç´¢èªæä»ç»çè¯ç¡®è®¤ï¼
# æç´¢å
³é®çè¯ç¡®å®è¯´è¯äººæ å°
key_phrases = ["ææ¯ä¸»æ", "ææ¯xxx", "å¤§å®¶å¥½ææ¯"]
for s in sentences:
for phrase in key_phrases:
if phrase in s['text']:
print(f"spk{s['spk']}: {s['text']}") # 确认 spk ID 对åºè°
常è§é®é¢
| é®é¢ | åå | è§£å³ |
|---|---|---|
| åä¸äººè¢«åæå¤ä¸ª ID | FunASR è¯å«ä¸ç¨³å® | å°å¤ä¸ª ID æ å°å°åä¸äººå |
| ID æ°éå¤äºå®é äººæ° | å¦ä¸ | æ ¹æ®èªæä»ç»åå¹¶å¤ä½ ID |
| åæ®µè½¬å½å ID éä½ | æ¯æ®µ ID ç¬ç«éç½® | ä¼å ç¨æ´ä½è½¬å½ï¼é¿å åæ®µ |
éå¶
| æ¡ä»¶ | ææ |
|---|---|
| 2-10äººå¯¹è¯ | ææå¥½ |
| é³é¢ < 30s | ææä¸é |
| è¶ è¿10人 | ææä¸é |
| åæ®µè½¬å½ | 说è¯äºº ID å¯è½ä¸ä¸è´ |
è¿åº¦ TodoList
å¯å¨æ¶å建ï¼
- [ ] 转å½é³é¢ï¼FunASRï¼å¥å级 + 说è¯äººå离ï¼
- [ ] é鳿£æµï¼FFmpeg silencedetectï¼
- [ ] çæéå稿
- [ ] AIåæï¼è¯å«è¯é¢ç»æ + æ 记建议å é¤
- [ ] è¾åºå®¡æ¥ç¨¿ï¼å«éé³ç段ï¼
- [ ] çå¾
ç¨æ·ç¡®è®¤
示ä¾å¯¹è¯
ç¨æ·: 帮æåªææå®¢éçåºè¯ï¼è¯´è¯äººæ¯ Maia ååææ
AI: 好çï¼ææ¥å¤çè¿ä¸ªæå®¢ã
1. 转å½é³é¢...
2. é鳿£æµ...
3. çæéå稿...
4. åæå
容...
å·²çæå®¡æ¥ç¨¿ï¼podcast_审æ¥ç¨¿.md
=== å
容大纲ï¼è¯é¢çº§ï¼===
| # | è¯é¢ | æ¶é¿ | AI建议 |
|---|------|------|--------|
| 1 | ç头坿 | 04:45 | ðï¸ å é¤ |
| 2 | æ£å¼å¼åº | 02:15 | â
ä¿ç |
| 3 | é²èï¼åå®¾èæ¯ | 01:13 | ðï¸ å é¤ |
| 4 | 主é¢è®¨è®º | 32:59 | â
ä¿ç |
=== å¥å级ç»è®¡ï¼æç±»åï¼===
- ç头坿ï¼12å¤
- å½å¶è®¨è®ºï¼8å¤
- éç§ä¿¡æ¯ï¼5å¤
- è·é¢é²èï¼3å¤
请å¨å®¡æ¥ç¨¿ä¸æ£æ¥å 餿 è®°ï¼è°æ´ååè¯ææ§è¡åªè¾ã
ç¨æ·: [å¨å®¡æ¥ç¨¿ä¸æ·»å /ç§»é¤äºä¸äºå 餿 è®°] 好äºï¼æå®¡æ¥ç¨¿åª
AI: 好çï¼ä»å®¡æ¥ç¨¿è§£æå 餿 è®°...
- æ¾å° 25 å¤å 餿 è®°
- å 餿»æ¶é¿ï¼06:32
æ§è¡åªè¾...
åé¦è®°å½
2026-01-31 (æ·±å¤)
- åæ®µè½¬å½å¯¼è´è¯´è¯äºº ID éä½ï¼åæ®µè½¬å½æ¶æ¯æ®µç说è¯äºº ID ç¬ç«éç½®ï¼åå¹¶ååä¸äººå¯è½æä¸å ID
- åå ï¼ä¸ºé¿å OOM å° 2 å°æ¶é³é¢åæ 13 æ®µï¼æ¯æ®µè¯´è¯äºº ID ä» 0 å¼å§
- è§£å³ï¼ä¼å ä½¿ç¨æ´ä½è½¬å½ï¼2 å°æ¶é³é¢çº¦ 16 åéï¼ä¸ä¼ OOMï¼
- å·²æ´æ°ï¼tips/è½¬å½æä½³å®è·µ.md æ°å¢ãåæ®µ vs æ´ä½è½¬å½ãç« è
- FunASR å¯è½æåä¸äººè¯å«ä¸ºå¤ä¸ª IDï¼3 人对è¯è¯å«åº 4 个说è¯äºº ID
- 表ç°ï¼åææè¢«åæ spk1ï¼60 å¥ï¼å spk3ï¼560 å¥ï¼
- è§£å³ï¼æç´¢èªæä»ç»çè¯ï¼”ææ¯ä¸»æxxx”ï¼ç¡®è®¤æ å°ï¼å°å¤ä¸ª ID åå¹¶
- å·²æ´æ°ï¼SKILL.mdã说è¯äººå离ãç« èæ°å¢ç¡®è®¤æ¹æ³å常è§é®é¢
- æ§è½æ°æ®æ´æ°ï¼2 å°æ¶æå®¢å®æµ 16 åéï¼3390 å¥ï¼ä¹åä¼°ç® 12 åéã800 å¥åä½ï¼
- å·²æ´æ°ï¼tips/è½¬å½æä½³å®è·µ.md æ§è½åè表
2026-01-31 (æä¸)
- 审æ¥ç¨¿å
容ä¸å®æ´ï¼AI å·æåäº “(åç»å
容为主é¢è®¨è®ºï¼ä¿ç…)” è䏿¯å®æ´éå稿
- å·²æ´æ°ï¼å¨å®¡æ¥ç¨¿æ ¼å¼”第åé¨å”æç¡®æ æ³¨å¿ é¡»è¾åºå®æ´å 容ï¼ä¸å 许çç¥
- è¾åºäºå¤ä½çéå稿æä»¶ï¼ç¨æ·åªéè¦ä¸ä¸ªå®¡æ¥ç¨¿ï¼å·²å
å«å®æ´éå稿ï¼
- å·²æ´æ°ï¼è¾åºæä»¶ç« èç§»é¤
podcast_éå稿.mdï¼æç¡®åªè¾åºå®¡æ¥ç¨¿
- å·²æ´æ°ï¼è¾åºæä»¶ç« èç§»é¤
2026-01-31
- å é¤”ç¨æ·ç¡®è®¤æ¹å¼”ç« èï¼ç¨æ·å®é
æä½æ¯ç´æ¥å¨å®¡æ¥ç¨¿ä¸ä¿®æ¹å 餿 è®°ï¼ä¸éè¦å½ä»¤å¼æä½
- æ§æµç¨ï¼ç¨æ·è¾å ¥ãå é¤è¯é¢ 1, 3ããå 餿æéé³ãçå½ä»¤
- å®é
æµç¨ï¼ç¨æ·å¨å®¡æ¥ç¨¿ä¸æ·»å /ç§»é¤
~~å é¤çº¿~~ï¼ç¶å说ãæå®¡æ¥ç¨¿åªã - å·²æ´æ°ï¼æµç¨å¾ã示ä¾å¯¹è¯ï¼ç§»é¤å½ä»¤å¼æä½è¯´æ
- FunASR è°ç¨åæ°é误导è´è½¬å½å¤±è´¥ï¼ä½¿ç¨ç®å模ååæ æ³è·å
sentence_info- éè¯¯åæ³ï¼
model="paraformer-zh"+spk_model="cam++"+sentence_timestamp=True - æ£ç¡®åæ³ï¼å¿ 须使ç¨å®æ´æ¨¡åè·¯å¾ + VAD + Punc å个模å
- åå ï¼SKILL.md åªåäºç®ååæ°ï¼å®é æ§è¡æ¶”èªç±å楔ç¨äºé误ç API
- å·²æ´æ°ï¼å¨ SKILL.md ä¸ç´æ¥å å«å®æ´çè°ç¨ä»£ç ï¼æ 注éè¯¯åæ³åæ£ç¡®åæ³å¯¹æ¯
- æè®ï¼å¯æ§è¡ç代ç å¿ é¡»å®æ´åå¨ SKILL.md ä¸ï¼ä¸è½åªååæ°å让 AI èªå·±æ¼
- éè¯¯åæ³ï¼
2026-01-25
- åéå°å¥å级æ¶é´æ³ï¼å符级 + 说è¯äººå离å¨é¿é³é¢ä¸ä¸ç¨³å®
- é®é¢ï¼å符级转å½åå并说è¯äººä¿¡æ¯ï¼è¯´è¯äººå¯¹é½åºéï¼”æ¯ä¸»æéº¦é ” 被å½å°åææåä¸ï¼
- åå ï¼
- é¿é³é¢è¯´è¯äººå离 OOMï¼2å°æ¶é³é¢ â 234MB WAVï¼
- åæ®µè¯´è¯äººå离è¿å 0 å¥åï¼API æ ¼å¼é®é¢ï¼
- åç¬¦çº§è½¬å½æ²¡ææ ç¹ï¼å¥åè¾¹çä¸èªç¶
- å·²æ´æ°ï¼åéå°å¥å级æ¶é´æ³ï¼æ¬ Skill åªå æ´å¥
- åå¥å é¤çç»
/podcastcut-transcribeï¼å符级ï¼
2026-01-24 (æä¸)
- å°è¯å级å°å符级æ¶é´æ³ï¼è§£å³å¥åçº§æ æ³ç²¾ç¡®å é¤é¨åå¥åçé®é¢
- é®é¢ï¼å é¤ “å¯ï¼æå¯ä»¥è®²ä¸ä¸å¯¹” ä¼è¿å¸¦å é¤ååå¥ “è¿æåå®¾å ¶å®æ³å¥å¥é请ç”
- å°è¯ï¼ä½¿ç¨ 30s åæ®µ +
timestamp_granularity="character"è·åå符级æ¶é´æ³ - ç»æï¼åç¬¦çº§è½¬å½æåï¼ä½è¯´è¯äººå离失败ï¼å¯¼è´è¯´è¯äººå¯¹é½é误
- æç»å³å®ï¼åéå°å¥å级ï¼è§ 2026-01-25 åé¦ï¼
2026-01-24
- æ°å¢é鳿£æµåè½ï¼ä½¿ç¨ FFmpeg silencedetect è¯å«å¤§æ®µç©ºç½ï¼â¥3ç§ï¼ï¼å¨å®¡æ¥ç¨¿ä¸åç¬ååºä¾ç¨æ·ç¡®è®¤å é¤
- 审æ¥ç¨¿æ è®°å é¤ä½å®é
æ²¡åªæï¼å®¡æ¥ç¨¿ä¸æ´å¥æ è®°å é¤ï¼ä½å 餿¸
ååªæé¨åå
容
- æ¡ä¾ï¼å®¡æ¥ç¨¿
~~å¯ï¼è¿ä¸ªè¦å°±æ¯å ·ä½ä¸ºä»ä¹...~~ï¼å 餿¸ ååªæå¯ï¼ - å·²æ´æ°ï¼å¼ºè°å®¡æ¥ç¨¿åå 餿¸ åå¿ é¡»åæ¥ï¼æ§è¡åªè¾åä»å®¡æ¥ç¨¿éæ°è§£æ
- æ¡ä¾ï¼å®¡æ¥ç¨¿
2026-01-18 (ä¸å)
- éå稿/审æ¥ç¨¿æ ¼å¼è°æ´ï¼åä¸è¯´è¯äººçå
容è¿å¨ä¸èµ·ï¼ä¸é奿¢è¡
- åæ ¼å¼ï¼æ¯å¥ä¸è¡
- æ°æ ¼å¼ï¼åä¸è¯´è¯äººçææå¥åè¿å¨ä¸æ®µé
- ä¼ç¹ï¼æ´ç´§åï¼é 读ä½éªæ´å¥½
2026-01-18
- å¿
é¡»ä½¿ç¨ Claude åè¯ä¹åæï¼åºäºè§åçå
³é®è¯å¹é
è´¨éä¸å¤
- é®é¢ï¼æ æ³è¯å«è¯ä¹å±é¢çè·é¢/é²èãéèçå½å¶è®¨è®º
- å·²æ´æ°ï¼æ°å¢ãAIåææ¹æ³ãç« èï¼æç¡®å¿ é¡»ç¨ Claude åæ®µåæéå稿
- å å«ï¼åææµç¨ãClaude prompt 模æ¿ãå é¤ç±»å详解
2026-01-17 (æä¸)
- 审æ¥ç¨¿ç¬¬äºé¨åæ ¼å¼è°æ´ï¼æ¹ä¸ºå®æ´éå稿 + å
èå 餿 è®°
- åæ ¼å¼ï¼æè¯é¢åç» â æ¯ä¸ªè¯é¢ä¸ååºå é¤å»ºè®®ï¼è¡¨æ ¼å½¢å¼ï¼
- æ°æ ¼å¼ï¼å®æ´éåç¨¿ï¼æ£æï¼ï¼å é¤å
容ç¨
~~å é¤çº¿~~+[å é¤: åå ]å èæ è®° - ä¼ç¹ï¼ä¿ç宿´ä¸ä¸æï¼ç¨æ·å¯ä»¥çå°ååæåå³å®æ¯å¦å é¤
2026-01-17 (ä¸å)
- 大åå é¤åªä¸å¹²åï¼è¿ç»å¥å齿 è®°å é¤ï¼ä½åªè¾æ¶éå¥å é¤ï¼ä¿çäºå¥é´ç©ºç½
- åå ï¼æ¯å¥ç¬ç«å¤çï¼æ²¡æåå¹¶è¿ç»åçç±çå é¤
- å·²æ´æ°ï¼æç¡®åå·¥ï¼æ¬ Skill èç¦å¥å级ï¼è¯æ°è¯/å£å¤´ç¦
ç±
/podcastcut-transcribeå¤ç - åªè¾è§åå·²åæ¥æ´æ°å°
/podcastcut-edit
- ä¸è¦å¨å¥å级æ è®°è¯æ°è¯ï¼å¥å级æ¶é´æ³ä¸å¤ç²¾ç¡®ï¼å è¯æ°è¯å®¹æè¯¯å
- å·²æ´æ°ï¼å é¤ç±»åå为ãå¥å级ãåãå符级ãï¼æç¡®åå·¥
2026-01-17 (ä¸å)
- å½å¶è®¨è®ºåææ¯è°è¯å¯è½åºç°å¨æå®¢ä»»ä½ä½ç½®ï¼ä¸åªæ¯ç头
- å·²æ´æ°ï¼å½å¶ç¸å ³æ£æµæ¹ä¸ºå ¨ç¨æ£æµï¼å¢å ææ¯é®é¢å ³é®è¯åè¿ç»æ®µè½æ£æµ
- å宾ä»ç»åçé²èï¼ä½å¨åªãåªå¹´æ¥çã妿 ¡æä¹æ ·ï¼å®¹ææ¼æ£
- å·²æ´æ°ï¼è·é¢/é²èæ£æµå¢å ä¿¡å·æ¨¡å¼ï¼å°åã妿 ¡åã年份ç¸å ³å¯¹è¯ï¼
- éå¥å®¡æ ¸æçä½ï¼ç¨æ·å¸æè½çå°å
¨å±ç»æãæ´åå é¤
- å·²æ°å¢ï¼å®¡æ¥ç¨¿æ´åè¯é¢çº§å¤§çº²åå¥å级å é¤å»ºè®®ï¼ä¸ä¸ªæä»¶å®æå®¡æ ¸