mcpField
V
voice-extractor

voice-extractor

github.com/mwguerraクリエイティブ・メディア3639 回インストール26 週間前に更新
リポジトリ

voice-extractor について

voice-extractorは、インタビューやポッドキャスト、会議などの文字起こしから著者の表現特性を抽出するスキルです。話者を選んで分析し、JSONデータやMarkdownレポートを出力して、複数の文字起こしから著者プロフィールを整えられます。

主な機能

  1. 01複数形式の文字起こしに対応
  2. 02指定した話者の表現特性を抽出
  3. 03文構造、話し方、語彙を分析
  4. 04JSONデータとMarkdownレポートを生成
  5. 05分析結果を著者プロフィール項目に反映

活用シーン

  1. 01ポッドキャストの文字起こしから著者プロフィールを作成
  2. 02新しいインタビューで既存プロフィールを拡充
  3. 03AI生成コンテンツ向けの文体ガイドを作成

インストール

コマンドをコピーしてターミナルで実行します。

$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

詳細

音声抽出

文字起こしから本物の声の特徴を抽出し、著者プロフィールを強化します。

目的

文字起こしデータ(ポッドキャスト、インタビュー、会議、動画)を、著者本人らしい声を捉えた実践的な執筆ガイドラインに変換し、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. 手動で強化する

自動抽出の後、文字起こしのサンプルを読んで、次の点を特定します。

  • 独特なフレーズ:頻度分析では見逃された決まり文句
  • ユーモアのスタイル:皮肉、自虐、機知のパターン
  • ストーリー構成:逸話をどのように展開するか
  • 文化的な特徴:地域特有の表現、たとえ
  • 話題への熱意:どんな話題で熱が入るか

抽出される内容

文の構成
  • 平均的な文の長さ
  • 多様性(短文/中程度/長文/複雑)
  • 疑問文の頻度
コミュニケーションスタイル
  • 熱意(大好き、すばらしい、最高)
  • 断定を避ける表現(たぶん、おそらく、〜だと思います)
  • 確信(間違いなく、絶対に)
  • 共感(理解する、ありがたく思う)
  • 率直さ(〜する必要がある、〜しなければならない、要するに)
  • ストーリーテリング(それで、そしてその後、最終的に)
  • 分析的な表現(なぜなら、したがって、しかし)
特徴的な表現
  • フィラー:「ご存じのとおり」「つまり」「〜のような」「ですよね」
  • 断定を避ける表現:「ある種の」「どちらかといえば」「〜だと思います」
  • 強調表現:「正直に言うと」「文字どおり」「間違いなく」
語彙
  • 頻繁に使われる、その人らしい単語
  • 語彙の豊富さの割合

著者プロフィールとの統合

文字起こしから新しい著者を作成する
# 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.

参考資料

コメント