conversation-intelligence

star 0

会話データから話者認識・感情読み取り・5W1H(いつ・どこで・誰が・何を・なぜ・どのように)抽出を行うプロダクトの設計・開発・レビューを包括的に支援するスキル。 **必ずこのスキルを使うべきシーン(1%でも当てはまれば即起動):** - 「会話を解析したい」「誰が話しているか特定したい」「感情を読み取りたい」と言われたとき - 話者分離(Speaker Diarization)・話者認識(Speaker Identification)の実装を求められたとき - Emotion Recognition in Conversation (ERC)・感情推定・感情分析を実装するとき - 議事録生成・会議要約・会話ログ構造化など会話インテリジェンス全般 - 「誰がいつ何を話したか」「発言者は誰か」「どんな感情で話しているか」を抽出するシステム - 音声・テキスト・映像など複数モダリティを組み合わせた会話解析 - コールセンター・議事録・インタビュー・多人数会議・オンライン授業など会話データを扱う全シーン - 会話解析プロダクトのアーキテクチャ設計・コードレビュー・品質改善

mashharuki By mashharuki schedule Updated 6/6/2026

name: conversation-intelligence description: | 会話データから話者認識・感情読み取り・5W1H(いつ・どこで・誰が・何を・なぜ・どのように)抽出を行うプロダクトの設計・開発・レビューを包括的に支援するスキル。

必ずこのスキルを使うべきシーン(1%でも当てはまれば即起動): - 「会話を解析したい」「誰が話しているか特定したい」「感情を読み取りたい」と言われたとき - 話者分離(Speaker Diarization)・話者認識(Speaker Identification)の実装を求められたとき - Emotion Recognition in Conversation (ERC)・感情推定・感情分析を実装するとき - 議事録生成・会議要約・会話ログ構造化など会話インテリジェンス全般 - 「誰がいつ何を話したか」「発言者は誰か」「どんな感情で話しているか」を抽出するシステム - 音声・テキスト・映像など複数モダリティを組み合わせた会話解析 - コールセンター・議事録・インタビュー・多人数会議・オンライン授業など会話データを扱う全シーン - 会話解析プロダクトのアーキテクチャ設計・コードレビュー・品質改善

Conversation Intelligence Skill

会話データを深く理解・構造化するためのプロダクトを、設計から実装・レビューまで一気通貫で支援する。 このスキルを呼び出した瞬間から、あなたはConversation Intelligence の専門家として動く。

このスキルが解決する問題

ユーザーのニーズ 対応する技術領域
「誰が話しているか知りたい」 話者分離 (Diarization) + 話者認識 (Identification)
「どんな感情で話しているか」 感情認識 (ERC / SER)
「いつ・どこで・誰が・何を話したか」 5W1H情報抽出 + NER + 関係抽出
「会話の要点をまとめたい」 会話要約 + アクション抽出
「リアルタイムで処理したい」 ストリーミングパイプライン設計

フェーズ1: 要件ヒアリングと問題定義

まず以下を確認する。答えが曖昧でも先に進んで良いが、記録しておく。

1. INPUT形式は何か?
   - 音声ファイル (WAV/MP3/FLAC) のバッチ処理
   - リアルタイム音声ストリーム
   - テキスト (文字起こし済み)
   - 映像 + 音声 (マルチモーダル)

2. 話者の状況は?
   - 1対1会話 vs 多人数会議(3人以上)
   - 話者は事前登録されているか(クローズドセット) vs 未知の話者(オープンセット)
   - 話者の重複発話(オーバーラップ)はどれくらいあるか

3. 感情認識は何を使うか?
   - 音声のみ (SER: Speech Emotion Recognition)
   - テキストのみ (文章感情分析)
   - マルチモーダル (音声 + テキスト + 表情)
   - 何カテゴリーの感情を識別するか(6基本感情 vs valence/arousal連続値)

4. 5W1H抽出の粒度は?
   - 発話レベル(誰がその一言を言ったか)
   - イベントレベル(会話全体から特定イベントを抽出)
   - ドメイン固有か(医療・法律・ビジネス)

5. 処理規模・レイテンシ要件は?
   - バッチ処理 vs リアルタイム (< 500ms latency)
   - 同時処理する会話の数
   - データプライバシー要件(オンプレ vs クラウド)

フェーズ2: アーキテクチャ設計

推奨パイプライン構成

[音声/テキスト入力]
        ↓
[前処理] ─── ノイズ除去・正規化・フォーマット変換
        ↓
[VAD] ──────  音声区間検出 (Voice Activity Detection)
        ↓
[話者分離] ── Diarization: "誰がいつ話したか" を時間軸で分割
        ↓
[ASR] ──────  音声→テキスト変換 (Whisper / Faster-Whisper)
        ↓
[話者認識] ── Identification: 各セグメントを既知話者にマッピング
        ↓
[感情認識] ── ERC: テキスト+音声から感情推定
        ↓
[5W1H抽出] ─ NER・関係抽出・イベント検出
        ↓
[構造化出力] JSON / DB / ダッシュボード

スケール別アーキテクチャ選択

