用于提供对媒体信号的联网访问的系统、方法和设备转让专利

申请号 : CN201580042582.2

文献号 : CN106576007B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 艾丹·迈克尔·威廉姆斯詹姆斯·亨利·韦斯滕多普

申请人 : 奥迪耐特有限公司

摘要 :

一种用于提供对媒体信号的联网访问的系统,该系统包括至少一个虚拟媒体卡、至少一个媒体接口、发布和发现模块、公用网络的网络接口和基准时钟。该虚拟媒体卡被配置成与至少一个应用程序相接并且该媒体接口被配置成与至少一个物理媒体卡相接。该虚拟媒体卡和该媒体接口使用公共的基准时钟与该系统通信。该发布和发现模块被配置成识别何时启动和/或停止该至少一个应用程序以及何时使该至少一个媒体卡与该系统附接和/或分离,并且使得该至少一个媒体卡的I/O通道和该至少一个应用程序的该I/O通道对于该系统和该公用网络来说是可用的。

权利要求 :

1.一种用于提供对媒体信号的联网访问的系统,该系统包括:至少一个虚拟媒体卡,其被配置成与产生和/或消耗媒体信号的至少一个应用程序相接;

至少一个媒体接口,其被配置成与产生和/或消耗媒体信号的至少一个物理媒体卡相接;

网络接口,其被配置成使该系统能够与公用网络上的其他设备交换媒体信号;

基准时钟,其被配置成向该至少一个虚拟媒体卡、该至少一个媒体接口以及该公用网络提供公用时钟信号;以及发布和发现模块,其被配置成识别何时启动和/或停止该至少一个应用程序以及何时使该至少一个虚拟媒体卡或该至少一个物理媒体卡与该系统附接和/或分离;

其中该发布和发现模块被配置成:

(i)使该至少一个虚拟媒体卡或该至少一个物理媒体卡的I/O通道对该系统和该公用网络来说是可用的,以及(ii)使该至少一个应用程序的I/O通道对该系统和该公用网络来说是可用的;

其中该虚拟媒体卡支持应用复用/解复用模式的操作。

2.权利要求1所述的系统,其中该媒体信号是音频信号。

3.权利要求1或2所述的系统,其中该虚拟媒体卡是虚拟声卡。

4.权利要求1中所述的系统,其中该媒体接口是音频接口。

5.权利要求1中所述的系统,其中该至少一个物理媒体卡是声卡。

6.权利要求3中所述的系统,该系统进一步包括媒体路由器,其被配置成接收路由需求并将该媒体信号从产生媒体信号的该至少一个应用程序和至少一个该虚拟声卡发送到消耗媒体信号的该至少一个应用程序和至少一个该虚拟声卡,其中所述产生媒体信号的该至少一个应用程序和消耗媒体信号的该至少一个应用程序不同,所述产生媒体信号的至少一个该虚拟声卡和消耗媒体信号的至少一个该虚拟声卡不同。

7.权利要求5中所述的系统,该系统进一步包括媒体路由器,其被配置成接收路由需求并将该媒体信号从产生媒体信号的该至少一个应用程序和至少一个该声卡发送到消耗媒体信号的该至少一个应用程序和至少一个该声卡,其中所述产生媒体信号的该至少一个应用程序和消耗媒体信号的该至少一个应用程序不同,所述产生媒体信号的至少一个该声卡和消耗媒体信号的至少一个该声卡不同。

8.权利要求6或7所述的系统,该系统进一步包括用户界面,其用于使用户能够创建路由配置以供该媒体路由器使用。

9.权利要求8所述的系统,其中该用户界面可用于实现任何组合的I/O通道的连接。

10.权利要求1中所述的系统,其中该至少一个媒体接口包括速率和/或相位匹配器,其被配置成使通过该至少一个虚拟媒体卡或该至少一个物理媒体卡和该系统之间的该媒体信号的速率匹配和/或相位对准。

11.权利要求10所述的系统,其中该速率和/或相位匹配器使用异步采样率转换器来对准该媒体信号。

12.权利要求1中所述的系统,该系统进一步包括媒体收发器,其被配置成控制该至少一个应用程序、该至少一个虚拟媒体卡或该至少一个物理媒体卡以及该公用网络上的其他设备产生和消耗媒体信号的速率。

13.权利要求1中所述的系统,该系统进一步包括媒体缓冲器,其被配置成临时存储媒体信号,以补偿该系统和该公用网络内的时序变化。

14.权利要求1中所述的系统,其中每个I/O通道具有由通道名称和设备名称的组合构成的网络名称。

15.权利要求1中所述的系统,其中该虚拟媒体卡被配置成由一个应用程序使用。

16.权利要求1中所述的系统,其中该虚拟媒体卡被配置成由多个应用程序使用。

17.权利要求16中所述的系统,其中从该多个应用程序提供给单一虚拟媒体卡的该媒体信号被混合在一起。

18.权利要求16中所述的系统,其中从该多个应用程序提供给单一虚拟媒体卡的该媒体信号不混合在一起。

19.一种用于提供对媒体信号的联网访问的系统,该系统包括:至少一个虚拟媒体卡,其被配置成与产生和/或消耗媒体信号的至少一个应用程序相接;

网络接口,其被配置成使该系统能够与公用网络上的其他设备交换媒体信号;

基准时钟,其被配置成将公用时钟信号提供到该至少一个虚拟媒体卡和该公用网络;

以及

发布和发现模块,其被配置为识别何时启动和/或停止该至少一个应用程序;

其中该发布和发现模块被配置成使该至少一个应用程序的I/O通道对该系统和该公用网络来说是可用的;

其中该虚拟媒体卡支持应用复用/解复用模式的操作。

20.权利要求19所述的系统,该系统进一步包括至少一个媒体接口,其被配置成与产生和/或消耗媒体信号的至少一个物理媒体卡相接。

21.权利要求19或20所述的系统,其中该媒体信号是音频信号。

22.权利要求19或20所述的系统,其中该虚拟媒体卡是虚拟声卡。

23.权利要求20所述的系统,其中该媒体接口是音频接口。

24.权利要求20所述的系统,其中该至少一个物理媒体卡是声卡。

25.权利要求22所述的系统,该系统进一步包括媒体路由器,其被配置成接收路由需求并将该媒体信号从产生媒体信号的该至少一个应用程序和/或至少一个该虚拟声卡发送到消耗媒体信号的该至少一个应用程序和至少一个该虚拟声卡,其中所述产生媒体信号的该至少一个应用程序和消耗媒体信号的该至少一个应用程序不同,所述产生媒体信号的至少一个该虚拟声卡和消耗媒体信号的至少一个该虚拟声卡不同。

26.权利要求24所述的系统,该系统进一步包括媒体路由器,其被配置成接收路由需求并将该媒体信号从产生媒体信号的该至少一个应用程序和/或至少一个该声卡发送到消耗媒体信号的该至少一个应用程序和至少一个该声卡,其中所述产生媒体信号的该至少一个应用程序和消耗媒体信号的该至少一个应用程序不同,所述产生媒体信号的至少一个该声卡和消耗媒体信号的至少一个该声卡不同。

27.权利要求25或26所述的系统,该系统进一步包括用户界面,其用于使用户能够创建路由配置以供该媒体路由器使用。

28.权利要求27所述的系统,其中该用户界面可用于实现任何组合的I/O通道的连接。

29.权利要求20所述的系统,其中该至少一个媒体接口包括速率和/或相位匹配器,其被配置成使通过该至少一个虚拟媒体卡或该至少一个物理媒体卡和该系统之间的该媒体信号的速率匹配和/或相位对准。

30.权利要求29所述的系统,其中该速率和/或相位匹配器使用异步采样率转换器来对准该媒体信号。

31.权利要求19所述的系统,该系统进一步包括媒体收发器,其被配置成控制该至少一个应用程序、该至少一个虚拟媒体卡和/或该公用网络上的其他设备产生和消耗媒体信号的速率。

32.权利要求20所述的系统,该系统进一步包括媒体收发器,其被配置成控制该至少一个应用程序、该至少一个虚拟媒体卡或该至少一个物理媒体卡和/或该公用网络上的其他设备产生和消耗媒体信号的速率。

33.权利要求19或20中所述的系统,其中该系统进一步包括媒体缓冲器,其被配置成临时存储媒体信号,以补偿该系统和该公用网络内的时序变化。

34.权利要求19或20中所述的系统,其中每个I/O通道具有由通道名称和设备名称的组合构成的网络名称。

