用于处理多个设备使用的音频流的方法和装置的制作方法

文档序号:6454202阅读:121来源:国知局
专利名称:用于处理多个设备使用的音频流的方法和装置的制作方法
技术领域
本发明一般涉及处理音频流,更具体地涉及处理多方使用的音频流。
背景技术
有许多系统被用来向多方传送音频信号。在一个实例中,普通老式电
话业务(POTS)被用来将音频信号从一方传送到另一方。随着电话会议 的出现,多于两方(其中每一方在不同的位置)可以利用POTS来参与电 话会议。在另一实例中,互联网被用来向多方传送音频信号。用来在多方 之间实时地传输音频信号的互联网的使用常常被称为基于互联网协议的语 音(VoIP)。

发明内容
用于处理多个设备使用的音频流的方法和装置检测与多个设备中的每 —个相对应的声音水平(sound level);基于与多个设备中的每一个相对 应的声音水平,从多个设备中选择一组被选择的设备;将与被选择的一组 设备相关联的多个音频流混合并形成混合后的多个音频流;并向未被选择 的设备传输混合后的多个音频流。


附图被并入本说明书并构成本说明书的一部分,其示出并说明了用于 处理多个设备使用的音频流的方法和装置的一个实施例。 在附图中,
图1是示出其中实现了用于处理多个设备使用的音频流的方法和装置 的环境的图2是示出其中实现了用于处理多个设备使用的音频流的方法和装置
4的一个实施例的简化框图3是示出根据用于处理多个设备使用的音频流的方法和装置的一个 实施例的系统的简化框图4是示出根据用于处理多个设备使用的音频流的方法和装置的一个 实施例的系统的简化框图5是根据用于处理多个设备使用的音频流的方法和装置的一个实施 例的功能图;并且
图6是根据用于处理多个设备使用的音频流的方法和装置的一个实施 例的功能图。
具体实施例方式
下面对用于处理多个设备使用的音频流的方法和装置的详细描述参考 了附图。该详细描述不是意图限制用于处理多个设备使用的音频流的方法 和装置。而是,由所附权利要求和等同物来限定用于处理多个设备使用的 音频流的方法和装置的范围。本领域技术人员将认识到,可能有许多其它 根据本发明的实现方式。
对设备的提及包括台式计算机、便携式计算机、个人数字助理、视频 电话、固定电话、蜂窝电话和能够接收/发送电子信号的设备。
对音频信号的提及包括表示模拟音频信号的数字音频信号和/或模拟音 频信号。
图1是示出其中实现了用于处理多个设备使用的音频流的方法和装置 的环境的图。该环境包括电子设备110 (例如,被配置以作为客户端设备 的计算平台,如计算机、个人数字助理等等)、用户接口 115、网络120 (例如,局域网、家庭网络、互联网)和服务器130 (例如,被配置以作 为服务器的计算平台)。
在一实施例中,使一个或多个用户接口 115组件与电子设备IIO组成 整体(例如,键区和视频显示屏输入和输出接口在如个人数字助理的同一 壳体中)。在其它实施例中, 一个或多个用户接口 115组件(例如,键 盘,诸如鼠标、轨迹球等的点选设备)、麦克风、扬声器、显示屏、相机在物理上与电子设备110分离,并通常被耦合到电子设备110。在一实施
例中,用户利用接口 115来访问和控制存储在通过网络120所耦合的电子 设备IIO、服务器130或远程存储设备(未示出)中的内容和应用。
根据本发明,以下选择性地控制远程设备的实施例由电子设备110、 服务器130中的电子处理器来执行,或者由电子设备IIO和服务器130中 的处理器一起工作来实现。服务器130在图1中被示出为单个计算平台, 但在其它实例中是充当服务器的两个或更多个互连计算平台。
图2是示出其中实现了用于处理多个设备使用的音频流的方法和装置 的示例性体系结构的简化框图。示例性体系结构包括多个电子设备202、 服务器设备210和网络201,网络201连接电子设备202到服务器210并 将各个电子设备202相互连接。多个电子设备202的每一个被配置为包括 耦合到电子处理器208的诸如随机存取存储器之类的计算机可读介质 209。处理器208执行存储在计算机可读介质209中的程序指令。在一实 施例中,唯一用户经由参考图1所描述的接口 115来操作每个电子设备 202。
服务器设备130包括耦合到计算机可读介质212的处理器211。在一 实施例中,服务器设备130被耦合到一个或多个另外的外部或内部设备, 例如(不限于)诸如数据库240的次级(secondary)数据存储元件。
在一实例中,处理器208和211由加利福尼亚州圣克拉拉的Intel公司 制造。在其它实例中,使用其它的微处理器。
在一实施例中,多个客户端设备202和服务器210包括定制应用用来 处理多个设备使用的音频流的指令。在一实施例中,多个计算机可读介质 209和212部分地包含定制应用。另外,多个客户端设备202和服务器210 被配置为接收和发送供定制应用所使用的电子消息。类似地,网络210被 配置为发送定制应用所使用的电子消息。
一个或多个用户应用被存储在介质209、介质212中,或者单个用户 应用被部分存储在一个介质209中并被部分存储在介质212中。在一实例 中,基于对供利用下述实施例所确定的多个设备使用的音频流的处理,使 所存储的用户应用可定制,而不管存储位置。图3是示出其中实现了用于处理多个设备使用的音频流的方法和装置
的示例性体系结构的简化框图。在一实施例中,系统300包括服务器310 和设备320、 322、 324、 326、 328和330。另外,每一个设备被配置为与 服务器300交互。在其它实施例中,在系统300中可以使用任意数目的设 备。
在一实施例中,服务器310包括选择模块312和混合模块314。选择 模块310被配置为基于从每个相应设备接收到的音频信号来识别设备 320、 322、 324、 326、 328和330。另外,混合模块314被配置为处理多 个音频信号流,其中每个音频信号对应于不同的设备。
在一实施例中,设备324、 326和328分别包括混合模块332、 334和 336。在其它实施例中,任意数目的设备也可以包括本地混合模块。
在一实施例中,N个音频流可以基于服务器侧和客户端侧这两侧的混 合、通过混合模块而被混合,其中N等于被选择的设备的数目。在一实施 例中,通过选择模块312来选择这些设备。在一实施例中,服务器310辅 助音频流在设备320、 322、 324、 326、 328和330中的传输,其中每个设 备参与实时多媒体会话。在一实施例中,服务器310接收来自被选择的源 设备的实时传输协议(RTP)流。接着,服务器310混合来自根据选择模 块314实现的选择算法所获得的被选择源设备的K个音频流,其中K等于 被选择的源设备的数目。接着,服务器310向每个未被选择的设备发送混 合后的音频流。每个被选择的设备一次接收K-l个音频流,其中K-l个音 频流表示来自其它被选择的源设备的音频流而排除在本地被选择源设备上 所捕获的音频流。每个被选择的源设备能够混合和播放K-l个音频流。
在一个示例中,选择模块312选择设备324、 326和328作为提供音频 流的被选择的源设备。在一实施例中,各个设备324、 326和328也实现 语音活动检测(VAD)机制,以使得当被选择的设备缺乏要传输的音频信 号时,音频分组不从被选择设备传输。在一实例中,音频信号的缺乏对应 于与被选择设备相关联的参与者不说话或不产生声音。
在一实施例中,对音频信号的混合是既在服务器310处也在设备 320、 322、 324、 326、 328和330之间完成的。在另一实施例中,对音频信号的混合是在设备320、 322、 324、 326、 328和330处完成的。在另一 实施例中,对音频信号的混合是在服务器310处完成的。
图4示出了系统400的一个实施例。在一实施例中,系统400包含在 服务器130中。在另一实施例中,系统400包含在电子设备110中。在另 一实施例中,系统400包含在电子设备110和服务器130两者中。
在一实施例中,系统400包括选择模块410、混合模块420、存储模 块430、接口模块440和控制模块450。
在一实施例中,控制模块450与选择模块410、混合模块420、存储 模块430和接口模块440进行通信。在一实施例中,控制模块350协调选 择模块410、混合模块420、存储模块430和接口模块440之间的任务、 请求和通信。
在一实施例中,选择模块410确定选择哪些设备将它们的音频信号与 其它的设备共享。在一实施例中,监控并比较每个设备的音频信号以确定 选择哪些设备。
在一实施例中,设(s[n]L-o,...,w为输入语音信号帧并表示来自设备的 音频信号。当前帧的能量E由下式计算
五=
(式i)
20
每个设备可以计算与每个相应音频信号相关联的能量。在一实施例
中,E1和E2分别表示两个相连接的帧的能量。
E= (El+E2) /2 (式2) 在一实施例中,值E被以两字节写入到RTP头部扩展中。 来自所有接收到的N个音频流的RTP分组可以被确定以获得所有设
备的当前帧的平均E。
在一实施例中,扬声器活动度量-慢慢地适应,以使得底部分配 (floor allocation)比较优美并允许平滑的变换(transition)。在一实施例
中,"依赖于当前和过去的分组的E。例如,P被如下地在新近过去的窗
口 W中计算。
8"=丄X《 (式3)
这里 表示当前时间。在一实施例中,W被设为3秒。
在一实施例中,^被选择模块410用来选择设备以传输它们各自的音 频信号。例如,与超过阈值的yff相关联的设备被选择。在另一示例中,与 排在所有设备中的前三的-相关联的设备被选择。
在一实施例中,选择K个设备来将它们各自的音频信号传输给其它设 备。在一实施例中,特定的K个设备对应于来自所有设备的最大/ 。在一 实施例中,特定的K个设备是通过互相比较它们的/ 值来获得的。此算法 的伪代码如下。
扫描N个音频流的RTP分组以获取
比较所有的艮wv
选择与K个最大-对应的K个设备号码 如果(既有服务器侧混合又有设备侧混合){
将K个被选择的音频流混合并向每个未被选择的设备发送混合后的音 频流。
否则,如果(设备混合)
向每个未被选择的设备重新分配K个被选择的音频流。
除了其自己的音频流以外,向每个被选择的设备重新分配K-l个被选 择的音频流。
保证每个参与者都能够听见其它参与者的所有有意义的声音并且不被 打断(平滑地切换麦克风)。例如(K=3),如果三个扬声器正在发声, 则它们将被自动选择作为当前活跃的扬声器,即使第四扬声器的y5大于三 个活跃扬声器中的一个。第四扬声器直到三个扬声器中的一个停止谈话才 能加入谈话。
在一实施例中,混合模块420被配置为选择性地将多个音频流混合成 音频分组。另外,混合模块420也被配置为选择性地将音频分组转换为音频流。
在一实施例中,存储模块430存储音频信号。在一实施例中,音频信 号被通过系统400来接收和/或发送。
在一实施例中,接口模块440检测来自其它设备的音频信号并向其它 设备传输音频信号。在另一实施例中,接口模块440传输与音频信号相关 的信息。
图4中的系统400是以示例性的目的示出的,并且仅仅是用于处理多 个设备使用的音频流的方法和装置的一个实施例。另外的模块可以被加入 系统400中而不脱离用于处理多个设备使用的音频流的方法和装置的范 围。类似地,模块可以被组合或删除而不脱离用于处理多个设备使用的音 频流的方法和装置的范围。
图5示出了在服务器侧和/或设备侧混合处混合音频流。在一实施例 中,音频服务器312接收来自所有设备320、 322、 324、 326、 328和330 的音频流。在一实施例中,通过选择模块410,从设备320、 322、 324、 326、 328和330的一些中选择活跃音频流。在来自所选择的设备的音频流 被混合后,混合后的音频流被传输到未被选择的设备。
系统500包括抖动缓冲器502、 504和506;解码器512、 514和 516;缓冲器522、 524和526;混合模块420;和编码器530。在一实施例 中,音频分组到达抖动缓冲器502、 504和506中的一个,然后由解码器 512、 514和516中的一个解码成音频帧。在一实施例中,经解码的音频帧 被附到参与者音频缓冲器队列。
在一实施例中,流1、 2和3中的每一个表示从被选择的设备捕获的 音频数据。
在一实施例中,缓冲器522、 524和526中的每一个被标注上相应的 RTP时间戳。在一实施例中,音频分组到达中的抖动由适应性抖动缓冲算 法来补偿。适应性抖动缓冲算法独立地作用于每个抖动缓冲器。触发混合 程序的定时器间隔被基于抖动延迟估计而縮短或延长。在一实施例中,在 每一个帧大小的间隔处,定时器触发程序,该程序将来自合适的输入缓冲 器的音频采样混合成组合音频帧。在一实施例中,这种混合发生在混合模块420内。
该组合音频帧被利用音频编码器530来编码。经编码的音频数据被分 组并被发送至未被选择的设备。
图6示出了在设备处的混合。系统600包括抖动缓冲器602、 604和 606;解码器612、 614和616;缓冲器622、 624和626;混合模块420; 和扬声器输出缓冲器630。在一实施例中,音频分组到达抖动缓冲器 602、 604和606中的一个,然后由解码器612、 614和616中的一个解码 成音频帧。在一实施例中,经解码的音频帧被附到参与者音频缓冲器队 列。
在一实施例中,缓冲器622、 624和626中的每一个被标注上相应的 RTP时间戳。在一实施例中,音频分组到达中的抖动由适应性抖动缓冲算 法来补偿。适应性抖动缓冲算法独立地作用于每个抖动缓冲器。触发混合 程序的定时器间隔被基于抖动延迟估计而縮短或延长。在一实施例中,在 每一个帧大小的间隔处,定时器触发程序,该程序将来自合适的输入缓冲 器的音频采样混合成组合音频帧。在一实施例中,这种混合发生在混合模 块420内。
该组合音频帧被发送到扬声器输出缓冲器630以供在设备处回放。 前面对本发明的具体实施例的描述是为了说明和描述的目的而给出 的。本发明可以被应用到各种其它应用中。
前面的描述并不意图是详尽的或将本发明限制为所公开的精确实施 例,根据上面的教导自然可以有很多修改和变体。所选择和描述的实施例 是为了说明本发明的原理及其实际应用,从而使得本领域技术人员可以最 好地利用本发明和各种实施例(考虑适合于特定用途的各种修改)。希望 本发明的范围由所附权利要求及其等同物来限定。
权利要求
1.一种方法,包括检测与多个设备中的每一个相对应的声音水平;基于与所述多个设备中的每一个相对应的所述声音水平,从所述多个设备中选择一组被选择的设备;将与所述一组被选择的设备相关联的多个音频流混合并形成混合后的多个音频流;并且向未被选择的设备传输所述混合后的多个音频流。
2. 如权利要求1所述的方法,还包括将所述声音水平与阈值水平进行 比较。
3. 如权利要求2所述的方法,其中所述阈值水平是预定的水平。
4. 如权利要求1所述的方法,其中所述多个设备中的每一个的声音水 平依赖于与相应设备相关联的声音分组相对应的能量。
5. 如权利要求4所述的方法,其中所述能量也依赖于多个声音分组。
6. 如权利要求5所述的方法,其中所述多个声音分组中的各个分组在 时间上彼此相邻,并且其中所述多个声音分组形成时间窗口 。
7. 如权利要求1所述的方法,还包括,向所述一组被选择的设备中的 特定一个设备传输被修改的混合后的多个音频流,其中所述被修改的混合 后的多个音频流包括除了与所述特定一组被选择的设备相关联的音频流之 外的与音频流相关联的所述混合后的多个音频流。
8. 如权利要求1所述的方法,其中所述多个设备多于2个设备。
9. 如权利要求1所述的方法,其中所述多个设备多于所述一组被选择 的设备。
10. —种方法,包括; 识别多个设备;监控多个设备中的每一个的声音水平;基于所述多个设备中的每一个的声音水平,从所述多个设备选择一组 设备;将与所述一组设备中的每一个相关联的多个音频流混合,并形成混合后的多个音频流;并且向所述一组设备之外的设备传输所述混合后的多个音频流;
11. 如权利要求11所述的方法,还包括将所述声音水平与阈值水平进 行比较。
12. 如权利要求11所述的方法,其中所述一组设备包括预定数目的设备。
13. 如权利要求11所述的方法,还包括向所述一组设备中的特定一个 设备发送被修改的混合后的多个音频流,其中所述被修改的混合后的多个 音频流包括除了与所述特定一组设备相关联的音频流之外的与音频流相关 联的所述混合后的多个音频流。
14. 如权利要求11所述的方法,其中所述混合发生在所述一组设备中 的一个设备处。
15. 如权利要求11所述的方法,其中所述混合发生在耦合到所述一组 设备中的一个设备的服务器处。
16. —种系统,包括接口模块,被配置为监控来自多个设备的声音水平; 选择模块,被配置为基于所述声音水平从所述多个设备中选择一组设 备以传输音频信号;并且混合模块,被配置为混合与所述一组设备相对应的多个音频流。
17. 如权利要求16所述的系统,还包括被配置为存储所述多个音频流 的存储模块。
18. 如权利要求18所述的系统,其中接口模块还被配置为向所述一组 设备之外的设备传输混合后的音频流。
全文摘要
用于处理多个设备使用的音频流的方法和装置检测与多个设备的每一个相对应的声音水平;基于与多个设备的每一个相对应的声音水平,从多个设备中选择一组被选择的设备;将与被选择的一组设备相关联的多个音频流混合并形成混合后的多个音频流;并向未被选择的设备传输混合后的多个音频流。
文档编号G06F17/00GK101553801SQ200780008761
公开日2009年10月7日 申请日期2007年5月1日 优先权日2006年5月1日
发明者宋旭东, 杜武平 申请人:网讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1