Twilio录音仅含通话一方内容,如何获取双方混合音频?
解决Twilio通话录音仅捕获一方的问题
你当前代码里recordingTrack: "both"的逻辑方向是对的,但可能有几个细节没处理到位,导致只录到一方声音:
修正录音格式获取方式:你手动给下载URL追加
.mp3后缀的操作可能引发音频解析异常。Twilio录音资源支持直接通过URL指定格式,正确做法是用回调返回的RecordingUrl,直接在末尾拼接.mp3(比如${recordingUrl}.mp3)获取MP3文件,而非下载原文件后手动改后缀——原文件默认是WAV格式,强行改后缀可能导致解码错误,听起来只有一方声音。确认Dial配置的完整性:检查代码中是否正确关联Dial实例与number方法,正确的代码结构应该是:
const voiceResponse = new twiml.VoiceResponse(); const dial = voiceResponse.dial({ callerId: callerNumber, record: "record-from-answer", recordingStatusCallback: `https://${request.headers.host}/recording`, recordingStatusCallbackMethod: "POST", recordingTrack: "both", method: "POST", ringTone: "au", }); dial.number(to);
如果之前未将voiceResponse.dial()的返回值赋值给dial变量,可能导致Dial的录音配置未生效。
排查控制台全局设置:登录Twilio控制台,进入「语音」>「设置」>「通话录音」,确认全局「录音轨道」设置为「双方(混合)」,避免全局配置覆盖代码中的
recordingTrack参数。验证原始录音文件:拿到回调返回的
RecordingUrl后,直接访问该URL(不手动加.mp3),下载原始WAV文件播放。如果原始文件包含双方声音,问题出在格式转换方式;如果原始文件也只有一方,再重点排查代码和控制台设置。
内容的提问来源于stack exchange,提问作者TomHill
相关产品推荐
相关产品推荐