35.权利要求19或20中所述的系统,其中该虚拟媒体卡被配置成由一个应用程序使用。

36.权利要求19或20中所述的系统,其中该虚拟媒体卡被配置成由多个应用程序使用。

37.权利要求36中所述的系统,其中从该多个应用程序提供给单一虚拟媒体卡的该媒体信号被混合在一起。

38.权利要求36中所述的系统,其中从该多个应用程序提供给单一虚拟媒体卡的该媒体信号不混合在一起。

39.一种用于提供对媒体信号的联网访问的系统,该系统包括:至少一个媒体接口,其被配置成与产生和/或消耗媒体信号的至少一个物理媒体卡相接;

网络接口,其被配置成使该系统能够与公用网络上的其他设备交换媒体信号;

基准时钟,其被配置成将公用时钟信号提供到该至少一个媒体接口和该公用网络;

至少一个虚拟媒体卡,其被配置成与产生和/或消耗媒体信号的至少一个应用程序相接;以及发布和发现模块,其被配置成识别何时使该至少一个虚拟媒体卡或该至少一个物理媒体卡与该系统附接和/或分离;

其中该发布和发现模块被配置成使该至少一个虚拟媒体卡或该至少一个物理媒体卡的I/O通道对该系统和该公用网络来说是可用的;

其中,该基准时钟被配置成将公用时钟信号提供到该至少一个虚拟媒体卡;

其中该发布和发现模块被配置成识别何时启动和/或停止该至少一个应用程序;

其中该发布和发现模块被配置成使该至少一个应用程序的I/O通道对该系统和该公用网络来说是可用的;以及其中该虚拟媒体卡支持固定通道模式的操作和应用复用/解复用模式的操作。

40.权利要求39所述的系统,其中该媒体信号是音频信号。

41.权利要求39中所述的系统,其中该虚拟媒体卡是虚拟声卡。

42.权利要求39中所述的系统,其中该媒体接口是音频接口。

43.权利要求39中所述的系统,其中该至少一个物理媒体卡是声卡。

44.权利要求41中所述的系统,该系统进一步包括媒体路由器,其被配置成接收路由需求并将该媒体信号从产生媒体信号的该至少一个应用程序和/或至少一个该虚拟声卡发送到消耗媒体信号的该至少一个应用程序和/或至少一个该虚拟声卡,其中所述产生媒体信号的该至少一个应用程序和消耗媒体信号的该至少一个应用程序不同,所述产生媒体信号的至少一个该虚拟声卡和消耗媒体信号的至少一个该虚拟声卡不同。

45.权利要求43中所述的系统,该系统进一步包括媒体路由器,其被配置成接收路由需求并将该媒体信号从产生媒体信号的该至少一个应用程序和/或至少一个该声卡发送到消耗媒体信号的该至少一个应用程序和/或至少一个该声卡,其中所述产生媒体信号的该至少一个应用程序和消耗媒体信号的该至少一个应用程序不同,所述产生媒体信号的至少一个该声卡和消耗媒体信号的至少一个该声卡不同。

46.权利要求44或45所述的系统,该系统进一步包括用户界面,其用于使用户能够创建路由配置以供该媒体路由器使用。

47.权利要求46所述的系统,其中该用户界面可用于实现任何组合的I/O通道的连接。

48.权利要求39中所述的系统,其中该至少一个媒体接口包括速率和/或相位匹配器,其被配置成使通过该至少一个虚拟媒体卡或该至少一个物理媒体卡和该系统之间的该媒体信号的速率匹配和/或相位对准。

49.权利要求48所述的系统,其中该速率和/或相位匹配器使用异步采样率转换器来对准该媒体信号。

50.权利要求39中所述的系统,该系统进一步包括媒体收发器,其被配置成控制该至少一个应用程序、该至少一个虚拟媒体卡或该至少一个物理媒体卡和/或以及该公用网络上的其他设备产生和消耗媒体信号的速率。

51.权利要求39中所述的系统,其中该系统进一步包括媒体缓冲器,其被配置成临时存储媒体信号,以补偿该系统和该公用网络内的时序变化。

52.权利要求39中所述的系统,其中每个I/O通道具有由通道名称和设备名称的组合构成的网络名称。

53.权利要求39中所述的系统,其该虚拟媒体卡被配置成由一个应用程序使用。

54.权利要求39中所述的系统,其中该虚拟媒体卡被配置成由多个应用程序使用。

55.权利要求54中所述的系统,其中从该多个应用程序提供给单一虚拟媒体卡的该媒体信号被混合在一起。

56.权利要求54中所述的系统,其中从该多个应用程序提供给单一虚拟媒体卡的该媒体信号不混合在一起。

说明书 :

用于提供对媒体信号的联网访问的系统、方法和设备

[0001] 相关申请的交叉引用
[0002] 本申请涉及于2010年5月14日提交的美国专利申请号12/662,994,现在的美国专利号8,005,939;于2010年3月26日提交的美国申请号12/451,420,现在的美国专利号8,171,152;于2009年5月29日提交的美国申请号12/308,168,现在的美国专利号7,978,696;
以及于2007年5月17日提交的国际申请号PCT/AU2007/000668。这些申请中的每一个通过引用整体并入本文。

技术领域

