【Amazon Connect】入力してもらった電話番号を AWS Lambda で整形し、Amazon Polly に句読点で区切って読み上げさせてみた

【Amazon Connect】入力してもらった電話番号を AWS Lambda で整形し、Amazon Polly に句読点で区切って読み上げさせてみた

Amazon Connectで入力された電話番号をAWS Lambdaで整形し、Amazon Pollyに句読点で区切って読み上げさせる実装方法をご紹介します。動的な電話番号処理と、SSMLタグを使った読み上げ速度調整の工夫も含めてお伝えします。
2026.08.26

はじめに

こんにちは、フニです。
本記事では、Amazon Connect で入力してもらった電話番号を AWS Lambda で整形し、Amazon Polly に句読点で区切って読み上げさせてみた結果についてご紹介します。

概要

https://dev.classmethod.jp/articles/amazon-polly-phone-number-reading/

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 フロー

今回は、以下のようにフローを構築しました。

CleanShot 2026-08-26 at 14.15.24@2x.png

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

CleanShot 2026-08-26 at 14.18.10@2x.png

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

CleanShot 2026-08-26 at 14.18.34@2x.png

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

CleanShot 2026-08-26 at 14.18.53@2x.png

結果

電話をかけて、07012345678のように入力しました。
結果、「0」は「ゼロ」で読み上げてくれて、各番号の間は句読点で区切って読み上げてくれることが確認できました。

🎵 [結果:AWS Lambda 整形後に Amazon Polly に句読点で区切って読み上げ]

以下は CloudWatch で確認した際のログです。

{
    "Parameters": {
        "Text": "ゼロ、7、ゼロ、1、2、3、4、5、6、7、8 のお客様ですね。いつもありがとうございます。",
        "TextToSpeechType": "text",
        "Voice": "Mizuki"
    }
}

おまけ : SSML タグでもっとゆっくり読み上げさせてみた

以下のように、「プロンプトの再生」ブロックで SSML タグを活用して読み上げるスピードを調整してみました。

CleanShot 2026-08-26 at 14.45.14@2x.png

<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 に句読点で区切って読み上げさせてみた結果についてご紹介しました。
電話番号などを顧客に繰り返し確認するなどのロジックも多くありますが、はっきり伝えたい場合はこちらの方法もご検討ください。
この記事が、誰かの助けになれば幸いです。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事