![[Twilio+Python] Twilio API を使用し電話をかけて音声を流す](https://images.ctfassets.net/ct0aopd36mqt/wp-thumbnail-3f316c20ff5f4f46d1a005e2ad976882/c71162912c717bb0ca7c9b4196a40df5/twilio.png)
[Twilio+Python] Twilio API を使用し電話をかけて音声を流す
- Twilio アカウントが作成済みで Account SID と Account Token がある想定です
- 自動読み上げ音声を再生し、次に登録した mp3 を再生する例です
参考ページ: https://www.twilio.com/docs/voice/quickstart/python
作業環境
バージョン
Python: 3.11.9
twilio-python: 9.4.6
データの準備
音声データを用意します。今回は mp3 を Amazon S3 に配置して使用します。(URL でパブリックアクセスできるようになっていればどのような形でも問題ありません。)バケットを作成し、サンプル mp3 をアップロードします。この音声は、自動読み上げ音声のあとに再生する想定です。アップロードが完了したら、公開範囲を適切に設定し、 URL を取得します。
https://****.amazonaws.com/test.mp3
Python の Twilio ライブラリをインストールする
ローカルに Python プロジェクトを作成し、 pip で twilio-python をインストールします。 twilio-python は Python での Twilio API 操作を簡略化できるライブラリです。
$ pip install twilio
Twilio API を使用し電話をかける
電話をかける Python スクリプトを作成します。 TwiML 形式で音声の内容を記述します。 <Say>****</Say>
で自動読み上げ音声の内容を指定します。 <Play>****</Play>
で再生する音声の URL を指定します。 TwiML について詳しくは こちら
main.py
from twilio.rest import Client
account_sid = "****" # Account SID
auth_token = "****" # Auth Token
client = Client(account_sid, auth_token)
call = client.calls.create(
twiml= """<Response>
<Say language="ja-JP">これは Twilio テスト音声です。</Say>
<Play>https://****.amazonaws.com/test.mp3</Play>
</Response>""", # 音声の内容を TwiML 形式で記述
from_="****", # Twilio で購入した番号
to="****", # 発信先の電話番号
)
print(call.sid)
作成したスクリプトを実行します。
$ python main.py
発信先の電話番号に電話がかかり、自動音声が流れ、その後サンプル音声が流れることを確認します。
おわりに
Twilio API を使用することで、簡単に音声発信を実装することができることが分かりました。
前回、 サーバー通知を SMS で自動配信する Web アプリケーションの作成については こちら 。
次回、 Twilio API を使用し SMS 送信をスケジューリングする方法については こちら 。