情報システム部門のヘルプデスクにかかってくる電話を文字起こしし、症状・端末・試したこと・対応をチケットの項目に起こす
社内のヘルプデスクにかかってきた電話の録音を文字にし、申告者・端末・症状・試したこと・対応・結果をチケットの項目に分けた下書きにします。担当者は通話のあとにメモを清書する代わりに、下書きを確かめて起票します。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- AIサービス
- Azure AI
- 対象業界
- 商社/物流/製造
- 対象部門
- 情報システム
- 対象業務
- データ入力・転記/記録・議事録作成
- 主な課題
- 人手が足りない/入力作業が多い/引き継ぎができていない
- AIで行う処理
- 要約
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 電話を受け、申告者の名前・拠点・内線を聞く
- 症状を聞きながら、紙にメモを取る
- 申告者に再起動や再ログインなどを試してもらい、結果を聞く
- 解決すれば通話を終える。解決しなければ二次対応へ回すことを伝える
- 通話のあと、メモを見ながらチケットに申告者・拠点・端末・症状・試したこと・対応・結果を入力する
- 端末の番号が分からないときは、資産台帳を申告者の名前で引いて探す
- 二次対応へ回すものは、引き継ぎのメモを書いて担当に知らせる
- 人電話を受け、これまでどおり話を聞いて対応する。資産番号と内線は、通話の中で声に出して確かめる
- 自動通話が終わると、電話の設備が録音を保管場所に書き出す
- 自動録音の保存をきっかけに処理が動き、通話の長さとチャンネルの数を確かめる
- 自動音声認識が、担当者側と申告者側のチャンネルを別々に文字にする
- 自動生成AIが、文字起こしをチケットの項目に分けて写し、通話の中で触れていない項目を示す
- 自動資産番号と内線を、資産台帳と社員の一覧で引き、合うかどうかの印を付ける
- 自動パスワードやワンタイムの番号に当たる部分を伏せる
- 自動チケット管理の仕組みに「下書き」の状態で登録し、受けた担当者に知らせる
- 人担当者が下書きを開き、印の付いた項目を確かめ、分類と優先度を選んで起票する
- 人二次対応へ回すものは、下書きの経緯を添えて担当に渡す
各工程の詳しい説明を読む
- 電話を受け、申告者の名前・拠点・内線を聞く
- 症状を聞きながら、紙にメモを取る
- 申告者に再起動や再ログインなどを試してもらい、結果を聞く
- 解決すれば通話を終える。解決しなければ二次対応へ回すことを伝える
- 通話のあと、メモを見ながらチケットに申告者・拠点・端末・症状・試したこと・対応・結果を入力する
- 端末の番号が分からないときは、資産台帳を申告者の名前で引いて探す
- 二次対応へ回すものは、引き継ぎのメモを書いて担当に知らせる
(a)清書の時間が、次の電話に食われる。 1件の通話のあとの記録は数分ですが、電話は続けて鳴ります。記録を後回しにすると、夕方にはどの電話が何だったかが曖昧になり、メモの読めない字を推測で埋めます。
(b)症状と対応が混ざる。 「画面が固まる」と書かれたチケットを読んでも、申告者がそう言ったのか、担当者が確かめたのかが分かりません。「再起動済み」が、申告者が自分でしたのか、担当者に言われてしたのかも分かりません。 二次対応の担当は、同じことを申告者にもう一度頼むことになります。
(c)端末の番号が抜ける。 電話口で資産番号を聞くと、申告者はPCの裏のラベルを探しに行きます。聞きそびれたまま通話を終えると、チケットの端末の欄が空になります。 名前で資産台帳を引くと、共用PCや貸出の端末では本人の名前で出てきません。
(d)担当者によって書き方が違う。 ある担当者は症状を一行で書き、別の担当者は通話の経緯を長く書きます。同じ症状の問い合わせをあとで数えようとしても、言い方がばらばらで集まりません。
- 【人】 電話を受け、これまでどおり話を聞いて対応する。資産番号と内線は、通話の中で声に出して確かめる
- 【自動】 通話が終わると、電話の設備が録音を保管場所に書き出す
- 【自動】 録音の保存をきっかけに処理が動き、通話の長さとチャンネルの数を確かめる
- 【自動】 音声認識が、担当者側と申告者側のチャンネルを別々に文字にする
- 【自動】 生成AIが、文字起こしをチケットの項目に分けて写し、通話の中で触れていない項目を示す
- 【自動】 資産番号と内線を、資産台帳と社員の一覧で引き、合うかどうかの印を付ける
- 【自動】 パスワードやワンタイムの番号に当たる部分を伏せる
- 【自動】 チケット管理の仕組みに「下書き」の状態で登録し、受けた担当者に知らせる
- 【人】 担当者が下書きを開き、印の付いた項目を確かめ、分類と優先度を選んで起票する
- 【人】 二次対応へ回すものは、下書きの経緯を添えて担当に渡す
9番目が、この設計の分かれ目です。起票は人が行います。 下書きは、通話の中で言われたことを項目に分けたもので、優先度と分類は担当者が選びます。 工場のラインが止まっているか、1人のPCの不調かは、通話の文脈と社内の事情を知っている担当者が判断します。
1番目の「声に出して確かめる」は、運用の決まりです。 資産番号を担当者が復唱すれば、担当者側のチャンネルにはっきりした声で番号が残ります。音声認識の精度を上げるより、復唱の決まりを作るほうが効きます。
02今回想定するシステム構成
ヘルプデスクの電話(担当者側・申告者側を2チャンネルで録音) │ 通話の終了時に録音を書き出し ▼【トリガー】保管場所への録音の保存 Azure Functions ── 通話の長さ・チャンネル数の確認、社内の用語のフレーズリストの用意 ▼ Azure AI Speech(高速文字起こし) │ チャンネル0(担当者)とチャンネル1(申告者)を別々に文字にする ▼ Azure OpenAI ── 申告者/拠点/端末/対象のシステム/症状/試したこと/対応/結果 に分ける │ 通話の中で触れていない項目を示す ▼ Azure Functions ── 資産台帳・社員の一覧との照合、パスワード等の伏せ字 ▼ チケット管理の仕組みに「下書き」で登録、受けた担当者へ通知 ▼ 【担当者が確認し、分類と優先度を選んで起票】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Azure AI Speech(高速文字起こし、チャンネルごとの文字起こし、フレーズリスト) | Google Cloud Speech-to-Text、Amazon Transcribe |
| 生成AI | Azure OpenAI(Microsoft Foundry)(構造化出力でチケットの項目に分ける) | Claude API、Gemini API |
| 連携 | Azure Functions(録音の受け取り、照合、下書きの登録) | Azure Logic Apps |
| 保管 | Azure Blob Storage(録音と文字起こしの控え) | 社内のファイルサーバー |
| チケット | 既存のチケット管理の仕組み | ― |
チケット管理の仕組みと資産台帳は、新しく足すものではありません。 足すのは、録音を受け取って文字にし、下書きを登録する中継の処理です。チケット管理の仕組みに下書きを登録する方法(API、メールでの起票、取込のファイル)は製品によって違い、ここは利用環境に応じた個別実装になります。
文字起こしには、Azure AI Speech の高速文字起こしを使います。 公式の説明では、高速文字起こしは結果を同期で、実時間より速く返す仕組みで、対象は5時間未満・500MB未満の音声です。WAV、MP3、OPUS/OGG、FLAC、WMA、AAC、WAV コンテナーの ALAW と MULAW、AMR、WebM、SPEEX を受け付けます。電話の設備が書き出す形式の多くが、この中に入ります。 日本語(ja-JP)は、言語の一覧で高速文字起こしの対応が示されています。
担当者と申告者は、チャンネルで分けます。 公式の説明では、高速文字起こしは既定ではすべてのチャンネルを1つにまとめて文字にし、ステレオの音声のチャンネルを別々に文字にしたいときは channels に [0,1] を指定します。応答では、発話ごとに channel が付きます。話者の分離(diarization)は1つのチャンネルの中で話者を聞き分ける仕組みで、ステレオの音声で話者の分離を有効にすると [0,1] を指定できません。 電話の録音が2チャンネルで残せるなら、話者の分離より確実なチャンネルで分けます。
03どうやって実装するのか
処理の起点を決める
電話の設備が録音を保管場所に書き出したことを起点にします。 対象は、ヘルプデスクの番号にかかってきた通話だけです。通話が終わってから数分で下書きが届けば、担当者は申告者の声を覚えているうちに確かめられます。
通話が20秒未満のものは対象から外します。「〇〇さんいますか」「かけ直します」だけの通話に下書きを作っても、チケットの一覧が埋まるだけです。 折り返しの電話(担当者からかけたもの)も対象にし、同じ申告者の未完了のチケットがあれば、新しい下書きではなく、そのチケットへの追記の案として作ります。
処理が終わった録音には「処理済み」の印を付け、印の無い録音の数が未処理の数になるようにします。印を付けるのは、下書きの登録に成功したときだけにします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 通話の録音 | 2チャンネル(0=担当者、1=申告者)。通話の開始時刻、長さ、受けた担当者の内線、発信元の番号 | 電話の設備 |
| 文字起こし | チャンネルごとの発話、時刻、信頼度 | Azure AI Speech |
| チケットの項目の定義 | 申告者、拠点、内線、端末、対象のシステム、症状、発生の時期、影響の範囲、試したこと、対応、結果、次の対応 | ヘルプデスクで決めた一覧 |
| 社内の用語の一覧 | 社内のシステム名、拠点名、端末の型番、よく出るエラーの言葉 | ヘルプデスクで用意する一覧 |
| 資産台帳 | 資産番号、PC名、設置場所、使用者、型番 | 資産台帳の日次の書き出し |
| 社員の一覧 | 氏名、所属、拠点、内線 | 人事の一覧の書き出し |
質を決めるのは、社内の用語の一覧です。 「シュッカシジ」が「出荷指示」なのか、社内の基幹システムの画面名なのかは、一覧が無ければ音声認識には分かりません。社内のシステム名、画面の名前、拠点の呼び名、端末の型番を一覧にし、フレーズリストとして渡します。公式の目安では、フレーズリストは2,000語句を超えないようにし、長いほど品質と待ち時間に影響するとされています。
発信元の番号は、申告者の手がかりに使います。 共用の電話からの通話もあるので、番号から決めた申告者は「候補」として扱います。
データの取得方法を決める
文字起こしは、Azure Functions から高速文字起こしの API を呼ぶだけです。
| 指定するもの | 値 | 何のためか |
|---|---|---|
locales | ja-JP | 言語の判定を省き、認識を安定させる |
channels | [0,1] | 担当者と申告者を別々に文字にする |
phraseList | 社内の用語の一覧 | システム名・拠点名・型番を認識させやすくする |
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 発話ごとの文字 | 応答の phrases の text | 下書きの材料 |
| チャンネル | phrases の channel | 担当者の発言か申告者の発言かの区別 |
| 発話の時刻 | offsetMilliseconds/durationMilliseconds | チケットの各項目から録音の該当箇所へ戻る |
| 信頼度 | phrases の confidence | 聞き取りの怪しい発話の印 |
| 全文 | combinedPhrases(チャンネルごと) | 下書きに添える通話の全文 |
1チャンネルでしか録音できない電話の設備では、話者の分離に切り替えます。 diarization を {"maxSpeakers": 2, "enabled": true} で指定し、発話ごとの speaker で分けます。ただし speaker の番号は人と結び付いていないので、最初に名乗った話者を担当者とする決まりが要ります。 2チャンネルで録音できるなら、こちらは使いません。
AIへ渡す前に整形する
- 通話の選別 … 20秒未満の通話と、ヘルプデスクの番号以外の通話を外します
- チャンネルの確認 … 録音が2チャンネルかを確かめます。1チャンネルなら話者の分離の設定で呼びます
- 保留と無音の区間を外す … 申告者がPCの裏のラベルを探しに行くあいだの保留を外します
- フレーズリストの用意 … 社内の用語の一覧をまとめて渡します。システムの入れ替えがあった月は、一覧を先に更新します
- 時刻の付いた発話の並べ直し … 2つのチャンネルの発話を時刻順に並べ、
staff/callerの印を付けて1本の会話にします - 伏せ字の下準備 … 「パスワード」「暗証番号」「ワンタイム」「認証コード」の言葉の前後の発話に印を付けます
5番目で並べ直すのは、生成AIに会話の流れとして読ませるためです。 チャンネルごとの全文を別々に渡すと、「しました」がどの問いへの答えかが分からなくなります。
6番目は、この題材に固有の手当てです。 パスワードの再設定の問い合わせでは、申告者が古いパスワードを口にしたり、担当者が仮のパスワードを読み上げたりします。その発話は、下書きにも、生成AIへの入力にも残しません。 印の付いた発話の数字と英字の並びを、生成AIに渡す前に伏せます。
AIに処理させる
させるのは、会話の文字起こしを、チケットの項目に分けて写すことです。 原因を推定すること、優先度を決めること、分類を確定することはさせません。
| 項目 | 何を書くか | 判断できないときの扱い |
|---|---|---|
| 申告者・拠点・内線 | 申告者が名乗った名前と拠点、言われた内線 | 言われていなければ空 |
| 端末 | 資産番号・PC名・型番として言われた文字を、そのまま写す | 言われていなければ空にし、聞き漏れに入れる |
| 対象のシステム | 社内の用語の一覧から当てはまるものを選ぶ | 選べなければ other と、言われた言葉 |
| 症状 | 申告者が言った症状。申告者の言葉だけから書く | 担当者の問いに頷いただけなら、その旨を書く |
| 発生の時期 | 「今朝から」「さっき急に」などの言葉をそのまま | 言われていなければ空 |
| 影響の手がかり | 「ラインが止まっている」「全員が」「出荷に間に合わない」などの言葉と時刻 | 評価をせずに写す |
| 試したこと | 申告者がすでに試したことと、通話の中で試してもらったこと | 誰が試したかを分けて書く |
| 対応と結果 | 担当者が行った操作と、その結果 | 結果が言われていなければ unknown |
| 次の対応 | 二次対応への引き継ぎ、折り返しの約束、申告者が待つこと | 言われていなければ空 |
「試したこと」を、通話の前と通話の中で分けるのが要です。 申告者が電話の前に自分で再起動していたのか、担当者に言われて再起動したのかで、二次対応の担当が次に頼むことが変わります。 分けて書かれていれば、同じことをもう一度頼まずに済みます。
影響の手がかりは、言葉と時刻だけを写させます。 「優先度:高」のような評価は書かせません。担当者は、申告者の「ラインが止まってる」という言葉を読めば、自分で優先度を選べます。 AIの評価が先に書かれていると、担当者はそれを追認しがちです。
| させないこと | 理由 |
|---|---|
| 原因の推定(「ドライバーの不具合と思われる」) | 根拠の無い原因が書かれると、二次対応がそれを前提に調べ始める |
| 優先度・分類の確定 | 社内の基準と、その日の事情を知る担当者が決める |
| 資産番号・内線の補完 | 1字違えば別の端末になる。それらしい番号に近づけない |
| 担当者の発言を症状に入れる | 担当者の問いかけが申告者の証言になる |
| パスワード・認証コードを写す | 伏せ字を復元しない。下書きに残さない |
| 申告者の言い方の言い換え | 「なんか重い」を「CPU使用率が高い」にしない |
1行目が、間違えたときにいちばん遠回りになる失敗です。 生成AIは、症状からもっともらしい原因を書き添えます。二次対応の担当は、チケットに書かれた原因を出発点にして調べ始めます。 外れていれば、その分だけ解決が遅れます。
指示内容を固定する
あなたは社内の情報システム部のヘルプデスクで、電話で受けた問い合わせの
文字起こしから、チケットの下書きを作る立場です。
文字起こしに書かれていることだけを使ってください。
【話者】
- staff はヘルプデスクの担当者、caller は問い合わせをした社員の発言です。
【書く項目】
- caller_name, site, extension ... caller が名乗った名前、拠点、内線
- device_words ...... 資産番号・PC名・型番として言われた文字。そのまま写す
- system ............ 社内の用語の一覧から1つ選ぶ。選べなければ other
- symptom ........... caller が言った症状。caller の発言だけから書く
- since ............. 発生の時期を表す言葉。そのまま写す
- impact_quotes ..... 業務への影響に関わる caller の言葉と、その offset_ms
- tried_before_call . caller が電話の前に自分で試したこと
- tried_in_call ..... 通話の中で staff が頼んで caller が試したことと、その結果
- staff_actions ..... staff が自分で行った操作(遠隔操作、アカウントの解除など)
- outcome ........... resolved/escalated/pending/unknown
- next_steps ........ 引き継ぎ先、折り返しの約束、caller が待つこと
- not_asked ......... 【チケットの項目の定義】のうち、通話の中で触れていない項目
【厳守事項】
- 原因を推定しないでください。「〜と思われる」「〜の可能性」を書かないでください。
- 優先度や分類を決めないでください。影響に関わる言葉を写すだけにしてください。
- staff の発言を symptom に入れないでください。
staff が「画面が固まる感じですか」と聞き、caller が「はい」と答えた場合は、
symptom に「担当者の問いに同意(画面が固まる)」と書き、
confirmed_by_question を true にしてください。
- 資産番号、PC名、内線は、聞き取れた文字だけを写してください。
桁を補う、似た番号に直すことをしないでください。
- ■ で伏せられた部分を復元しないでください。パスワードや認証コードを書かないでください。
- caller の言い方を専門用語に言い換えないでください。
- 信頼度の低い発話(low_confidence が true)を根拠にした項目は、needs_listen を true にしてください。
- 1回の通話で別々の問い合わせが2つ以上あるときは、issues を問い合わせごとに分けてください。
【チケットの項目の定義】{ticket_fields}
【社内の用語の一覧】{glossary}
【文字起こし(speaker、offset_ms、text、low_confidence)】{transcript}
「担当者の問いに同意」を分けて書かせるのは、聞き方の癖がチケットに出るからです。 担当者が「固まる感じですか」と聞けば、申告者はたいてい「そうですね」と答えます。申告者が自分で言った「固まる」と、問いに頷いた「固まる」は、二次対応の担当にとって重みが違います。
1回の通話で問い合わせを分けさせるのは、ついでの相談が多いからです。 「プリンターが動かない、あとメールの容量の警告も出ている」という通話は、担当が2つに分かれます。
出力形式を固定する
次の形のJSONで受け取ります。 Azure OpenAI の構造化出力(response_format に json_schema を strict: true で渡す方式)を使い、形を固定します。
{
"call_id": "",
"received_at": "",
"staff_extension": "",
"caller": { "name": "", "site": "", "extension": "" },
"issues": [
{
"device_words": "",
"system": "",
"symptom": "",
"confirmed_by_question": false,
"since": "",
"impact_quotes": [ { "text": "", "offset_ms": 0 } ],
"tried_before_call": [""],
"tried_in_call": [ { "action": "", "result": "" } ],
"staff_actions": [""],
"outcome": "resolved | escalated | pending | unknown",
"next_steps": [""],
"needs_listen": false
}
],
"not_asked": [""]
}
このあとに、ワークフローが照合の結果を足します。
| 足す項目 | 決め方 |
|---|---|
device_match | device_words で資産台帳を引き、matched/not_found/multiple を付ける |
caller_match | 名前と内線で社員の一覧を引き、matched/not_found/mismatch を付ける |
masked_count | 伏せ字にした発話の数 |
open_ticket | 同じ申告者の未完了のチケットがあれば、その番号 |
1つ目の理由は、AIが写したものと、台帳で確かめたものを別の層に置けることです。 device_words は聞き取れた文字のまま残し、合っているかどうかは device_match が示します。 担当者は、合わなかった番号だけを録音で聞き直せば済みます。
2つ目は、not_asked で聞き漏れが分かることです。 端末や内線が空のまま起票されるのを、確認の画面で止められます。聞き漏れが続く項目は、担当者の聞き取りの型を見直す材料になります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 保管場所 | Azure Functions のトリガー | 録音の保存を検知する |
| Azure AI Speech | API呼び出し | チャンネルごとの文字起こし |
| Azure OpenAI | API呼び出し | チケットの項目への分け |
| 資産台帳・社員の一覧 | 日次の書き出しの読み取り | 端末と申告者の照合 |
| チケット管理の仕組み | 下書きの登録(製品に応じた方式) | 「下書き」の状態で登録する |
| 担当者への通知 | チャットまたはメール | 下書きができたことを知らせる |
チケット管理の仕組みには「下書き」の状態でだけ登録します。 担当者が確かめて起票するまで、二次対応の担当の一覧には出しません。資産台帳と社員の一覧には書き込みません。 台帳に無い端末が見つかっても、台帳の更新は資産の担当が行います。
人が確認する
人が全件を確かめて起票します。 確かめ方は、下書きと文字起こしを並べた画面で、印の付いた項目から見ていく形にします。
device_matchがmatchedでないものを先に見る … 録音の該当箇所を聞き直し、番号を確かめます。番号が分からないままなら、申告者に折り返して聞きます- 症状と試したことを読む … 申告者が言ったことと、担当者がしたことが分かれているかを確かめます
needs_listenの項目を聞き直す … 信頼度の低い発話を根拠にした項目です- 分類と優先度を選ぶ … 影響の手がかりの言葉を読み、社内の基準に沿って選びます
- 伏せ字の漏れを確かめる … 下書きにパスワードや認証コードらしい並びが残っていないかを見ます
4番目は、AIに寄せません。 「ラインが止まっている」という言葉が、工場の1台の端末のことなのか、ライン全体のことなのかは、拠点の事情を知る担当者にしか判断できません。
目標は、900件をならして1件2分です。 超える月は、社内の用語の一覧が古いか、資産番号の復唱が守られていません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 録音が1チャンネル | 話者の分離に切り替え、最初に名乗った話者を担当者とする。割り当てが不確かなら印を付ける |
| 音声が5時間以上・500MB以上 | 高速文字起こしの対象外。ヘルプデスクの通話では起きにくいが、録音の分割で対応 |
| 通話が途中で切れた | 下書きは作り、outcome を unknown にする。折り返しの要否は担当者が決める |
| 申告者が名乗らなかった | 発信元の番号から候補を出し、caller_match を not_found にする |
| 資産番号が台帳に無い | not_found。台帳の未登録か聞き違いかを、録音で確かめる |
| 同じ申告者の未完了のチケットがある | 新しい下書きではなく、そのチケットへの追記の案にする |
| 社外の取引先からの電話だった | 下書きを作らずに担当者に知らせる |
| 音声認識が応答しない | 録音を保管場所に残す。「処理済み」の印は成功したときだけ |
起きやすいのは、1行目と5行目です。 どちらも電話の設備と資産台帳の側の問題で、直すほうが文字起こしの精度を上げるより効きます。
記録を残す
- 録音(2チャンネル)と、伏せる前と伏せたあとの文字起こし(伏せる前のものは閲覧できる人を限る)
- 音声認識の応答の JSON と、Azure OpenAI に渡した入力と返ってきた JSON
- 照合の結果(
device_match、caller_match、open_ticket) - 担当者が下書きを直した記録 … どの項目を、どう直したか
- 起票したチケットの番号と、起票した担当者
- 項目ごとの
not_askedの発生率
4つ目と最後の行は、指示と聞き取りの型を直す材料になります。 端末の欄が毎回空なら、復唱の決まりが守られていません。
04実装レベルの3段階
半自動化で、1件6分が2分程度になります。この段階が本記事の想定です。 本格構成では、折り返しの電話がもとのチケットに追記されるようになり、同じ問い合わせが別々のチケットに散らばるのを防げます。
05工数削減シミュレーション
導入後 900件 × 2分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 工場・倉庫・営業所など、PCの前に座っていない社員が多く、ヘルプデスクへの問い合わせの多くが電話で来る会社の情報システム部門。電話を受けたあと、担当者が手書きのメモからチケットを書き直しており、症状や端末の番号の書き漏れで二次対応の担当や次の当番から聞き直しが発生している場合。電話の設備が通話を録音でき、録音を音声ファイルとして取り出せる場合。
- ヘルプデスクへの問い合わせの大半がチャットやフォームに移っており、電話が月に数十件しか無い場合。ヘルプデスクを外部に委託しており、チケットの起票まで委託先が行っている場合。社内の規程で、通話の録音をクラウドの音声認識で処理できない場合。なお、障害の原因の判断や、対応の優先度を最終的に決めることはこの構成では行いません。
07最小構成で試す方法
- 先月の通話の録音から20件を選ぶ(うち数件は、二次対応へ回したものと、パスワードの再設定のものを入れる)
- その20件について、当時のチケットに何が書かれたかを拾う
- 録音を Speech Studio の高速文字起こしで文字にし、チャンネルごとに分かれるかを見る
- 文字起こしを Azure OpenAI に渡し、「チケットの項目に分けてください。申告者の言葉と担当者の言葉を分けてください。原因を推定しないでください」と指示する
- 出てきた下書きを、当時のチケットと突き合わせる
20件は必ずやってください。 つなぎ込みを作る前に、「社内の用語が文字になるのか」「担当者と申告者が分かれるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時のチケットより項目がそろっている | つなぎ込みに進む |
| 原因を書き添えた | 指示の書き方で直る。構成は有効 |
| システム名や拠点名が化ける | 社内の用語の一覧が先。 フレーズリストを足して同じ20件をやり直す |
3行目は、ほぼ必ず出ます。 社内のシステム名は社外の辞書にありません。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 担当者の問いかけが症状に入る | チャンネルで分け、問いに頷いただけのものは印を付ける |
| 原因を書き添える | 指示で禁じ、「思われる」「可能性」を後段で検知する |
| 資産番号の聞き違い | 担当者が復唱する決まりを作り、台帳と照らして合わなければ印 |
| 社内のシステム名が化ける | 社内の用語の一覧をフレーズリストで渡す。2,000語句を目安にする |
| 録音が1チャンネルで残る | 話者の分離に切り替え、最初に名乗った話者を担当者とする |
| ステレオで話者の分離を有効にした | [0,1] を指定できない。2チャンネルならチャンネルで分ける |
| パスワードが下書きに残る | 言葉の前後の発話を伏せ、生成AIに渡す前に消す |
| 折り返しの電話が別のチケットになる | 同じ申告者の未完了のチケットを引き、追記の案にする |
| 優先度をAIに決めさせる | 決めさせない。影響の言葉を写し、担当者が選ぶ |
| 下書きがそのまま起票される | 「下書き」の状態でだけ登録し、起票は担当者が行う |
上の3行が、この構成の失敗のほとんどです。 どれも、チケットを読んだ二次対応の担当が間違った前提で動き出すことにつながります。
下の2行も同じくらい効いてきます。 優先度をAIに決めさせると、担当者はその値を追認し、工場のラインが止まっている問い合わせと、1人のPCの不調が同じ列に並びます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 社員の声と名前・所属・内線、端末の番号、社内のシステム名と構成、エラーの内容、そしてパスワードの再設定やアカウントのロックの解除のやり取りです。
- パスワードと認証コードを残さない … 文字起こしの段階で伏せ、生成AIに渡さず、下書きにも残しません。伏せる前の文字起こしは、閲覧できる人を限って保管します
- 通話の録音を社員に知らせる … ヘルプデスクの通話を録音し、文字にしてチケットに残すことを、社内に案内しておきます。公式のページでも、音声と文字起こしは個人データに当たりうるとし、処理に必要な許可を得るのは利用者の責任とされています
- データの保持を確かめる … 公式の説明では、高速文字起こしでは顧客が渡したデータを Microsoft が保持・保存しないとされ、話者の分離に使う声の特徴の信号は処理の完了後に破棄されるとされています。録音と文字起こしの保管は、自社の保管場所の設定で決まります
- 社内のシステムの構成を外へ出しすぎない … エラーの内容やサーバー名が通話に出ます。下書きに残すのは、チケットに要る範囲に限ります
- 原因と優先度をAIに寄せない … 二次対応の動き方を決める情報なので、担当者が決めます
- 下書きを自動で起票しない … 起票は担当者が確かめてから行います
誤りが起きた場合のリスクは、誤った前提が二次対応に渡ることと、認証の情報が記録に残ることの2つです。 前者は話者の取り違えと原因の書き添えで起き、後者は伏せ字の漏れで起きます。チャンネルで分けることと、伏せ字を生成AIの前に置くことは、設計で守ります。
10まず何から始めるか
1週目:電話の設備の録音を確かめる
ヘルプデスクの番号の通話が、2チャンネルで録音できるか、ファイルとして書き出せるかを、電話の設備の担当に確かめます。1チャンネルしか残せないなら、話者の分離で進める前提に切り替えます。
2週目:20件で試す
先月の録音から20件を選び、高速文字起こしと生成AIで下書きを作ります。当時のチケットと突き合わせ、原因を書き添えていないか、担当者の言葉が症状に入っていないかを最優先で見ます。
3週目:社内の用語の一覧と、チケットの項目の定義を作る
社内のシステム名、画面の名前、拠点の呼び名、端末の型番を一覧にします。チケットの項目の定義を担当者5名で決め、資産番号の復唱を聞き取りの決まりに入れます。
4週目:録音の保存から下書きの登録までをつなぐ
Azure Functions で録音の保存を受け、文字起こしと下書きの作成、資産台帳との照合までをつなぎます。この時点では、下書きはチケット管理の仕組みに入れず、別の一覧で見ます。
2か月目: 下書きの登録をチケット管理の仕組みにつなぎ、全件を担当者が確かめて起票します。3か月目以降: 未完了のチケットへの追記と、not_asked の集計を足し、1件6分が何分になったかを実測します。聞き漏れの多い項目を聞き取りの型に戻した時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
高速文字起こしが結果を同期で、実時間より速く返すこと。対象が5時間未満・500MB未満の音声で、WAV、MP3、OPUS/OGG、FLAC、WMA、AAC、WAV コンテナーの ALAW と MULAW、AMR、WebM、SPEEX を受け付けること。既定ではすべてのチャンネルを1つにまとめて文字にし、ステレオのチャンネルを別々に文字にするには channels に [0,1] などを指定すること。ステレオで話者の分離を有効にすると [0,1] を指定できないこと。話者の分離が1つのチャンネルの中で話者を分ける仕組みで、"diarization": {"maxSpeakers": 2, "enabled": true} のように指定すること。応答の phrases に channel、offsetMilliseconds、durationMilliseconds、confidence が、combinedPhrases にチャンネルごとの全文が入ること。phraseList を指定できること | Microsoft Learn: Use the fast transcription API | 2026-10-08 |
| フレーズリストが認識の前に渡す語の一覧で、モデルの学習を要さず、名前・地名・組織に固有の語などに使えること。高速文字起こしで使え、バッチの文字起こしでは使えないこと。2,000語句を超えないことが目安で、長いほど品質と待ち時間に影響すること | Microsoft Learn: Improve recognition accuracy with phrase list | 2026-10-08 |
日本語(ja-JP)が高速文字起こしの対応言語に含まれていること | Microsoft Learn: Language and voice support for the Speech service | 2026-10-08 |
| 音声と文字起こしが個人データに当たりうること、処理に必要な許可を得るのは利用者の責任であること。高速文字起こしでは顧客が渡したデータを Microsoft が保持・保存しないこと。話者の分離で使う声の特徴の信号が処理の完了後に破棄されること | Microsoft Learn: Data, privacy, and security for Speech to text | 2026-10-08 |
構造化出力が渡した JSON Schema に従わせる機能で、Chat Completions では response_format に json_schema を strict: true で指定すること。すべての項目を必須にし、additionalProperties を false にすること | Microsoft Learn: How to use structured outputs with Azure OpenAI in Microsoft Foundry Models | 2026-10-08 |
通話の録音を文字にして残すことの社内への周知、優先度の基準、記録の保管期間は、自社の規程に沿って情報システム部門と関係部署で決めてください。 本記事は各製品の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1090)についてのご相談はこちらから。
