一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有改进的目的地回放的多设备会议的制作方法

2022-06-12 03:34:41 来源:中国专利 TAG:

具有改进的目的地回放的多设备会议
1.对相关申请的交叉引用
2.本技术要求2019年8月19日提交的美国临时专利申请no.62/888,646的权益,该申请的全部内容通过引用并入本文。
3.本技术还要求2020年3月17日提交的美国临时专利申请no.62/990,996的权益,该申请的全部内容通过引用并入本文。
技术领域
4.本发明总体上涉及虚拟会议领域,具体而言,涉及使用虚拟会议参会者的个人设备进行虚拟会议。


背景技术:

5.虚拟会议已成为现代社会的重要工具。随着全球化的兴起,企业和个人可能不得不与遍布全球的合作者和同事建立联系。现有的虚拟会议技术利用专业和高质量的音频和视频装备以及对环境因素的控制来消除或减少传输音频和视频信号时的信号延迟。同时,个人电脑设备(如智能手机、平板电脑和笔记本电脑)的广泛使用使这些设备更易于获得。这些设备通常包括相对高质量的摄像头和麦克风部件,因此已用于一对一的音频和视频通信。这些设备也可以成为启用有多个参会者的虚拟会议会话的备选设备。


技术实现要素:

6.在一个方面,本发明公开一种虚拟会议的方法。该方法包括:检测参会者的源设备和目的地设备,其中,源设备和目的地设备包括麦克风和扬声器;使用源设备麦克风接收音频流;产生接近度值,其中,接近度值包括估计音频流的源到接收音频流的麦克风的距离;使用接近度值对音频流进行编码;将编码的音频流传输到服务器;并将具有最高接近度值的音频流传输到目的地设备。在用于自动识别和配对实际位置附近的共同呈现设备的一些实施例中,方法、系统和计算机程序产品涉及:为第一计算机设备生成超声波代码;将基于超声波代码的代码数据发送至第一设备,以使第一计算机设备能够广播基于超声波代码的音频信号;从第二个计算机设备接收解码数据;验证解码数据代表第二计算机设备正确解码了第一计算机设备广播的超声波代码;并基于验证,对第一和第二计算机设备进行配对。第一和第二计算机设备可以与共同存在的设备分组中的其他配对设备配对以用于虚拟会议,由此配对的设备在实际彼此靠近。
7.在用于同步从远端设备接收的传入音频流的音频回放的一些实施例中,方法、系统和计算机程序产品涉及:在主设备处接收来自多个远端设备的传入音频流;在主设备处对传入的音频流进行缩混以生成缩混的音频流;在主设备处确定用于延迟在主设备处回放缩混音频流的动态延迟因素;以及在主设备处将缩混的音频流发送到一个或多个辅助设备的相应动态地调整大小的延迟缓冲区,以使缩混音频流在主设备和一个或多个辅助设备处的回放同步。
8.在用于为发送到远端设备的传出流同步共同呈现麦克风的一些实施例中,方法、系统和计算机程序产品涉及:在主设备处基于从相应辅助设备接收的一个或多个音频流确定动态延迟;在主设备处,对来自主设备的一个或多个麦克风的麦克风数据应用动态延迟;在主设备处,对从相应辅助设备接收的一个或多个音频流和主设备的延迟麦克风数据进行缩混,以生成传出缩混音频流;从主设备向至少一个远端设备发送传出缩混音频流。
9.在一个实施例中,通过语音特征提取来生成接近度值。
10.在一个实施例中,该方法还包括启用与所选音频流相关联的麦克风并禁用剩余的麦克风。
11.在另一个实施例中,该方法还包括当检测到可能存在不稳定的音频行为时将平滑算法应用于一个或多个音频流。
12.在一个实施例中,该方法还包括:从源设备接收视频流;以及从视频流中检测指示当前发言人的视觉线索。
13.在另一个实施例中,视觉提示包括人类嘴唇运动。
14.在一个实施例中,该方法还包括:接收预先录制的参会者语音样本;使用预先录制的样本,训练人工智能模型以将音频流与参会者相关联。
15.在另一个实施例中,该方法还包括:选择目的地设备的扬声器,并将具有最高接近度值的音频流仅发送到选择的扬声器;并从所选扬声器播放该音频流。
16.在一个实施例中,该方法还包括:在目的地设备内形成本地实时传输协议(rtp)网络;将具有最高接近度值的音频流传输到rtp网络内的主目的地设备,其中,主目的地设备被配置为将该音频流分发给剩余的目的地设备。
17.在另一个实施例中,该方法还包括至少部分地基于其硬件规格来选择主目的地设备。
18.在一个方面,本发明公开一种在虚拟会议中的目的地处回放音频的方法。该方法包括:从服务器接收两个或多个音频信号,其中,两个或多个音频信号源自虚拟会议的两个或多个源设备;通过无线网络连接虚拟会议的两个或多个目的地设备;在虚拟会议的目的地设备中选择主设备;在虚拟会议的目的地设备中选择一个或多个辅助设备;将两个或多个音频信号从服务器传输到主设备;将两个或多个音频信号组合成回放音频信号;在主设备和辅助设备上调度回放时间;将回放的音频信号传输到辅助设备;根据预定的回放次数播放回放的音频信号。
19.在另一方面,本发明公开一种在虚拟会议中捕获和传输源音频信号的方法。该方法包括:在虚拟会议的源设备中选择主设备;在虚拟会议的源设备中选择辅助设备;通过无线网络连接虚拟会议的主源设备和辅助源设备;接收来自主设备和辅助设备麦克风的音频信号;将音频信号同步为传输音频信号;将同步后的音频信号传输至服务器。
20.应当理解,本文描述为由相应计算机设备执行的所有步骤、操作、功能和动作可以根据在相应计算机设备上运行的avc应用程序(“avc app”)的实例来执行。
21.应当理解,本文描述的各种实施例可以根据包括一个或多个处理器和存储多个指令的非暂时性计算机可读介质的系统来实现,当执行这些指令时,使一个或多个处理器执行本文描述的任何或所有步骤、操作、功能和行为。
22.应当理解,本文描述的各种实施例可以根据包括非暂时性计算机可读介质的计算
机程序产品来实现,该非暂时性计算机可读介质具有嵌入在其中的计算机可读程序代码以由一个或多个处理器执行,其中,程序代码包括用于执行本文所述的任何或所有步骤、操作、功能和动作的指令。
附图说明
23.本文提供的附图和相关描述是对本发明特定实施例的说明而非限制。
24.图1示出了根据实施例的音频视频会议(avc)系统的框图。
25.图2a示出了根据一个或多个实施例的用于自动识别和配对实际位置附近的共同呈现设备的方法的流程图。
26.图2b示出了根据一个或多个实施例的用于在实际位置附近的共同呈现设备的自动识别和配对的图。
27.图2c示出了用于识别avc系统中参会者的设备的图。
28.图3a示出了根据一个或多个实施例的用于同步从远端设备接收的传入音频流的音频回放的方法的流程图。
29.图3b示出了根据实施例的音频回放系统的示意图。
30.图4a示出了根据一个或多个实施例的用于为发送到远端设备的传出流同步共同呈现麦克风的方法的流程图。
31.图4b示出了可以生成同步的音频信号并将其发送到目的地的源系统的示意图。
32.图5示出了根据实施例的在虚拟会议系统中改进的音频回放的方法的流程图。
33.图6示出了生成同步音频信号并将其从多个源设备发送到服务器的方法的流程图。
34.图7是示出在一些实施例中可以执行处理的示例性计算机的示意图。
具体实施方式
35.以下对某些实施例的详细描述呈现了对本发明的特定实施例的各种描述。然而,本发明可以以根据权利要求书所定义和涵盖的多种不同方式来体现。在本说明书中,参考了附图,其中,相似的附图标记可以表示相同或功能相似的元件。
36.除非另外定义,否则本文使用的所有术语具有与本发明所属领域的技术人员通常理解的相同含义。在本发明全文中提及的所有专利、专利申请和出版物均以全文引用的方式并入本文。本文某一术语有多种定义的,以本节中的定义为准。当在本公开中使用术语“一个(one)”、“一个(a)”或“一个(an)”时,除非另有说明,否则它们的意思是“至少一个”或“一个或多个”。
37.传统的虚拟会议解决方案利用受控环境和专用设备,以便交付它们的服务。它们可能包括配备电视、摄像头、扬声器、处理单元和其他硬件的硬件室设置,以启用音频/视频会议。在音频会议的背景下,与会者可以聚集在专用会议室和中央麦克风周围,以生成单个音频源,该音频源可以传输到目的地位置。通过使用单个音频源,可以减少或避免延迟、回声或其他负面听觉体验的问题。在单个音频源(例如麦克风)不够用的情况下,传统解决方案使用旨在最大限度减少延迟或至少具有相同延迟的装备,以便目的地参会者有愉快的听觉体验。例如,如果以每个麦克风延迟都相同的方式放置或设计多个麦克风(例如,通过使
用等长电缆将麦克风连接到接收器),则可以使用多个麦克风。
38.近年来,诸如移动电话、平板电脑和笔记本电脑之类的便携式设备已经变得无处不在,并且许多人可以访问或携带个人或商业便携式设备。这些设备大多配备麦克风、摄像头和无线通信接口,以连接到互联网或移动电话网络。尽管如此,尚未探索使用便携式设备进行虚拟会议即参会者使用他们个人的或公司发行的设备参加会议的潜力。这是由于时延变化的多设备虚拟会议可能遇到一些挑战。通常,如果在普通的个人智能手机、平板电脑和笔记本电脑上使用现有的音频-视频会议软件来进行虚拟会议,那么由此产生的音频体验可能会很差。例如,当多个扬声器和麦克风存在于一个实际空间中时,可以创建无限回声或声学反馈回路以及其他正反馈回路机制,反之,可以听到这些机制是尖叫声。此外,在参会者的个人设备上使用传统的音频-视频会议软件可以为目的地接收者生成感知倍增的不同步音频流,因为每个设备麦克风都单独连接到互联网,并以自己的时延传输音频,这可能与会议中的其他设备不同。尽管如此,如果能够解决相关的技术挑战,智能手机、平板电脑和笔记本电脑的广泛可用性和使用使它们成为启用虚拟会议的理想备选设备。例如,与会者可以使用他们的便携式设备(例如笔记本电脑、平板电脑、智能手机、智能手表或类似设备)在现场启用音频/视频会议。他们可以使用设备麦克风、扬声器和摄像头加入或参与视频会议。如果与会者在同一位置,则本公开的实施例使得能够在存在的设备麦克风之间执行自动切换。在视频会议的背景下,与会者可以使用他们设备的摄像头加入或参与会议。当一个以上的与会者出现在一个音频/视频会议位置时,另一个本公开的实施例允许与会者操纵他们的个人设备的扬声器输出(例如,打开/关闭、调高/调低音量)并且仍然无缝参与音频/视频会议。在另一个实施例中,在目的地位置的与会者的设备可以接收输出到这些设备的远端音频流。目的地的多个设备可以同步播放音频流,同时允许任何设备在0到100%之间更改其输出音量。
39.图1示出了根据实施例的音频视频会议(avc)系统18的框图。设备20可以包括诸如笔记本电脑、智能手机、智能手表和平板电脑之类的设备,它们可以连接到其他设备20和/或互联网。设备20可以运行音频-视频会议(avc)应用程序22,其可以与avc服务器24一起管理avc系统18的操作。avc服务器24可以包括附加部件,例如信号处理和选择器模块26.
40.avc服务器24可以检测在共享实际位置(例如会议室)中存在的设备20,并且可以在实际位置建立和维护设备20的虚拟网络。通过使用一组旨在防止不同步感知、音频流复制、回声循环和其他负面的听觉体验的内置规则向它们发送命令,avc服务器24可以管理设备20的麦克风、扬声器和相机的自动启用和禁用。
41.实际位置附近共同呈现设备的自动识别和配对
42.如图2a的示例性流程图200所示,avc服务器24为第一计算机设备生成超声波代码(动作202)。例如,avc服务器24为请求计算机设备生成超声波代码,该计算机设备试图加入当前由包括在共同呈现设备组中的多个配对设备访问的虚拟会议。avc服务器24从请求设备接收第一位置信息。相应计算机设备的位置信息基于以下各项中的至少一项:相应计算机设备的地理位置和与相应计算机设备关联的ip地址。avc服务器24将第一位置信息与先前从共同呈现设备组中的一个或多个配对设备接收到的相应位置信息进行对比。avc服务器24在确定该对比满足接近度阈值时生成超声波代码。
43.avc服务器24将基于超声波代码的代码数据发送到第一设备(即,请求设备)以使
第一计算机设备能够广播基于超声波代码的音频信号(动作204)。avc服务器24从第二计算机设备接收解码数据(动作206)。第二计算机设备属于共同呈现设备组。avc服务器24验证解码数据代表第二计算机设备正确解码了由第一计算机设备广播的超声波代码(动作208)。基于成功验证,avc服务器24将第一和第二计算机设备配对(动作210)。应当理解,流程图200中描述的每个动作204、206、208、210和相应动作204、206、208、210的示例的任何特征可以与任何上述动作和/或上述动作的任何示例组合。
44.图2b示出了基于流程图200的示例图28。虚拟会议可以包括(或要求)实际存在于实际位置处或实际位置附近的多个参会者(即多个个人)出席,使得每个参会者的计算机设备(例如笔记本电脑、移动电话)将出现在或靠近实际位置和/或彼此。与要求每个参会者通过图形用户界面执行手动工作流程不同(例如密码认证、手动登录),avc系统18自动识别和配对参会者的设备以同时参与相同的虚拟会议。
45.根据一个实施例,运行avc应用程序22的设备30可以是加入虚拟会议的第一设备。设备30的avc应用程序22可以向avc服务器24发送第一位置信息。位置信息可以基于例如地理位置信息和/或ip地址。地理位置信息可以指示设备30相对于实际位置的当前位置。avc服务器24从设备30接收位置信息并自动将设备30连接到虚拟会议。虚拟会议可以与预期与会者的列表相关联。除了第一位置信息之外,设备30上的avc应用程序22可以发送与预期与会者列表的至少一部分配对的第一标识信息。avc服务器24确认接收到的第一标识信息代表预期与会者列表上的预期与会者,并存储来自设备30的位置信息。
46.运行avc应用程序22的设备32可以随后在实际上接近度设备30,设备30是加入虚拟会议的第一个设备。设备32的avc应用程序22可以向avc服务器24发送第二位置信息和第二标识信息。avc服务器24确认接收到的第二标识信息代表预期与会者列表上的另一个预期与会者并存储来自设备30的第二位置信息。第二位置信息可以基于例如指示设备32相对于设备30的当前位置的当前位置的地理位置信息。avc服务器24将来自设备30的第一位置信息与来自设备32的第二位置信息进行对比。avc服务器24确定位置信息的对比满足接近度阈值从而表示设备30和设备32彼此足够接近度。例如,位置信息的对比表明设备30、32都处于相同的实际位置,例如相同的会议室。
47.基于满足接近度阈值,avc服务器24生成唯一的超声波代码并将代码数据发送到设备32,以便启动设备32自动加入虚拟会议并与设备30配对的序列。代码数据包括唯一的超声波代码。设备32从avc服务器24接收代码数据,并且设备32的avc应用程序22访问接收的代码数据中的唯一超声波代码。设备32的avc应用程序22触发设备32以基于唯一超声波代码广播音频信号。例如,基于唯一超声波代码的音频信号可以被编码为频率高于20khz的双音多频(dtmf)码。
48.设备30的一个或多个麦克风接收广播的超声波代码音频信号。设备30上的avc应用程序22对超声波代码进行解码,并将基于解码的超声波代码的解码数据发送到avc服务器24。avc服务器24从设备30接收解码数据并验证设备30是否正确解码了发送到设备32的超声波代码。基于解码验证,avc服务器24将设备30、32配对,使得它们被包括作为虚拟会议共同呈现设备组中的一部分。根据各种实施例,例如,如果设备30是笔记本电脑,则设备30上的avc应用程序22包括线性回归算法以当avc应用程序22通过笔记本电脑麦克风接收广播的唯一超声波代码时,适应超声波频谱的不均匀频率响应。
49.对于加入虚拟会议的任何后续设备,后续设备上的avc应用程序22将相应的位置信息和标识信息发送到avc服务器24。avc服务器24执行后续设备的位置信息与先前从已包含在虚拟会议的共同呈现组中的每个配对设备接收的位置信息之间的位置对比。avc服务器24确定后续设备是否接近度共同呈现组中的一个或多个配对设备。根据一些实施例,可能存在后续设备必须靠近不止一个配对设备的要求。在满足接近度阈值时,avc服务器24生成另一个唯一超声波代码并将唯一超声波代码作为代码数据发送到后续设备。随后的设备接收代码数据并基于唯一的超声波代码广播音频信号,使得其可以被已经包括在虚拟会议的共同呈现组中的一个或多个配对设备接收。配对设备的一个或多个麦克风从后续设备接收广播的超声波代码音频信号。配对设备上的avc应用程序22对超声波代码进行解码,并将基于解码的超声波代码的解码数据发送到avc服务器24。avc服务器24从配对设备接收解码数据并验证配对设备正确解码发送到后续设备的超声波代码。基于成功的解码验证,avc服务器24将后续设备与包括作为虚拟会议中共同呈现设备组的一部分的所有其他配对的设备配对。
50.根据各种实施例,当共同呈现设备组包括多个设备时,avc服务器24选择特定配对设备作为主要设备并且选择共同呈现组中的所有其他设备以充当各自的辅助设备。选定的主设备可以在虚拟会议的整个持续时间内充当虚拟会议的主设备,直到主设备在虚拟会议仍在会话中时退出虚拟会议。在这种情况下,avc服务器24检测到主设备不再访问虚拟会议并从剩余的当前仍在访问虚拟会议的辅助设备中选择新的主设备。
51.在各种实施例中,主要设备被分配混合从不是共同呈现组的一部分的远端设备接收的传入音频流的任务(或角色)。在混合输入音频流时,主设备将混合的输入音频流发送到所有相应的辅助设备,以便在每个相应的辅助设备同步回放混合的输入音频流。混合输入音频流的回放在主设备处与每个相应的辅助设备处的回放同步发生。
52.如图2c中示意图29所示,将使用与会者的个人设备针对任何源或目的地位置进行虚拟会议。参与位置可以是可互换的源或目的地,这取决于来自虚拟会议中的当前发言人的音频的发起和传输方向。为了便于描述,我们假设图2c中所示的设备存在于源位置,例如共享的实际会议室。在示例识别方法28中,运行avc应用程序22的设备30是源位置中的第一设备,其正试图加入虚拟会议。设备30可以向avc服务器24发送加入虚拟会议的请求。作为响应,avc服务器24向设备30发送命令以在源位置广播高频(优选超声波)信号。这些可以称为高频啁啾或高频啁啾信号。
53.设备30中的avc应用程序22接收广播高频啁啾的命令并使用其扬声器发出短编码超声波哔哔声。在一个实施例中,高频啁啾被选择为具有人类和宠物无法察觉并且不会造成不适的频率。此外,高频啁啾被选择为不穿透墙壁并可能广播到相邻房间中的其他设备,其中,使用avc系统18的其他虚拟会议可能正在进行。设备30附近的其他设备,例如,设备32和34可以通过例如向设备30和/或服务器24发送通知来听到广播啁啾、解码消息并注册为在源位置中在一起。例如,通知可以包括设备标识符以及指示这些设备的共同呈现位置的元数据。
54.通过成功的超声波配对,每个设备自动了解其他设备和/或它们各自的位置,而无需用户手动识别这些设备。avc服务器24从运行avc应用程序22的与会者设备接收通知,并因此记录虚拟会议中的哪些参会者在该avc会话期间处于源位置。此外,设备可以相互通知
以在源位置的参会者设备之间创建配对。
55.在一个实施例中,avc服务器24可以控制去往和/或来自位于同一地点的设备的传输,以防止或减少可能导致不愉快的听觉体验的声学回声问题。例如,在虚拟会议会话期间,avc服务器24可以停止向/从一些位于同一地点的设备传输音频/视频信号,以减少可能由多个设备回放或传输相同信号导致的不愉快的听觉体验。
56.此外,在一些实施例中,与会者可以使用他们各自的avc应用程序22来手动改变他们在虚拟会议中的状态。例如,他们可以加入同地组或离开处于当前会议中的同地组。在其他实施例中,当参加者实际上离开或加入同地群组时,avc服务器24可以自动将该动作登记为加入或离开虚拟会议室。
57.识别说话者的接近度以进行当前发言人的视觉交流
58.现在参照图1,在设备20上运行的avc应用程序22可以在avc会话期间实时运行一组算法,以进行和管理会话并减少或消除负面的听觉体验。这些算法可以为当前发言人启用合适的(例如,最近的或最高质量的)麦克风,采取措施改进合适麦克风的识别和激活,并减少或消除回声和其他不愉快的听觉体验。
59.另外,当前发言人的识别包括生成表示当前发言人身份的视觉指示器(例如图标)。视觉指示器可以呈现在图形用户界面上以显示在运行avc应用程序22的设备上。视觉指示器的显示向设备的最终用户提供关于虚拟会议的哪个参会者当前正在讲话的视觉提示。本文描述的关于当前发言人的视觉识别的实施例是对依赖语音活动检测和增益水平监测的传统系统的改进。
60.共同呈现设备组中的每个设备(即,主设备和一个或多个辅助设备)通过在设备上运行的avc应用程序22实时计算接近度指数。每个设备从为其麦克风获得的音频中提取信号帧。该设备在提取的信号帧上应用一个开窗函数。应用开窗函数后,设备从信号帧计算均方根值,并从信号帧计算语音lp残差的峰度最大化。
61.设备通过选择的帧的数量的平均窗口输入均方根值和峰度lp残差。例如,选择的帧的数量可以在5-10帧之间。该设备对两个特征(即均方根值和峰度lp残差)进行归一化,并且每个特征都被赋予相应的权重。例如,一个或多个特征的权重可以等于50%。将生成的特征输入到时间序列平滑算法(例如加权指数移动平均线)中。应用时间序列平滑算法的结果值是接近度指数。
62.应当理解,设备可以持续地实时计算和更新接近度指数,并将计算的接近度指数的每个实例发送到主设备。例如,可以每秒计算5到20次接近度指数值并将其发送到主设备。主设备不断地接收来自每个辅助设备的邻近指数值,并重复对比当前的邻近指数值(其包括由主设备计算的邻近指数值)。选择当前正在对比的所有邻近指数值中最接近值1的邻近指数值。计算所选接近度指数值(即最接近1的值)的相应设备被指定为与当前发言人相关联的设备。
63.根据实施例,avc应用程序22可以使用设备20的麦克风来检测附近是否存在人声。这是为了减少或消除传输的非人类语音活动,例如翻页、写字或其他可能与参与者无关或参会者不感兴趣的声音。如果检测到人类语音活动,则avc应用程序22确定与音频流相关联的接近度值。接近度值可以包括指示音频流的源到接收音频流的麦克风之间的距离的距离数据。接近度值可以根据实现以不同的术语表示。在一个实施例中,接近度值可以是二进制
值,其中1表示近,0表示远。在另一个实施例中,接近度值可以是0-1之间的缩放器,其中1表示最近,0表示最远。在一个实施例中,音频帧被指定接近度值。
64.接近度值可用于生成具有包括接近度值的元数据的编码音频流。可以通过例如专用信令协议或通过将接近度值注入相关联的音频流中,将接近度值作为元数据附加到它们的相关联的音频流中。来自每个设备20的编码音频流可以发送到avc服务器24。
65.作为示例,名为彼得的与会者可以使用他的个人笔记本电脑参与会议。其他四位与会者也可以出席并使用他们的笔记本电脑或智能手机加入会议。当peter是当前发言人时,peter的笔记本电脑麦克风会接收到peter讲话的音频流。avc应用程序22确定音频流是人类语音流,确定接近度值(在这种情况下接近度值接近1)并用该接近度值对音频流进行编码,并将该编码音频流发送到avc服务器24。其他与会者的设备麦克风也将peter的音频流检测为人声,但由于它们距离peter较远,它们将接近0的接近度值与来自peter的音频流相关联,并将这些编码的音频流发送到avc服务器24。
66.源位置中的设备20连续且实时地向avc服务器24发送用接近度值编码的音频流。avc服务器24可以提供进一步的处理和决策制定,并且可以基于每个音频流中的编码元数据来选择获胜音频流,并且可以将音频流转发到目的地位置中的目的地设备。avc服务器24可以另外向源位置中的avc应用程序22发送命令以启用与获胜音频流相关联的麦克风设备并禁用剩余的麦克风。
67.在一些实施例中,编码的音频流中的元数据可以包括附加的信号质量(sq)数据,该数据也可以与它们相关联的音频流一起被编码并且被发送到avc服务器24。sq数据可以包括信息例如麦克风质量和其他表示对相关音频流质量的置信度测量的数据。
68.avc服务器24从设备20接收音频流并且解码每个音频流中的元数据。使用元数据,avc服务器24可以对比音频流并选择具有最佳或相当高质量的获胜音频流。例如,avc服务器24可以对比音频流的接近度值并选择具有最高接近度值的音频流。
69.获胜音频流可以被传输到目的地位置和其中的参与设备。此外,avc服务器24可以通过向相关的avc应用程序22发送命令来启用与获胜音频流相关联的设备麦克风并禁用相同位置的剩余麦克风。avc会话可以继续直到检测到当前发言人的变化。可以在源目的地本地执行上述过程的各个步骤以使延迟最小化。例如,人类语音检测、接近度值的生成、sq数据和编码都可以在设备20上执行。在这种情况下,avc服务器24可以快速确定获胜音频流(例如,通过对比接近度值并选择最高值)并且avc系统18可以减少延迟。
70.特征提取以生成比接近度值
71.avc系统18可以利用多种技术来为每个音频流生成距离标记和接近度值。在一个实施例中,实时音频处理器可以对接收到的音频流运行一种或多种特征提取算法,以提取包含距离信息或与距离信息相关的特征。例如,特征提取算法可以包括对音频流应用快速傅里叶变换(fft)、生成峰度,其中,生成峰度可以包括执行自相关、线性预测和过滤低通(lp)残差信号。可用作生成接近度值的一部分的其他算法包括均方根(rms)和从偏度生成距离数据。然而,本领域普通技术人员可以理解,该列表并非详尽无遗,并且可以使用其他信号和音频处理技术来确定音频源到接收该音频的麦克风的距离。
72.提高虚拟会议系统的性能
73.在一些情况下,avc服务器24可以在短时间内在不同的音频流和它们相关联的麦
克风之间不规则地切换。例如,当遇到群聊、笑声或串音时,可能会发生这种情况。一组平滑算法(例如,通过加权指数移动平均来实现)可以部署在avc应用程序22和/或avc服务器24上,以在预定时间段内覆盖获胜麦克风,直到导致不稳定行为的事件结束。以这种方式,可以实现目的地接收者愉快和不间断的听觉体验。
74.在一些实施例中,与每个音频流相关联的元数据可以包括波动性分数。或者,波动性分数可以在avc服务器24处生成。波动性分数可以通过对来自每个参会者的麦克风的接近度值的最近历史执行线性回归并监测线的梯度(斜率)来生成。梯度越陡,就麦克风而言检测到的波动性越大,并且avc服务器24可以决定切换到波动性较小的麦克风。
75.在另一个实施例中,视觉说话提示,例如跟踪嘴唇运动,可用于提供确认或辅助信息以识别其最近的麦克风应被激活的当前发言人。在一些实施例中,视觉说话提示可以用作相同质量的音频流和元数据之间的决胜属性。例如,参会者a的麦克风可能返回接近度值为0.8的音频流,而参会者b的麦克风距离参会者a2英尺,也返回具有相同接近度值0.8的音频流。这种情况可能会导致参会a的麦克风和参会者b的麦克风之间来回切换不稳定。为了解决这种情况,还可以同时分析来自每个参会者的视频馈送来获取视觉线索。如果参会者a的嘴唇没有移动,则参会者b是当前发言人,她的麦克风被激活,参会者a的麦克风被禁用。
76.提高avc服务器24处的决策制定过程的准确性的另一种方法包括个体说话者识别和确认。参会者可以通过他们的avc应用程序22记录他们的语音样本并将他们的语音样本提交给avc服务器24。avc服务器24可以使用采样的语音数据来训练人工智能(ai)模型(例如,用于执行语音分类的优化的神经网络)。经过训练的ai模型可以实时用于识别与音频流相关的说话者。该识别可以用作能帮助avc服务器24挑选获胜音频流、处理决胜属性并激活相应麦克风的附加数据。在一些实施例中,给定输入音频流,经训练的ai模型可以输出概率参数,包括音频流属于参会者的可能性。
77.如上所述,avc应用程序22和avc服务器24可以具有接近度值、视觉说话提示和说话者识别数据,以便选择获胜音频流。这些技术被描述为avc系统18可以用来识别高质量音频流并激活相关联的麦克风的示例算法。这些技术可以单独使用,也可以相互结合使用。
78.在目的地回放音频
79.获胜音频流被发送到目的地位置中的一个或多个目的地设备。目的地设备独立连接到互联网,可能会遇到不同的延迟,从几毫秒到几百毫秒不等。人类的听觉可能对以不同变换幅度播放相同的音频流很敏感。通常,在某个阈值之上,人类的听觉系统可以感知这些变换幅度,并发现会议性能很差且导致分心。人耳的变换幅度感知阈值(vpt)约为30毫秒(ms)。超过30毫秒的音频变化可以被人耳感知并产生负面的听觉体验。
80.解决该问题的一种方法是通过单个设备的扬声器播放传入音频。avc服务器24可以基于标准选择一个目的地设备,例如其处理资源,包括电池寿命、其扬声器的质量以及其与互联网的连接强度。所选目的地设备的扬声器可以用作单个主扬声器,并且可以在回放传入音频期间禁用目的地位置设备的所有其他扬声器(辅助设备扬声器)。或者,其他目的地设备不接收传入的音频流。
81.在目的地位置处音频回放的另一种方法可以通过在目的地设备之间创建实时传输协议(rtp)本地网络来实现。rtp网络中的主设备接收传入的音频流并将音频流分发给其他目的地设备(辅助设备)。在这种方法中,当远端参会者讲话时,可以在一个、一些或所有
目的地设备上播放到目的地的传入音频。尽管如此,回放期间目的地设备之间的可变时延问题会降低在目的地的听觉和回放体验。虽然不受干扰的wi-fi网络的本地时延通常低于2毫秒,远低于人类的变换幅度感知阈值(vpt)(<30毫秒),但在某些情况下,延迟和时延可能会超过此阈值。
82.从远端接收的传入流的音频同步回放
83.如图3a的示例性流程图320所示,主设备接收来自多个远端设备的传入音频流(动作322)。主设备对传入的音频流进行缩混以生成缩混的音频流(动作324)。主设备确定用于在主设备处延迟缩混的音频流的回放的动态延迟因素(326)。例如,主设备至少基于一个或多个缓冲区特性来确定动态延迟,其中,每个相应的辅助设备与具有至少一个缓冲区特性的特定动态地调整大小的延迟缓冲区相关联。例如,主设备根据50到250毫秒之间的时间范围确定主设备处回放的动态延迟。
84.主设备将缩混的音频流发送到一个或多个辅助设备的相应动态地调整大小的延迟缓冲区,以同步主设备和一个或多个辅助设备处的缩混的音频流的回放(动作328)。根据各种实施例,在发送缩混的音频流之前,主设备动态地调整第一缓冲区和第二缓冲区的大小,由此第一缓冲区和第二缓冲区各自与不同的辅助设备相关联。例如,主设备通过为每个相应缓冲区基于对以下各项的补偿计算动态缓冲区大小来动态地调整相应缓冲区的大小:(i)主设备对缩混的音频流的至少一部分进行编码的时间量,(ii)对应辅助设备对缩混的音频流的至少编码部分进行解码的时间量和(iii)网络时延的当前往返时间。例如,主设备通过为每个相应缓冲区基于对以下至少一项的补偿计算动态缓冲区大小来动态地调整相应缓冲区的大小:相应辅助设备的操作系统类型、相应辅助设备上存在的一种硬件类型、相应辅助设备上的一种播放延迟类型和相应辅助设备上的当前回放模式。应当理解,流程图320中描述的每个动作324、326、328和相应动作324、326、328的示例的任何特征可以与任何上述动作和/或上述动作的任何示例组合。
85.如图3b所示,当设备独立连接到无线网络(例如本地无线网络)时,它们在连接的设备到无线网络和到建立无线网络的路由器之间的数据传送时延通常会有所不同,在某些情况下甚至会在一天中的不同时间有所不同。由于多种因素,例如无线网络中的一般流量状态、各个设备的不同处理速度、资源和无线通信能力,数据传送时延可能是一个动态参数。结果,此类无线网络中的共同呈现设备306、310对来自远端设备302的传入音频流的同时音频回放可以通过一个参数彼此偏移,该参数可以称为不同步因素。不同步因素可以是一个动态参数,随时间变化,并且根据测量的时间,它可以显示不同的值。此外,连接到无线网络的大多数设备306、310可以利用抖动缓冲区。抖动缓冲区可以是用于捕获传入数据包的临时存储缓冲区。它可用于基于数据包的网络,通过在网络拥塞期间或其他时间平滑数据包到达时间来保持或增加音频流的连续性。不同的设备可以根据不同的延迟参数使用各种动态抖动缓冲区来处理传入的音频,因此,它们可以增加不同步因素。
86.图3b示出了根据实施例的音频回放系统300的示意图。当使用无线通信网络时,系统300可以在同时回放来自远端设备302的传入音频流期间减少或消除不同步因素。例如,每个远端设备302可以基于其自己的麦克风的音频数据发送音频流。源设备302(即远端设备)将它们的音频信号发送到sfu(选择性转发单元)服务器304。sfu服务器304可以是avc服务器24的实现。主设备310是在目的地设备中选择的,这些目的地设备中的每一个都包括在
共同呈现设备组中并且共同位于相同的实际位置。主设备310可以由avc服务器24基于多种因素,例如硬件规格,包括处理能力、无线通信能力、电池寿命,或基于将指示主设备310用作主要设备的任何其他因素通过在主设备310上运行的avc应用程序22,从共同呈现设备组中选择以用于有效地处理传入音频流回放操作的管理。在一个实施例中,来自源设备302的传入音频流仅被发送到主设备310,并且主设备310将来自源设备302的传入音频流缩混成单个缩混的音频流。主设备310将缩混的音频流分发到共同呈现设备组中的所有其他设备306。
87.主设备310将动态延迟应用于其自己的缩混的音频流的回放,以说明将作为缩混的音频流的示例累积的每个辅助设备306将经历的任何延迟被传输到相应的辅助设备306并被处理以供辅助设备306回放的原因。例如,主设备可以将200毫秒(ms)的动态延迟应用到它自己的缩混的音频流的回放。根据各种实施例,动态延迟可以根据一个或多个延迟参数和/或回放参数的当前状态在50ms到250ms之间波动。例如,主设备310可以连续地、间歇地或以其他方式测量、监视或接收各种本地和/或网络延迟并基于回放参数包括其他目的地设备306(辅助设备306)上的抖动缓冲区,动态地调整动态延迟,以在同时回放期间减少或最小化去同步因素,并使回放更加同步,使得当在每个设备310、306上回放缩混的音频流时,每个设备310、306的音频回放将被同步。鉴于实际彼此靠近的许多设备对相同音频的不同步回放会产生听到回声和/或相同音频的重叠片段的体验,这样的同步产生令人愉快的用户体验。
88.在对传入的音频流进行缩混、确定动态延迟并将动态延迟应用于它自己的回放时,主设备310将缩混的音频流发送到每个辅助设备306。主设备310将音频流的示例放置在每个辅助设备306的相应缓冲区中。例如,缓冲区可以是先进先出(fifo)缓冲区,用于确保缩混的音频流的一个或多个部分可用于辅助设备306回放,尽管会暂时缺乏网络容量和/或网络可靠性(即网络连接性差)。根据各种实施例,缓冲区可以具有由主设备310和/或辅助设备306根据例如:动态延迟-rtt/2-编码时间-解码时间计算的可变大小。“rtf”代表网络时延的往返时间。编码时间可以是主设备310在将缩混的音频流发送到辅助设备306之前对其进行编码所需的时间量,并且解码时间可以是辅助设备306对接收到的编码的缩混的音频流进行解码所需的时间量。根据各种实施例,可以部分地基于以下因素和变量来计算可变缓冲区大小:设备操作系统类型、设备处存在的特定类型的硬件、播放延迟的类型和/或回放模式。
89.avc应用程序22可以进一步触发主设备310执行一个或多个算法来校正各种时间漂移和其他各种类似情况,例如:通过根据音频帧时间、在数据包头中传递的网络数据包绝对时间和/或任意时钟同步机制的实现来同步音频回放,产地的缓冲欠载和/或丢失的网络数据包。
90.应当理解,可能会发生小的变化,使得音频回放可能不完全、全部同步,但人耳仍然无法感知。可以根据例如声学回声消除器来处理导致最小量的不同步的这种小的变化。
91.根据可以通过图3b来描述另一个实施例,可变缓冲区大小可以是根据其他因素和变量的计算机,这些因素和变量部分地基于以下情况:设备操作系统类型、设备上存在的特定硬件类型、播放延迟类型和/或在整个系统中建立人工延迟的回放模式。延迟足够长以涵盖典型无线或有线网络上的大多数常见问题,但足够短以尽可能确保或优化系统300和/或
avc系统18内的通信的近实时性质。在一个实施例中,人为延迟可以在100-300微秒(ms)之间。在某些情况下,系统可能会或可能不会根据接收辅助设备的网络质量、容量和处理能力来调整人为延迟。
92.主设备310可以通过处理音频信号来处理来自sfu服务器304的传入音频信号。该步骤的处理可以包括(但不限于)音频信号的解码或缩混(例如,如果有多个源参会者同时在其各自的源设备上讲话)。该处理还可以包括通过例如将音频信号编码成回放音频信号来将两个或更多个音频信号组合成回放音频信号。主要设备310可以通过本地rtp连接将回放音频信号发送到辅助设备306。虽然示出了两个辅助设备306,但是更少或更多的辅助设备也是可能的。
93.此外,主设备310可以安排要在目的地设备(包括主设备本身)上播放的回放音频信号。主设备可以在人为延迟减去“实际硬件设备播放延迟”(ahdpd)时间段之后安排其回放时间,以给所有辅助设备306时间来接收回放音频信号并为在这些设备上的实际播放做准备。
94.辅助设备306可以通过执行各种步骤来处理从主设备310接收的传入音频回放信号。例如,辅助设备306可以对回放音频信号进行解码。辅助设备306还可以估计从它被安排在主设备310上回放的时刻到当前时刻的延迟参数。以下指标可有助于延迟参数并且可以被计算、监控或以其他方式获取:主设备310上音频回放信号的编码和生成、用于将回放音频信号发送到辅助设备306的算法延迟(缓冲区)、实际网络往返时间、用于接收和解码辅助设备306上的回放音频信号的算法延迟(缓冲区)、当前抖动缓冲区延迟、实际硬件设备播放延迟(ahdpd)和在使用其他系统处理音频(例如,将音频信号从webrtc提供给web audio)的情况下可能造成的其他算法延迟。可以监控或正确计算一种或多种上述指标,以近乎实时地估计延迟参数。
95.得到的延迟参数可以以两种不同的方式使用。在一个实施例中,估计的延迟参数可以用于创建类似于在主设备310上实现的系统范围延迟的人为延迟,这可以减少上述计算的延迟,从而实现同步的音频播放。在另一个实施例中,估计的延迟参数可用于将抖动缓冲区排除在等式之外并将其用作在辅助设备306上实现人为延迟的手段。
96.在优选实施例中,由于其他指标实时变化,如果系统需要调整人工延迟目标水平的话,因为抖动缓冲区通常可以处理回放的减速和加速,所以使用抖动缓冲区在播放稳定性和感知质量方面产生更好的结果。可以实现诸如加权指数移动平均或类似的算法,以确保抖动缓冲区和动态延迟不会由于测量、监控或计算指标中的随机尖峰而发生不规则和突然变化或增加这种可能性,并且可以获得流畅的回放体验。
97.在一些实施例中,还可以实时地改变一组设备内的主要/次要角色,而不实质性的音频中断。如果主设备310故意与虚拟会议断开连接,或者如果应该发生可能暗示任何种类的呼叫质量下降的任何可测量的问题,则可以使用这种功能。
98.在现实世界的应用中,由于以上测量的任何指标或其组合都可能意外地出现峰值,因此可以以多种方式处理这种情况。例如,在一些实施例中,可以在主设备和辅助设备中的一个或多个中增加目标人工延迟以适应任何这种意外情况。此外,如果任何辅助设备306无法在目标人工延迟内跟上共同呈现组中的所有其他设备的音频回放,则可以静音该辅助设备中的音频回放以防止或减少听得见的不同步播放情况。在这种情况下,受影响的
设备可以监控一个或多个可用指标,并在系统再次稳定后取消静音。
99.在目的地位置进行音频回放的另一种方法可以利用半同步回放方法。avc服务器24可以维护通用定时器。目的地设备可以在avc服务器24处将它们的内部定时器或时钟信号与这个通用定时器同步。另外,目的地设备可以建立一个高达人类变换幅度感知阈值(大约20毫秒)的容差缓冲区。avc服务器24可以对获胜音频流加时间戳并传送到所有目的地设备,并带有回放获胜音频流的指令,前提是相对于获胜音频流的时间戳,可以在小于人类变换幅度感知阈值的时间段内完成回放。可以每秒多次评估设备及时回放传入音频流的能力。如果目的地设备接收到获胜音频流太晚而无法及时回馈,则avc应用程序22丢弃该音频流并暂时禁用设备的扬声器。如果时延变得太不可预测并且禁用扬声器变得太频繁,则回放方法会退回到备份模式,其中,如上所述,可以使用单个主扬声器。
100.替代实施例
101.在一个实施例中,可以使用自适应、时变、非线性回声消除引擎来改进avc系统18的性能。该引擎可以部署在服务器端、客户端或两者上。
102.在另一实施例中,可以在avc服务器24处接收来自不止一个麦克风的音频流。可以混合来自所有或一些源麦克风的音频流。服务器缓冲区可用于对齐音频流并解决其时延以生成混合轨道信号。产生的混合轨道信号可以发送到目的地设备。
103.在源操作的另一个实施例中,可以创建设备20之间的本地对等无线连接。avc服务器24可以基于诸如处理资源、无线连接强度、电池电量等标准从设备20中选择主混音器设备。主混音器设备可以从其他设备20接收音频流并且可以将它们混合成一个同步音频流。可以将同步音频流发送到avc服务器24和/或目的地设备。
104.连接到无线连接的设备发送和接收具有不同时延的音频流。结果,主混音器设备以不同的时延从各种源设备20接收相同的音频流。可以在主混音器设备上创建预定持续时间(例如,100ms)的同步时间缓冲区,其中,主混音器设备可以等待来自其他源设备20的流并且可以使用互相关算法将它们重叠。或者,主设备可以基于对流时延、编码时延、网络时延、解码时延和抖动缓冲区配置的测量或监控来测量记录差异,以便正确同步来自各种麦克风的传入流。此外,来自其他源麦克风的传入音频流可以包括元数据,例如如上所述的接近度值。可以丢弃如元数据所指示的(例如,低接近度值或具有混响)信号质量差的音频流,并且不包括在混合同步音频流中。然后可以将混合同步音频流发送到目的地位置和目的地设备进行回放。
105.发送到远端设备的传出流的共同呈现麦克风的同步
106.图4a示出了根据一个或多个实施例的用于对发送到远端设备的传出流的共同呈现麦克风进行同步的方法420的流程图。
107.主设备基于从相应的辅助设备接收的一个或多个音频流来确定动态延迟(动作422)。例如,主设备从一个或多个可动态地调整大小的缓冲区接收一个或多个音频流,其中,每个可动态地调整大小的缓冲区对应于相应的辅助设备。主设备部分地基于至少一个可动态地调整大小的缓冲区的当前大小来确定动态延迟。根据一个实施例,主设备基于音频流所经历的平均延迟来确定动态延迟。也就是说,每个音频流都会经历与发送它的动态地可调整大小的缓冲区的当前大小相关的特定延迟。
108.主设备将动态延迟应用于来自主设备的一个或多个麦克风的麦克风数据(动作
424)。主设备对从相应辅助设备接收的一个或多个音频流和主设备的延迟麦克风数据进行缩混,以生成传出缩混的音频流(动作426)。主设备将传出缩混的音频流发送到至少一个远端设备(动作428)。
109.应当理解,主设备和一个或多个辅助设备属于相对于相同实际位置彼此接近的共同呈现设备组。此外,主设备和一个或多个辅助设备在同一实际位置同时访问虚拟会议。每个远端设备也同时访问虚拟会议,但远离共同呈现设备组的相同实际位置。应当理解,流程图422中描述的每个动作424、426、428和相应动作424、426、428的示例的任何特征可以与任何前述动作和/或前述动作的任何示例组合。
110.在一个实施例中,可以通过从源位置发送同步的传出音频流来改善虚拟会议的听觉体验。图4b示出了源系统400的示意图,其可以在avc系统18中使用以便生成同步的音频信号并将其传输到目的地,例如一个或多个远端设备410。系统400包括共同呈现设备组402和404,其中,特定设备402充当(即执行处理)共同呈现设备组的主设备。应当理解,共同呈现设备组可以包括任意数量的设备并且不限于图4b所示的两个设备。
111.根据用于在向远端设备410发送传出音频流之前合并共同呈现设备组的音频信号的一个或多个实施例,每个相应的辅助设备404向主设备402发送麦克风音频数据。这样的音频信号可以表示出现在实际位置(例如会议室)处的声音,在该实际位置处,共同呈现设备组实际存在。因此,可能有多个人在讲话,并且在某些情况下,这样的讲话可能与各种类型的背景噪声重叠和/或被其中断。将共同呈现设备组的音频信号合并到传出音频流中以传输到远端设备410导致远端设备410从共同呈现设备组接收同步、更令人愉悦且更容易理解的音频。
112.每个辅助设备404可以通过自动增益控制、声学回声消除和/或噪声抑制来获得其麦克风数据。每个辅助设备404的麦克风信号可以通过本地网络连接发送。在一些实施例中,辅助设备404可以在将其麦克风信号传输到主设备402之前对其进行编码。每个辅助设备404将其麦克风音频数据发送到相应的缓冲区,例如fifo缓冲区,不包含任何关于麦克风音频数据的延迟。接收辅助设备麦克风数据的每个缓冲区类似于关于图3b描述的缓冲区。图4b中的缓冲区可以与图3b中的缓冲区类似地动态地调整大小。根据各种实施例,图3b中的缓冲区与图4b中的缓冲区相同,使得每个缓冲区可以动态调整大小并双向运行,以将缩混的音频信号从优先设备发送到一个或多个辅助设备,并且还将麦克风数据音频信号从辅助地设备发送到主设备。关于向主设备发送麦克风数据音频信号,计算缓冲区的大小还可以部分地基于在对应的辅助设备处获得麦克风信号的一个或多个延迟。
113.主设备402还从其麦克风获得音频信号。主设备402基于从辅助设备404发送的音频信号中存在的音频延迟的平均值向其麦克风数据音频信号添加延迟,由此来自辅助设备404的音频延迟至少部分地基于其相应缓冲区的大小。主设备402的麦克风音频信号的延迟为主设备402提供足够的时间来接收从其每个设备也经历了延迟的辅助设备404发送的音频信号。主设备402将辅助设备麦克风数据音频信号和它自己的麦克风数据音频信号缩混成传出音频流。主设备402然后通过服务器408将来自共同呈现设备组的缩混的传出音频流传输到远端设备410。
114.根据实施例,可以在源设备402和404之间建立无线网络连接。在一个实施例中,无线连接网络可以是位于同地或共同呈现设备402和404之间的对等无线连接网络。主混音器
设备402可以基于硬件规范,例如处理能力、cpu能力、无线通信速度和带宽、电池充电水平或基于其他硬件、软件或环境标准(例如,在一些实施例中,更适合接收音频的设备可以选择流作为主要设备402)从共同呈现源设备中选择。一个或多个其他共同呈现设备可以是辅助设备404。在方块406,主设备402从其麦克风和辅助设备404的麦克风接收音频信号,并将麦克风音频信号组合成传输音频信号。在一个实施例中,将音频信号组合成传输音频信号包括将麦克风音频信号缩混成同步或接近同步的音频流。传输音频信号被传输到服务器(例如sfu服务器408)。sfu服务器408是avc服务器24的示例实现。根据本文描述的各种实施例,sfu服务器408可以将传输音频信号传输到一个或多个目的地设备410。
115.源设备之间的无线连接可以具有或可以引入可变时延。主设备402可以通过执行一个或多个操作来同步(调整时延偏移或延迟)单独的麦克风流。同步操作可以包括,例如,在avc系统18上建立系统范围的人为延迟。该延迟足够长以涵盖典型无线或有线网络上的大多数常见问题,但又足够短以尽可能确保或优化系统400和/或avc系统18内的通信的近实时性质。在一个实施例中,人为延迟可以在100-300微秒(ms)之间的某处。在某些情况下,系统可能或可能不能基于所有辅助设备404或接收主设备402的网络质量、容量和处理能力来调整人为延迟。
116.在一些实施例中,辅助设备404可以对它们的麦克风音频信号进行编码并且经由本地rtp连接将它们的麦克风音频信号发送到共同呈现组中的主设备402。主设备402可以通过执行各种操作来处理来自辅助设备404的传入音频信号,包括例如通过解码音频信号、估计从辅助计算机上的麦克风捕捉到延迟参数的那一刻起到此刻的延迟参数(主要设备402可以通过其自己的麦克风捕获的延迟参数)。此外,以下指标可有助于延迟参数:辅助设备404上的音频信号的处理(dsp)和编码、用于将音频信号发送到主设备402的算法延迟(缓冲区)、实际网络往返时间,用于在主设备上接收和解码音频信号的算法延迟(缓冲区),每个接收器的当前抖动缓冲区延迟,以及在其他系统用于处理音频的情况下可能产生的其他算法延迟(例如,提供从webrtc到web audio的音频信号)。
117.在一些实施例中,可以稳定每个接收器的抖动缓冲区目标水平,因此它可以用作系统中或多或少固定的延迟元件,以适应参与的辅助设备404的监测指标中的较大差异和确保来自辅助设备404的接收的音频信号中的类似延迟。可以适当地监控和/或计算上述指标以近乎实时地估计延迟参数。
118.得到的延迟参数可用于在主设备402上生成可应用于其自身的麦克风音频信号的人为延迟。这可以实现主设备麦克风与来自辅助设备404的其他传入音频信号同步。来自源设备402和404的麦克风音频信号可以被组合(例如,通过缩混)成一个同步信号、编码和发送到sfu服务器408。
119.可以实施诸如加权指数移动平均或类似的算法以确保抖动缓冲区和动态延迟不会由于测量、监测或计算的指标中的随机尖峰而无规律地和突然地改变或增加这种可能性,并可以实现平滑的回放体验。
120.此外,具有差信号质量(sq)、低接近指数值或由包含混响、回声或其他可能产生恶化听觉体验的其他效果的任何辅助设备404引起的不同步情况的音频流可以在音量上减小或完全忽略并且不包括在发送到目的地的同步音频流(例如,缩混信号)中。结果,改善了目的地的听觉体验。根据本文描述的各种实施例,同步的缩混的麦克风轨道可以作为一个单
一轨道发送到sfu服务器408,以供收听的远端设备410使用。
121.源和目的地改进的虚拟会议示例流程图
122.图5示出了根据实施例的在虚拟会议系统中改进的音频回放的方法500的流程图。方法500开始于步骤502。方法通过从服务器接收两个或两个以上音频信号移动到步骤504,其中,两个或两个以上音频信号源自虚拟会议的两个或两个以上源设备。下一步骤506包括通过无线网络连接虚拟会议的两个或两个以上目的地设备。下一步骤508包括在虚拟会议的目的地设备中选择主设备。下一步骤510包括在虚拟会议的目的地设备中选择一个或多个辅助设备。下一步骤512包括将两个或两个以上音频信号从服务器传输到主设备。下一步骤514包括将两个或两个以上音频信号组合成回放音频信号。下一步骤516包括在主设备和辅助设备上安排回放时间。下一步骤518包括将回放音频信号发送到辅助设备。下一步骤520包括根据安排的回放时间播放回放音频信号。该方法在步骤522结束。应当理解,流程图500中描述的每个步骤504、506、508、510、512、514、516、518、520以及相应步骤504、506、508、510、512、514、516、518、520的示例的任何特征,可以与任何前述步骤和/或前述步骤的任何示例组合。
123.图6示出了生成同步音频信号并将其从多个源设备发送到服务器的方法600的流程图。服务器可以随后将同步的音频信号发送到虚拟会议中的一个或多个目的地设备。该方法开始于步骤602。该方法通过在虚拟会议的源设备中选择一个主设备移动到步骤604。下一步骤606包括在虚拟会议的源设备中选择辅助设备。下一步骤608包括通过无线网络连接虚拟会议的主要和次要源设备。下一步骤610包括从主要和辅助设备麦克风接收音频信号。下一步骤612包括将音频信号同步为传输音频信号。下一步骤614包括将同步的音频信号发送到服务器。该方法在步骤616结束。应当理解,流程图600中描述的每个步骤604、606、608、610、612、614以及相应步骤604、606、608、610、612、614的示例的任何特征可以与任何上述行为和/或上述行为的任何示例相结合。
124.应当理解,示例性流程图200、320、420、500、600的动作/步骤可以以与本文呈现的顺序不同的顺序执行。此外,示例性流程图200、320、420、500、600的一些动作/步骤可以并行执行,而不是按顺序执行。此外,示例性流程图的动作/步骤可以在网络环境中执行,其中,一些动作/步骤由网络环境中的不同计算机执行。
125.图7示出了计算机系统的示例机器,其中,可以执行一组指令,用于使机器执行本文讨论的任何一个或多个方法。在替代实现中,机器可以连接(例如,联网)到lan、内联网、外联网和/或互联网中的其他机器。该机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份运行,作为对等(或分布式)网络环境中的对等机器,或作为云计算基础设施或环境中的服务器或客户端机器。
126.该机器可以是个人计算机(pc)、平板电脑、机顶盒(stb)、个人数字助理(pda)、移动电话、网络设备、服务器、网络路由器、交换机或网桥,或任何能够执行一组指令(顺序或其他)的机器,这些指令指定该机器要采取的动作。此外,虽然说明了单个机器,但术语“机器”也应理解为包括单独或联合执行一组(或多组)指令以执行本文讨论的任何一个或多个方法的机器的任何集合。
127.示例计算机系统700包括处理设备702、主存储器704(例如,只读存储器(rom)、闪存、动态随机存取存储器(dram),例如同步动态随机存取存储器(sdram)或rambus动态随机
存取存储器(rdram)等)、静态存储器706(例如,闪存、静态随机存取存储器(sram)等)和数据存储设备718,它们通过总线730相互通信。
128.处理设备702代表一个或多个通用处理设备,例如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实现其他指令集的处理器,或实现指令集组合的处理器。处理设备702也可以是一个或多个专用处理设备,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理设备702被配置为执行指令726以执行本文讨论的操作和步骤。
129.计算机系统700还可以包括网络接口设备708以通过网络720进行通信。计算机系统700还可以包括视频显示单元710(例如,液晶显示器(lcd)或阴极射线管(crt))、字母数字输入设备712(例如,键盘)、光标控制设备714(例如,鼠标)、图形处理单元722、信号生成设备716(例如,扬声器)、图形处理单元722、视频处理单元728和音频处理单元732。
130.数据存储设备718可以包括机器可读存储介质724(也称为计算机可读介质),其上存储了一组或多组指令或软件726,这些指令或软件726体现了本文所述的任何一种或多种方法或功能。指令726还可以在由计算机系统700执行期间完全或至少部分地驻留在主存储器704内和/或处理设备702内,主存储器704和处理设备702也构成机器可读存储介质。
131.在一种实现中,指令726包括用于实现与执行本文公开的设备的部件相对应的功能的指令。虽然机器可读存储介质724在示例实现中被示为单个介质,但术语“机器可读存储介质”应理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关的缓存和服务器)。术语“机器可读存储介质”还应理解为包括能够存储或编码一组指令以供机器执行并且使机器执行本公开的任何一个或多个方法的任何介质。因此,术语“机器可读存储介质”应理解为包括但不限于固态存储器、光介质和磁介质。
132.前述详描的一些部分已经根据算法和计算机存储器内的数据位上的操作的符号表示来呈现。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作内容传达给本领域的其他技术人员的方式。此处算法通常被认为是导致期望结果的自洽操作序列。这些操作是那些需要对实际量进行实际操作的操作。通常,尽管不是必须的,这些量采用能够被存储、组合、对比和以其他方式操作的电或磁信号的形式。有时,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字等已被证明是方便的。
133.然而,应该记住,所有这些和类似的术语都与适当的实际量相关联,并且仅仅是应用于这些量的方便标签。除非从上述讨论中明显地另外明确说明,否则应当理解,在整个描述中,使用诸如“确认”或“确定”或“执行”或“进行”或“收集”或“创建”或“发送”等术语的讨论,是指计算机系统或类似电子计算设备的动作和过程,其操作并将计算机系统的寄存器和存储器中表示为实际(电子)量的数据转换为类似地表示为计算机系统存储器或寄存器或其他此类信息存储设备中的实际量的其他数据。
134.本公开还涉及一种用于执行本文中的操作的装置。该装置可以为预期目的专门构造,或者其可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于任何类型的磁盘,包括软盘、光盘、cd-rom和磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦可编程只读存储器、电可擦可编程只读存储器、磁卡或光卡,或任何类型的适合存储电子指令的介
质,每个都连接到计算机系统总线。
135.各种通用系统可以与根据本文教导的程序一起使用,或者构造一种更专业的装置来执行这种方法可能会更方便。各种这些系统的结构将如上文所述。此外,没有参考任何特定的编程语言来描述本公开。应当理解,可以使用多种编程语言来实现如本文所述的本公开的教导。
136.本公开可作为计算机程序产品或软件提供,其可包括其上存储有指令的机器可读介质,该指令可用于对计算机系统(或其他电子设备)进行编程以根据本公开执行过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪存设备等。
137.在前述公开中,已经参考本公开的具体示例实现描述了本公开的实现。显然,在不背离所附权利要求书中阐述的本公开的更广泛的精神和实现范围的情况下,可以对其进行各种修改。因此,本公开和附图应被视为说明性的而非限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献