如何在twilio中同时播放和录制语音

时间:2017-05-19 16:56:32

标签: javascript twilio twilio-api twiml

我正在使用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

每次当我们在服务器上录制时,如果用户说“跳过”,我会将录制转换为文本广告检查,如果是,我将动态修改呼叫

1 个答案:

答案 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>