【Amazon Connect】入力してもらった電話番号を AWS Lambda で整形し、Amazon Polly に句読点で区切って読み上げさせてみた
はじめに
こんにちは、フニです。
本記事では、Amazon Connect で入力してもらった電話番号を AWS Lambda で整形し、Amazon Polly に句読点で区切って読み上げさせてみた結果についてご紹介します。
概要
0、7、0、1、2、3、4、5、6、7、8、のお客様ですね。
上記ブログで、Amazon Polly に句読点で読み上げさせることを試しました。
前回は、直接 07012345678 という番号を指定して読み上げさせてましたが、
電話番号の場合は顧客に入力してもらうなど、動的な処理が必要になります。
今回は AWS Lambda を活用して動的な処理を行うパターンについてご紹介します。
構築
AWS Lambda
電話番号の整形のために、AWS Lambda を作成しました。
以下はサンプルコードです。
- ランタイム:
Python 3.14
def lambda_handler(event, context):
phone = event['Details']['Parameters']['phonenumber']
# 0→ゼロ 変換 + 「、」挿入
# "07012345678" → "ゼロ、7、ゼロ、1、2、3、4、5、6、7、8"
formatted = "、".join("ゼロ" if d == "0" else d for d in phone)
return { "FormattedPhone": formatted }
Amazon Connect フロー
今回は、以下のようにフローを構築しました。

- 「顧客の入力を保存する」:
07012345678のように電話番号を入力してもらう

- 「AWS Lambda 関数」:
ゼロ、7、ゼロ、1、2、3...のように整形する

- 「プロンプトの再生」:Amazon Polly で整形済みの電話番号を読み上げる

結果
電話をかけて、07012345678のように入力しました。
結果、「0」は「ゼロ」で読み上げてくれて、各番号の間は句読点で区切って読み上げてくれることが確認できました。
🎵 [結果:AWS Lambda 整形後に Amazon Polly に句読点で区切って読み上げ]
以下は CloudWatch で確認した際のログです。
{
"Parameters": {
"Text": "ゼロ、7、ゼロ、1、2、3、4、5、6、7、8 のお客様ですね。いつもありがとうございます。",
"TextToSpeechType": "text",
"Voice": "Mizuki"
}
}
おまけ : SSML タグでもっとゆっくり読み上げさせてみた
以下のように、「プロンプトの再生」ブロックで SSML タグを活用して読み上げるスピードを調整してみました。

<speak>
<prosody rate="75%">
$.External.FormattedPhone のお客様ですね。
</prosody>
いつもありがとうございます。
</speak>
結果、もっとゆっくり読み上げてくれることがわかります。
顧客にもっとはっきり伝えたい場合に検討できるかと思います。
🎵 [結果:[ゆっくりバージョン]AWS Lambda 整形後に Amazon Polly に句読点で区切って読み上げ]
以下は CloudWatch で確認した際のログです。
{
"Parameters": {
"Text": "<speak>\n <prosody rate=\"75%\">\n ゼロ、7、ゼロ、1、2、3、4、5、6、7、8 のお客様ですね。\n </prosody>\n いつもありがとうございます。\n</speak>",
"TextToSpeechType": "ssml",
"Voice": "Mizuki"
}
}
さいごに
今回は、Amazon Connect で入力してもらった電話番号を AWS Lambda で整形し、Amazon Polly に句読点で区切って読み上げさせてみた結果についてご紹介しました。
電話番号などを顧客に繰り返し確認するなどのロジックも多くありますが、はっきり伝えたい場合はこちらの方法もご検討ください。
この記事が、誰かの助けになれば幸いです。