[0003] 本披露涉及用于提供对媒体信号(例如音频、视频、多媒体信号)的联网访问的系统、方法和设备。更具体地说,本披露涉及用于提供从声卡,虚拟声卡和/或应用程序到媒体信号的直接联网访问的系统、方法和设备。
[0004] 发明背景
[0005] 计算机或类似设备内(例如个人电脑或MAC)的媒体信号,如音频和视频信号在历史上一直难以通过网络共享。通常,软件应用程序使得计算机内的特定类的信号在网络上可用。
[0006] 例如,虚拟声卡可能够将音频通过网络传送到应用程序/通过网络传送来自应用程序的音频。这样的虚拟声卡呈现软件应用程序的声卡接口并且可以将音频通道传送到网络/传送来自网络的音频通道,从而提供用于音频应用程序的网络通道传输。虚拟声卡被呈现给应用程序,其中应用程序可用的每个音频通道与网络中的单个音频通道相关联。信号可以被发送到网络中的任何地方以及从网络中的任何地方发送到与应用程序音频通道相关联的通道。来自网络的可用通道是虚拟声卡通道-应用程序和声卡(如USB硬件)在网络上是不可见的。
[0007] 在另一实例中,Skype应用程序将来自声卡的音频通过Skype应用程序网络传送。Skype为声卡提供了网络通道传输。在本实例中,该音频在Skype应用程序之外是不可用的。
[0008] 聚合驱动程序是电脑不能共享在网络上的媒体内容的应急方案的例子。有了聚合驱动程序,声卡可以组合以及其音频速率被匹配为可由只能打开单个声卡的应用程序打开的单一的、较大的音频接口。以这种方式,来自许多声卡的音频I/O可以由多通道音频应用程序使用,而不需要打开不止一个声卡。
[0009] 这些现有的技术和应急方案没有充分解决系统无法从计算机中获取媒体文件并将它们通过网络共享的问题。
[0010] 因此,希望具有能够从声卡和/或应用程序中获取音频信号并经由联网路由选择系统使它们可用的系统、方法和设备。
[0011] 发明概述
[0012] 在示例性实施方式中,可能希望具有能够从声卡和/或应用程序中获取音频信号并经由联网路由选择系统使它们可用的系统、方法和设备。例如,在示例性实施方式中,计算机声卡输入和输出通道和/或应用程序音频输入和输出通道可以在网络上是直接可用的。
[0013] 在示例性实施方式中,该声卡可以包括内置的模拟或数字端口、HDMI音频通道、USB、可附接和分离的Firewire或Thunderbolt连接的音频设备、“默认系统输入”、“默认系统输出”(其可能是使用默认系统输出的来自多个应用程序的音频的混合)和/或虚拟声卡(例如DVS、SoundFlower、聚合驱动程序)。
[0014] 在示例性实施方式中,应用程序音频I/O可以包括从iTunes或Windows媒体播放器中出来的音频、进入记录应用程序(像Audacity)的音频、进出应用程序(像Skype)的音频和/或出入被用于一组特定(例如一个或多个)的应用程序的虚拟声卡的音频信号。
[0015] 本文描述的示例性实施方式可提供一种用于提供对媒体信号的联网访问的系统(或相应的方法或设备),该系统包括:至少一个虚拟媒体卡,其被配置成与产生和/或消耗媒体信号的至少一个应用程序相接;至少一个媒体接口,其被配置成与产生和/或消耗媒体信号的至少一个物理媒体卡相接;网络接口,其被配置成使该系统能够与公用网络上的其他设备交换媒体信号;基准时钟,其被配置成向该至少一个虚拟媒体卡、该至少一个媒体接口以及该公用网络提供公用时钟信号;以及发布和发现模块,其被配置成识别何时启动和/或停止该至少一个应用程序以及何时使该至少一个媒体卡与该系统附接和/或分离;其中该发布和发现模块被配置成:(i)使该至少一个媒体卡的I/O通道对该系统和该公用网络来说是可用的,以及(ii)使该至少一个应用程序的I/O通道对该系统和该公用网络来说是可用的。
[0016] 在示例性实施方式中,该媒体信号可以是音频信号。
[0017] 在示例性实施方式,该虚拟媒体卡可以是虚拟声卡。
[0018] 在示例性实施方式中,该媒体接口可以是音频接口。
[0019] 在示例性实施方式中,该至少一个物理媒体卡可以是声卡。
[0020] 在示例性实施方式中,该系统可以进一步包括媒体路由器,其被配置成接收路由需求并将该媒体信号从产生媒体信号的该至少一个应用程序和该至少一个声卡发送到消耗媒体信号的该至少一个应用程序和该至少一个声卡。
[0021] 在示例性实施方式中,该系统可以进一步包括用户界面,其用于使用户能够创建路由配置以供该媒体路由器使用。
[0022] 在示例性实施方式中,该用户界面可用于实现任何组合的I/O通道的连接。
[0023] 在示例性实施方式中,该至少一个媒体接口包括速率/相位匹配器,其被配置成使通过该至少一个媒体卡和该系统之间的该媒体信号的速率匹配和/或相位对准。
[0024] 在示例性实施方式中,该速率/相位匹配器可使用异步采样率转换器来对准该媒体信号。
[0025] 在示例性实施方式中,该系统可以进一步包括媒体收发器,其被配置成控制该至少一个应用程序、该至少一个媒体卡以及该公用网络上的其他设备产生和消耗媒体信号的速率。
[0026] 在示例性实施方式中,该系统可以进一步包括媒体缓冲器,其被配置成临时存储媒体信号,以补偿该系统和该公用网络内的时序变化。
[0027] 在示例性实施方式中,每个I/O通道具有由通道名称和设备名称的组合构成的网络名称。
[0028] 在示例性实施方式中,该虚拟媒体卡可以被配置成由一个应用程序使用。
[0029] 在示例性实施方式中,该虚拟媒体卡可以被配置成由多个应用程序使用。
[0030] 在示例性实施方式中,该虚拟媒体卡可以支持固定通道模式的操作。
[0031] 在示例性实施方式中,该虚拟媒体卡可以支持应用复用/解复用模式的操作。
[0032] 在示例性实施方式中,该虚拟媒体卡可以支持固定通道模式的操作和应用复用/解复用模式的操作。
[0033] 在示例性实施方式中,从该多个应用程序提供给单一虚拟媒体卡的该媒体信号可以被混合在一起。
[0034] 在示例性实施方式中,从该多个应用程序提供给单一虚拟媒体卡的该媒体信号可以不混合在一起。
[0035] 本文所述的示例性实施方式可提供一种用于提供对媒体信号的联网访问的系统(或相应的方法或设备),该系统包括:至少一个虚拟媒体卡,其被配置成与产生和/或消耗媒体信号的至少一个应用程序相接;网络接口,其被配置成使该系统能够与公用网络上的其他设备交换媒体信号;基准时钟,其被配置成将公用时钟信号提供到该至少一个虚拟媒体卡和该公用网络;以及发布和发现模块,其被配置为识别何时启动和/或停止该至少一个应用程序;其中该发布和发现模块被配置成使该至少一个应用程序的I/O通道对该系统和该公用网络来说是可用的。
[0036] 在示例性实施方式中,该系统可以进一步包括至少一个媒体接口,其被配置成与产生和/或消耗媒体信号的至少一个物理媒体相接;其中,该基准时钟可以被配置成将该公共时钟信号提供到该至少一个媒体接口;其中该发布和发现模块可以被配置成识别何时使该至少一个媒体卡与该系统附接和/或分离;以及其中该发布和发现模块可以被配置成使得该至少一个媒体卡的I/O通道对该系统和该公用网络来说是可用的。
[0037] 在示例性实施方式中,该媒体信号可以是音频信号。
[0038] 在示例性实施方式中,该虚拟媒体卡可以是虚拟声卡。
[0039] 在示例性实施方式中,该媒体接口可以是音频接口。
[0040] 在示例性实施方式中,该至少一个物理媒体卡可以是声卡。
[0041] 在示例性实施方式中,该系统可以进一步包括媒体路由器,其被配置成接收路由需求并将该媒体信号从产生媒体信号的该至少一个应用程序和/或该至少一个声卡发送到消耗媒体信号的该至少一个应用程序和/或该至少一个声卡。
[0042] 在示例性实施方式中,该系统可以进一步包括用户界面,其用于使用户能够创建路由配置以供该媒体路由器使用。
[0043] 在示例性实施方式中,该用户界面可用于实现任何组合的I/O通道的连接。
[0044] 在示例性实施方式中,该至少一个媒体接口包括速率/相位匹配器,其被配置成使通过该至少一个媒体卡和该系统之间的该媒体信号的速率匹配和/或相位对准。
[0045] 在示例性实施方式中,该速率/相位匹配器可使用异步采样率转换器来对准该媒体信号。
[0046] 在示例性实施方式中,该系统可以进一步包括媒体收发器,其被配置成控制该至少一个应用程序、该至少一个媒体卡和/或以及该公用网络上的其他设备产生和消耗媒体信号的速率。
[0047] 在示例性实施方式中,该系统可以进一步包括媒体缓冲器,其被配置成临时存储媒体信号,以补偿该系统和该公用网络内的时序变化。
[0048] 在示例性实施方式中,每个I/O通道具有由通道名称和设备名称的组合构成的网络名称。
[0049] 在示例性实施方式中,该虚拟媒体卡可以被配置成由一个应用程序使用。
[0050] 在示例性实施方式中,该虚拟媒体卡可以被配置成由多个应用程序使用。
[0051] 在示例性实施方式中,该虚拟媒体卡可以支持固定通道模式的操作。
[0052] 在示例性实施方式中,该虚拟媒体卡可以支持应用复用/解复用模式的操作。
[0053] 在示例性实施方式中,该虚拟媒体卡可以支持固定通道模式的操作和应用复用/解复用模式的操作。
[0054] 在示例性实施方式中,从该多个应用程序提供给单一虚拟媒体卡的该媒体信号可以被混合在一起。
[0055] 在示例性实施方式中,从该多个应用程序提供给单一虚拟媒体卡的该媒体信号可以不混合在一起。
[0056] 本文所述的示例性实施方式可提供一种用于提供对媒体信号的联网访问的系统(或相应的方法或设备),该系统包括:至少一个媒体接口,其被配置成与产生和/或消耗媒体信号的至少一个物理媒体卡相接;网络接口,其被配置成使该系统能够与公用网络上的其他设备交换媒体信号;基准时钟,其被配置成将该公用时钟信号提供到该至少一个媒体接口和该公用网络;以及发布和发现模块,其被配置成识别何时使该至少一个媒体卡与该系统附接和/或分离;其中该发布和发现模块被配置成使该至少一个媒体卡的I/O通道对该系统和该公用网络来说是可用的。
[0057] 在示例性实施方式中,该系统可以进一步包括至少一个虚拟媒体卡,其被配置成与产生和/或消耗媒体信号的至少一个应用程序相接;其中,该基准时钟可以被配置成将公用时钟信号提供到该至少一个虚拟媒体卡;其中该发布和发现模块可以被配置成识别何时启动和/或停止该至少一个应用程序;以及其中该发布和发现模块可以被配置成使该至少一个应用程序的I/O通道对该系统和该公用网络来说是可用的。
[0058] 在示例性实施方式中,该媒体信号可以是音频信号。
[0059] 在示例性实施方式中,该虚拟媒体卡可以是虚拟声卡。
[0060] 在示例性实施方式中,该媒体接口可以是音频接口。
[0061] 在示例性实施方式中,该至少一个物理媒体卡可以是声卡。
[0062] 在示例性实施方式中,该系统可以进一步包括媒体路由器,其被配置成接收路由需求并将该媒体信号从产生媒体信号的该至少一个应用程序和/或该至少一个声卡发送到消耗媒体信号的该至少一个应用程序和/或该至少一个声卡。
[0063] 在示例性实施方式中,该系统可以进一步包括用户界面,其用于使用户能够创建路由配置以供该媒体路由器使用。
[0064] 在示例性实施方式中,该用户界面可用于实现任何组合的I/O通道的连接。
[0065] 在示例性实施方式中,该至少一个媒体接口包括速率/相位匹配器,其被配置成使通过该至少一个媒体卡和该系统之间的该媒体信号的速率匹配和/或相位对准。
[0066] 在示例性实施方式中,该速率/相位匹配器可使用异步采样率转换器来对准该媒体信号。
[0067] 在示例性实施方式中,该系统可以进一步包括媒体收发器,其被配置成控制该至少一个应用程序、该至少一个媒体卡和/或以及该公用网络上的其他设备产生和消耗媒体信号的速率。
[0068] 在示例性实施方式中,该系统可以进一步包括媒体缓冲器,其被配置成临时存储媒体信号,以补偿该系统和该公用网络内的时序变化。
[0069] 在示例性实施方式中,每个I/O通道具有由通道名称和设备名称的组合构成的网络名称。
[0070] 在示例性实施方式中,该虚拟媒体卡可以被配置成由一个应用程序使用。
[0071] 在示例性实施方式中,该虚拟媒体卡可以被配置成由多个应用程序使用。
[0072] 在示例性实施方式中,该虚拟媒体卡可以支持固定通道模式的操作。
[0073] 在示例性实施方式中,该虚拟媒体卡可以支持应用复用/解复用模式的操作。
[0074] 在示例性实施方式中,该虚拟媒体卡可以支持固定通道模式的操作和应用复用/解复用模式的操作。
[0075] 在示例性实施方式中,从该多个应用程序提供给单一虚拟媒体卡的该媒体信号可以被混合在一起。
[0076] 在示例性实施方式中,从该多个应用程序提供给单一虚拟媒体卡的该媒体信号可以不混合在一起。
[0077] 附图是本披露的一部分并且其以举例的方式描绘了本文披露的实施方式的原理,当结合附图进行以下说明时,其它方面、特征和优点将变得显而易见。

