Node.js
WebSocketの作成
まず connection イベントを使用して、Webhook サーバーがオンラインになり、通話音声を受信する準備ができたことを報告できます:
expressWs.getWss().on('connection', function (ws) {
console.log('Websocket connection is open');
});
Voice API WebSocket に音声を書き込む場合、音声は 特定形式.そのためには、バイナリーオーディオデータを正しいサイズの配列に分離する関数が必要です:
function chunkArray(array, chunkSize) {
var chunkedArray = [];
for (var i = 0; i < array.length; i += chunkSize)
chunkedArray.push(array.slice(i, i + chunkSize));
return chunkedArray;
}
次に /socket ルートを呼び出します。WebSocketが接続されると、このルートが呼び出されます:
app.ws('/socket', (ws, req) => {
const wav = new WaveFile(fs.readFileSync("./sound.wav"));
wav.toSampleRate(16000);
wav.toBitDepth("16");
const samples = chunkArray(wav.getSamples()[0], 320);
for (var index = 0; index < samples.length; ++index) {
ws.send(Uint16Array.from(samples[index]).buffer);
}
})
このルートはディスクからオーディオファイルをロードします。 ギットハブ次に、WaveFileライブラリを使用して、Voice APIのサンプルレートとビット深度を変更します。次に、オーディオの最初のチャンネルからオーディオサンプルを取得し、先ほどの関数を使用してバイナリーオーディオデータ配列のサイズを変更します。最後に、バイナリオーディオデータが繰り返し処理され、WebSocket経由で send() 関数である。
注: Vonageは3072メッセージしかバッファしません。 ファイルがこれより長い場合は、各メッセージの間に18~19ミリ秒のディレイを入れる必要があります。
オーディオをWebSocketで再生する
Voice APIコールをWebSocketに接続し、JavaScriptで音声を再生する方法をご紹介します。
以下の言語で利用可能:
手順
1
このタスクの紹介2
Prerequisites3
Vonage番号の購入4
音声アプリケーションの作成5
Vonage番号をリンクする6
プロジェクトの作成7
回答のウェブフックを書く8
イベントウェブフックを書く9
WebSocketの作成10
アプリケーションのテスト11
次はどうする?