タクシーの配車センターの電話を通話中に文字にし、乗車地・時刻・人数・行き先を配車の入力欄の下書きにして聞き返しを減らす
タクシーの配車センターにかかる電話を、通話しているうちに文字にし、乗車地・目印・時刻・人数・行き先を配車の入力欄の下書きにそろえます。オペレーターは下書きを見ながら復唱し、確かめた値だけを配車システムに入れます。
- 生成AI
- Azure OpenAI Service/Claude
- AIサービス
- Azure AI
- 対象業界
- その他
- 対象部門
- カスタマーサポート
- 対象業務
- データ入力・転記/問い合わせ対応
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 抽出
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 電話に出て、発信の番号から顧客台帳の登録を画面に出す
- 客の話を聞きながら、乗車地を配車システムの地図で探す
- 時刻、人数、行き先、車種の希望(大型・車いす対応)、支払いの方法(チケット・カード)を聞き、入力欄に打ち込む
- 乗車地が見つからない、聞き取れない場合は聞き返す
- 入力した内容を復唱し、通話を終える
- 通話の後に、備考欄(目印の詳細、迎えの場所の補足)を書き足す
- 配車システムで車両を割り当てる
- 自動電話がつながると、通話の音声が Azure AI Speech に流れ始める
- 自動発信の番号から顧客台帳の登録を引き、よく使う乗車地を候補に出す
- 自動話した言葉が数秒遅れで画面に文字として出る
- 自動客の発話が区切れるたびに、下書きの欄(乗車地・目印・時刻・人数・行き先・車種・支払い)が埋まっていく
- 自動乗車地の下書きを、目印の一覧と顧客台帳のよく使う乗車地に当て、地図の候補を出す
- 人オペレーターは下書きを見ながら、空いている欄と自信の低い欄だけを聞き、下書きを読み上げて復唱する
- 人確かめた欄を、ボタンで配車システムの入力欄に写す
- 人車両を割り当てる
- 自動通話の文字と、下書き・確定した値の差を記録に残す
各工程の詳しい説明を読む
- 電話に出て、発信の番号から顧客台帳の登録を画面に出す
- 客の話を聞きながら、乗車地を配車システムの地図で探す
- 時刻、人数、行き先、車種の希望(大型・車いす対応)、支払いの方法(チケット・カード)を聞き、入力欄に打ち込む
- 乗車地が見つからない、聞き取れない場合は聞き返す
- 入力した内容を復唱し、通話を終える
- 通話の後に、備考欄(目印の詳細、迎えの場所の補足)を書き足す
- 配車システムで車両を割り当てる
(a)聞きながら打つと、どちらかが遅れる。 2番目と3番目は同時に起きます。客が乗車地を言い終える頃には時刻の話に移っていて、打ち込みが追いつかないと聞き返すことになります。
(b)目印の場所の聞き返しが多い。 「病院の玄関」が正面か救急の入口か、「スーパー」がどの店か。地図で探している間、客を待たせます。
(c)復唱しても誤りが残る。 5番目の復唱は、オペレーター自身が打ち込んだ内容を読み上げる作業です。打ち込みの時点で取り違えていれば、復唱しても客が気づかないことがあります。
(d)混雑の時間帯に電話が鳴りやまない。 朝の通院、夕方の帰宅、雨の日。電話が重なる時間帯ほど、6番目の備考の書き足しが省かれ、乗務員が迎えの場所で迷います。
- 【自動】 電話がつながると、通話の音声が Azure AI Speech に流れ始める
- 【自動】 発信の番号から顧客台帳の登録を引き、よく使う乗車地を候補に出す
- 【自動】 話した言葉が数秒遅れで画面に文字として出る
- 【自動】 客の発話が区切れるたびに、下書きの欄(乗車地・目印・時刻・人数・行き先・車種・支払い)が埋まっていく
- 【自動】 乗車地の下書きを、目印の一覧と顧客台帳のよく使う乗車地に当て、地図の候補を出す
- 【人】 オペレーターは下書きを見ながら、空いている欄と自信の低い欄だけを聞き、下書きを読み上げて復唱する
- 【人】 確かめた欄を、ボタンで配車システムの入力欄に写す
- 【人】 車両を割り当てる
- 【自動】 通話の文字と、下書き・確定した値の差を記録に残す
6番目が、この設計の分かれ目です。 復唱するのは、オペレーターが打った値ではなく、客の言葉から作った下書きです。客の言葉と復唱の間にオペレーターの打ち込みが挟まらないので、打ち込みの取り違えが復唱で見つかるようになります。
7番目を人のボタンにしているのも、意図してのことです。 下書きは通話の途中で何度も書き換わります。客が言い直した値を確かめないまま配車システムに入れると、車両が違う場所へ向かいます。 入力欄に写すのは、オペレーターが確かめた欄だけです。
02今回想定するシステム構成
客からの電話 │ PBX/通話録音の装置 ── 通話の音声を取り出す(送話と受話を分けて) ▼【トリガー】通話の開始 Azure AI Speech(リアルタイムの文字起こし。日本語、フレーズリストに目印と地名) │ 話した言葉を区切りごとに文字にして返す ▼ Azure Functions │ 客の発話の確定のたびに、通話の文字・顧客台帳の登録・目印の一覧をまとめる ▼ Azure OpenAI(構造化出力) │ 乗車地・目印・時刻・人数・行き先・車種・支払い を下書きにする ▼ オペレーターの画面(通話の文字+下書きの欄+地図の候補) ▼ 【オペレーターが復唱し、確かめた欄だけを写す】 ▼ 配車システムの入力欄
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Azure AI Speech(リアルタイムの文字起こし。Speech SDK) | Google Cloud Speech-to-Text、Amazon Transcribe |
| 生成AI | Azure OpenAI(Microsoft Foundry)(配車の入力欄の下書き。構造化出力) | Claude API |
| 連携 | Azure Functions(音声の受け渡し、下書きの作成、画面への送信) | Azure Logic Apps |
| 電話 | PBX と通話録音の装置(通話の音声の取り出し) | 各社のクラウドPBX |
| 台帳 | 顧客台帳と目印の一覧 | ― |
配車システムと顧客台帳は、新しく足すものではありません。 配車システムには、オペレーターがボタンで写した値だけが入ります。写し方は配車システムの取り込みの口しだいで、入力欄へ値を渡す口が無ければ、下書きの欄から手でコピーする形から始めます。
いちばん環境に左右されるのは、通話の音声の取り出しです。 PBX や通話録音の装置から音声を外に流せるかは、機器ごとに違います。この部分は利用環境に応じた個別の実装が要ります。 取り出せることを、最初に機器の業者に確かめてください。
音声を受け取る側の条件ははっきりしています。 Speech SDK の音声の入力の流れは、公式の説明ではPCM(16ビット)、1チャンネル、8,000または16,000サンプル毎秒が対象です。電話の音声は8,000サンプル毎秒のことが多く、この条件に収まります。合わない形式は、送る前に変換します。
日本語の文字起こし(ja-JP)は公式の対応言語の一覧に載っています。
03どうやって実装するのか
処理の起点を決める
通話がつながったことを起点に、文字起こしを始めます。 PBX の着信の通知、または通話録音の装置が録音を始めたことをきっかけに、音声の流れを Azure Functions 経由で Speech SDK に渡します。通話が切れたら止めます。
下書きの作成は、客の発話が区切れるたびに動かします。 文字起こしは話しているうちに途中の結果を出し、区切りで確定した結果を出します。途中の結果は画面に文字を出すためだけに使い、下書きは確定した結果で作ります。 途中の結果で下書きを作ると、言い直しの途中の値が欄に入ります。
同じ通話の中で、下書きは何度も作り直します。 客は「駅…いや、やっぱり病院から」と言い直します。新しい発話が確定するたびに、通話の最初からの文字を渡して下書きを丸ごと作り直し、前の下書きとの差を画面で色を変えて示します。差分だけを渡す方式は、言い直しを取りこぼします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 通話の文字 | 発話ごとに、話した人(オペレーター/客)、文字、時刻 | Azure AI Speech の確定した結果 |
| 顧客台帳の登録 | 発信の番号に結び付いた登録住所、よく使う乗車地、前回の乗車地と行き先、車種の希望 | 顧客台帳 |
| 目印の一覧 | 病院・駅・商業施設・団地などの名前、その別名、乗車の地点(正面・裏口・ロータリーなど)、地図の位置 | 配車センターで整備する一覧 |
| 現在の日時 | 通話の日付と時刻 | 配車システム |
| 配車の決まり | 予約を受ける期限、車種の種類、支払いの方法の種類 | 配車センターの決まり |
質を決めるのは、目印の一覧です。 「市民病院」に正面・救急・裏の3つの乗車の地点があるなら、3つを別の行にして、それぞれの言い方(「正面玄関」「救急の入口」「職員の駐車場の前」)を書きます。 一覧に無い目印は、下書きでも地図の候補にできません。
現在の日時は、時刻の解釈に必ず要ります。 「明日の9時半」「10分後」は、通話の日時が無いと何日の何時か決まりません。
データの取得方法を決める
通話の音声は、送話(オペレーター)と受話(客)を分けて取り出せるならそうします。 分けられれば、2つの音声の流れをそれぞれ別の認識器に渡すだけで、どちらが話したかが決まります。
| 取り出せる音声 | 文字起こしの方法 | 話した人の決め方 |
|---|---|---|
| 送話と受話が別々 | 1チャンネルずつ、2つの認識器で連続して文字にする | 流れごとに決まる |
| 混ざった1本だけ | 会話の文字起こし(ConversationTranscriber)の話者の分離を使う | Guest-1・Guest-2 を、最初の名乗りからオペレーターと客に当てる |
話者の分離を使う場合、公式の説明では、話者は Guest-1、Guest-2 のような汎用の識別子で返り、途中の結果にも話者を付けるには設定が要り、付けないと途中の結果の話者は Unknown になるとされています。オペレーターの最初の発話は「はい、〇〇タクシーです」と決まっているので、その発話の識別子をオペレーターとします。
目印と地名は、フレーズリストで認識を助けます。 公式の説明では、フレーズリストは名前や地名、業界や組織に固有の言葉を前もって渡して認識されやすくする仕組みで、リアルタイムの文字起こしで使え、2,000語句を超えないようにするとされ、0.0から2.0の重みを付けられます。目印の一覧から、よく出る名前を上位から2,000語句以内で選んで渡します。
顧客台帳は、発信の番号で引くだけです。番号が非通知や公衆電話の場合は、台帳を引かずに下書きを作ります。
AIへ渡す前に整形する
- 音声の形式をそろえる … PCM(16ビット)、1チャンネル、8,000または16,000サンプル毎秒にします。2チャンネルで録られている場合は、チャンネルごとに分けます
- フレーズリストを作る … 目印の一覧の名前と別名、市内の町名、病院・駅の名前を、よく出る順に2,000語句以内で選びます
- 顧客台帳を引く … 発信の番号で登録を引き、よく使う乗車地を候補として下書きの材料にします
- 通話の文字を整える … 確定した結果を時刻順に並べ、発話ごとに番号を振ります
- 数字の書き方をそろえる … 「くじはん」「9時半」「九時三十分」を、原文のまま残したうえで時刻の候補を作る材料にします
- 渡す情報を絞る … 下書きの作成に渡すのは、通話の文字、台帳の乗車地の候補、目印の一覧の該当しそうな行までです。台帳の全件は渡しません
2番目は、毎月見直します。 新しい商業施設が開く、病院の入口が変わる。一覧の更新が止まると、その場所の聞き返しが元に戻ります。
AIに処理させる
Azure AI Speech にさせるのは、話した言葉を文字にすることだけです。 発話が確定するたびに、Azure OpenAI に通話の文字を渡し、次の欄を埋めさせます。
| 欄 | 中身 | 判断できないときの扱い |
|---|---|---|
| 乗車地 | 目印の一覧の行、または台帳のよく使う乗車地、または住所の文字 | 一覧に当たらなければ free_text で原文のまま |
| 乗車の地点 | 正面・裏口・ロータリーなど | 言われていなければ not_said |
| 時刻 | 今すぐか予約か、予約なら日付と時刻 | 午前か午後か決められなければ ambiguous |
| 人数 | 乗る人数 | 言われていなければ not_said |
| 行き先 | 目印か住所か | 言われていなければ not_said(行き先は必須でない) |
| 車種 | 普通車・大型・車いす対応など | 言われていなければ not_said |
| 支払い | 現金・カード・チケットなど | 言われていなければ not_said |
| 補足 | 迎えの場所の目印、荷物、杖・車いすなど | 無ければ空 |
| 根拠 | それぞれの欄に使った発話の番号 | 番号の無い欄は出さない |
乗車地は「目印の一覧の行」を選ばせ、住所を作らせません。 目印の一覧に当たれば、地図の位置は一覧の側にあります。生成AIに住所や位置を考えさせると、それらしい住所が欄に入ります。 当たらないときは客の言葉を原文のまま残し、地図での確定をオペレーターに任せます。
| させないこと | 理由 |
|---|---|
| 住所や地図の位置を作ること | 位置は目印の一覧と地図で決める。それらしい住所を入れない |
| 「午後」「午前」を推し量って決めること | 決められなければ ambiguous で、オペレーターが聞く |
| 台帳の前回の乗車地で空欄を埋めること | 候補として示すだけ。客が言っていない値を入れない |
| 到着の時刻や運賃を答えること | 車両の状況で決まる。オペレーターが答える |
| 客を特定すること | 発信の番号で台帳を引くのはプログラム。下書きは名前を扱わない |
3行目がいちばん起きやすい失敗です。 常連の客の前回の乗車地が自宅なら、客が乗車地を言う前から欄が埋まっているように見えます。 今日は病院からかもしれません。候補と、客が言った値を、画面で分けて見せます。
指示内容を固定する
あなたはタクシーの配車センターで、電話の内容から配車の入力欄の下書きを作る係です。
渡した通話の文字だけを見て欄を埋めてください。推測で埋めないでください。
【やること】
通話の最初から最新の発話までを読み、次の欄を埋める。
乗車地/乗車の地点/時刻/人数/行き先/車種/支払い/補足
【厳守事項】
- 客の発話(speaker が caller のもの)を根拠にすること。
オペレーターの発話は、客が「はい」と答えて認めた場合だけ根拠にしてよい。
- 乗車地は【目印の一覧】の landmark_id を選ぶこと。
一覧に当たらなければ status を free_text とし、客の言葉を原文のまま写すこと。
住所や地図の位置を作らないこと。
- 【台帳の候補】は客が言っていない値の根拠にしないこと。
客が「いつものところ」「家から」と言った場合だけ、候補の番号を選んでよい。
- 時刻は、客の言葉を value_original に原文のまま写すこと。
【通話の日時】をもとに解釈した日付と時刻を value に入れること。
午前か午後か決められない場合は ambiguous とし、どちらかに決めないこと。
「会計が終わったら」のように時刻にできないものは condition とし、原文を写すこと。
- 客が言い直した場合は、最後に言った値を採ること。
言い直す前の値は previous に残すこと。
- 言われていない欄は not_said とすること。空欄を埋めないこと。
- 到着の時刻、運賃、車両の手配について書かないこと。
- それぞれの欄に、根拠の発話の番号を必ず付けること。
【通話の日時】{call_datetime}
【目印の一覧(該当しそうな行)】{landmarks}
【台帳の候補】{customer_candidates}
【通話の文字】{utterances}
「言い直したら最後の値、前の値は残す」を書かないと、最初に言った値が残ります。 電話の客は、話しながら考えを変えます。前の値を残すのは、オペレーターが「駅ではなく病院からですね」と確かめるためです。
時刻を「解釈した値」と「原文」の両方で持つのも同じ理由です。 復唱で「明日の午前9時半ですね」と読み上げるには解釈した値が要り、取り違えに気づくには原文が要ります。
出力形式を固定する
Azure OpenAI の構造化出力で、次の形のJSONを受け取ります。
{
"call_id": "C-20261014-1123",
"pickup": { "status": "landmark | customer_candidate | free_text | not_said",
"landmark_id": "LM-0412", "point": "正面玄関",
"original": "市民病院の正面のとこ", "previous": "", "evidence": [3, 5] },
"time": { "status": "now | reserved | ambiguous | condition | not_said",
"value": "2026-10-15T09:30", "value_original": "あしたのくじはん",
"evidence": [7] },
"passengers": { "status": "said | not_said", "value": "2", "evidence": [9] },
"destination": { "status": "landmark | free_text | not_said", "landmark_id": "",
"original": "", "evidence": [] },
"vehicle_type": { "status": "said | not_said", "value": "", "evidence": [] },
"payment": { "status": "said | not_said", "value": "", "evidence": [] },
"notes": [ { "text": "杖をついている", "evidence": [11] } ]
}
構造化出力を使うのは、欄の名前と状態の語を固定するためです。 公式の説明では、構造化出力は渡した JSON Schema にモデルを従わせる仕組みで、すべての項目を必須にし、additionalProperties を false にする必要があるとされています。人数のような数値の最小・最大の指定には対応していないため、人数を文字で受け取り、範囲はプログラムで確かめます。
status を欄ごとに持つのは、画面の色を決めるためです。
status | 画面での見せ方 | オペレーターの扱い |
|---|---|---|
landmark・said・now・reserved | 通常の色 | 復唱して確かめる |
customer_candidate | 候補の色 | 「いつものご自宅ですね」と確かめる |
free_text・ambiguous・condition | 注意の色 | 必ず聞き直す |
not_said | 空欄 | 必要な欄なら聞く |
previous が空でない欄は、言い直しがあった欄です。 画面で線を引いて前の値を残し、復唱のときに言い直した後の値を読み上げます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| PBX/通話録音の装置 | 機器の音声の取り出し(利用環境に応じた個別の実装) | 通話の音声を流す |
| Azure AI Speech | Speech SDK(音声の入力の流れ) | 話した言葉を文字にする |
| Azure OpenAI | API呼び出し(構造化出力) | 入力欄の下書きを作る |
| 顧客台帳 | 発信の番号での読み取り | 乗車地の候補を引く |
| オペレーターの画面 | Azure Functions からの送信 | 通話の文字と下書きを出す |
| 配車システム | ボタンで写す(取り込みの口がある場合) | 確かめた欄だけを入れる |
配車システムへは、オペレーターのボタンを経由してしか入りません。 車両の割り当ては下書きから自動で行わず、確かめた値で人が割り当てます。
顧客台帳は読み取りだけです。 新しい乗車地が出ても、台帳には書き足しません。書き足すかは、配車センターの担当が通話の記録を見て決めます。
人が確認する
- 注意の色の欄を聞き直す …
free_text、ambiguous、conditionの欄です - 下書きを読み上げて復唱する … 乗車地・乗車の地点・時刻・人数を、下書きの言葉で読み上げます
- 確かめた欄を写す … ボタンで配車システムに入れます
- 乗車地を地図で確定する … 目印の一覧に当たった場合は地図の位置が出ます。
free_textの場合は地図で探します
2番目を省かないでください。 下書きは客の言葉から作っていますが、認識の誤りも下書きの誤りも、客の耳でしか見つかりません。 下書きの言葉で読み上げるから、取り違えに客が気づけます。
目標は、聞き返しと入力を1件1.5分に収めることです。 目印の一覧に当たる依頼なら、復唱して写すだけで済みます。1.5分を超える依頼が多いなら、目印の一覧に足りない場所があります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 音声が取り出せない・切れる | 下書きは出ない。いつもの入力に戻る。 画面に「文字起こし停止」を出す |
| 認識できない区切りが続く | 電話の音質か周りの音。下書きを頼らず聞き直す |
| 目印が一覧に無い | free_text で原文を残す。通話の後に一覧への追加を検討する |
| 非通知・公衆電話 | 台帳を引かずに下書きを作る |
| 同じ電話で2台の依頼 | 下書きは1台分しか持たない。2台目は新しい下書きを手で始める |
| 客が途中で別の人に代わる | 話者の分離では別の Guest になる。送話と受話が別なら影響しない |
| 急病・事故・救急車の要請らしい内容 | この構成の外。 119番の案内など、決めた手順に従う |
| 下書きが遅れて届く | 混雑の時間帯に起きうる。下書きを待たずに聞き取る |
1行目と最後の行を、最初から決めておいてください。 下書きは助けで、無くても配車ができる運用を崩さないことが前提です。
記録を残す
- 通話の文字(発話ごとの話者・文字・時刻)と、作り直した下書きの各版
- オペレーターが写した値と、下書きの値の差
- 聞き直しの回数と、注意の色の欄の数
free_textになった乗車地の原文の一覧- 通話の音声は、既存の通話録音の保存の決まりに従う(この構成で新たに残さない)
2つ目の差が、改善の材料のすべてです。 下書きとオペレーターの値が違った欄は、認識の誤りか、下書きの誤りか、言い直しの取りこぼしのどれかです。どれが多いかで、直すのがフレーズリストか、指示か、目印の一覧かが決まります。
free_text の乗車地の一覧は、目印の一覧に足す候補です。 毎月数えて、上位から一覧とフレーズリストに入れます。
04実装レベルの3段階
最小構成は、確かめるための段階です。 半自動化で、1件3分が2.5分程度になります。 文字が画面に出るだけでも聞き返しは減りますが、入力は手のままです。本格構成で1.5分になり、この段階が本記事の想定です。 差が大きいのは、目印を地図で探す作業と、聞きながら打つ作業が下書きに置き換わるからです。 段階を飛ばさないでください。 半自動化の1か月で、文字にならない地名と、オペレーターが聞き返している場所が分かります。目印の一覧とフレーズリストを整えてから下書きを足すほうが、注意の色の欄が減ります。
05工数削減シミュレーション
導入後 6,000件 × 1.5分 ÷ 60 = 150 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 配車センターで1日に百件以上の電話の配車を受け、オペレーターが聞き取りながら配車システムに乗車地と時刻を打ち込んでいるタクシー会社。病院・駅・商業施設などの目印で乗車地を言う客が多く、住所の検索と聞き返しに時間がかかっている場合。高齢の利用者が多く、電話での配車がアプリに置き換わらない地域。通話の音声を PBX や通話録音の装置から取り出せる会社。
- 配車の大半がアプリ経由で、電話の件数が1日に数十件の場合。通話の音声を外に取り出す口が PBX に無く、入れ替えの予定も無い場合。乗車地の確定を地図の上でしかできない運用で、文字の下書きを使う場面が無い場合。なお、どの車両を向かわせるかの判断、到着の時刻の約束、運賃の見積りは、この構成では行いません。
07最小構成で試す方法
- 通話録音の装置から、配車の依頼の録音を30件選ぶ(目印で乗車地を言っているもの、言い直しのあるものを混ぜる)
- Speech Studio のリアルタイムの文字起こしの画面で、30件を文字にする
- 病院・駅・団地などの名前が正しく文字になるかを見る。外れたものはフレーズリストに入れてもう一度試す
- 出てきた文字を手元の生成AIの画面に貼り、第7章の指示で下書きを作らせる
- 下書きを、当時オペレーターが配車システムに入れた値と突き合わせる
30件は必ずやってください。 音声の取り出しや画面を作る前に、「この地域の地名と、電話の音質で、文字になるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 地名も含めて文字になり、下書きが当時の入力と合った | 音声の取り出しと画面の作成に進む |
| 目印の名前だけを取り違えた | フレーズリストで補う。構成は有効 |
| 電話の音質で文字にならない | 音声の取り出し方が先。 送話と受話を分けられるか確かめる |
3行目が出たら、通話録音の装置の業者に、音声の取り出し方を相談してください。 録音の形式によって、文字になるかどうかが大きく変わります。
試すのに使う録音は、社内の決まりに沿って選んでください。 録音を文字にして外部のサービスに渡すことが、会社の個人情報の取扱いの決まりで認められているかを、最初に確かめます。試すときも、氏名や電話番号が話されている部分は外して貼ります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 通話の音声が取り出せない | 最初に機器の業者に確かめる。 取り出せなければ構成が成り立たない |
| 音声の形式が合わない | PCM・1チャンネル・8,000か16,000サンプル毎秒に変換する |
| オペレーターと客の発話が混ざる | 送話と受話を分ける。分けられなければ話者の分離と最初の名乗りで当てる |
| 目印の名前を取り違える | フレーズリストに入れる。2,000語句以内で、よく出る順に |
| 前回の乗車地が欄に入る | 台帳は候補として分けて見せる。客が言っていない値を入れない |
| 午前と午後を取り違える | 決められなければ ambiguous。原文を残して聞き直す |
| 言い直しの前の値が残る | 最後の値を採り、前の値は previous に残す |
| 途中の結果で下書きが揺れる | 下書きは確定した結果だけで作る |
| 下書きがそのまま配車される | 写すのはオペレーターのボタンだけ。 割り当ても人 |
| 目印の一覧が古くなる | free_text の一覧から毎月足す |
| 長電話で下書きの費用がかさむ | 通話の長さか発話の数で、下書きの作成を止める |
| オペレーターが下書きを見なくなる | 注意の色の欄の数を毎週見せ、下書きが当たっていることを示す |
上の3行が、この構成の失敗のほとんどです。 どれも音声をどう取り出すかという同じところから出ています。AIの精度を上げる前に、ここを固めてください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 客の声と電話番号、登録住所、乗車の時刻と行き先(いつ家を空けるか、どの病院に通っているか)、杖や車いすなどの体の状態に関わる補足です。
- 通話の文字の保存期間を決める … 通話の録音と同じく、決めた期間で消します。 病院への送迎の記録は、通院の記録でもあります
- 音声を新たに残さない … 公式の説明では、リアルタイムの文字起こしで音声はサーバーのメモリ上だけで処理され、Microsoft は顧客のデータを保持・保存しないとされています。この構成で新しい録音の置き場は作りません
- 通話を文字にすることを知らせる … 公式の説明は、音声と文字の記録が個人のデータや機微なデータにあたりうり、必要な許可を得るのは利用者の責任であることを述べています。通話の冒頭の案内や会社の案内に書きます
- 生成AIに渡す範囲を絞る … 台帳の全件や氏名は渡しません。通話の文字と、該当しそうな候補の行までにします
- 配車の判断を自動にしない … 下書きは入力の助けで、車両の割り当てと到着の約束はオペレーターが行います
- 救急や事故らしい通話を、この構成で扱わない … 決めた手順で人が対応します
誤りが起きた場合のリスクは、車両が違う場所や違う時刻に向かうことです。客は待ち続け、乗務員は空車で走ります。下書きを人が復唱して確かめ、確かめた欄だけを写すことで防ぎます。
10まず何から始めるか
1週目:通話の音声が取り出せるかを確かめる
PBX と通話録音の装置の業者に、通話中の音声を外に流せるか、送話と受話を分けられるかを確かめます。ここで取り出せないと分かれば、機器の入れ替えの計画と合わせて考えます。
2週目:30件の録音で試す
Speech Studio で録音を文字にし、生成AIで下書きを作らせます。地名の取り違えと、午前・午後の取り違えを最優先で見ます。
3週目:目印の一覧を作る
よく出る病院・駅・商業施設・団地を、乗車の地点ごとに一覧にします。 別名と、地図の位置を書きます。ここからフレーズリストを作ります。
4週目:通話中に文字を画面に出す
音声の取り出しと Speech SDK をつなぎ、オペレーターの画面に文字を出すところまで作ります。この時点では下書きを作らず、文字を見るだけにします。
2か月目: 発話の確定のたびに下書きを作る処理と、注意の色の表示を足します。下書きとオペレーターの値の差を毎週数えます。3か月目以降: 配車システムへの写しのボタンを足し、1件3分が何分になったかを実測します。free_text の乗車地を目印の一覧に足し、注意の色の欄が減ってきた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Speech SDK の音声の入力の流れが、PCM(16ビット符号付き)、1チャンネル、8,000または16,000サンプル毎秒を対象とし、合わない形式は変換が要ること | Microsoft Learn: Speech SDK audio input stream concepts | 2026-10-14 |
リアルタイムの話者の分離で、話者が Guest-1・Guest-2 のような汎用の識別子で返ること。途中の結果に話者を付けるには設定が要り、付けないと Unknown になること。transcribing・transcribed のイベント | Microsoft Learn: Real-time diarization quickstart | 2026-10-14 |
| フレーズリストが名前・地名・固有の言葉の認識を助け、リアルタイムの文字起こしで使えること。2,000語句を超えないようにすべきこと。重みを0.0から2.0で付けられること | Microsoft Learn: Improve recognition accuracy with phrase list | 2026-10-14 |
音声の認識で ja-JP(日本語)が対応していること | Microsoft Learn: Language and voice support | 2026-10-14 |
| リアルタイムの文字起こしで音声がサーバーのメモリ上だけで処理され保存されず、Microsoft が顧客のデータを保持・保存しないこと。音声と文字の記録が個人のデータにあたりうり、必要な許可を得るのは利用者の責任であること | Microsoft Learn: Data, privacy, and security for Speech to text | 2026-10-14 |
構造化出力が渡した JSON Schema にモデルを従わせること。すべての項目を必須にし additionalProperties を false にする必要があること。数値の minimum・maximum などに対応していないこと | Microsoft Learn: How to use structured outputs with Azure OpenAI in Microsoft Foundry Models | 2026-10-14 |
通話の音声の取り出し方は PBX と通話録音の装置ごとに違います。機器の業者に確かめてください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1516)についてのご相談はこちらから。
