音频流通知及处理的制作方法

文档序号:6594690阅读:339来源:国知局
专利名称:音频流通知及处理的制作方法
音频流通知及处理
背景技术
现代计算设备通常能够执行各种不同的任务,通常是同时地或者伪同时地执行。 这种能力经常导致计算设备资源的竞争。关于计算设备的音频输入/输出资源的竞争,某 些现有的音频资源管理方案利用被称作“抑制(ducking)”的音频流衰减行为。抑制指的是 响应于特定事件或者标准的音频流的音量的衰减。在一个例子中,汽车被配置为检测汽车 乘客的来电呼叫。当汽车检测到来电呼叫时,如果有任何音频设备正在呈现汽车内部的音 频信号,那么该汽车将自动抑制该音频信号(例如,以一个特定的量来降低音频信号音量, 例如50% ),以便该电话可以被听到,并且车辆乘客能够通过电话交谈,而不会被音频信号 过度干扰。虽然存在用于这种简单场景的音频资源管理方案,但是它们仍然有许多缺点,使 其不适于更加复杂或者有细微差别的应用。首先,特定方案通常仅仅对特定的一个或一组 应用起作用。其次,该方案通常不够灵活,对于音频资源的管理很少提供选择。发明概要各种实施例允许应用决定退出系统音频流行为。例如,特定系统可以包括默认的 系统行为,该系统行为响应于通信音频流被启动而衰减非通信音频流。如果应用已经决定 退出系统音频流行为,那么与该应用相关的非通信音频流将不会响应于通信音频流被启动 而被衰减。某些实施例通知计算设备上的应用和/或进程一通信音频流已经被启动了。在这 些实施例中,应用/进程可以注册来接收该通信音频流已经被启动的通知。响应于该通知, 该应用可以在该应用所拥有的音频流上启动一个或多个定制音频流行为。在某些实施例中,应用/进程可以注册过滤的或未过滤的通知。在过滤的通知场 景中,当与应用/进程相关联的音频流还没有响应于不同的通信音频流的启动而被修改 时,该应用/进程被通知一通信音频流已经启动。在未过滤的通知场景中,只要通信音频流 已经启动,该应用/进程就被通知,即使该流不是该应用/进程所拥有的。提供本概要来介绍简单形式的概念选择,这在以下详细说明中还会描述。本概要 不意欲识别所要求主题的关键特征或必要特征,也不意欲被用来限制所要求主题的范围。附图的简要说明在整个附图中使用相同的数字表示相似的特征。附

