2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Twilioで話した内容を書き起こしてみよう

Last updated at Posted at 2025-01-24

はじめに

備忘録2本目です。
今回はTwilioで購入した050番号宛に発信して、話した内容をGoogle chatのスペースに書き起こす処理を作っていきます。

Google chatのスペース作成

Google Chat側の準備をしていきます。まずはスペースを作成していきます。
image.png

次にスペースのWebhookを作成します。アプリと統合から適当な名前を付けて2個作成してください。
image.png

作成したら、縦三点リーダーをクリックして各WebhookのURLをコピーします。

Twilio側の処理作成

スペースの準備が終わったらTwilio側の準備をしていきます。
最初にFunctionを使って処理を書いていきます。
baseURLには、先ほどコピーしたWebhookのURLを使用します。

Node.js
exports.handler = async function(context, event, callback) {
  const axiosA = require('axios');
  const axiosB = require('axios');
  const instanceA = axiosA.create({
    baseURL:'Webhook1のURL',
    headers:{}
  });

 const instanceB = axiosB.create({
    baseURL:'Webhook2のURL',
    headers:{}
  });

  if(event.Track === 'outbound_track')
  {
    await instanceA.post('',{text:JSON.parse(event.TranscriptionData).transcript})
  }else{
    await instanceB.post('',{text:JSON.parse(event.TranscriptionData).transcript})
  }

  return callback(null);
};

Functionを作成し終わったら縦三点リーダーからFunctionのURLをコピーします。
image.png

次にTwimlを作成していきます。statusCallbackUrlにはFunctionのURLを使用します。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Start>
    <Transcription statusCallbackUrl="FunctionのURL" track="both_tracks" name="test" languageCode="ja-JP"/>
  </Start>
  <Say voice="Google.ja-JP-Wavenet-C">始まります。</Say>
  <Pause length="60"/>
  <Say voice="Google.ja-JP-Wavenet-C">残り2分。</Say>
  <Pause length="60"/>
  <Say voice="Google.ja-JP-Wavenet-C">残り1分。</Say>
  <Pause length="60"/>
  <Say voice="Google.ja-JP-Wavenet-C">終了。</Say>
</Response>

Google CloudのText-to-Speechを利用して、Sayで囲まれた文字を音声化しています。ほかにも様々な種類の音声があるので、好きなものを選んでください。
https://cloud.google.com/text-to-speech/docs/voices?hl=ja

最後に処理を電話番号に紐づけます。
A call comes inはTwiml Binを選択し、作成したTwiml名を選んでセーブします。
image.png

以上で準備完了です。

動作確認

050番号に発信して、気象予報のニュースを聞かせましょう。
image.png
ニュースの内容がスペースに書き起こされました。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?