mcpField
V
voice-extractor

voice-extractor

github.com/mwguerra创意与媒体3639 次安装26 周前更新
代码仓库

关于 voice-extractor

voice-extractor 是从访谈、播客、会议等文字稿中提取作者表达特征的技能,可将分析结果用于完善作者档案。它同时提供说话人筛选、JSON 数据和 Markdown 报告,便于从多份文字稿归纳写作风格。

主要功能

  1. 01支持多种文字稿格式
  2. 02按说话人提取语音特征
  3. 03分析句式、表达风格和词汇
  4. 04生成 JSON 数据与 Markdown 报告
  5. 05将分析结果映射到作者档案字段

适用场景

  1. 01根据播客文字稿创建作者档案
  2. 02用新访谈内容完善既有档案
  3. 03为 AI 生成内容提炼写作风格参考

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mwguerra/claude-code-plugins --skill voice-extractor

安装后在 Claude Code 中输入/voice-extractor确认已加载。

附带文件references/TRANSCRIPT-FORMAT-EXAMPLES.mdreferences/VOICE-PROFILE-TEMPLATE.md

详细介绍

Voice Extractor

从转录文本中提取真实的声音特征,以完善作者档案。

用途

将转录数据(播客、采访、会议、视频)转化为可执行的写作指南,捕捉作者真实的声音,让 AI 生成的内容听起来自然且富有个人特色。

适用场景

  • 作者有自己的录音或转录文本
  • 想要捕捉真实的说话习惯
  • 需要完善手动创建的作者档案
  • 使用转录文本从头创建新的作者档案
  • 使用更多数据完善现有档案

工作流

1. 准备转录文本

接受以下格式的转录文本:

  • 纯文本:Speaker: text
  • 带时间戳:[00:01:23] Speaker: text 或 59:54 Speaker: text
  • 带方括号:[Speaker]: text
  • WhatsApp:[17:30, 12/6/2025] Speaker: text
  • SRT 字幕:标准字幕格式

如果用户提供的是音频/视频,而没有转录文本: 建议使用以下转录服务:

  • YouTube 自动字幕(可下载)
  • Otter.ai、Descript
  • OpenAI Whisper(本地运行)
  • Rev.com
2. 运行分析
# List speakers in transcript
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/voice-extractor.ts --list-speakers transcript.txt

# Extract for specific speaker
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/voice-extractor.ts --speaker "Name" transcript.txt

# Multiple transcripts (more data = better profile)
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/voice-extractor.ts --speaker "Name" t1.txt t2.txt t3.txt

# Output JSON for direct use with author profiles
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/voice-extractor.ts --speaker "Name" --json transcript.txt
3. 完善作者档案

提取的数据可用于完善以下作者字段:

提取的数据对应字段
沟通风格tone.formality、tone.opinionated
特征表达phrases.signature
句子开头语phrases.signature
标志性词汇vocabulary.use_freely
说话风格notes
4. 手动完善

自动提取后,阅读转录文本样本,以识别:

  • 独特表达:频率分析可能遗漏的口头禅
  • 幽默风格:讽刺、自嘲、机智表达模式
  • 讲故事的结构:如何铺陈轶事
  • 文化特征:地区表达、类比
  • 话题侧重:哪些内容会让他们兴致高涨

提取内容

句子结构
  • 平均句长
  • 多样性(短/中等/长/复杂)
  • 疑问句频率
沟通风格
  • 热情(love、amazing、awesome)
  • 保留语气(maybe、perhaps、I think)
  • 确定语气(definitely、absolutely)
  • 共情(understand、appreciate)
  • 直接表达(need to、must、bottom line)
  • 讲故事(so、and then、eventually)
  • 分析表达(because、therefore、however)
特征表达
  • 填充词:"you know"、"I mean"、"like"、"right"
  • 保留语气表达:"kind of"、"sort of"、"I guess"
  • 强调词:"honestly"、"literally"、"definitely"
词汇
  • 频繁使用的标志性词汇
  • 词汇丰富度百分比

与作者档案集成

根据转录文本创建新作者档案
# 1. Extract voice data
/article-writer:author analyze --speaker "John" transcripts/*.txt

# 2. Review and confirm extraction
# Claude will show extracted patterns

# 3. Add identity info
/article-writer:author add
# Answer: name, role, expertise, languages

# 4. Merge voice data
# Claude will combine extracted + manual data
完善现有作者档案
# 1. Extract from new transcripts
/article-writer:author analyze --speaker "John" --author-id mwguerra new_podcast.txt

# 2. Review changes
# Claude shows what will be updated

# 3. Confirm merge
# Voice analysis data added to existing profile

输出格式

JSON 输出(用于合并)
{
  "voice_analysis": {
    "extracted_from": ["podcast_ep1.txt", "interview.txt"],
    "sample_count": 156,
    "total_words": 12450,
    "sentence_structure": {
      "avg_length": 14.5,
      "variety": "moderate length, conversational",
      "question_ratio": 12.3
    },
    "communication_style": [
      { "trait": "enthusiasm", "percentage": 28.5 },
      { "trait": "analytical", "percentage": 24.1 },
      { "trait": "directness", "percentage": 18.7 }
    ],
    "characteristic_expressions": [
      "you know",
      "I think",
      "the thing is",
      "at the end of the day"
    ],
    "sentence_starters": [
      "I think",
      "So the",
      "And then",
      "But the"
    ],
    "signature_vocabulary": [
      "actually",
      "basically",
      "approach",
      "strategy",
      "implementation"
    ],
    "analyzed_at": "2025-01-15T10:00:00Z"
  },
  "suggested_updates": {
    "tone": {
      "formality": 5,
      "opinionated": 7
    },
    "phrases": {
      "signature": ["you know", "the thing is", "at the end of the day"]
    },
    "vocabulary": {
      "use_freely": ["approach", "strategy", "implementation"]
    }
  }
}
Markdown 报告
# Voice Analysis: John Smith

*Analyzed 156 speaking turns, 12,450 words*

## Speaking Style
- **Sentence length**: Moderate (~14 words avg)
- **Questions**: Uses questions occasionally (12%)
- **Vocabulary richness**: 45% unique words

## Communication Style
- **Primary**: Enthusiastic (28%)
- **Secondary**: Analytical (24%)
- **Tertiary**: Direct (19%)

## Characteristic Expressions
- "you know" (used 45x)
- "I think" (used 38x)
- "the thing is" (used 22x)

## Sentence Starters
- "I think..." (28x)
- "So the..." (19x)
- "And then..." (15x)

## Signature Vocabulary
**actually** (67x), **basically** (45x), **approach** (34x)

---

## Recommendations for Author Profile

Based on this analysis:
- Set formality to 5 (conversational but professional)
- Set opinionated to 7 (confident, uses "I think" but states opinions)
- Add signature phrases: "you know", "the thing is"
- Use vocabulary freely: approach, strategy, implementation

质量指标

高质量的声音分析需要:

  • 100 次以上发言,以确保模式分析可靠
  • 5,000 个以上词语,用于词汇分析
  • 多种语境(不同的话题/对话)

数据不足警告:

⚠️ Limited data: Only 23 speaking turns found.
   Results may not fully represent speaking patterns.
   Consider adding more transcripts.

参考资料

评论

支持 Markdown