はじめに
Twilio Programmable Voiceに含まれるConference機能はDualレコーディングに対応しています。2024年の9月に発表されています。
Twilio Programmable VoiceのConferenceにおいて、Dualレコーディングが可能になりました。1つの録音ファイル内に、各スピーカーの音声がチャンネルごとに分離され、文字起こしの精度などが向上できます。
今回は、Dualレコーディングを対象にテストを実施し、様々なパターンで録音状況の確認を実施してみました。
話者分離
Conferenceでは2名以上で会話が出来るので、下記のようなチャネル分けで録音されます。
- チャンネル1:Conferenceに最初に参加した参加者の音声
- チャンネル2:それ以外の参加者全員の音声
利用方法
Dual録音の設定
Twilio Console の Voice Settings ページで「Dual‑channel Conference Recordings」を有効化。
または、Recordings API 利用時に RequestedChannels パラメータで「mono」または「dual」を指定可能。未指定の場合は従来のモノラル録音。
録音開始の設定
TwilioでConferenceに参加者を招待するとき、録音を有効にするにはrecordパラメーターを使用します。
<Dial>
<Conference record="record-from-start">my-conference-room</Conference>
</Dial>
record
パラメーターの主な設定値
設定値 | 意味 | 推奨 |
---|---|---|
do-not-record |
録音しない(デフォルト) | |
record-from-start |
Conference開始時から全体を録音 | ◎ |
record-from-answer |
最初の参加者が応答したタイミングから録音 | |
record-from-ringing |
着信時点から録音(あまり使われません) |
テスト実施
Dualレコーディングのテストを実施するために以下のサンプルコードを用意しました。
GitHubのサンプルコード
今回はこちらを使って検証を実施していきたいと思います。
1. Conferenceで2者間通話時のテストパターンと結果
試験パターン
No | 参加者1 | 参加者2 | Dual録音可否 |
---|---|---|---|
1 | 電話番号 | 電話番号 | OK |
2 | ブラウザ | ブラウザ | OK |
3 | SIP | SIP | OK |
4 | 電話番号 | ブラウザ | OK |
結果総評
Conferenceで利用できるどのチャネルから音声通話を行っても、きれいにDualレコーディングされていました。コンソールでRecordingのログを確認するとするとTrackの列は「-」と表示されCHANNELSは「1」と表示されていますが、録音ファイルを確認すると話者分離されて左と右のスピーカーに話者が別れていました。
2. Conferenceで3者間通話時のテストパターンと結果
こちらの試験結果は、実際に実行したコマンドと結果の音声ファイルをエビデンスとして記載します。
試験パターン
No | 参加者1 | 参加者2 | 参加者3 | Dual録音可否 | 左スピーカー | 右スピーカー |
---|---|---|---|---|---|---|
1 | 電話番号 | 電話番号 | 電話番号 | OK | 参加者1 | 参加者2 /参加者3 |
2 | ブラウザ | ブラウザ | ブラウザ | OK | 参加者1 | 参加者2 /参加者3 |
3 | SIP | SIP | SIP | OK | 参加者1 | 参加者2 /参加者3 |
4 | 電話番号 | ブラウザ | SIP | OK | 参加者1 | 参加者2 /参加者3 |
5 | 電話番号 | 電話番号 | SIP | OK | 参加者1 | 参加者2 /参加者3 |
試験で使用したコマンドと結果の録音ファイル
録音ファイルでは、複数の端末で私が1名で話しているので、聞こえてくる声は同じですが、端末を変えると音声が左・右のスピーカーそれぞれから聞こえます。これにより話者分離が出来ていることを確認してもらえればと思います。
-
No1
- 実行コマンド
curl -X POST https://conference-xxxxxx-xxxxxx-dev.twil.io/start-call \ -d "phoneNumbers=+8190xxxxxxxx,+8180xxxxxxx,+8170xxxxxxx"
- 実行結果
結果の音声ファイル
-
No2
- 実行コマンド
curl -X POST https://conference-xxxxxx-xxxxxx-dev.twil.io/start-call \ -d "phoneNumbers=client:test1,client:test2,client:test3"
- 実行結果
結果の音声ファイル
-
No3
- 実行コマンド
curl -X POST https://conference-xxxxx-xxxxx-dev.twil.io/start-call \ -d "phoneNumbers=sip:sipuser1@xxxx-xxxx.sip.twilio.com,\ sip:sipuser2@xxxx-xxxx.sip.twilio.com,sip:sipuser3@xxxx-xxxx.sip.twilio.com"
- 実行結果
結果の音声ファイル
-
No4
- 実行コマンド
curl -X POST https://conference-xxxxx-xxxxx-dev.twil.io/start-call \ -d "phoneNumbers=+8180xxxxxxxx,client:test1,sip:sipuser3@xxxx-xxxx.sip.twilio.com"
- 実行結果
結果の音声ファイル
-
No5
- 実行コマンド
curl -X POST https://conference-xxxxx-xxxxx-dev.twil.io/start-call \ -d "phoneNumbers=+8190xxxxxxxxx,+8180xxxxxxx,sip:sipuser2@xxxx-xxxx.sip.twilio.com"
- 実行結果
結果の音声ファイル
結果総評
3者通話では、最初に応答した話者が左スピーカーに、それ以外が右スピーカーに割当されて聞こえました。様々なチャネル(電話・SIP・ブラウザ)が混ざっても問題なくDualレコーディングが実現されていました。
録音ファイルについて
Twilioの録音機能には、MP3とWAV形式の2つがあります。ステレオでの録音には両方の形式とも対応していますが、MP3は音声のビットレートが低いため、利用するのであればWAVがおすすめです。
またコンソールのCall Recordingのメニューから録音ファイルをダウンロードすると、WAVはステレオで、MP3はモノラルでした。
MP3でもステレオを取得したい場合には以下のようにURLを叩いて取得してください。録音ファイルのURLに対してRequestedChannels=2
をつけるのがポイントです。
curl "https://api.twilio.com/2010-04-01/Accounts/<Account_SID>/Recordings/<Recording_SID>.mp3?RequestedChannels=2" \
-u <Account_SID>:<Auth_Token> \
--output dual_recording.mp3
上記のコマンドを実行した場合に想定されるエラーとして下記のものがあります。
<Code>16113</Code>
<Message>Recording cannot be retrieved in dual channel format as that presentation does not exist</Message>
こちらは、ステレオで録音されたファイルが存在しない場合に発生します。
条件としては、Dualレコーディング設定を行う前や、Dualレコーディング対応前の昔のレコーディングファイルに対して実行した場合です。そのため、再度Dualレコーディングの設定の見直しと、再度最新の通話の録音ファイルを取得して検証することをおすすめします。
制限
- 公開鍵暗号化(Encryption with Public Key) を有効にしていると、Dualレコーディングは利用できずモノラル録音になります
- 外部ストレージ(External Storage) を使っている場合もモノラル録音になります
- 対応リージョンは US1 のみ(IE1 や AU1 では Conference 録音自体が失敗します)
- コンソール画面からダウンロードしたMP3形式の録音ファイルはモノラル録音になります
- 話者毎に録音ファイルが分割されることはありません
- 1つのConferenceコールで1録音(.mp3 and .wav)ファイルの構成です
まとめ
Conferenceを利用するユーザーにとって、Dualレコーディングは非常に有用な機能だとおもいます。話者ごとにチャンネルが分離されて録音されるため、誰が何を話したかを明確に識別することができ、後処理の効率が大きく向上します。
2名での通話であれば、左右のチャンネルに明確に分離されるため、そのまま話者別の音声ファイルとして活用可能です。
3名以上の場合は、最初の参加者がチャンネル1、それ以外がチャンネル2に集約される形となりますが、それでも従来のモノラル録音よりも精度の高い文字起こしや音声分析が実現できます。
特に、会話分析や文字起こしを活用するシーンでは、このDual録音機能が役にたつと考えています。