图1示出了根据一个或多个实施例其中可以采用这里所述的用于音频流通知 和处理的各种原则和技术的操作环境。附图2是根据一个或多个实施例的用于注册用于音频流通知的应用以及响应于 通信流的启动处理音频流的进程的流程图。附图3是根据一个或多个实施例的用于通信流终止的音频流通知的进程的流程 图。附图4是根据一个或多个实施例的用于通知应用通信音频流已经启动的进程的 流程图。
附图5是根据一个或多个实施例的用于通信流启动和终止的过滤的和/或未过滤 的通知的进程的流程图。详细说明纵览各种实施例通知计算设备上的应用和/或进程一通信音频流已经启动。为了讨论 的目的,这里所用的术语应用指的是任意数量的不同进程、软件、程序、可执行文件,等等, 并且不意欲限制所要求主题的范围。音频流可以由采用数字形式的音频数据组成,并且在 某些例子中,数字音频数据通过脉冲编码调制(PCM)来编码。音频流通知可以被配置在通 信相关音频流(通信流)和非通信相关的音频流(非通信流)之间进行区分。通常说来, 通信流包括传输所捕获的音频数据的捕获流,以及传输要被呈现的音频数据的呈现流。同 样,通信流典型地包括语音相关的音频数据(例如,语音聊天、电话呼叫、语音邮件,等等)。 非通信流通常不包括捕获流和呈现流两者。音频流可以包括描述音频流的各方面和属性的 元数据,例如,音频流是通信流还是非通信流。在某些实施例中,应用可以注册来接收一通信流已经启动的通知。该应用可以被 配置为遵照系统默认音频流处理策略,或者其可以决定退出系统默认音频流处理策略(并 且可选地执行其自己的定制的行为)。一个示例的系统默认音频流处理策略指定当通信音 频流被启动时,所有非通信音频流要以指定百分率来抑制,同时通信音频流是活动的。在某 些实施例中,应用可以注册过滤的或者未过滤的通知。在过滤的通知场景的一个例子中,仅 当与该应用相关的音频流还没有响应于不同通信流的启动而被修改时(例如,通过默认的 音频流处理策略),该应用被通知一通信流已经启动。在未过滤的通知场景的一个例子中, 只要通信流被启动,该通知/进程就被通知,即使该流不是该应用/进程所拥有的。在以下讨论中,提供了一种题为“操作环境”的章节,其描述了其中可以采用一个 或多个实施例的环境。在此之后,提供了一种题为“示例进程”的章节,其描述了能够执行 这里所讨论的各种原理和技术的进程。操作环境附图1在100概括示出了操作环境的一个例子,根据一个或多个实施例,该操作环 境可操作来采用用于音频流通知和处理的一个或多个技术和/或进程。环境100包括计 算设备102,该计算设备102具有一个或多个处理器104、一个或多个音频输入/输出设备 106,以及一个或多个计算机可读介质108。计算设备102可以被具体化为任意适合的计算 设备,例如,以举例的方式但不限于,台式计算机、便携式计算机或者手持式计算机,例如个 人数字助理(PDA)、蜂窝电话等等。计算设备102被配置为使其可以与一个或多个网络(未 示出)相连接,例如局域网、广域网、因特网、万维网等等。音频输入/输出设备106为计算设备102提供音频输入/输出功能,并且可以包 括扬声器、麦克风、声卡等等。计算设备102的所示部分是一个或多个通信应用110、一个或多个非通信应用 112,以及操作系统114。通信应用的例子包括可操作来捕获和呈现音频信号的应用,例如因 特网协议语音(VoIP)应用、某种互联网消息收发应用、交互式游戏应用等等。非通信应用 通常包括呈现音频的应用,例如媒体播放器应用、系统通知应用或进程等等。操作系统114 可以包括一个或多个默认策略,用于为计算设备处理音频流(例如,通信流和/或非通信流)。计算设备102还包括音频服务116,并且该音频服务包括音频流管理器118和通知 工具120。该音频流管理器被配置为执行计算设备的各种任务,例如跟踪音频流、维护音频 流标识符的列表、检测音频流是通信流还是非通信流,以及执行音频流衰减。响应于通信流 的启动,音频流管理器可以识别要被抑制的一个或多个音频流,并执行对各音频流的抑制。 该通知工具被配置为处理音频服务的通知注册,并向已经注册该通知的应用发送通知。在某些实施例中,特定应用可以不被配置为将其音频流识别为通信流或者非通信 流。在这些实施例中,计算设备的音频服务和/或其他功能可以被配置来识别该应用,并将 该应用的音频流标记为通信流或者非通信流。例如,音频服务可以维护一个或多个应用的 应用列表,以及识别该应用为利用通信流和/或非通信流的标识符。音频引擎122被存储在计算机可读介质中,并包括混合缓冲器124,以及一个或多 个音频处理对象(APO) 126。除其他任务以外,音频引擎还作为传送组件,用于将音频流从应 用传送到音频设备。混合缓冲器组合音频流,并使组合的流可用于音频设备。每个音频处理 对象被配置为在音频流上执行一个或多个不同的信号处理任务,例如流衰减、音频率调制、 信道混合(例如,增加和/或减少流中的信道数量),和/或任何其他适合形式的音频信号 处理。示例处理附图2-4示出了根据一个或多个实施例,实现这里所述原理和技术的方面的进程 和操作场景的例子。这些进程可以连同任何适合的硬件、软件、固件或其组合来实现。附图2示出了流程图200,表示了用于决定退出系统音频流行为的一个进程。在 202,非通信音频流被应用启动。在204,通信音频流从应用外部的源启动。音频流(包括通 信流和/或非通信流)的启动可以使得音频服务指定音频流的特定的音频处理对象(APO) 或APO的集合。音频服务可以包括维护对音频流的每个APO的引用的逻辑。在某些实施例 中,这允许音频服务响应于通知或其他事件,对音频流执行行为修改。例如,当通信流被启 动时,音量衰减APO可以响应于通信流启动而衰减音频流的音量。框206确定该应用是否之前已经决定退出了系统默认抑制行为。例如,系统音 频服务可以指定系统默认抑制行为,当通信流被启动时,该系统默认抑制行为以预定的量 (例如,30 %、50 %等等)来自动衰减非通信流的音量。如果该应用没有决定退出系统默认抑制行为(“否”),那么该默认抑制行为被应 用于应用的非通信流。如果该应用已经决定退出系统抑制行为,那么该默认抑制行为不被 应用于应用的非通信流。在210,该系统音频被呈现,包括应用的非通信流和来自外部源的 通信流。在某些实施例中,应用能够通过调用“决定退出”应用编程接口(API),决定退出默 认系统抑制行为,该应用编程接口向该系统通知该应用正在决定退出默认行为。API可以由 音频服务提供给该应用。附图3示出了流程图300,表示了确定该应用是否已经决定退出系统默认取消抑 制行为的一个进程。在302,从应用外部起源的通信流被终止。在一个实施例中,通信流的 终止是由于通信应用关闭了打开的通信流而发生的。在304,确定该应用是否已经决定退出 了默认系统取消抑制行为。如果该应用没有决定退出默认取消抑制行为(“否”),在306, 默认取消抑制行为被应用于应用的音频流。在一个示例实施例中,默认取消抑制行为可以使得响应于通信流的启动而被衰减的音频流返回到衰减前水平。如果该应用已经决定退出 了默认抑制行为(“是”),在308,与该应用相关的音频流被呈现,而不会应用默认取消抑制 行为。附图4示出了用于向应用通知通信音频流已经启动的一个示例进程的流程图 400。这个示例进程假定该应用已经注册了这类通知。注册可以通过音频服务来处理,该音 频服务可以追踪应用注册(例如,通过应用和/或音频流ID),并且当通信流被启动时通知 注册的应用。在一个示例实施例中,该应用可以通过调用应用编程接口(API)来注册通知, 以向音频服务注册回叫对象。框402启动音频流。框404确定该音频流是通信音频流。框406通知该应用该通 信音频流已经被启动。在其他示例实施方式中,框404可以确定该音频流是非通信音频流, 并且因此如框406中的,该应用将不被通知。框408将一个或多个应用特定行为应用于该 应用所拥有的音频流。在一个或多个实施例中,该应用特定行为可以由用户来配置。框410 终止该通信音频流,并且框412通知该应用该通信音频流终止。附图5示出了流程图500,表示了实现过滤的和/或未过滤的通知的一个进程。在 502,应用注册该通信流启动的通知。在504,通信流被启动。在506,确定该应用注册了过 滤的通知还是未过滤的通知。在一个实施例中,当该应用注册通知时(例如,如动作502中 的),该应用可以指定仅当响应于另一个通信音频流的启动,与该应用相关的音频流还没有 被修改时,向其通知一通信流启动(“过滤的通知”)。在一个例子中,当通信流被启动时,音频服务可以确定一个或多个活动的音频流 要被抑制。如果与该应用相关的音频流还没有被抑制(例如,响应于另一个通信流的启 动),并且该应用已经注册了过滤的通知,那么该应用将得到通知一通信流已经被启动,并 且与该应用相关的音频流将被抑制。然而,在这个例子中,如果音频流已经被抑制了,并且 该应用已经注册了过滤的通知,那么该应用将不被通知该通信流启动。如上所述,该应用 可以服从系统默认抑制行为,和/或该应用可以响应于通信流的启动而执行定制音频流行 为。如果该应用已经注册了未过滤的通知,那么该应用被通知一通信流的启动(例 如,通信应用将要开始将音频信号传递到通信流),无论该应用所拥有的音频流是否已经响 应于另一个通信流的启动而被修改。在一个实施例中,该通知可以包括由音频服务生成的 数据分组。该数据分组可以包括回叫方法,该方法通知该应用该通信流已经被初始化,并且 该音频流将要被创建。未过滤的通知可以允许应用响应于通信流启动而执行定制音频流行 为。返回到对流程图的讨论,如果该应用已经注册过滤的通知(“过滤的”),在508确 定与该应用相关的音频流是否已经响应于另一个通信流的启动而被修改。在某些实施例 中,该修改可以包括一个或多个系统默认行为修改,这些修改响应于通信流的启动而发生, 例如非通信流抑制。如果该音频流没有被修改,在510,该应用被通知该通信流的启动。如果 在508确定与该应用相关的音频流已经响应于另一个通信流的启动而被修改,那么在512, 该应用不被通知该通信流的启动。返回到动作506,如果该应用注册了未过滤的通知(“未过滤的”),那么在510,该 应用被通知该通信流的启动。在未过滤的通知场景中,该应用被通知一通信流的启动,即使与该应用相关的音频流已经响应于另一个通信流的启动而被修改。虽然参考通信流启动讨 论了进程500,但是该进程还可以被应用于通信流终止的通知。这里所述的进程和场景是参考音频流抑制而讨论的。然而,抑制被用于示例音频 流行为的目的,且构想了这里所述的进程和技术可应用于各种不同的音频流行为。这里在软件或程序模块的大背景中描述了各种技术。通常,软件包括执行特定任 务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构,等等。这些模块和技术的 实现可以被存储在计算机可读介质的某种形式,或者通过计算机可读介质的某种形式来传 送。计算机可读介质可以是能够由计算设备访问的任意类型的媒介或介质。以举例的方式, 但不限于,计算机可读介质可以包括“计算机存储介质”。“计算机存储介质”包括用于信息存储的以任意方法或技术实现的易失性的和非 易失性的、可移动的和不可移动的介质,例如计算机可读指令、数据结构、程序模块,或其他 数据。计算机存储介质包括但不限于,RAM、ROM、EEPR0M、闪存或其他存储技术、CD-ROM、数 字化通用光盘(DVD)或其他光学存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备,或 能够用来存储所需信息并且能够由计算机访问的其他任何介质。Mlt上述原理和技术提供了用于计算设备的音频流通知和音频信号处理。尽管已经以 特定于结构特征和/或方法动作的语言来描述本主题,应该理解,在所附权利要求中所定 义的主题不必要限定于所述特定的特征或动作。相反,上述特定的特征和动作是作为实现 权利要求的示例形式而公开的。
权利要求
1.一种方法,包括启动音频流,该音频流是通信音频流或者非通信音频流;确定该音频流是通信音频流;以及响应于该确定,向应用通知该通信音频流已经被启动。
2.如权利要求1所述的方法,其特征在于,通信音频流包括音频捕获流和音频呈现流。
3.如权利要求1所述的方法,其特征在于,通信音频流包括将音频流识别为通信音频 流的元数据。
4.如权利要求1所述的方法,其特征在于,确定的动作包括在音频流中检查将该音频 流识别为通信音频流或者非通信音频流的标识符。
5.如权利要求1所述的方法,其特征在于,向该应用通知的动作包括向应用提供应用 编程接口(API),其允许该应用决定退出默认非通信音频流行为,该行为是响应于通信音频 流的启动而发生的。
6.如权利要求5所述的方法,其特征在于,默认非通信音频流行为包括衰减一个或多 个非通信音频流。
7.如权利要求1所述的方法,其特征在于,还包括从该应用接收指示,指示该应用正在 决定退出默认非通信音频流行为,该默认非通信音频流行为包括一个或多个非通信音频流 处理行为,该行为响应于通信音频流的启动而被应用于一个或多个非通信音频流。
8.如权利要求7所述的方法,其其特征在于,该应用将一个或多个应用特定音频流行 为应用于该应用所拥有的非通信音频流。
9.如权利要求1所述的方法,其特征在于,还包括终止该音频流;以及向该应用通知该通信音频流已经被终止。
10.一种方法,包括启动通信音频流;确定应用注册了通信音频流的启动的过滤的通知还是未过滤的通知;响应于确定该应用注册了通信音频流的启动的过滤的通知确定与该应用相关的非通信音频流是否已经被修改;以及响应于确定与该应用相关的非通信音频流还没有被修改,向该应用通知该通信音频流 的启动;以及响应于确定该应用注册了通信音频流的启动的未过滤的通知,向该应用通知该通信音 频流的启动。
11.如权利要求10所述的方法,其其特征在于,该应用通过调用应用编程接口(API)来 注册为过滤的通知或者未过滤的通知,以向音频服务注册应用回叫对象,该应用回叫对象 被配置为从音频服务接收通知该通信音频流的启动的通知。
12.如权利要求10所述的方法,其其特征在于,该通信音频流包括音频捕获流和/或音 频呈现流。
13.如权利要求10所述的方法,其其特征在于,该通信音频流包括将流识别为通信音 频流的元数据。
14.如权利要求10所述的方法,其其特征在于,默认行为修改包括衰减一个或多个非通信音频流。
15.如权利要求10所述的方法,其其特征在于,通知的动作包括提供可以由该应用调 用的应用编程接口(API),以指示该应用正在决定退出默认行为修改,该默认行为修改包括 音频流行为,该行为响应于通信音频流的启动而被应用于一个或多个非通信音频流。
16.如权利要求10所述的方法,其其特征在于,注册过滤的通知包括当与该应用相关 的非通信音频流已经被修改的情况下,请求该通信音频流的启动的通知。
17.如权利要求10所述的方法,其其特征在于,该应用提供指示,指示该应用正在决定 退出默认音频流行为修改,该行为是响应于通信音频流的启动而发生的。
18.如权利要求17所述的方法,其其特征在于,响应于该应用被通知该通信音频流的 启动,该应用将一个或多个应用特定音频流行为应用于与该应用相关的非通信音频流。
19.存储计算机可执行指令的一个或多个计算机可读存储介质,该计算机可执行指令 可以由计算设备执行以实现一种方法,包括向应用提供通信音频流已经被启动的通知;接收该应用正在决定退出默认系统行为的指示,该默认系统行为指定了响应于通信音 频流的启动,一个或多个行为修改被应用于非通信音频流;以及响应于该通信音频流的启动,将应用特定启动行为应用于与该应用相关的非通信音频流。
20.如权利要求19所述的方法,其特征在于,还包括 向该应用提供该通信音频流已经被终止的通知;以及响应于该通信音频流的终止,将应用特定终止行为应用于与该应用相关的非通信音频流。
全文摘要
各种实施例提供了用于允许应用来决定退出系统默认音频流行为的技术,以及用于向计算设备上的应用通知通信音频流已经被启动的技术。该技术可以在通信相关音频流和通信不相关音频流之间进行区分。在某些实施例中,该应用可以注册来接收通信流已经被启动的通知。该应用可以被配置为遵照系统默认音频流处理策略,或者它可以响应于音频流通知而执行定制行为。在某些实施例中,应用可以注册过滤的或者未过滤的通知。在过滤的通知场景中,当与该应用相关的音频流还没有响应于不同的通信流的启动而被修改时,该应用被通知通信流已经被启动。
文档编号G06F9/00GK102138135SQ200980134637
公开日2011年7月27日 申请日期2009年6月26日 优先权日2008年6月26日
发明者A·A·阿斯拉姆, E·H·奥米亚, L·W·奥斯特曼, N·R·克罗斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1