我正在使用twilio
我的情况当用户拨打电话时,IVR会询问用户心情,然后开始录制10秒钟,根据用户心情将该录音带到服务器查找播客并发送回带有podcast mp3的TWIML url并将其播放给用户
我完成了这份工作
现在我想要来实现这样的功能,当用户用户立刻说“跳过”或“我不喜欢这个请跳过”(或者我会用Ai处理类似的东西)停止播放并转到服务器并获取另一个播客mp3网址并播放
这样做我需要做这样的事情:
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<Play>https://somechannel.com/podcast.mp3</Play>
<record action='/voice/check-what-user-said'></record>
</Response>
但这样做并不能解决我的问题,因为twilio会在完成播放后开始录制,我想记录每10秒并在用户收听播客时连续发送到服务器
let say, twilio start playing mp3, it also start recording
e.g:
playing
00:00 - start recording for ten seconds
00:10 - finish recording and send it to server
00:11 - start another recording for 10 seconds
00:20 - finish recording and send it to server
每次当我们在服务器上录制时,如果用户说“跳过”,我会将录制转换为文本广告检查,如果是,我将动态修改呼叫
答案 0 :(得分:1)
Twilio开发者传道者在这里。
我担心目前无法*在播放mp3的同时录制通话片段。
我是否可以建议您使用use a key press来代替此功能?然后,您可以使用以下TwiML(作为示例)
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<Say>Press any digit to skip this podcast</Say>
<Gather action="/voice/check-digits" numDigits="1">
<Play>https://somechannel.com/podcast.mp3</Play>
</Gather>
</Response>
然后,您需要在/voice/check-digits
的应用程序中使用一个端点,该端点将用户引导到下一个播客。
*好的,如果您将音频播放到会议中并且让另一个脚本拨入会议并录制10秒钟,然后在另一个脚本拨入以开始录制时挂机,则可能。但即使这样,你也会尝试从播客的音频中提取呼叫者的声音,这根本不可能是准确的。特别是如果播客中的声音说“跳过”。所以我仍然建议使用<Gather>
!