掌桥专利:专业的专利平台
掌桥专利
首页

用于使用数据集进行音频信号增强的装置、方法和计算机程序

文献发布时间:2024-04-18 20:02:18


用于使用数据集进行音频信号增强的装置、方法和计算机程序

技术领域

本公开的示例涉及用于使用数据集进行音频信号增强的装置、方法和计算机程序。一些示例涉及用于针对目标用例使用数据集进行音频信号增强的装置、方法和计算机程序。

背景技术

可以训练诸如机器学习模型之类的计算机程序以用于处理音频信号。大型通用数据集通常被用于这种训练。

发明内容

根据本公开的各种但并非所有示例,可以提供一种装置,其包括用于执行以下操作的部件:

使得能够访问经训练的计算机程序,其中,经训练的计算机程序被配置用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度,并且其中,使用通用数据集来训练经训练的计算机程序;

获得数据集,其中,该数据集包括具有用于该计算机程序的输入和输出的数据样本;以及

使用该数据集来更新用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度的经训练的计算机程序,其中,更新经训练的计算机程序包括:使用该数据集的至少一部分来训练该计算机程序,以及针对该数据集的至少一部分和针对通用数据集的至少一部分,评估更新后的计算机程序的性能。

数据集可以包括在通用数据集内未包括的数据的至少子集。

数据集可以包括在通用数据集内未包括的数据。

获得数据集可以由以下中的一项或多项触发:终端用户的输入,终端用户设备的请求,终端用户应用的请求,与经训练的计算机程序相关的时间段的到期,通用数据集与上述数据集之间的相似度评估的输出。

数据集可以使用以下中的一项或多项来获得:真实世界测量;以及模拟器。

使用数据集来更新经训练的计算机程序可以包括:使用该数据集的第一子集来训练该计算机程序,以及使用该数据集的第二子集来评估更新后的计算机程序的性能,其中,第一子集和第二子集的数据不相交。

使用数据集来更新经训练的计算机程序可以包括:使用该数据集的第一子集来训练该计算机程序,以及使用该数据集的第二子集来评估更新后的计算机程序的性能,其中,第一子集和第二子集的数据子集至少部分重叠。

更新经训练的计算机程序可以包括迭代过程,其中,各次迭代包括:针对上述数据集的至少一部分和针对通用数据集的至少一部分,评估更新后的计算机程序的性能。

上述部件可以用于通过跟踪性能损失来针对通用数据集的至少一部分,评估更新后的计算机程序的性能。

跟踪性能损失可以包括使用更新后的计算机程序的推断。

上述部件可以用于获得平衡参数,其中,该平衡参数指示针对通用数据集的至少一部分的对更新后的计算机程序的性能的影响水平。

平衡参数可以指示针对数据集的至少一部分的更新后的计算机程序的性能水平,该性能水平被用于评估更新后的计算机程序的性能。

一个或多个音频信号的处理可以包括以下中的至少一项:声学回声消除;噪声抑制;残余回声抑制;语音增强;语音去混响;风噪声减少;以及声源分离。

计算机程序可以包括机器学习模型。

机器学习模型可以包括神经网络电路。

根据本公开的各种但并非所有示例,可以提供一种方法,其包括:

使得能够访问经训练的计算机程序,其中,经训练的计算机程序被配置用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度,并且其中,使用通用数据集来训练经训练的计算机程序;

获得数据集,其中,该数据集包括具有用于该计算机程序的输入和输出的数据样本;以及

使用该数据集来更新用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度的经训练的计算机程序,其中,更新经训练的计算机程序包括:使用该数据集的至少一部分来训练该计算机程序,以及针对该数据集的至少一部分和针对通用数据集的至少一部分,评估更新后的计算机程序的性能。

根据本公开的各种但并非所有示例,可以提供一种包括指令的计算机程序,该指令在由装置执行时使该装置至少执行:

使得能够访问经训练的计算机程序,其中,经训练的计算机程序被配置用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度,并且其中,使用通用数据集来训练经训练的计算机程序;

获得数据集,其中,该数据集包括具有用于该计算机程序的输入和输出的数据样本;以及

使用该数据集来更新用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度的经训练的计算机程序,其中,更新经训练的计算机程序包括:使用该数据集的至少一部分来训练该计算机程序,以及针对该数据集的至少一部分和针对通用数据集的至少一部分,评估更新后的计算机程序的性能。

虽然本公开的上述示例和可选特征是单独描述的,但应当理解,它们的以所有可能的组合和排列的提供都被包含在本公开内。应当理解,本公开的各种示例可以包括关于本公开的其他示例所描述的任何或全部特征,反之亦然。此外,应当理解,任何组合中的任何一个或多个或全部特征可以根据需要且适当地由装置、方法和/或计算机程序指令来实现/被包括在装置、方法和/或计算机程序指令中/可由装置、方法和/或计算机程序指令执行。

附图说明

现在将参考附图描述一些示例,其中:

图1示出示例系统;

图2示出示例音频处理系统;

图3示出示例方法;

图4示出示例方法;

图5示出示例性能损失曲线图;

图6示出示例机器学习模型;

图7示出用于计算机程序的示例架构;

图8示出示例结果的曲线图;

图9A至9J示出示例系统架构;

图10示出示例流水线;

图11示出示例流水线;以及

图12示出示例装置。

附图并非按比例绘制。为了清楚和简明起见,附图的某些特征和视图可以示意性地或按比例放大地示出。例如,附图中的一些元件/元素的尺寸可以相对于其他元件/元素被放大以帮助说明。在附图中使用对应的参考标号来指示对应的特征。为了清楚起见,在所有附图中并非显示了所有参考标号。

具体实施方式

诸如机器学习模型之类的计算机程序可以被用于音频处理技术,诸如声学回声消除、噪声抑制或其他音频处理。这种计算机程序的训练使用非常大的数据集。如果计算机程序将要被用于特定用例,则这可能会出现问题。针对特定用例而获得非常大的数据集是不切实际的,而且甚至还可能事先不知道该特定用例是什么。特定用例可以是将要在其中使用计算机程序的设备的类型、将要被抑制或被增强的噪声的类型或任何其他因素。

本公开的示例提供可以被训练以用于一般用途并进而适用于一个或多个特定用例的计算机程序。

图1示出了可以被用于实现本公开的示例的示例系统101。在该系统101中,可以处理一个或多个音频信号。诸如机器学习模型之类的计算机程序或任何其他合适类型的计算机程序可以被用于音频处理。

图1中所示的系统101可以被用于语音或其他类型的音频通信。来自近端用户的音频可以被检测到、处理和发送以渲染并播放给远端用户。在一些示例中,来自近端用户的音频可以被存储在音频文件中以供以后使用。在其他示例中可以使用其他系统和该系统101的变体。

系统101包括第一用户设备103A和第二用户设备103B。在图1中所示的示例中,第一用户设备103A和第二用户设备103B中的每一个都包括移动电话。在本公开的其他示例中,可以使用其他类型的用户设备103。例如,用户设备103可以是电话、平板电脑、条形音箱、麦克风阵列、相机、计算设备、电话会议设备、电视、虚拟现实(VR)/增强现实(AR)设备或任何其他合适类型的通信设备。

用户设备103A、103B包括一个或多个麦克风105A、105B以及一个或多个扬声器107A、107B。一个或多个麦克风105A、105B被配置为检测声学信号,并将声学信号转换成输出电音频信号。来自麦克风105A、105B的输出信号可以提供近端信号或带噪声的语音信号。一个或多个扬声器107A、107B被配置为将输入电信号转换为用户可以听到的输出声学信号。

