voice-extractor について
voice-extractorは、インタビューやポッドキャスト、会議などの文字起こしから著者の表現特性を抽出するスキルです。話者を選んで分析し、JSONデータやMarkdownレポートを出力して、複数の文字起こしから著者プロフィールを整えられます。
主な機能
- 01複数形式の文字起こしに対応
- 02指定した話者の表現特性を抽出
- 03文構造、話し方、語彙を分析
- 04JSONデータとMarkdownレポートを生成
- 05分析結果を著者プロフィール項目に反映
活用シーン
- 01ポッドキャストの文字起こしから著者プロフィールを作成
- 02新しいインタビューで既存プロフィールを拡充
- 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.
参考資料
コメント
Markdown 対応