附图说明

[0078] 尽管有任何其它的可能落入如本文所阐述的披露内容的范围内的形式,现在仍将以举例的方式并参照附图对具体的实施方式加以说明,其中:
[0079] 图1是在联网环境的背景下本文所述的系统和方法的示例性实施方式的网络图;
[0080] 图2是本文所述的系统和方法的示例性实施方式的功能框图;
[0081] 图3是用于使用矩阵混合的信号路由选择的用户界面的示例性实施方式;
[0082] 图4是用于使用混合组的信号路由选择的用户界面的示例性实施方式;
[0083] 图5A是用于其中USB设备断开的媒体信号的发现和路由选择的用户界面的示例性实施方式;
[0084] 图5B是用于其中连接有USB设备的媒体信号的发现和路由选择的用户界面的示例性实施方式;
[0085] 图5C是用于其中应用程序(例如iTunes)断开的媒体信号的发现和路由选择的用户界面的示例性实施方式;
[0086] 图5D是用于其中连接有应用程序(例如iTunes)的媒体信号的发现和路由选择的用户界面的示例性实施方式;以及
[0087] 图6是用于联网通道的内部路由选择的用户界面的示例性实施方式。

具体实施方式

[0088] 在示例性实施方式中,可能希望具有能够从声卡和/或应用程序获取音频信号并使它们对电子设备内的其他组件可用和/或经由联网路由选择系统使它们可用的系统、方法和设备。例如,在示例性实施方式中,计算机声卡的输入和输出通道和/或应用程序音频输入和输出通道对电子设备内的其他组件和/或在网络上是直接可用的。
[0089] 在示例性实施方式中,该声卡可以包括内置的模拟或数字端口、HDMI音频通道、USB、可附接和分离的Firewire或Thunderbolt连接的音频设备、“默认系统输入”、“默认系统输出”(其可能是使用默认系统输出的来自多个应用程序的音频的混合)和/或虚拟声卡(例如DVS、SoundFlower、聚合驱动程序)。
[0090] 在示例性实施方式中,应用程序音频I/O可以包括从重放应用程序(像iTunes或Windows媒体播放器)中出来的音频、进入记录应用程序(像Audacity)的音频、进出应用程序(像Skype)的音频和/或出入被用于一组特定(例如一个或多个)的应用程序的虚拟声卡的音频信号。在实施方式中,当难以,例如将每个应用程序音频从共享声卡中分离出来时,将应用程序组进行分组可能是必要或期望的。
[0091] 在示例性实施方式中,本文所述的系统、方法和设备可能够对计算机内部的媒体(例如音频)信号提供直接的联网访问。特别是,来自声卡和/或应用程序的音频信号可以作为网络源和汇点(sink)被发布在网络上并且可以以与其他联网音频通道相同的方式发现并修补。
[0092] 应用程序可以被启动和停止以及声卡可以与计算机附接/分离或在虚拟声卡的情况下,被启动/停止。例如,当声音卡被附接或启动时,与之相关联的通道可以在网络上发布。当声音卡被分离时,与声卡通道相关联的发布可以被移除。类似地,当应用程序被启动时,与该应用程序的音频输入和输出相关联的发布可以被创建以及当该应用程序被停止时,与该应用程序的音频输入和输出相关联的发布可以被移除。
[0093] 在某些实施方式中,可能不希望有声卡和应用程序的音频通道自动地出现在网络上。因此,在某些实施方式中,对自动可用的,可以应用多种策略来限制。例如,可以发布资源,除非它们在“不得发布”的名单中。替代性地,只有在明确的“允许发布”的名单上的资源可以被发布。在这种情况下,经发布的资源可以是声卡通道、应用程序音频输入和输出或两者的组合。其它发布策略也可以得到支持。
[0094] 如本文中所讨论的,将来自若干声卡的信号组合通常需要使用软件应用程序,像聚合驱动程序以及应用程序之间音频的交换通常需要某种虚拟声卡接口。聚合驱动程序、应用程序间音频共享和联网的虚拟声卡可以进行组合以在应用程序、声卡和网络之间交换音频,但是信号路由选择的差异已经将计算机内的路由选择和经由网络的路由选择区别开来。
[0095] 当使用独立的应用程序(例如,MacOSX聚合驱动程序、SoundFlower和Dante虚拟声卡的组合)时,信号路由选择通过带有单独的GUI/配置设置的每个单独的软件部件进行管理。应用程序可用于将聚合驱动程序功能(包括声卡之间的路由选择)和应用程序间的共享组合,但仍然会将网络接口作为带有固定数目的通道的联网的虚拟声卡。在这样的应用程序中,可以在计算机内周围(包括向/从该联网的虚拟声卡)发送音频信号,然后可以经由网络向/从该联网的虚拟声卡的网络侧上的通道发送信号。
[0096] 与此相反,本文所述的系统、方法和设备将聚合驱动程序、应用程序间的音频共享系统和联网的音频路由选择的功能集成到单一的、相干信号路由选择系统。计算机内的音频信号在网络上是可用的并具有唯一的网络名称。在示例性实施方式中,该网络名称可以由通道标签和设备名称构成(例如,BuiltIn-Left@膝上型电脑模拟音频输入或iTunes-Right@膝上型电脑)。在示例性实施方式中,这些信号名称可被用来表达信号路由选择而不在计算机内部的路由选择和通过网络(across-the-network)的路由选择之间进行区分。计算机内部和通过网络可以-使用通道标签和设备名称(通道-标签@设备-名)以同样的方式进行配置。向该路由选择系统的示例性输入可以包括声卡输入(例如USB模拟输入、Soundflower)、任何联网的通道来源(例如Dante传输通道)、应用程序音频输出(例如Skype、iTunes音频)和/或混合的音频输出(例如OS的“默认声卡输出”)。来自该路由选择系统的示例性输出可以包括声卡输出(例如USB模拟输出、Soundflower)、联网的通道接收机(例如Dante接收通道)、应用程序音频输入(例如Skype、Audacity)和/或OS的默认声卡输入。
[0097] 在示例性实施方式中,信号名称(例如通道-标签@设备-名称)可以用在该路由选择系统中来表达对如下一个或多个的连接/修补:
[0098] ·设备内部的音频信号和网络通道之间。设备内部的资源(如硬件音频I/O端口)和应用程序音频通道现在通过网络是直接可进行路由选择的。
[0099] ·单一设备内应用程序之间
[0100] ·单一设备内声卡I/O端口之间
[0101] 在示例性实施方式中,所描述的各种类型的连接的任何组合都可以被允许。在示例性实施方式中,对于任何给定信号的多个输出补丁可以得到支持,这暗示经由该路由选择系统可以将任何信号复制为不止一个的输出。例如,由于设备A和设备B是不同的设备,补丁可以经由网络将USB-模拟-内@设备A发送到Skype-输入@设备B。或该补丁可以将DAW-应用程序-立体-混合@膝上型电脑发送到内置-输出@膝上型电脑,以及将DAW-应用程序-立体-混合@膝上型电脑发送到立体-输入@混合-控制台(即DAW-应用程序-立体-混合信号可以被复制并传送到本地声卡并通过网络)。其它示例性的补丁可以包括将默认系统输出@膝上型电脑发送到麦克风@会议室或将麦克风@会议室发送到->Skype输入@膝上型电脑。
[0102] 在示例性实施方式中,本文所述的系统、方法和设备还可以利用基准时钟对来自该声卡和应用程序的媒体信号进行时间对准和速率匹配。通常,在网络上的信号发射器按由底层硬件媒体时钟(例如声卡晶体)支配的速率发射数据包。有了典型的计算机设备,由于该媒体时钟硬件中的制造变化(例如石英晶体的频率变化),来源于附接到计算机的每个声卡的音频可以按稍微不同的速率进行传送。因此,接收来自一个或多个声卡的流的设备通常必须将传入的音频(该音频反而可能由于制造变化而按稍微不同的速率运行)与一个(或多个)接收声卡进行速率匹配和时间对准。专用设备可以支持该硬件媒体时钟锁定到基准时钟(例如,Dante-MY16-AUD卡和类似设备;或带有字时钟输入的专业声卡),然而典型的声卡硬件很少支持可调节的媒体时钟。典型的接收来自两个或多个声卡的音频的计算机设备,无论是本地附接或经由网络流的,必须将传入的音频与一个(或多个)接收声卡的该媒体时钟进行速率匹配(以及可选地进行时间对准)以确保无干扰(glitch free)播出。
[0103] 在示例性实施方式中,本文所述的系统、方法和设备可以将传入的音频与共享的基准时钟进行速率匹配和时间对准。例如,如果执行该方法的计算机被附接到网络,该基准时钟可以经由该网络分布以及对于部分或全部媒体发射机和接收机来说是可用的。如果计算机没有附接到网络,该基准时钟可以经本地生成(概念上,计算机向一个设备(本身)的网络提供基准时钟)。在示例性实施方式中,当本文所述的系统、方法和设备传送和接收数据包流(例如,使用Dante、AES67、AVB协议套件、RTP或一些其它的联网媒体传输系统)时,所用的该共享的基准时钟可以由该联网传输系统提供。例如,一些标准化协议提供了共享的基准时钟。IEEE 1588精密时间协议版本1和2通常与Dante、AES67和RTP一起使用。用于本地和城域网的802.1AS标准-桥接局域网中时间敏感的应用程序的定时和同步可以与音频视频桥接(AVB)协议套件一起使用。媒体数据包流(例如RTP或IEEE 1722)和网络时间协议(NTP)也是共享的基准时钟的例子。
[0104] 虽然对于许多应用程序来说,信号捕获和播出与共享的基准时钟的时间对准是期望的,但是在示例性实施方式中不对音频的无干扰捕获和播出作要求。例如,系统可以使用仅仅支持时间对准(例如IEEE 1588)的基准时钟以对传出的音频进行速率匹配,而不确保所捕获的音频信号与该基准时钟是时间对准的。同样地,传入的音频的播出可以进行速率匹配但不进行时间对准。
[0105] 在示例性实施方式中,单一设备可以被概念化为一台设备的网络。单一设备内的音频信号可以与该设备内部生成的基准信号进行速率匹配和时间对准。
[0106] 在示例性实施方式中,用于速率匹配的共享的基准时钟可以具有一个或多个益处。首先,声卡之间、网络通道之间以及声卡和网络通道之间的音频交换可以被简化,因为该声卡和该共享的基准时钟之间的速率差可能是必须获得的唯一参数。在其它系统中,需要被接收的每个流和每个对应声卡之间的速率差,因为每个流可以按产生样本的源声卡的速率进行传送。
[0107] 第二,可以在不传送或接收任何媒体数据包的情况下计算每个声卡和该共享的基准时钟之间的速率差。在其他设备中,测量了传入的数据包流和本地声卡之间的速率差,但是由于在几个数据包已经被接收之前不能精确地知道该速率差,所以需要附加的缓冲以确保无干扰播出,同时获得精确的速率差估算。该附加的缓冲可以引入额外的延迟。附加地,由于数据包到达抖动负面地影响了速率估计,可能需要许多数据包以获得对传入的数据包流和该本地声卡之间的速率差的合理准确的估计。相反,通过本文所述的示例性系统算得的共享的基准时钟和该本地声卡之间的速率差可以连续地且频繁地更新而不需要媒体数据包,从而通过消除不必要的缓冲和减少启动时间来实现较短的延迟。
[0108] 第三,因为将设备内和网络上的信号与公共基准时钟进行了速率匹配,所以可以简化音频处理(例如信号的混合)。
[0109] 在示例性实施方式中,支持时间对准的共享的基准时钟还可以具有一个或多个以下优点(除了单独通过速率匹配提供的那些优点之外)。
[0110] 首先,即使每个声卡由于制造变化而可能具有不同的媒体时钟速率,也可以保留由不同声卡捕获的信号的相位对准。在示例性实施方式中,甚至可以保留连接到不同计算机的声卡之间的被捕获的信号的相位对准。
[0111] 第二,即使每个声卡由于制造变化而可能具有不同的媒体时钟速率,也可以保留从不同的声卡中播出的信号的相位对准。在示例性实施方式中,甚至可以保留连接到不同计算机的声卡之间的信号播出相位对准。
[0112] 第三,可以应用对声卡中的固定输入和输出延迟的补偿,确保不同延迟地通过声卡的信号保持时间对准。
[0113] 第四,可以在不传送或接收任何媒体数据包的情况下计算时间对准信息(即该声卡和该共享的基准时钟之间的速率差和相位偏移)。通常,已经通过在媒体数据包中包括时间戳来实现媒体流之间的时间对准,例如RTP使用挂钟时间戳来提供视频流和任何相关联的音频流之间的唇式同步。如果要进行时间对准的流来源于同一设备,则可以实现良好的对准,因为两个流都包含由两个流共享的基准时钟获得的时间戳-通常是发送设备中的系统时间。然而,来自不同设备的流通常不是时间对准的,因为许多系统没有共享的基准时钟,并且如果它们有,则可能需要为每个传入流计算时间对准信息,这是复杂的。在本文所述的示例性实施方式中,可以连续且频繁地更新该时间对准信息(每个声卡和该共享的基准时钟之间的速率差和相位偏移),而不需要媒体数据包,这支持了该媒体流之间的时间对准,而不管源如何。
[0114] 第五,附接到本文所述的示例性系统、方法和设备(例如SoundFlower)的虚拟声卡和经由虚拟声卡接口连接到示例性系统、方法和设备的应用程序可能够发送和接收经时间对准的音频。因此,可以确保传入信号的相位对准和输出信号的重放,不管该信号是来自一个或多个本地声卡还是来自网络中的其它源。结果是,软件应用程序可以执行复杂的信号处理操作,像音频源的波束转向或空间定位,因为相位对准得以保留。
[0115] 在示例性实施方式中,本文所述的系统和/或方法可以在可在计算机中执行的软件中实现。在示例性实施方式中,该软件可以负责在声卡、应用程序和网络数据包流之间传送音频信号。图1是在联网环境的背景下本文所述的系统和方法的示例性实施方式的网络图。特别地,图1示出了该软件的示例性实施方式及其环境之间的关系。
[0116] 如图1中所示,该系统可以包括一个或多个音频接口(音频I/F)。该音频I/F可以是在音频应用程序和声卡之间使用的软件层。该音频I/F可以由操作系统(例如,由Mac OS X提供的CoreAudio)提供。
[0117] 图1还包括虚拟声卡(VSC1-VSCN)。在示例性实施方式中,该软件可以定义一个或多个这样的虚拟声卡。虚拟声卡是在软件中实现的声卡。在示例性实施方式中,对于应用程序来说,虚拟和硬件声卡可能是不可区分的。在示例性实施方式中,该系统可以提供多个虚拟声卡。例如,图中所示的VSCN正被几个应用程序使用,而图中所示的VSC1和VSC2仅由单个应用程序使用。
[0118] 在正常操作期间,由附接到声卡的应用程序提供的音频通道与来自每个其他应用程序的相应音频通道混合在一起,并被传送到该音频I/F软件;并且由该音频I/F提供给应用程序的每个音频通道被复制到每个相应的应用程序输入通道中。然而,本文所述的示例性系统和方法可以实现音频接口组件,以便即使许多应用程序正在使用相同的虚拟声卡接口(例如VSCN),也使得往来每个应用程序的音频能够保持独立。在示例性实施方式中,这甚至在特定的应用程序共享虚拟声卡接口时,也可以实现它们的音频路由选择,这可能是重要的,因为声卡输入和/或输出不能被配置在许多应用程序(例如Microsoft PowerPoint)中并且许多这样的应用程序会使用“系统默认”音频声卡的输入和输出设置。
[0119] 该系统还可以包括网络接口。该网络接口可以用于发布和发现可用的联网音频通道,与该网络上的其他设备交换媒体数据包流和/或在该系统中配置信号路由选择。信号路由选择也可以经由,例如图形用户界面(GUI)应用程序、配置文件、内部配置消息或类似机制来进行本地配置。附接到该网络的其他设备也可以包括软件,但是它们也可以使用通用媒体传输系统,像Dante、AES67、AVB协议套件或RTP。该网络接口还可以用于通过该网络分配基准时钟或从该网络上接收基准时钟。
[0120] 在示例性实施方式中,执行该软件的计算机可以包括一个或多个声卡。该声卡可以内置到计算机中或者它们可以在计算机外部。许多类型的外部声卡(例如USB、Firewire和Thunderbolt)可以在有警告或无警告的情况下与计算机附接和分离。因此,在示例性实施方式中,由可分离的声卡(例如音频通道及其相关联的标签)提供的资源可以根据设备附着物而动态地出现和消失。
[0121] 在示例性实施方式中,该系统还可以支持独立的虚拟声卡(SVSC)。存在若干类型的虚拟声卡,特别是聚合驱动程序(其将来自两个或更多个声卡的通道组合到单个声卡中)和应用程序间的共享驱动程序(其通常以环回方式将音频从输入通道复制到输出通道)。在示例性实施方式中,本文所述的系统和方法可以经由标准音频接口API附接到独立的虚拟声卡,例如Mac OS X聚合驱动程序和SoundFlower。
[0122] 图2是本文所述的系统和方法的示例性实施方式的功能框图。特别地,图2描绘了本文所述的系统和方法的示例性软件实现的功能元件。最外面的框内的元件是示例性系统的一部分。但是针对上下文提供了应用程序、声卡、声卡接口和网络接口,其在最外面的框的外部并且在本文所述的系统的外部。在实践中,本文所述的系统和方法的实际实现可以出于效率、源代码管理、性能、延迟等原因而组合功能块或者不同地重构块。
[0123] 如图所示,该系统包括基准时钟,其在图中向许多系统组件提供标记为ref_clk的时钟信号。在示例性实施方式中,该ref_clk信号可以提供信息的速率和相位/时间对准中的一个或两个。图2中标记为“VSC1”-“VSCN”(虚拟声卡)的块示出了ref_clk输入,因为该基准时钟可以支配该应用程序和该虚拟声卡之间音频样本传送的速率。图中标记为“速率/相位匹配”的块示出了ref_clk输入,因为异步采样率转换器可以对音频缓冲器和声卡1-N之间的音频进行速率匹配以及可选地进行相位对准。对该异步采样率转换器的适当的控制可能需要对每个声卡媒体时钟速率和该基准时钟之间的速率差的估计以及对每个声卡媒体时钟和该基准时钟之间的相位差的估计。标记为“媒体流TX&RX”的块示出了ref_clk输入,因为媒体数据包被产生和消耗的速率可以由该ref_clk信号直接支配。
[0124] 附加地,可以使用该ref_clk信号对媒体数据包加时间戳,从而允许包含在其中的媒体在接收机处进行了时间对准。通常,该系统可以在网络中使用并且可以与其他联网的设备交换音频。在这种情况下,该ref_clk信号可以被锁定到共享的网络基准时钟(例如,由网络时间协议,如IEEE1588、802.1AS或NTP提供;或者由包含定时信息的某些其他数据包流提供)。替代性地,该系统可以通过使用网络时间协议(例如IEEE1588、802.1AS或NTP)来提供共享的网络基准时钟以在整个网络上分配该ref_clk信号。附加地,由该系统传送的媒体数据包可以包含从ref_clk中导出的时间戳,并且因此可以由从该系统接收媒体流的设备使用以导出从属于该系统ref_clk信号的时钟。在示例性实施方式中,由该系统传送的媒体数据包流将至少提供关于该ef_clk信号的速率的信息,因为该ef_clk信号直接支配传送媒体数据包的速率。
[0125] 在示例性实施方式中,该系统的该媒体接口旨在以规则和可预测的间隔传送音频,然而接口可能在某种程度上受到定时变化的影响。根据该接口,时序变化幅度可以在微秒到毫秒到几秒的范围内。例如,当媒体数据包通过包含其他业务的网络时,它们可能经历延迟的抖动;应用程序在操作多任务系统时经历调度抖动;以及音频的定时根据该声卡媒体时钟和漫游器之间的速率差,向/从声卡传送关于ref_clk的节拍并且当该声卡硬件时钟随温度变化时漫游。因此,在示例性实施方式中,该系统可以包括音频缓冲器。该系统中的该音频缓冲器可以被配置成补偿媒体信号通过该系统接口到声卡、应用程序和该网络的传送中的时序变化。该系统中的该音频缓冲器也可以用于延迟信号,使得它们可以经过时间对准。例如,两个硬件声卡可以具有不同的输入和/或输出延迟。可以引入延迟以通过将音频样本存储在该音频缓冲器中来补偿信号之间的固定相位偏移。
[0126] 在示例性实施方式中,该系统可以进一步包括音频路由选择/信号路由选择块。该音频路由选择块可以被配置成将来自由应用程序、声卡和媒体流提供的通道的输入音频数据传送到该音频缓冲器并将输出音频数据从该音频缓冲器传送到由应用程序、声卡和媒体流接受的通道中。在示例性实施方式中,该音频路由选择系统可以根据给定应用程序所需的信号路由选择,经由该音频缓冲器在输入和输出通道之间传送音频数据。
[0127] 从用户的角度来看,可以使用通道标签和设备名称来配置音频信号路由选择。路由选择控制块可以将由该用户指定的基于标签的信号路由选择转换成更简单的音频通道路由选择配置,这又可以控制该音频路由选择块在该音频缓冲器和应用程序、声卡和媒体流之间传送音频数据的方式。
[0128] 为了允许几个输入信号被同时发送到单个输出端口,该音频路由选择块可以提供矩阵混合功能。在示例性实施方式中,矩阵混合可以包括构造输出信号的能力,该输出信号是被发送到该输出端口的输入信号组的加权和。附加地,在示例性实施方式中,输入信号可以同时被发送到许多输出端口。
[0129] 图3是用于使用矩阵混合的信号路由选择的用户界面的示例性实施方式。在图3中,四个输入通道(iTunes左、iTunes右、M-追踪麦克风左和M-追踪麦克风右)都被发送到标记为“内置扬声器左”的单个单输出通道。在该路由配置中,该输出通道是四个输入通道的混合(即加权和)。在最简单的混合情况下,权重都是1.0,但是通常每个通道在混合中可以具有不同的权重(增益/衰减)。
[0130] 因此,在示例性实施方式中,该音频路由选择块可以执行四个不同任务中的任何一个或全部。该音频路由选择块可以在声卡和音频缓冲器之间传送音频样本,在虚拟声卡接口和音频缓冲器之间传送音频样本,在网络音频流和音频缓冲器之间传送音频样本;和/或使用加权和将终点为同一输出端口的两个或更多个信号进行组合。
[0131] 如先前所讨论并且如图2中所示,该系统可以包括一个或多个速率/相位匹配块,其使用异步采样率转换器(ASRC)来适配在声卡和该音频缓冲器之间传送的音频,确保无干扰、时间对准的音频捕获和重放。在操作中,通过异步采样率转换器的B个样本的块在输出处产生R*B个样本,其中1/R是输入和输出采样率之间的比率。在示例性实施方式中,该ASRC可以改变采样间隔,同时保留由样本值表示的音频信号。
[0132] 在示例性实施方式中,因为在该声卡接口层中周期性事件按与该声卡媒体时钟直接相关的速率被触发,所以可以估算速率差。这些事件通常与从该声卡到系统存储器的音频采样缓冲器传输有关并且可以使用ref_clk加时间戳。所得到的时间戳的序列可用于估算该声卡媒体时钟与该ref_clk之间的速率差,并估算该声卡媒体时钟与该ref_clk之间的相位差。在示例性实施方式中,该速率/相位匹配块可以在锁相环(PLL)中使用速率和相位差估算来控制ASRC比参数,使得提供给该声卡接口并由其消耗的样本的速率与长期以来提供给该系统音频缓冲器并由其消耗的样本的速率相匹配(或至少基本上相匹配)。在示例性实施方式中,这对于无干扰的音频来说可能是期望的。附加地,该声卡媒体时钟(在其已经通过ASRC之后,由该音频缓冲器传送中的第一样本的相位表示)和该ref_clk之间的相位差在短期内被减小并且在长期内最小化(或至少基本上最小化)。
[0133] 用于使一个时钟跟踪另一个时钟的锁相环(PLL)技术在本领域中得到了很好地理解并且应该为本领域普通技术人员很好地理解。在示例性实施方式中,可以通过调整该ASRC比参数使通过该ASRC适配的该声卡媒体时钟跟踪该ref_clk。
[0134] 图2中的系统还包括多个虚拟声卡接口(VSC1-VSCN)。该虚拟声卡是该系统和该音频应用程序之间的接口。该接口对应用程序来说,作为声卡出现,然而它们可以在软件中实现。应用程序向以及从使用标准声卡API(如CoreAudio)的系统中通过该虚拟声卡传送音频。在该应用程序和该虚拟声卡之间传送音频样本和/或缓冲器的速率由朝向该VSC块的ref_clk输入来确定。
[0135] 在示例性实施方式中,该虚拟声卡可以支持两种操作模式:(1)固定通道(在图2中示为标记为VSC1和VSC2的块)和/或(2)应用程序Mux/DeMux(在图2中示为标记为VSCN的块)。
[0136] 在固定通道操作模式中,该虚拟声卡具有固定数量的输入和输出通道。该虚拟声卡使用标准声卡API(例如CoreAudio)向音频应用程序提供输入和输出通道以及在音频通道缓冲器和虚拟声卡输入和输出之间存在一一对应的关系。应用程序使用标准声卡API向/从该虚拟声卡中传送音频数据,该虚拟声卡进而向/从该系统音频缓冲器中传送音频数据。在示例性实施方式中,典型的声卡行为可以应用在固定通道模式中。例如,来自共享相同的虚拟声卡的应用程序(例如,图2中的App21-App2K)的音频输出可以由该声卡API混合在一起。附加地,对于连接到该虚拟声卡的每个应用程序,被提供给共享相同的虚拟声卡的应用程序(例如,图2中的App21-App2K)的音频输入可以由该声卡API进行复制。
[0137] 在应用程序复用/解复用的操作模式中,该虚拟声卡具有固定数量的输入和输出通道,然而在该音频路由选择块和该虚拟声卡之间有可用的附加通道。该固定的输入和输出通道在图2中被标记为“混合”。附加的通道具有与连接到该虚拟声卡接口的音频应用程序一对一的关联关系并且在图2中被标记为App1、App2……AppN。通过App1通道的音频其专有来源是AppN1;或者其专有终点是AppN1。通过App1通道的音频不会与来自连接到VSCN的其他应用程序(AppN2-AppNK)的音频混合。同样,通过每组AppK通道的音频专门与应用程序AppNK相关联。使用这样的系统,即使当特定的应用程序被附接到同一声卡时,也可以向/从该特定的应用程序中发送音频。
[0138] 在示例性实施方式中,本文所述的系统、方法和设备还可能够创建混合组。图4是用于使用混合组进行信号路由选择的用户界面的示例性实施方式。在示例性实施方式中,输入通道可以由该音频路由选择块混合在一起以形成称为“混合组”的另一组通道。由混合组创建的新的输入和输出通道可以被给予标签并以与该系统中的任何其他通道相同的方式出现在路由矩阵中。对于连接到虚拟声卡接口的应用程序以及在需要以灵活方式组合信号的许多典型应用程序中,这种功能对于创建默认输入和默认输出混合可能是期望的。在示例性实施方式中,与该混合组相关联的输入和输出通道标签可以出现在该路由矩阵中,使得可以为该混合组中的每个通道,选择将被混合在一起的输入通道;和/或可以将由该混合组创建的通道发送到声卡、应用程序并且通过网络甚至进入附加的混合组输入中。
[0139] 在示例性实施方式中,从应用程序、声卡或网络流进入该系统的音频可以在作为音频通道离开该系统之前通过一个或多个混合组到应用程序、声卡或网络流。
[0140] 如图4所示,矩阵路由视图包括分别被标记为“从Apps”和“到Apps”的两个混合组。在图4所示的实施方式中,来自被标记(为“内置麦克风”)的本地麦克风输入和被标记(为“网络麦克风”)的网络麦克风的音频被混合以为该记录应用程序(“记录App”)提供输入通道。来自“iTunes”应用程序、网络源(“网源”)和麦克风(“内置麦克风”)的音频在被传送到网络连接的扬声器(“网扬声器”)之前被混合在一起。
[0141] 如上所述,固定的通道可以像典型的声卡那样表现-来自共享相同的虚拟声卡的应用程序的音频输出被混合在一起,以及针对经由该声卡API连接的每个应用程序,被提供给共享相同的虚拟声卡的应用程序的音频输入可以被复制。该行为可以通过在创建该虚拟声卡时,创建针对该固定的输入通道的混合组以及针对该固定的输出通道的混合组来实现。针对该固定的输入通道的混合组根据用户配置组合来自应用程序的音频通道。针对该固定的输出通道的混合组根据用户配置将矩阵输入通道组合到发送给应用程序的音频通道中。
[0142] 如果应用程序没有用于其输入通道的特定路由,则它可以接收来自图2中被标记为“混合”的固定通道的音频。如果应用程序没有用于其输出通道的特定路由,则其提供的音频可以被混合到图2中被标记为“混合”的固定的通道中。
[0143] 替代性地,如果应用程序具有针对其输入通道的特定路由,则其可以专门接收来自相关联的App通道(在图2中被标记为App1……AppN)的音频。注意,由该音频路由选择块提供的矩阵混合器允许将几个输入通道混合在一起成为专门与应用程序相关联的输出通道。相反,如果应用程序具有针对其输出通道的特定路由,则其可以将音频专门传送到相关联的App通道(在图2中被标记为App1……AppN)。来自此应用程序的音频可能不会混入被标记为“混合”的音频通道。
[0144] 用于路由选择的系统可用的音频资源(输入和输出通道)可以随时间变化。在实施方式中,每个音频资源可以具有相关联的标签和设备名称(例如,通道-标签@设备-名称)。输入和输出之间的信号路由选择可以用通道标签和设备名称来表达,而不管该信号是位于计算机内部(例如声卡和应用程序)还是网络上的某处。
[0145] 由于各种原因,例如,声卡可以与该系统附接和/或分离,应用程序可以被启动和/或停止,网络通道可以随着设备被添加或从网络中移除或者当网络故障发生并被纠正时而出现和/或消失,以及混合组被创建或删除,音频资源可能出现和消失。
[0146] 当音频资源出现时,该系统可以将每个音频通道与通道标签和设备名称(通常是运行软件的计算机的名称)相关联并且在该网络上发布这些通道的可用性。该系统可以将音频通道作为Dante网络通道发布或可以使用任何其他的发布系统。所发布的信息可以允许连接到该网络的其他设备发现可用的通道并且配置媒体数据包流以向和从该系统内部的音频资源处,传送音频。
[0147] 当音频资源消失时,该系统可以移除与音频资源相关联的不再可用的发布。其他Dante设备可能不能发现不再可用的音频资源,并且因此将不能建立通向/来自不再可用的通道的媒体流。
[0148] Dante控制器是可以使用由本文所述的系统提供的发布,通过网络执行信号路由选择的独立的应用程序的实例。在示例性实施方式中,信号路由选择可以是与媒体信号传输分离的功能。例如,Dante控制器可以配置信号路由选择,但不产生也不消耗媒体数据包流。
[0149] 在示例性实施方式中,发布和发现块可以以各种方式感测可用的音频资源的到达和离开,包括但不限于:设备被附接和分离时的USB热插拔事件(Firewire和Thunderbolt具有类似事件);检测与输入或输出端口的连接的存在或不存在的阻抗感测事件;网络接口事件,例如链路运行和链路断开;网络上的Dante通道发布的出现和消失;和/或应用程序与该VSC接口附接和分离而启动和停止时系统虚拟声卡(VSC)接口提供的信息;以及来自其他功能块(如路由控制和/或音频路由选择)的已经创建或删除混合组,已经改变通道标签,已经改变参数(例如采样率或通道数量)等的通知。
[0150] 在示例性实施方式中,可以向该系统内的其他功能块提供关于音频资源的到达和离开的信息,以便于根据需要进行功能块(例如,与可移除的声卡相关联的速率/相位匹配块)的实例化和回收;支持网络通道资源和媒体数据包流的及时创建和删除;以及经由“音频路由选择”块触发信号路由选择的配置。
[0151] USB声卡的输入和输出通道可以通过连接由该USB声卡驱动程序提供的设备名称和短标识符来形成。如果该设备是单通道,则不需要附加短标识符。如果该设备具有两个通道,则可以附加标识符“左”和“右”(例如,“M-跟踪麦克风左”和“M-跟踪麦克风右”)。如果该设备有两个以上的通道,则可以附加数字1……N。如果该USB声卡驱动程序可以提供非数字通道标签,则可以附加这些标签而不是数字或左/右标签。如果连接了几个具有相同的USB设备名称的USB设备,则可以在该设备名称后面将数字插入该通道标签,以区别每个设备的通道标签。
[0152] 以固定的通道模式运行的虚拟声卡的输入和输出通道可以用从提供给该虚拟声卡接口的名称中导出的名称来发布。例如,如果该虚拟声卡接口被称为“DAW”,则所发布的通道可以被标记为“DAW In 1”、“DAW In 2”,……“DAW In 16”、“DAW Out 1”,……“DAW Out 16”)。
[0153] 以应用程序Mux/DeMux模式运行的虚拟声卡接口的“混合”通道可以用从提供给该虚拟声卡接口的名称中导出的名称来发布。例如,用于具有名称“默认”的两输入、两输出虚拟声卡接口的“混合”通道标签可以是“默认In左”、“默认In右”、“默认Out左”、“默认Out右”。
[0154] 虚拟声卡接口的“App”通道可以用从附接到该接口的应用程序导出的名称来发布。例如,假设该应用程序被称为Skype,则该通道可以标记为“Skype In”和“Skype Out”。描述特定应用程序的默认通道标签的预设允许将敏感标签应用于应用程序。
[0155] 可能期望的是,即使当音频资源与该系统附接和分离时,也向它们分配一致的标签。可能期望的是,USB声卡的输入和输出与其附接和分离时保持相同。这可以允许对音频信号进行路由选择和配置有稳定的名称。附加地,可能期望的是,两个相同的声卡,不管它们附接和分离的顺序如何,均保持与其输入和输出中的每一个相关联的标签。在示例性实施方式中,USB和Firewire设备可以具有唯一的标识符,其可以用于在设备重新附接到系统时恢复正确的标签。应用程序的情况可能更加困难,因为给定的应用程序的几个副本可以同时被附接到虚拟声卡。尽可能地,在示例性实施方式中,可以从应用程序名称和与每个实例相关联的关联用户名的组合中导出稳定的通道标签。
[0156] 一般地,该用户可以撤销给定的音频资源的通道标签,并且这些改变可以是或可以不是持久的。在示例性实施方式中,该系统可能够存储由该用户配置的通道标签(假定该标签所指的音频资源可以被明确地标识),该系统可以在下一次插入该设备时或下次启动该应用程序时将相同的标签用于该通道。
[0157] Rialto设备内的通道标签必须是唯一的。在网络中,通道标签在设备名称的范围内,并且该设备名称在整个网络中又必须是唯一的,以便通道-标签@设备-名称能够唯一地识别网络中的音频资源。
[0158] 如图所示,图1中所示的系统还包括可以负责在网络上发送和接收音频信号的媒体流TX和RX块。该系统可以使用Dante网络通道,然而可以使用其他信号传输,包括但不限于AES67、AVB协议套件和/或RTP。
[0159] 响应于该用户的配置,该路由选择控制块可以指示该媒体流TX&RX块在该媒体数据包流和该系统音频缓冲器之间发送或接收媒体数据包流和/或传送音频样本。媒体数据包生成和消耗的速率直接由该ref_clk支配。音频通道到媒体数据包流的精确映射是策略的问题并且由该路由选择控制块决定。
[0160] 图2中的系统还包括路由选择控制块,其配置该系统内的各种功能块以实现由该用户在信号标签中表达的路由配置。当进行基于标签的路由改变时,该路由选择控制块可能需要:
[0161] ·发现网络通道及其参数。
[0162] ·配置该媒体流TX&RX块以向另一个联网的设备发送音频通道或者接收来自媒体数据包流中另一个联网的设备的通道。
[0163] ·重新配置从音频通道到流向/来自该系统音频缓冲器的现有媒体包流/反方向的传输映射。
[0164] ·重新配置音频路由选择块通道路由选择以匹配该标签指定的所需信号路由选择。
[0165] ·例如,当添加或删除到应用程序的特定路由时,更改以Mux/DeMux模式运行的该VSC接口的该音频通道传输映射。
[0166] ·重新配置从与混合组相关的音频缓冲器到音频通道/反方向的传输映射。
[0167] 在示例性实施方式中,该路由选择控制块在音频资源出现和消失时,监听由该发布&发现块生成的事件,并且执行恢复先前配置的音频路由所需的动作或者删除不再需要的路由。可能需要这样的动作的事件的实例包括但不限于附接可移除的声卡,拆卸可移除的声卡,启动连接到VSC接口的应用程序,停止连接到VSC接口的应用程序,网络通道变得可用,网络通道消失和/或创建或删除自定义混合组。
[0168] 在示例性实施方式中,为了跨网络发送和接收信号,该路由选择控制块可能需要使用该发布&发现块来获取创建媒体数据包流所需的信息,例如:IP地址、端口号、通道映射、音频格式、采样率等。
[0169] 图5A-5D是用于媒体信号的发现和路由选择的用户界面的示例性实施方式。如图所示,这些图示出了当运行本文所述的系统的计算机中音频资源出现和消失时的控制器矩阵路由选择视图。该控制器矩阵视图示出了网络通道输入和输出。在示例性实施方式中,可以通过在交叉点上点击来在输入和输出之间进行信号路由选择。
[0170] 图5A是用于其中USB设备断开的媒体信号的发现和路由选择的用户界面的示例性实施方式。当该USB设备断开时,无法解析其通道的标签。这就是为什么在Dante控制器视图中扬声器输入通道旁边显示两个圆形符号的原因。
[0171] 图5B是用于其中连接有USB设备的媒体信号的发现和路由选择的用户界面的示例性实施方式。当该USB设备(M-追踪麦克风)被连接时,为每个USB麦克风通道创建新的Dante发送通道。可以通过连接该USB设备名称“M-追踪麦克风”和用于该通道的USB声卡驱动程序标签(即词语“左”和“右”)来构建该通道标签。
[0172] 图5C是用于其中应用程序(例如iTunes)断开的媒体信号的发现和路由选择的用户界面的示例性实施方式。当该iTunes应用程序未运行时,无法解析其通道的标签。这就是为什么在Dante控制器视图中扬声器输入通道旁边显示两个圆形符号的原因。
[0173] 图5D是用于其中连接有应用程序(例如iTunes)的媒体信号的发现和路由选择的用户界面的示例性实施方式。当启动音频应用程序(iTunes)时,通过将该应用程序名称(iTunes)与该标签“左”和“右”(其可以假设,因为虚拟声卡只有两个通道)连接来构建其输出的通道标签。
[0174] 图6是用于联网通道的内部路由选择的用户界面的示例性实施方式,其示出了如何可以使用该控制器(其配置网络通道之间的路由选择)来配置运行系统(如本文所述的系统)的计算机内的音频路由选择。在图6中,iTunes的输出被发送到该计算机的该默认声卡输出。该路由选择完全在该计算机内部。没有信号作为媒体数据包流通过网络。
[0175] 虽然本文已经示出和描述了实施方式,但是对于本领域技术人员来说显而易见的是,这样的实施方式仅以示例的方式提供。意图是以下权利要求限定本发明的范围,并且由此涵盖这些权利要求及其等同物的范围内的方法和结构。