Twilio:如何检测哪个参与者正在会议中发言

Twilio: how to detect which participant is speaking in a conference

我正在努力实现一个 audio-only 会议应用程序,它类似于 Google 视频群聊,但没有视频。

在 Google 视频群聊中,所有参与者都可以通过视觉反馈看到当前正在发言的参与者。换句话说,当有人开始讲话时,他们的头像会立即出现在所有参与者的前景中。

所以,这是我对 Twilio 及其客户端 SDK 的问题:

  1. 有什么方法可以检测当前说话者(并向用户提供一些反馈)吗?
  2. 有没有办法通过 SDK 获取麦克风的输入电平?

有趣的用例。 我认为这两者都可以通过 Twilio 实现,以下是我对如何实现这些的看法

  1. 检测当前说话人 您本质上需要的是一个在所有参与者之间全局共享的标志。该标志应该能够由正在发言的发言者实时动态更新,同时再次将此信息实时推送给其他参与者。所以,简单地说,您想要一个共享资源,其中每个 Twilio 客户端可以 'publish' 和 'subscribe' 它们的 'speaking' 状态。您可以通过 Twilio Sync 实现它。 为此,您可以在 Sync 上创建一个列表 object,并添加每个参与者的音频级别超过您认为他们正在说话的特定级别。会议中的所有 Client 实例都应订阅此列表,依此类推 'itemAdded' 或 'itemRemoved' 每个 client 实例都可以获得正在发言的参与者列表。在此基础上,UI 可以进行更改。

  2. 您可以通过查询 Twilio Voice Insights .For Audio input level , you will have the value passed in parameter named AudioLevelIn 获得每个客户端实例的音频电平(输出和输入)。

注意:这两种产品都需要申请访问权限。