我一直在尝试将 mulaw 媒体流传输回 Twilio。要求有效负载必须采用音频/x-mulaw 编码,采样率为 8000,并采用 base64 编码
我的输入来自 LINEAR16 Google Docs中的 @google-cloud/text-to-speech
我尝试过波形文件
这就是我对 @google-cloud/text-to-speech 的响应进行编码的方式
const wav = new wavefile.WaveFile(speechResponse.audioContent)
wav.toBitDepth('8')
wav.toSampleRate(8000)
wav.toMuLaw()
Run Code Online (Sandbox Code Playgroud)
然后我通过 WebSocket 将结果发送回 Twilio
twilioWebsocket.send(JSON.stringify({
event: 'media',
media: {
payload: wav.toBase64(),
},
streamSid: meta.streamSid,
}))
Run Code Online (Sandbox Code Playgroud)
问题是我们只能在 Twilio 通话的另一端听到随机噪音,似乎编码不正确
其次,我通过将@google-cloud/text-to-speech输出音频保存在文件中检查了它,它是正确且清晰的
谁能帮我编码