用户设备103A、103B还可以被耦接到一个或多个外围播放设备109A、109B。播放设备109A、109B可以是耳机、扬声器设置或任何其他合适类型的播放设备109A、109B。播放设备109A、109B可以被配置为使空间音频或任何其他合适类型的音频能够被回放以供用户听到。在其中用户设备103A、103B被耦接到播放设备109A、109B的示例中,电音频输入信号可以被处理并被提供给播放设备109A、109B,而不是被提供给用户设备103A、103B的扬声器107A、107B。

用户设备103A、103B还包括音频处理部件111A、111B。处理部件111A、111B可以包括适合于处理由麦克风105A、105B所检测到的音频信号的任何部件和/或被配置为处理被提供给扬声器107A、107B和/或播放设备109A、109B的音频信号的处理部件111A、111B。处理部件111A、111B可以包括如图12中所示和下面描述的一个或多个装置或任何其他合适的部件。

处理部件111A、111B可以被配置为对音频信号执行任何合适的处理。例如,处理部件111A、111B可以被配置为对由麦克风105A、105B所捕获的信号执行声学回声消除、噪声抑制、残余回声抑制、语音增强、语音去混响、风噪声减少、声源分离和/或任何其他合适的处理。处理部件111A、111B可以被配置为对输入电信号执行空间渲染和动态范围压缩以用于扬声器107A、107B和/或播放设备109A、109B。处理部件111A、111B可以被配置为执行其他处理,诸如主动增益控制、源跟踪、头部跟踪、音频聚焦或任何其他合适的处理。

处理部件111A、111B可以被配置为使用诸如机器学习模型之类的计算机程序来处理音频信号。可以根据本公开的示例来训练和更新计算机程序。

可以使用任何合适的通信网络在用户设备103A、103B之间发送经处理的音频信号。在一些示例中,通信网络可以包括5G或其他合适类型的网络。通信网络可以包括一个或多个编解码器113A、113B,其可以被配置为根据情况对音频信号进行编码和解码。在一些示例中,编解码器113A、113B可以是IVAS(沉浸式语音音频系统)编解码器或任何其他合适类型的编解码器。

图2示出了可以在本公开的一些示例中使用的示例音频处理系统201。在该示例中,音频处理系统201用于抑制残余回声和噪声。本公开的示例还可以被用于其他类型的音频处理。

音频处理系统201可以被提供在诸如图1中所示的设备之类的用户设备103内。除了音频处理系统201之外,用户设备103还包括一个或多个扬声器107和一个或多个麦克风105。

在图2中仅示出了一个扬声器107和麦克风105,但是用户设备103可以包括任何数量的扬声器107和/或麦克风105。在一些示例中,代替扬声器107或者除了扬声器107之外,可以使用一个或多个播放设备109。

在扬声器107与麦克风105之间存在回声路径203。回声路径203可以使来自扬声器107的音频被麦克风105检测到。这可以在由麦克风105所提供的近端信号内产生不想要的回声。在图2的示例中,由回声路径203生成并由麦克风105检测到的回声被标示为y。这是时域信号。

用户设备被配置为使得远端信号x被提供给扬声器107。远端信号x被配置为控制扬声器107以生成音频。用户设备103还被配置为使得远端信号x被提供为第一时频变换块205的输入。第一时频变换块205被配置为将远端信号x的域从时域改变为频域(例如,短时傅里叶变换(STFT)域)。在图2的示例中,远端信号在时域中被标示为x,在频域中被标示为X。

系统201还包括声学回声消除块207。回声消除块207可以是基于加权叠加(WOLA)的声学回声消除块207或者可以使用任何其他合适类型的滤波器和处理。

声学回声消除块207被配置为生成与回声y对应的信号,其进而可以被从近端信号中减去。系统201被配置为使得声学回声消除块207接收频域远端信号X作为输入,并提供频域回声信号估计