規模 推奨構成 参照
小規模 (PoC) ローカルPython + pyannote + Whisper + LLM references/tech-stack.md
中規模 FastAPI + 非同期キュー + Docker references/tech-stack.md
大規模 AWS/クラウドネイティブ + Kinesis + Lambda references/tech-stack.md

フェーズ3: 技術選定ガイド

詳細な技術比較と実装パターンはリファレンスを参照:

  • 話者分離・認識references/speaker-diarization.md
  • 感情認識references/emotion-recognition.md
  • 5W1H情報抽出references/conversation-analysis.md
  • 技術スタック選定references/tech-stack.md

クイックスタート技術スタック(最速で動かす場合)

# 話者分離 + 音声認識
pip install pyannote.audio openai-whisper

# 感情認識
pip install transformers torch  # emotion-english-distilroberta-base

# 5W1H抽出
pip install spacy ja_core_news_lg  # 日本語NER
# または LLM (Claude / GPT-4) で情報抽出

フェーズ4: 実装サポート

コード生成の手順

  1. インターフェース定義を先に作る — 入出力スキーマ(Pydanticモデル)を定義
  2. パイプラインを最小構成で動かす — 全コンポーネントをつなぐglueコードから
  3. 各コンポーネントを置き換え可能に — Strategy/Factory パターンで実装
  4. 精度評価スクリプトを作る — DER (Diarization Error Rate) / WER / F1 を計測

必ず確認すること(実装前チェックリスト)

  • モデルのライセンスを確認(pyannoteは商用利用に要登録)
  • 言語設定を確認(日本語 vs 英語でモデルが変わる)
  • GPUが使えるか確認(推論速度に大きく影響)
  • データプライバシー規制を確認(GDPR/個人情報保護法)
  • 重複発話(オーバーラップ)の扱いを決める

フェーズ5: 評価・品質改善

評価指標

タスク 指標 目標値(参考)
話者分離 DER (Diarization Error Rate) < 10%
感情認識 Weighted F1 / Accuracy > 70% (IEMOCAP)
情報抽出 F1 / Precision / Recall > 80%
ASR WER (Word Error Rate) < 10% (Whisper large)

デバッグフロー

精度が低い → どのコンポーネントが原因か?
├─ DERが高い → 話者分離の問題
│   ├─ ノイズが多い → 前処理強化
│   ├─ 話者数推定が間違い → min/max_speakers を調整
│   └─ オーバーラップが多い → EEND-OLA / NSD系モデルに変更
├─ 感情F1が低い → 感情認識の問題
│   ├─ 発話が短すぎる → コンテキスト窓を広げる
│   ├─ ドメインミスマッチ → ドメイン適応/ファインチューニング
│   └─ クラス不均衡 → サンプリング戦略 / 重み付き損失
└─ 情報抽出精度が低い → プロンプトエンジニアリングを改善
    ├─ Few-shot例を追加
    └─ ドメイン固有エンティティ辞書を構築

フェーズ6: コードレビュー

コードレビュー時は以下の観点で必ずチェックする:

  1. 精度・品質: モデルの精度は測定されているか、評価データセットはあるか
  2. 性能: 推論時間は要件を満たすか、バッチ化・非同期化されているか
  3. エラーハンドリング: 音声品質が悪い場合のfallback、タイムアウト処理
  4. スケーラビリティ: コンポーネントは差し替え可能か(抽象化されているか)
  5. プライバシー: 音声データのログ出力、個人情報の取り扱い
  6. テスト: 単体テスト・統合テスト・評価スクリプトの有無
  7. 再現性: モデルバージョン固定、シード固定、設定ファイル化

サブエージェント活用

複雑なタスクでは専門サブエージェントを呼び出す(agents/配下を参照):

サブエージェント 起動タイミング
agents/system-architect.md 大規模システム設計、クラウドアーキテクチャ決定時
agents/implementation-guide.md 特定コンポーネントの詳細実装、コード生成時
agents/evaluator.md 精度評価・ベンチマーク設計、改善提案時

出力フォーマット標準

ユーザーに提示する会話解析結果は以下の形式を基本とする:

{
  "conversation_id": "conv_20240601_001",
  "duration_seconds": 3600,
  "speakers": [
    {
      "speaker_id": "SPEAKER_00",
      "name": "田中 太郎",  // 話者認識で特定された場合
      "total_speech_time": 1200,
      "emotion_summary": {
        "dominant": "neutral",
        "distribution": {"neutral": 0.6, "happy": 0.2, "concern": 0.2}
      }
    }
  ],
  "utterances": [
    {
      "id": "utt_001",
      "speaker_id": "SPEAKER_00",
      "start_time": 0.0,
      "end_time": 5.3,
      "text": "本日の議題について説明します",
      "emotion": {"label": "neutral", "confidence": 0.87},
      "entities": {
        "when": ["本日"],
        "what": ["議題"],
        "action": "説明"
      }
    }
  ],
  "summary": {
    "key_topics": ["議題A", "タスクB"],
    "action_items": [
      {"who": "田中", "what": "資料作成", "when": "来週金曜"}
    ],
    "sentiment_arc": "neutral → positive → concern"
  }
}
Install via CLI
npx skills add https://github.com/mashharuki/AWS-SummitHackathon-2026 --skill conversation-intelligence
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator