Snowflake Knowledge - INSIGHT LAB

Snowflake Cortexで実現するコールセンターの音声AI解析

作成者: Michael|2026年6月15日

1.はじめに

コールセンターには日々大量の音声データが蓄積されています。そこには、テキストデータだけでは把握しきれない「顧客の本音」や「潜在的な課題」が含まれています。

しかし従来は、外部サービスへのデータ転送や複雑なパイプライン構築が必要となるケースが多く、音声データ活用のハードルは高いものでした。

今回は、Snowflakeの AI_TRANSCRIBE をはじめとする Cortex AI関数 を活用し、データの移動を最小限に抑えながら、音声の文字起こしから感情分析、要約、改善提案の生成までをSnowflake上で一気通貫に実現する構成を検証しました。

 

2.なぜ Snowflake で音声分析を行うのか?

最大のメリットは、「データをSnowflake外へ極力持ち出さずに分析できること」 にあります。

強固なセキュリティとコンプライアンス

顧客情報を含む音声データを外部APIへ転送せずに処理できるため、GDPRや個人情報保護法などへの対応が行いやすくなります。

データ基盤とのシームレスな統合

文字起こし結果をそのままSQLで分析できるだけでなく、既存の顧客マスターや契約情報などの業務データとも容易に結合できます。

開発・運用コストの低減

SQLベースで実装できるため、外部サービス連携や複雑なインフラ構築を最小限に抑えられます。PoCから本番導入までを短期間で進めやすい点も大きなメリットです。

 

3.検証シナリオ:自動車保険コールセンターの業務改善

今回は「自動車保険コールセンターのスーパーバイザー」という想定で、担当者の対応品質や顧客感情、解決率を分析する仕組みを構築しました。

実装にあたっては、Snowflake Developer Guides を参考にしています。

準備:AI機能とデータ基盤のセットアップ

通常どおりデータベースやスキーマ、権限設定を行ったうえで、 AI_TRANSCRIBE を利用するために以下2点を設定します。

①クロスリージョンでのAI利用を有効化 一部のCortex機能は特定リージョンで提供されているため、日本リージョンなどから利用する場合はクロスリージョン利用を許可する必要があります。

-- リージョンを跨いだCortex機能の使用を有効化
ALTER ACCOUNT SET CORTEX_ENABLED_CROSS_REGION = 'ANY_REGION';

 

② 音声ファイル格納用ステージの作成 今回は、音声ファイル格納用の内部ステージを作成します。 ディレクトリテーブルを有効化することで、ステージ内ファイルの一覧やメタデータをSQLから参照できるようになります。

 -- 音声ファイル用のステージを作成
CREATE OR REPLACE STAGE call_center_analytics_db.analytics.audio_files
    DIRECTORY = (ENABLE = TRUE)
    ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
    COMMENT = 'コールセンターの音声ファイル用ステージ'; 

 

実践:音声解析の2ステップ

ステップ1:AI_TRANSCRIBEによる文字起こし

まずは、ステージに保存された音声ファイルをテキスト化します。 AI_TRANSCRIBE は日本語を含む40以上の言語に対応しており、1ファイルあたり最大700MB、最大120分まで処理可能です。

CREATE OR REPLACE TABLE ai_transcribed_calls AS
SELECT
call_id,
AI_TRANSCRIBE(audio_file):text::STRING AS transcript_text
FROM audio_files_for_transcription;

 

AI_TRANSCRIBE の戻り値から :text を取得するだけで、文字起こし結果を簡単に取得できます。

公式ガイドでは、これに加えて処理ステータスや文字数なども保持しています。これは大量ファイルの安定した運用や後続の分析を見据えた構成です。

まずはシンプルな構成で試し、必要に応じて運用向けの項目を追加していくとスムーズです。

 

ステップ2:Cortex AIによる多角的なインサイト抽出

文字起こし結果に対し、Snowflake Cortex関数を組み合わせて分析を行います。

  • 感情分析 (SENTIMENT) 通話全体の感情傾向を数値化
  • 要約 (SUMMARIZE) 長文の会話内容を短く要約
  • 構造化抽出 (AI_COMPLETE) 顧客名や問い合わせ内容をJSON形式で抽出

以下は、感情分析・要約・構造化抽出を同時に実行する例です。

CREATE OR REPLACE TABLE comprehensive_call_analysis AS
SELECT
    call_id,
   
transcript_text,
   
-- 感情分析
   
SNOWFLAKE.CORTEX.SENTIMENT(transcript_text) AS sentiment_score,
   
-- 要約
    SNOWFLAKE.CORTEX.SUMMARIZE(transcript_text) AS call_summary,
    -- 構造化抽出
    AI_COMPLETE(
        model => 'claude-sonnet-4-6',
        prompt => '通話記録を分析し、customer_name, agent_name, primary_intent をJSON形式で抽出してください: ' || transcript_text,
        response_format => {
            'type': 'json',
            'schema': {
                 'type': 'object',
                 'properties': {
                     'customer_name': { 'type': 'string' },
                     'agent_name': { 'type': 'string' },
                     'primary_intent': { 'type': 'string' }
                 },
                 'required': [
                     'customer_name',
                     'agent_name',
                     'primary_intent'
                 ]
             }
         }
    ) AS call_analysis
FROM ai_transcribed_calls
WHERE transcript_text IS NOT NULL; 

 

数行のSQLだけで、音声データから構造化されたインサイトを取得できる点は非常に強力です。

補足:実運用を見据えた高度な分析 Snowflake Developer Guidesでは、さらに実運用を想定した分析例も紹介されています。

  • 詳細なJSONスキーマによる厳密なデータ抽出
  • エージェント対応品質のスコアリング
  • AIによる改善提案生成
  • ノイズデータの除外

単純なPoCにとどまらず、「運用可能な分析基盤」まで視野に入れられている点が参考になります。

 

4.分析結果の活用

蓄積した分析結果を用いることで、次のような活用が可能になります。

エージェント別パフォーマンス分析

対応品質や解決率を可視化し、追加トレーニングが必要な領域を把握できます。

問い合わせ傾向の分析

解約、契約変更、技術問い合わせなど、問い合わせ内容ごとの感情傾向を分析できます。

フィードバックの自動化

AIが生成した改善提案を活用することで、スーパーバイザーによるフィードバックを効率化できます。

 

5.まとめ

Snowflake Cortexを活用することで、音声データを「保存するだけのデータ」ではなく、「業務改善につながる分析資産」 として活用できるようになります。

特に、文字起こしから感情分析、要約、構造化抽出までをSQL中心で実現できる点は大きな魅力です。

複雑なパイプライン構築に時間をかけるのではなく、「データからどのような価値を引き出すか」に集中できることこそ、AI統合型データ基盤の大きな価値だと感じました。

 

6.参考資料

https://docs.snowflake.com/ja/sql-reference/functions/ai_transcribe

https://www.snowflake.com/en/developers/guides/