麦克风105被配置为检测任何声学信号。在该示例中,由麦克风105所检测到的声学信号包括多个不同的分量。在该示例中,多个不同的分量包括语音分量(在图2中被标示为s)、噪声分量(在图2中被标示为n)、期望噪声分量(在图2中被标示为n

麦克风105检测声学信号,并提供电麦克风信号或近端信号,其在图2中被标示为d。用户设备103包括第二时频变换块209。麦克风信号d被提供为第二时频变换块209的输入。第二时频变换块209被配置为将麦克风信号d的域改变为频域。麦克风信号在频域中被标示为D。

用户设备103被配置为使得频域麦克风信号D和频域回声信号

音频处理系统201包括被配置为接收多个输入的计算机程序211。计算机程序211是经训练的计算机程序。计算机程序211可以是机器学习模型或任何其他合适类型的计算机程序。在该示例中,计算机程序211包括深度神经网络。可以使用的计算机程序211的示例在图6和图7中被示出。在其他示例中可以使用其他类型的程序和模型。

由计算机程序211所接收到的输入可以包括任何合适的输入。在图2的示例中,计算机程序211被配置为接收远端信号X、回声

计算机程序211被配置为处理所接收到的输入以提供增益系数作为输出。在图2中,增益系数被标示为G。

增益系数G在控制信号中被提供给噪声抑制块213。噪声抑制块213被配置为从残余误差信号E中去除残余回声分量R和不想要的噪声分量N。噪声抑制块213被配置为接收残余误差信号E作为输入。

噪声抑制块213的输出是包括语音分量S的经残余回声和/或噪声抑制的麦克风信号。在图2的示例中,输出信号还包括期望的噪声分量N

期望的噪声分量可以包括所期望的环境或背景声音。例如,用户可能处于具有特定类型的背景噪声的位置处,并且他们将会想要将该噪声保留在音频信号中,以便最终用户也可以听到该背景噪声。作为示例,用户可能在诸如卡丁车赛道之类的运动场馆处,并且可能希望在其音频信号内保留卡丁车的背景噪声。

计算机程序211可以包括使处理器或其他合适的装置能够使用输入信号以生成用于音频信号的处理的输出的任何结构。在图2的示例中,计算机程序211被配置为接收基于远端信号X、回声信号

计算机程序211可以包括机器学习模型、神经网络或任何其他合适类型的可训练模型。术语“机器学习模型”是指任何种类的人工智能(AI)、可使用数据进行训练或调整的智能或其他方法。机器学习模型可以被训练或被配置为执行任务,诸如基于所接收到的输入来创建用于降噪或残余回声消除的增益系数,而无需被明确编程为执行该任务或从初始配置开始。机器学习模型可以被配置为,如果其在T中的任务的性能(如由P所度量的)随着经验E而提高,则从相对于某类任务T和性能测量/度量P的经验E进行学习。在这些示例中,机器学习模型可以从针对相同或相似的输入而获得的先前输出中学习。机器学习模型可以是可训练的计算机程序。在其他示例中可以使用其他类型的机器学习模型。

可以使用任何合适的过程来训练或配置机器学习模型。可以使用真实世界或模拟数据来执行机器学习模型的训练或配置。可以使用通用数据集来执行机器学习模型的初始训练。通用数据集可以涵盖广泛范围的用例。可以根据情况重复机器学习模型的训练,直到机器学习模型已达到足够的稳定度水平为止。当由机器学习模型所提供的输出的波动足够低以使该机器学习模型能够被用于预测用于噪声抑制和/或去除残余回声或任何其他合适的音频处理的增益系数时,该机器学习模型具有足够的稳定度水平。当由机器学习模型所提供的预测的波动足够低以使得该机器学习模型针对测试输入提供一致的响应时,该机器学习模型具有足够的稳定度水平。

可以使用大型通用数据集来训练计算机程序211。这可以使系统201能够很好地工作以用于一般用例。然而,系统201也可以被用于特定用例。例如,可能存在其中用户可能想要保留所期望的噪声的特定位置或音频场景,或者系统201可能在特定类型的设备中被实现,或者可能存在产生特定用例的任何其他数量的因素。在本公开的示例中,计算机程序211可以被更新,以使得它可以被用于这些特定用例,同时仍然适用于一般用例。

图3示出了可以被用于更新本公开的示例中的计算机程序211的示例方法。

在框301处,该方法包括使得能够访问经训练的计算机程序211。经训练的计算机程序211可以包括机器学习模型,诸如神经网络电路或任何其他合适类型的可训练计算机程序。可以使用的机器学习程序的示例在图6和图7中被示出。

经训练的计算机程序211被配置用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度。该处理可以包括声学回声消除、噪声抑制、残余回声抑制、语音增强、语音去混响、风噪声减少、声源分离或任何其他合适类型的处理。经训练的计算机程序211可以被训练以用于如图2中所示的音频处理系统201,或者可以被训练以用于任何其他合适的系统。

使用通用数据集来训练经训练的计算机程序211。通用数据集可以是包含广泛范围的音频设置和场景的大型数据集。通用数据集可以是公开可用的数据集。

计算机程序211的训练可以由任何合适的实体来执行。在一些示例中,该训练可以由经训练的计算机程序211的第三方提供者来执行。计算机程序211的训练是一种计算复杂的过程,并且可能会在多核云服务器或其他合适的处理设备上花费几天。

经训练的计算机程序211可以被存储在用户设备103中,或者可以被存储在使得其可由用户设备103访问的位置中。

在框303处,该方法包括获得数据集。该数据集被配置用于更新经训练的计算机程序211。该数据集可以被配置用于针对特定用例或场景来更新经训练的计算机程序211。该数据集包括具有用于计算机程序211的输入和输出的数据样本。这些输入和输出可以与特定用例相关。

与最初被用于训练计算机程序211的通用数据集相比,该数据集可以较小。该数据集可以比通用数据集小几个数量级。例如,通用数据集可以包括数百万个数据点,而该数据集可以包括数十或数百个数据点。

该数据集可以包括在通用数据集内未包括的数据的至少一个子集。在一些示例中,该数据集可以包括在通用数据集内未包括的数据。在这种情况下,通用数据集和数据集是不相交的。

可以使用任何合适的手段来获得该数据集。在一些示例中,可以使用真实世界测量、模拟器或任何其他合适的手段来获得该数据集。该数据集可以由第三方获得,并且可以被取回/检索或被访问以用于更新经训练的计算机程序211。

该数据集的获得可以由任何合适的事件触发。例如,该数据集的获得可以由以下项触发:终端用户的输入、终端用户设备的请求、终端用户应用的请求、与经训练的计算机程序相关的时间段到期、通用数据集与该数据集之间的相似性评估的输出。终端用户可以是如图1中所示的用户设备103的用户或任何其他合适的用户。终端用户设备可能是如图1中所示的用户设备103或任何其他合适类型的设备。

在框305处,该方法包括使用该数据集来更新经训练的计算机程序211。该训练包括使用该数据集的至少一部分来训练计算机程序211,并评估更新后的计算机程序211的性能。可以针对该数据集的至少一部分和针对通用数据集的至少一部分来评估更新后的计算机程序211的性能。

被用于评估更新后的计算机程序211的数据集的部分不需要与被用于训练计算机程序211的数据集的部分相同。使用数据集来更新经训练的计算机程序211可以包括使用该数据集的第一子集来训练该计算机程序,并使用该数据集的第二子集来评估更新后的计算机程序的性能。在一些示例中,第一子集和第二子集的数据是不相交的。在这种示例中,被用于评估更新后的计算机程序211的数据集的部分与被用于更新计算机程序211的数据集的部分之间不存在重叠。在其他示例中,第一子集和第二子集的数据可以至少部分重叠。在一些示例中,第二子集可以被包括在第一子集中。在这种示例中,在被用于评估更新后的计算机程序211的数据集的部分与被用于更新计算机程序211的数据集的部分之间存在部分重叠。

在一些示例中,更新经训练的计算机程序211可以包括迭代过程。该过程内的各次迭代可以包括:针对该数据集的至少一部分和针对通用数据集的至少一部分,评估更新后的计算机程序211的性能。被用于评估的数据集的部分可以与被用于训练计算机程序203的数据集的部分不同。

可以使用任何合适的手段或过程来评估更新后的计算机程序211。在一些示例中,针对通用数据集的至少一部分来评估更新后的计算机程序211的性能可以包括跟踪性能损失或者跟踪任何其他合适的参数。跟踪性能损失或其他参数可以包括使用更新后的计算机程序的推断。该推断不需要计算机程序211的任何进一步训练,并且即使对于大型通用数据集也可以以低复杂度来执行。

在一些实现中,该方法可以包括未在图3中示出的框。例如,在一些示例中,该方法还可以包括获得平衡参数。该平衡参数可以被用于更新计算机程序211。计算机程序211的更新可能对针对通用数据集的计算机程序211的性能有负面影响。该平衡参数可以指示在针对通用数据集的计算机程序211的性能的下降与针对上述数据集的计算机程序211的性能的提高之间的可接受权衡。在一些示例中,该平衡参数可以指示在评估更新后的计算机程序211期间可以接受的值。在一些示例中,该平衡参数可以指示针对通用数据集的至少一部分的对更新后的计算机程序211的性能的影响水平。在一些示例中,该平衡参数可以指示针对数据集的至少一部分的更新后的计算机程序211的性能水平,该性能水平被用于评估更新后的计算机程序的性能。

图4示出了可以被用于更新本公开的示例中的计算机程序211的另一个示例方法。

该方法包括在框401处,使得能够访问经训练的计算机程序211。在该示例中,计算机程序211是深度神经网络(DNN)模型。在其他示例中,可以使用其他类型的计算机程序211。

DNN可以从诸如因特网之类的公共资源或者从第三方或供应方获得。在一些示例中,DNN可以被专门设计和训练以在用户设备103或用户设备103类型内使用。

DNN基于通用数据集来进行训练。通用数据集很大,并且包含广泛范围的音频设置和音频场景。通用数据集可以是公开可用的数据集。通用数据集可以被标示为S

DNN的训练需要很大的计算复杂度。可能花费几天以使用多核云服务器来训练DNN。

因此,经训练的DNN适用于一般用例。DNN被训练,以针对大量的音频设置执行特定的音频处理任务。特定的音频任务可以包括增强音频信号内的声音的可听度或任何其他任务或任务的组合。例如,可以训练DNN以在各种声学场景中在回声和/或噪声抑制方面表现良好。经训练的DNN可以被标示为W

在框403处,该方法包括获得数据集。该数据集可以被用于更新DNN以在特定目标用例中使用。更新DNN的目的在于提高DNN针对目标用例的性能,同时对DNN在其他一般用例中的性能的影响有限。

目标用例可以是被用于记录或播放音频信号的特定类型的设备。例如,不同类型的智能手机可以具有不同的声学特性,并因此被视为不同的用例。因此,本公开的示例可以使DNN能够被更新以用于不同类型的设备。在一些示例中,目标用例可以是音频场景。该音频场景可以包括被捕获并被回放的音频场景。例如,可以存在其中用户想要在音频信号中保留来自音频场景的一些背景噪声的示例场景。作为示例,用户可能在卡丁车赛道处并且可能想要在音频信号内保留卡丁车的背景音频。在一些示例中可以使用其他类型的目标用例。

与通用数据集相比,上述数据集可以包括较小的数据集。该数据集包括用于特定目标用例的输入和输出。

可以使用任何合适的手段或过程来获得该数据集。在一些示例中,可以使用真实世界测量或模拟来获得该数据集。真实世界测量可以在实验室或任何其他合适的环境中被执行。真实世界测量或模拟的结果可以由第三方提供。

在其中目标用例是特定用户设备103的示例中,被用于数据集的真实世界测量可以包括在特定用户设备103的扬声器和麦克风处的远端和近端音频测量。为了获得音频测量,用户设备103可以采用不同的设置来配置。不同的设置可以包括:用户设备103无移动、用户设备103(包括扬声器107和麦克风105)的移动、房间中的近端扬声器的移动、门的打开、信号的不同音量、以及任何其他合适的设置。

被用于目标用例的数据集可以被标示为S

在本公开的示例中,DNN可以被更新,以使得针对特定目标用例获得优异的音频功能性能,同时针对一般用例保持良好的音频功能性能。在框405处,该方法包括定义平衡参数。该平衡参数可以被标示为α。该平衡参数的目的在于控制针对特定目标用例获得优异的音频功能性能与针对一般用例保持良好的音频功能性能之间的平衡。因此,该平衡参数可以指示针对通用数据集的DNN的性能的下降与针对上述数据集的DNN的性能的提高之间的可接受权衡。该平衡参数可以被用于控制DNN的一般性与定制性之间的权衡。

一旦已获得平衡参数,则可以在框407处基于上述数据集来更新

在框409处,该方法包括评估更新后的DNN。更新后的DNN可以针对一般性和定制性来进行评估。通用数据集或通用数据集的一部分可以被用于针对一般性来评估更新后的DNN。这给出更新后的DNN针对一系列一般用例表现如何的指示。这给出是否已在通用数据集的范围内保持良好性能的度量。

上述数据集或上述数据集的一部分可以被用于针对定制性来评估DNN。这给出更新后的DNN针对特定目标用例表现如何的指示。这给出是否已在该数据集的范围内获得优异的性能的度量。被用于评估更新后的DNN的数据集的部分可以与在框407处被用于训练更新后的DNN的数据集的部分不同。

在框411处,确定是否满足停止准则。该停止准则可以是要被满足的定制化性能和一般化性能两者的水平。可以基于平衡参数来确定停止准则,以控制在针对目标用例的优异性能与针对一般用例的良好性能之间的权衡。

如果停止准则未被满足,则该方法前进到while循环。如果停止准则未被满足,则该方法前进到框413。并且DNN被更新。DNN可以基于上述数据集来进行更新。DNN的更新可以是受控步骤更新。

更新DNN的过程可以包括将数据集划分成第一子集和第二子集。第一子集可以被用于训练DNN,并且第二子集可以被用于评估DNN。在一些示例中,第一子集和第二子集可以是不相交的。在一些示例中,在第一子集与第二子集之间可以存在一些部分重叠。这两个子集可以不同,以使得可以存在至少一个数据点在其中一个子集中但不在另一个子集中。

由于上述数据集仅具有很小的大小,因此使用该数据集来更新DNN具有很低的复杂度。DNN的更新可能花费几秒钟或几分钟。这比最初使用大型通用数据集来训练DNN所花费的时间(其可能是几天)少得多。因此,更新DNN所花费的时间比最初训练DNN所花费的时间小几个数量级。

在本公开的示例中,基于数据集来更新DNN的过程不涉及使用通用数据库来执行训练步骤或过程。这避免了需要使用大量计算资源以用于更新。

在一些示例中,对DNN进行更新的受控步骤可以包括与数据集的至少一部分上的梯度相关的算法一阶更新和步长大小的优化控制。如果步长大小太大,则对DNN进行更新可能会降低针对一般和特定用例两者的性能。相反,如果步长大小太小,则这可能不会导致DNN发生变化,并且将会需要更多迭代以用于更新。

一旦DNN已被更新,则该方法移动到框415并评估更新后的DNN。可以针对一般性和定制性两者来评估更新后的DNN。可以通过跟踪更新后的DNN在通用数据集上以及在上述数据集的至少一部分上的性能影响来执行该评估。

可以使用任何合适的手段或过程来评估更新后的DNN。在一些示例中,该评估可以包括计算或跟踪更新后的DNN在通用数据集上的性能损失。可以使用推断来执行这种性能损失的跟踪,并因此涉及很小的复杂度。计算性能损失所花费的时间可能在几秒到几分钟的范围内。

可以使用平衡参数来控制在通用数据集上的DNN的性能与针对上述数据集的DNN的性能之间的平衡。在一些示例中,该平衡参数可以包括数值。该数值可以定义一般化目标与定制化目标之间的加权。在一些示例中,该平衡参数可以指示针对定制化的权重的水平。例如,加权/权重可以被指示为低、中、或高。

在一些示例中,该平衡参数可以是固定的。固定的平衡参数可以在用于更新DNN的过程和系统中被设置。在一些示例中,该平衡参数可以由用户设备103的用户、第三方或任何其他合适的实体来调整。

任何合适的参数都可以被用于评估DNN的性能。在一些示例中,可以使用性能损失或成本来评估性能。性能损失可以被分析作为一般/通用化与定制化之间的加权平衡。可使用的其他参数可以是回声返回损耗增强(ERLE)、语音质量的感知评估(PESQ)或短时目标清晰度(STOI)测量或任何其他合适的参数。

在已评估更新后的DNN之后,该方法返回到框411并且确定停止准则是否被满足。

如果停止准则被满足,则退出while循环并且该方法前进到框417。在框417处,提供更新后的DNN作为输出。进而,该更新后的DNN可以在诸如图2中所示的系统之类的系统中被使用,以执行音频处理和任何其他合适的功能。

图5是示出使用本公开的示例来更新计算机程序211的影响的示例性能损失的曲线图。

在图5的曲线图中,x轴指示计算机程序211已被训练以执行相应的音频处理功能的所有可能用例的数据域。

该数据域包括通用数据集501。通用数据集501包含广泛范围的音频设置。该数据域还包括数据集503。数据集503包含比通用数据集更小范围的音频设置。数据集503包含用于特定目标用例的音频设置。当使用通用数据集501来训练DNN时,数据集503可能不是已知的。

y轴指示DNN的性能。该性能被测量为性能损失或成本。可以使用任何合适的函数来测量性能损失。在该示例中,性能损失是要进行最小化的函数。在其他示例中,可以使用其他参数来评估DNN。

第一曲线505示出了当使用通用数据集501来训练DNN时获得的性能。在该示例中,该性能在该通用数据集的范围内是良好的。该性能始终良好,在通用数据集501的范围内性能损失没有显著的上升或下降。因此,使用通用数据集501的训练提供高水平的一般/通用化和低水平的定制化。

第二曲线507示出了使用数据集503而不是通用数据集501来训练DNN时可以获得的性能。在这种情况下,DNN将会针对与数据集503对应的特定用例而被优化或基本上被优化。曲线507示出了针对目标用例的范围的低得多的性能损失,其指示针对目标用例的显著提高的性能。然而,在该目标用例以外,曲线507示出了更高的性能损失,其指示差得多的性能。因此,使用数据集503的训练将会提供高水平的定制化和低水平的一般/通用化。

在本公开的示例中,获得了数据集503的子集并将其用于训练和更新DNN以及用于评估DNN。在图5的示例中,该子集包括四个点509。在其他示例中可以使用其他数量的数据点509。数据集503的子集可以使用测量、模拟或任何其他合适的手段或过程来获得。

在图5的示例中,一些数据点509被标记为t。这些数据点可以被用于训练经预训练的DNN。经预训练的DNN是已使用通用数据集被训练的DNN。经预训练的DNN尚未使用数据集进行更新。少量的数据点可以被用于该训练,因此在计算上不复杂或时间密集。

类似地,在图5中,一些数据点509被标记为v。在更新后的DNN已使用训练数据点或子集被更新之后,这些数据点可以被用于评估或验证该更新后的DNN。被用于评估或验证更新后的DNN的数据点可以与被用于训练的数据点不同。在一些示例中,被用于训练的数据点的子集和被用于评估经训练的DNN的数据点的子集可以是不相交的。在其他示例中,数据点的各个子集之间可以存在一些重叠。

图5示出了第三曲线图511,其是根据本公开的示例使用数据点509来更新DNN时获得的曲线图511。在这种情况下,DNN具有针对特定用例的提高的性能,但也保留了针对一般用例的良好的一般性能。因此,这将会提供高水平的定制化和良好水平的一般/通用化。

在一些示例中,以下算法可以被用于更新诸如DNN之类的计算机程序211。

在该示例中,定义了以下符号:

●S

○该通用数据集由多个(例如,i=1...1000000)输入

●S

○S

○S

■例如,

○S

■例如,

●W

●f(W,S):利用DNN参数W在集合S上评估的损失函数

损失函数f(W,S)相对于(wrt)在集合S上评估的DNN参数W的梯度

●μ:步长大小

使用这些符号,可以被用于更新诸如DNN之类的计算机程序211的示例算法是:

1.给定经预训练的DNN模型,其具有在通用数据集S

2.用经预训练的DNN模型的参数来初始化DNN模型参数:

3.评估初始成本函数值:

4.当关于一般/通用化对(vs)定制化平衡的停止准则未被满足时

i.

ii.确定用于当前迭代的步长大小μ

iii.确定针对数据集S

iv.更新DNN模型参数权重:

v.评估在

5.输出更新后的DNN模型W,其具有经平衡的一般/通用化对定制化性能

可以在步骤4处使用的停止准则的示例包括:

●如果一般/通用化损失

○如果

●如果一般/通用化损失

●如果一般/通用化损失影响大于10%,或者如果验证损失被最小化,或者如果训练损失被最小化

●如果经预训练的DNN模型的权重已改变一定量

●如果最大迭代次数大于阈值

在步骤ii处使用的步长大小更新的示例包括:

●μ=c,其中c表示固定常数

●满足Wolfe条件的μ更新

作为可以在步骤iv处使用的梯度更新公式,可以使用随机梯度算法。可以使用的替代一阶算法可以是Nesterov的加速梯度法。

当DNN被用于残余回声和/或噪声抑制时,可以在步骤v处使用的成本函数的示例包括:

●噪声抑制和语音失真或其导数的加权和

●均方误差损失或其导数

●ERLE

●STOI

●PESQ

在该示例中,性能损失的评估仅涉及DNN推断,并且没有使用大型通用数据集进行训练。这带来了益处,因为即使对于大型通用数据库而言,DNN推断也可以以低复杂度来执行。此外,执行这些评估花费很短的时间。例如,与最初使用通用数据集来训练DNN所花费的几天相比,进行这些评估可能花费几分钟或几秒钟。

可以在步骤v中采取不同的选项,具体取决于所考虑的停止准则:

●评估

●评估

●评估

●评估

●评估

●评估

用于训练和更新DNN的各个数据集对应于针对不同的音频设置的输入到输出映射。对于其中DNN被用于残余回声和/或噪声抑制的情况,这些输入(I

●AEC滤波器输出的WOLA域帧:诸如图2中的

●错误信号输出的WOLA域帧:诸如图2中的E

●WOLA域麦克风信号:诸如图2中的D

●WOLA域远端信号(=扬声器信号):诸如图2中的X

输出可以是指:

●根据特定目标用例的WOLA域频谱增益系数:诸如图2中的G

任何合适的架构都可以被用于计算机程序211。图6示意性地示出了示例计算机程序211。在该示例中,计算机程序211是机器学习模型。在该示例中,机器学习模型包括DNN601。DNN 601包括输入层603、输出层607、以及多个隐藏输入层605。隐藏输入层605被提供在输入层603与输出层603之间。图6中所示的示例DNN 601包括两个隐藏输入层605,但是在其他示例中DNN 601可以包括任何数量的隐藏输入层605。

在DNN 601内的每一层包括多个节点609。如图6中所示,在各个层内的节点609由多个连接611或边连接在一起。每个连接611表示与权重配置的乘法。在隐藏层605和输出层607的节点609内,应用非线性激活函数以获得输入与输出之间的多维非线性映射。

在本公开的示例中,DNN 601被训练或被配置为将一个或多个输入信号映射到对应的输出信号。输入信号可以包括任何合适的输入,诸如回声信号

图7示出了可以被用于示例计算机程序211的架构。图7中所示的示例架构可以被用于包括单个扬声器107和单个麦克风105并使用如图2中所示的基于WOLA的声学回声消除块207的用户设备103。声学回声消除块207可以被配置为消除来自近端信号的回声。在该示例中,声学回声消除块207可以包括基于WOLA的声学回声消除,其具有240个样本的帧大小和具有16kHz采样率的过采样因子3。在本公开的其他示例中,可以使用用于声学回声消除块的其他配置、和/或其他类型的音频信令处理。

在该示例中,计算机程序211包括DNN。在本公开的其他实现中,可以使用用于计算机程序211的其他架构。

在该示例中,声学回声消除过程的输出是残余误差信号E。这可以是如图2中所示的残余误差信号E。残余误差信号E包括在121(=240/2+1)个频带中的STFT域帧。在该示例中,仅考虑了频谱的前半部分,因为频谱的后半部分是前半部分的共轭。残余误差信号E中的每一帧在被提供作为计算机程序211的第一输入701A之前被变换为对数幂并被标准化。

计算机程序211还接收基于回声信号

在图7的示例中,计算机程序211还接收基于远端或扬声器信号X的第三输入701C。第三输入701C也包括与被用于残余误差信号E相同的121个频带中的STFT域帧。远端或扬声器信号X也可以在被提供作为计算机程序211的第三输入7013C之前被变换为对数幂并被标准化。

在本公开的不同示例中可以使用不同的输入信号。例如,在一些示例中,可能不使用基于远端或扬声器信号X的第三输入701C。在其他示例中,可能不使用基于回声信号

因此,如图7中所示的经标准化的输入信号包括363个输入特征。该363个输入特征被传递通过第一一维卷积层703和第二一维卷积层705。卷积层703、705中的每一个在频带范围上提供363个输出。第一卷积层703的内核大小为五,第二卷积层705的内核大小为3。卷积层703、705中的每一个的步幅为一。在其他示例中可以使用用于卷积层的其他配置。

卷积层703、705后跟四个连续的门控循环单元(GRU)层707、709、711、713。在该示例中,GRU层707,709、711、713中的每一个提供363个输出。

GRU层707、709、711、713中的每一个和第二卷积层705的输出被提供作为密集输出层715的输入。密集输出层715使用Sigmoid激活函数以生成计算机程序211的两个输出717、719。在该示例中,输出717、719中的每一个可以包括121个值,其中值在零与一之间。在其他示例中,计算机程序211可以提供一个或多个输出。

可以使用任何合适的过程以使用通用数据集来初始训练或配置计算机程序211。该通用数据集可以包括输入数据值到针对广泛范围的用例的最优输出的映射。该通用数据集可以包括合成扬声器和麦克风信号、以及合成房间脉冲响应(RIR)。在一些示例中,该通用数据集可以包括扬声器和麦克风信号的任何可用数据库。

为了最初训练通用数据集,定义了最优或目标增益系数。可以使用任何合适的过程或方法来定义最优或目标增益系数,诸如理想二元掩模(IBM)、理想比率掩模(IRM)、相敏滤波器、理想幅度掩模或任何其他合适的过程或方法。这些过程或方法是取决于语音和噪声或其他想要的声音的完备知识的公式。这种完备知识应当可用于被用于训练计算机程序211的通用数据集。这使应当由计算机程序211预测的最优或目标增益系数能够被计算。例如,应当由计算机程序211预测的最优或目标增益系数G

其中,f标示帧索引,k标示频带索引,S(k,f)标示应在噪声抑制和去除残余回声之后保留的实际(复值)语音,E(k,f)标示残余误差信号或包括不想要的噪声和残余回声的近端信号(或带噪声的语音信号)。

最优或目标增益系数G

如果目标增益系数G

其中,

图8示出了为了残余回声和噪声抑制的目的使用图7中所示的示例架构而获得的结果的曲线图。

为了获得图8中所示的结果,ICASSP AEC挑战2022数据库被用作通用数据集S

使用上述算法来更新经训练的DNN模型,其中平衡参数α=0.33,并且:

○停止准则:如果

○随机梯度更新

○固定的步长大小

在图8的曲线图中,x轴标示while循环迭代的次数,y轴标示性能损失的值。在该示例中使用的性能损失函数是噪声抑制和语音保留的加权和。语音保留与语音失真成反比。

图8中的第一曲线801示出了用于目标特定用例的数据集的训练子集的损失函数。该曲线示出了随着while循环迭代次数的增加,该损失函数被改进。这将会是预期的,因为训练子集被用于计算梯度更新。第一曲线801示出了在迭代次数9和10周围的小幅增加,这是由于步长大小选择而导致的。这种增加可以通过改进用于选择步长大小的过程来避免。

图8中的第一曲线803示出了用于目标特定用例的数据集的验证子集的损失函数。该第二曲线还示出了随着while循环迭代次数的增加,该损失函数被改进。这意味着DNN被朝向针对该目标用例的改进性能进行调整。

图8中的第三曲线805示出了通用数据集的损失函数。这示出了该损失函数随着while循环迭代次数的增加而增加,然而,与针对目标用例所进行的改进相比,增加很小。

因此,这些结果表明,本公开的示例可以被用于将DNN针对目标用例的性能从良好提高到优异,同时保持针对一般用例的良好的整体性能。

图9A至图9J示出了示例系统架构。不同的实体可以执行或实现本公开的不同部分。图9A示意性地示出了与本公开的实现相关的各个任务。

在图9A中,块901表示构造通用数据集,块903表示训练计算机程序211,块905表示构造用于目标用例的数据集,块907表示使用本文中描述的方法和算法来更新计算机程序211,块909表示在已针对目标用例更新计算机程序211之后部署计算机程序211。这些相应的任务可以由不同的实体或实体的组合来执行。图9B至图9J示出了可以如何在不同的实体或实体的组合之间分配这些相应的任务的示例。

在图9B的示例中,构建通用数据集的任务901由第一实体911执行。第一实体911使该通用数据集在公共域中可用。该数据集可供其他方任意使用。第二实体913执行训练计算机程序211的任务903和更新计算机程序211的任务907。第二实体913可以是商业实体。第二实体913可以是软件提供方。第三实体915执行构建用于目标用例的数据集的任务905和部署更新后的计算机程序211的任务909。第三实体915可以是商业提供方。第三实体915可以是硬件提供方。第三实体915可以与第二实体913不同。

在图9C的示例中,构建通用数据集的任务901由第一实体911执行。如同在先前的示例中,第一实体911使该通用数据集在公共域中可用。该数据集可供其他方任意使用。第二实体913执行训练计算机程序211的任务903。第二实体913可以是商业实体。第二实体913可以是软件提供方或任何其他合适类型的商业实体。第三实体915执行构建用于目标用例的数据集的任务905和更新计算机程序211的任务907。第三实体915可以是商业提供方。第三实体915可以是硬件提供方。第三实体915可以与第二实体913不同。在图9C的示例中,第四实体917执行部署更新后的计算机程序211的任务909。第四实体917可以是用户设备103,诸如设备图1中所示的设备或任何其他合适类型的设备。

在图9D的示例中,构建通用数据集的任务901由第一实体911执行。如同在先前的示例中,第一实体911使该通用数据集在公共域中可用。该数据集可供其他方任意使用。第二实体913执行训练计算机程序211的任务903。第二实体913可以是商业实体。第二实体913可以是软件提供方或任何其他合适类型的商业实体。第三实体915执行更新计算机程序211的任务907。第三实体915可以是商业提供方。第三实体915可以是硬件提供方。第三实体915可以与第二实体913不同。在图9D的示例中,第四实体917执行构建用于目标用例的数据集的任务905以及部署更新后的计算机程序211的任务909。第四实体917可以是用户设备103,诸如图1中所示的设备或任何其他合适类型的设备。可以通过运行在某些设置下捕获来自麦克风105和扬声器107的信号的应用来构建用于目标用例的数据集。该数据集进而可以被发送回第三实体915以使计算机程序211能够被更新。

在图9E的示例中,构建通用数据集的任务901由第一实体911执行。如同在先前的示例中,第一实体911使该通用数据集在公共域中可用。该数据集可供其他方任意使用。第二实体913执行训练计算机程序211的任务903。第二实体913可以是商业实体。第二实体913可以是软件提供方或任何其他合适类型的商业实体。第三实体915执行更新计算机程序211的任务907。第三实体915可以是商业提供方。第三实体915可以是硬件提供方。第三实体915可以与第二实体913不同。在图9E的示例中,第四实体917执行构建用于目标用例的数据集的任务905。在该示例中,第四实体917可以是另一个商业实体。该数据集进而可以被发送回第三实体915以使计算机程序211能够被更新。在图9E的示例中,第五实体919执行部署更新后的计算机程序211的任务909。第五实体919可以是用户设备103,诸如图1中所示的设备或任何其他合适类型的设备。

在图9F的示例中,构建通用数据集的任务901和训练计算机程序211的任务903由第一实体911执行。在该示例中,第一实体911可以是商业实体。在该示例中,第一实体911不需要使该通用数据集任意可用,但可以使经训练的计算机程序211对合适的实体可用。在该示例中,第二实体913执行构建用于目标用例的数据集的任务905。在该示例中,第二实体913可以是另一个商业实体。这可以是与第一实体不同的实体。在该示例中,第三实体915执行更新计算机程序211的任务907。为了使第三实体915能够更新计算机程序211,第三实体915可以访问该通用数据集和目标数据集。在该示例中,第三实体915还执行部署更新后的计算机程序211的任务909。在该示例中,第三实体915可以是用户设备103,诸如图1中所示的设备或任何其他合适类型的设备。

在图9G的示例中,构建通用数据集的任务901和训练计算机程序211的任务903由第一实体911执行。在该示例中,第一实体911可以是商业实体。在该示例中,第一实体911不需要使该通用数据集任意可用,但可以使经训练的计算机程序211对合适的实体可用。在该示例中,第二实体913执行构建用于目标用例的数据集的任务905以及更新计算机程序211的任务907。为了使第二实体913能够更新计算机程序211,第二实体913可以访问该通用数据集。在该示例中,第三实体915执行部署更新后的计算机程序211的任务909。在该示例中,第三实体915可以是用户设备103,诸如图1中所示的设备或任何其他合适类型的设备。

在图9H的示例中,构建通用数据集的任务901和训练计算机程序211的任务903由第一实体911执行。在该示例中,第一实体911可以是商业实体。在该示例中,第一实体911不需要使该通用数据集任意可用,但可以使经训练的计算机程序211对合适的实体可用。在该示例中,第二实体913执行更新计算机程序211的任务907。在该示例中,第三实体915执行构建用于目标用例的数据集的任务905以及部署更新后的计算机程序211的任务909。在该示例中,第三实体915可以是用户设备103,诸如图1中所示的设备或任何其他合适类型的设备。为了使得第二实体913能够执行计算机程序211的更新,第二实体913可以访问该通用数据集和用于目标用例的数据集。

在图9I的示例中,构建通用数据集的任务901、训练计算机程序211的任务903以及更新计算机程序211的任务907由第一实体911执行。在该示例中,第一实体911可以是商业实体。在该示例中,第一实体911不需要使该通用数据集任意可用,但可以使经训练的计算机程序211和更新后的计算机程序211对合适的实体可用。在该示例中,第二实体913执行构建用于目标用例的数据集的任务905以及部署更新后的计算机程序211的任务909。在该示例中,在这种情况下,第二实体913可以是用户设备103,诸如图1中所示的设备或任何其他合适类型的设备。为了使第一实体911能够执行计算机程序211的更新,第二实体913可以向第一实体911提供用于目标用例的数据集。

在图9J的示例中,除了部署更新后的计算机程序211以外的所有任务均由第一实体911执行。在该示例中,第一实体911执行构建通用数据集的任务、训练计算机程序211的任务903、构建用于目标用例的数据集的任务905、以及更新计算机程序211的任务907。第二实体913可以是用户设备103,诸如图1中所示的设备或任何其他合适类型的设备。第二实体913可以访问更新后的计算机程序,并执行部署更新后的计算机程序211的任务909。

图10示意性地示出了可以在本公开的一些示例中使用的示例机器学习操作(MLOp)流水线1001。在一些示例中,可以使用这种流水线1001的变体和不同的流水线。

流水线1001包括特征存储库1003。特征存储库1003包括中央储存库。将要被用于实现本公开的示例的数据集可以被存储在特征存储库1003中。在本公开的示例中,特征存储库1003可以被配置为存储通用数据集以及可以被用于对计算机程序211进行更新的数据集。

可以从特征存储库1003中取回/检索通用数据集S

训练模块1005可以执行被用于训练机器学习模型的任何合适的过程。例如,训练模块1005可以被配置为执行针对输入通用数据集S

训练模块1005提供经训练的机器学习模型作为输出。在该示例中,经训练的机器学习模型是经训练的DNN。在其他示例中,可以使用其他类型的机器学习模型。经训练的机器学习模型在一系列用例上提供良好的性能,并且可以由合适的设备来部署。

经训练的机器学习模型还可以被存储在模型注册表1007中。模型注册表1007包括用于经预训练的机器学习模型的中央储存库。在一些示例中,更新后的机器学习模型还可以被存储在模型注册表1007中。

外部实体1009可以被配置为触发流水线1001。外部实体1009可以是如图1中所示的用户设备或任何其他合适的设备。当用于目标用例的数据集S

在图10的示例中,实体1009通过提供用于目标用例的数据集S

用于目标用例的数据集S

第二训练模块1013可以被配置为执行对经训练的机器学习模型的进一步训练。在图10的示例中,第二训练模块1013包括更新模块1015,其可以被配置为使用本文中描述的示例来更新经训练的机器学习模型。例如,上述方法和算法或其变体可以由更新模块1015来实现。

为了使能更新机器学习模型,第二训练模块1013被配置为从特征存储库1003中取回/检索通用数据集S

一旦已完成机器学习模型的更新,则提供更新后的机器学习模型作为输出。在该示例中,更新后的机器学习模型是更新后的DNN。在其他示例中,可以使用其他类型的机器学习模型。更新后的机器学习模型针对目标用例提供了优异的性能,但仍然在一系列用例上提供了良好的性能,并且可以由合适的设备来部署。

更新后的机器学习模型还可以被存储在模型注册表1007中。

在一些示例中,与机器学习模型的更新相关的信息可以被提供给机器学习元数据存储库1017。进而,更新模块1015可以在合适的点取回/检索并使用该信息。

由流水线1001执行的过程/处理可以被执行一次,或者可以被执行多次。如果这些过程/处理被执行多次,则这可以是针对相同的目标数据集或针对不同的目标用例数据集。

图11示意性地示出了可以被用于实现本公开的示例的另一个示例系统1101。图11中所示的系统1101可以被用于语音或其他类型的音频通信。

系统1101包括一个或多个麦克风105和一个或多个扬声器107。麦克风105被配置为检测声学信号,并将声学信号转换成输出电音频信号。扬声器107被配置为将输入电信号转换为用户可以听到的输出声学信号。麦克风105和扬声器107可以是不同设备的部分。这可以使第一用户能够捕获音频,进而该音频可以被发送到不同的用户或不同的用户设备。在一些示例中,麦克风105和扬声器107可以是同一设备的部分。这可以使第一用户能够捕获音频,并进而使用同一设备回放它。

系统1101包括音频处理模块1103。系统1101被配置为使得由麦克风105所捕获的音频信号被提供给音频处理模块1103。该音频处理模块可以被配置为执行对音频信号的任何合适的音频处理。所执行的音频处理可以被配置为提高音频信号的质量或清晰度(intelligibility)或用于任何其他合适的目的。在一些示例中,该音频处理可以包括残余回声或噪声抑制。在其他示例中,可以使用其他类型的音频处理。

在本公开的示例中,音频处理模块1103可以被配置为使用诸如机器学习模型之类的计算机程序211来执行音频处理的至少一部分。在本公开的示例中,该音频处理模块可以包括更新模块1105。更新模块1105可以被配置为针对目标用例更新计算机程序211。在一些示例中,更新模块1105可以被配置为使能部署针对目标用例的更新后的计算机程序211,例如,计算机程序211可以由不同的实体更新,但是可以由更新模块1105访问。

系统1101被配置为使得已被处理的音频信号可以被提供给编码器1107,在编码器1107中它们可以被编码成适合于传输的格式。

系统1101还可以被配置为将经处理的音频信号提供给音频渲染模块1111。音频渲染模块111可以被配置为渲染音频信号以由一个或多个扬声器进行播放。在一些示例中,系统1101包括解码器1109,以使得所接收到的编码信号可以被解码并被提供给音频渲染模块。

图12示意性地示出了可以被用于实现本公开的示例的装置1201。在该示例中,装置1201包括控制器1203。控制器1203可以是芯片或芯片组。在一些示例中,该控制器可以在用户设备103(诸如图1中所示的用户设备103)内提供。

在图12的示例中,控制器1203的实现可以是被实现为处理电路。在一些示例中,控制器1203可以单独以硬件实现,具有软件中的某些方面(包括单独的固件),或者可以是硬件和软件(包括固件)的组合。

如图12中所示,控制器1203可以使用使能/实现硬件功能的指令来实现,例如通过使用通用或专用处理器1205中的计算机程序1209的可执行指令,其可以被存储在计算机可读存储介质(磁盘、存储器等)上以由这种处理器1205来执行。

处理器1205被配置为从存储器1207读取和向存储器1207写入。处理器1205还可以包括输出接口和输入接口,处理器1205经由输出接口输出数据和/或命令,并且经由输入接口向处理器1205输入数据和/或命令。

存储器1207被配置为存储计算机程序1209,计算机程序1209包括计算机程序指令(计算机程序代码1211),其在被加载到处理器1205中时控制控制器1203的操作。计算机程序1209的计算机程序指令提供使控制器1203能够执行图3和图4中所示的方法的逻辑和例程。处理器1205通过读取存储器1207能够加载并执行计算机程序1209。

因此,装置1201包括:至少一个处理器1205;以及包括计算机程序代码1211的至少一个存储器1207,至少一个存储器1207和计算机程序代码1211被配置为与至少一个处理器1205一起使装置1201至少执行:

使得能够301访问经训练的计算机程序,其中,经训练的计算机程序被配置用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度,并且其中,使用通用数据集来训练经训练的计算机程序;

获得303数据集,其中,该数据集包括具有用于该计算机程序的输入和输出的数据样本;以及

使用该数据集来更新305用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度的经训练的计算机程序,其中,更新经训练的计算机程序包括:使用该数据集的至少一部分来训练该计算机程序,以及针对该数据集的至少一部分和针对通用数据集的至少一部分,评估更新后的计算机程序的性能。

如图12中所示,计算机程序1209可以经由任何合适的递送机制1213到达控制器1203。递送机制1213例如可以是机器可读介质、计算机可读介质、非暂时性计算机可读介质、计算机程序产品、存储器设备、诸如光盘只读存储器(CD-ROM)或数字通用光盘(DVD)或固态存储器之类的记录介质、包括或有形地体现计算机程序1209的制品。递送机制可以是被配置为可靠地传送计算机程序1209的信号。控制器1203可以将计算机程序1209传播或发送为计算机数据信号。在一些示例中,可以使用诸如蓝牙、低功耗蓝牙、智能蓝牙、6LoWPan(基于低功率个域网的IPv6)、ZigBee、ANT+、近场通信(NFC)、射频识别、无线局域网(无线LAN)或任何其他合适的协议之类的无线协议来将计算机程序1209发送到控制器1203。

计算机程序1209包括计算机程序指令,这些计算机程序指令在由装置1201执行时使装置1201至少执行以下操作:

使得能够301访问经训练的计算机程序,其中,经训练的计算机程序被配置用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度,并且其中,使用通用数据集来训练经训练的计算机程序;

获得303数据集,其中,该数据集包括具有用于该计算机程序的输入和输出的数据样本;以及

使用该数据集来更新305用于处理一个或多个音频信号以增强在一个或多个音频信号内的声音的可听度的经训练的计算机程序,其中,更新经训练的计算机程序包括:使用该数据集的至少一部分来训练该计算机程序,以及针对该数据集的至少一部分和针对通用数据集的至少一部分,评估更新后的计算机程序的性能。

计算机程序指令可以被包括在计算机程序1209、非暂时性计算机可读介质、计算机程序产品、机器可读介质中。在一些但并非所有示例中,计算机程序指令可以被分布在多于一个计算机程序1209上。

尽管存储器1207被示出为单个组件/电路,但它可以被实现为一个或多个单独的组件/电路,其中一些或所有组件/电路可以是集成的/可移除的和/或可以提供永久/半永久/动态/缓存存储。

尽管处理器1205被示出为单个组件/电路,但它可以被实现为一个或多个单独的组件/电路,其中一些或所有组件/电路可以是集成的/可移除的。处理器1205可以是单核或多核处理器。

对“计算机可读存储介质”、“计算机程序产品”、“有形体现的计算机程序”等或“控制器”、“计算机”、“处理器”等的提及应被理解为不仅涵盖具有诸如单个/多个处理器架构和串行(冯诺依曼)/并行架构之类的不同架构的计算机,而且还涵盖诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、信号处理设备和其他处理电路之类的专用电路。对计算机程序、指令、代码等的提及应被理解为涵盖用于可编程处理器的软件、或者可包括用于处理器的指令的例如硬件设备的可编程内容的固件、或者用于固定功能器件、门阵列或可编程逻辑器件等的配置设置。

如在本申请中所使用的,术语“电路”可以是指以下中的一个或多个或全部:

(a)仅硬件电路实现(诸如仅模拟和/或数字电路的实现);

(b)硬件电路和软件的组合,诸如(如果适用):

(i)模拟和/或数字硬件电路与软件/固件的组合;以及

(ii)具有软件的硬件处理器的任何部分(包括数字信号处理器、软件和存储器,其一起工作以使诸如移动电话或服务器之类的装置执行各种功能);以及

(c)硬件电路和/或处理器,诸如微处理器或微处理器的一部分,其需要软件(例如,固件)来操作,但操作不需要软件时可以不存在软件。

“电路”的这一定义适用于在本申请中该术语的全部使用,包括在任何权利要求中的使用。作为另一个示例,如在本申请中使用的,术语“电路”还覆盖仅硬件电路或处理器及其伴随的软件和/或固件的实现。术语“电路”还覆盖(例如且如果适用于具体要求的元件)用于移动设备的基带集成电路、或者服务器、蜂窝网络设备或其他计算或网络设备中的类似集成电路。

如图12中所示的装置1201可以在任何合适的设备内提供。在一些示例中,装置1201可以在电子设备内,诸如移动电话、电话会议设备、相机、计算设备或任何其他合适的设备内提供。

图3和4中所示的框可以表示方法中的步骤和/或计算机程序1209中的代码段。对框的特定顺序的图示并非意味着存在针对这些框的所需或优选顺序,而是可以改变框的顺序和布置。此外,可以省略一些框。

在本文中使用的术语“包括”具有包容而非排他性的含义。也就是说,任何表述“X包括Y”表示X可以仅包括一个Y或者可以包括多于一个Y。如果意图使用具有排他性含义的“包括”,则将在上下文中通过提及“仅包括一个……”或者使用“由……组成”来明确。

在本说明中,词语“连接”、“耦接/耦合”和“通信”及其派生词意味着在操作上连接/耦接/耦合/通信。应当理解,可以存在任何数量的中间组件或其组合(包括没有中间组件),即,以提供直接或间接连接/耦接/耦合/通信。任何这种中间组件可以包括硬件和/或软件组件。

如本文中所使用的,术语“确定/确定了”(及其语法变体)可以包括但不限于:计算、估算、处理、推导、测量、调查、识别、查找(例如,在表、数据库或其他数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)、获得等。此外,“确定/确定了”可以包括解决、选择、挑选、建立等。

已经在本说明中参考了各种示例。针对示例的特征或功能的描述指示这些特征或功能存在于该示例中。无论是否明确陈述,在文本中术语“示例”或“例如”或“可以”或“可”的使用表示这种特征或功能至少存在于所描述的示例中,无论是否作为示例来描述,并且这种特征或功能可以但不必需存在于一些或所有其他示例中。因此,“示例”、“例如”或“可以”或“可”是指一类示例中的特定实例。实例的性质可以仅是该实例的性质或该类实例的性质或包括一些但未包括全部该类实例的该类实例的子类的性质。因此,隐含公开了针对一个示例但未针对另一个示例描述的特征可用于其他示例作为工作组合的一部分,但并非必须用于其他示例。

尽管已经在前面的段落中参考各种示例描述了示例,但应当理解,可以在不背离权利要求的范围的情况下对给出的示例进行修改。

在前面的说明中所描述的特征可以在除了上面明确描述的组合以外的组合中使用。

尽管已经参考某些特征描述了功能,但这些功能可以由其他特征来执行,无论是否被描述。

尽管已经参考某些示例描述了特征,但这些特征也可以存在于其他示例中,无论是否被描述。

在本文中使用的术语“一”、“一个”或“该”具有包容而非排他性的意义。也就是说,任何提到“X包括一/一个/该Y”指示“X可以仅包括一个Y”或者“X可以包括多于一个Y”,除非上下文清楚地指出并非如此。如果意图使用具有排他性意义的“一”、“一个”或“该”,则将在上下文中明确说明。在某些情况下,可使用“至少一个”或“一个或多个”来强调包容性的意义,但缺少这些术语不应被视为意指任何非排他性的意义。

权利要求中特征(或特征的组合)的存在是对该特征(或特征的组合)本身的引用,并且也是对实现基本相同的技术效果的特征(等效特征)的引用。等效特征例如包括是变体并以基本相同的方式实现基本相同的结果的特征。等效特征例如包括以基本相同的方式执行基本相同的功能以实现基本相同的结果的特征。

在本说明中已经参考了使用形容词或形容词短语的各种示例来描述示例的特性。这种关于示例对特性的描述表示该特性在一些示例中完全如所描述地存在,而在其他示例中基本上如所描述地存在。

以上说明描述了本公开的一些示例,然而,本领域普通技术人员将意识到可能的替代结构和方法特征,其提供针对上文所描述的这种结构和特征的具体示例的等效功能,并且为了简洁和清楚起见已从以上说明中省略。尽管如此,以上说明应被理解为隐含地包括对提供等效功能的这种替代结构和方法特征的参考,除非在本公开的示例的以上说明中明确排除这种替代结构或方法特征。

尽管在前面的说明中试图指出那些被认为是重要的特征,但应当理解,申请人可以经由权利要求来寻求保护关于在本文中之前参考附图和/或在附图中示出的任何可授予专利的特征或特征组合的内容,无论是否已强调。

技术分类

06120116581370