一种录音方法、装置、音频系统、录音设备及存储介质与流程

文档序号:16929405发布日期:2019-02-22 20:08阅读:250来源:国知局
一种录音方法、装置、音频系统、录音设备及存储介质与流程

本申请涉及人工智能技术领域,尤其涉及一种录音方法、装置、音频系统、录音设备及存储介质。



背景技术:

安卓系统作为一款操作系统,在当今复杂的应用中,因其高度的开放性和高度的可定制性,在人工智能领域发挥着越来越重要的作用。目前的安卓系统最多支持两路麦克风音频的输入,而在某些应用场景(如降噪、回声消除、声源定位等)中,通常需要采用麦克风阵列来采集音频数据,这就要求通过安卓系统实现两路以上麦克风音频的输入,因此,如何通过安卓系统实现两路以上麦克风音频的输入是当下亟需解决的问题。



技术实现要素:

有鉴于此,本申请提供了一种录音方法、装置、音频系统、录音设备及存储介质,用以通过安卓系统实现两路以上麦克风音频输入,其技术方案如下:

一种录音方法,应用于基于安卓系统的音频系统中的音频硬件抽象模块,所述方法包括:

获取多路音频数据;

将所述多路音频数据保存至第一缓冲池中;

当第一录音应用通过第一接口请求多路音频数据时,将所述第一缓冲池中的所述多路音频数据通过所述第一接口传输至所述第一录音应用,其中,所述第一接口为用于传输至少两路音频信号的接口。

所述录音方法还包括:

将所述多路音频数据中的一路或两路音频数据保存至第二缓冲池中;

当第二录音应用通过第二接口请求一路或两路音频数据时,将所述第二缓冲池中的一路或两路音频数据通过所述第二接口传输至所述第二录音应用,其中,所述第二接口为用于传输最多两路音频信号的接口。

所述录音方法还包括:

当所述第一缓冲池、所述第二缓冲池中的任一缓冲池被音频数据填满时,用待保存音频数据覆盖该缓冲池中最早保存的音频数据。

其中,所述获取多路音频数据,包括:

当所述安卓系统启动时,启动录音线程;

通过所述录音线程从所述音频系统中的音频驱动模块获取所述多路音频数据。

所述录音方法还包括:

当所述安卓系统启动时,启动与所述第一接口对应的通信服务模块;

所述将所述第一缓冲池中的所述多路音频数据通过所述第一接口传输至所述第一录音应用,包括:

在所述第一录音应用通过第一接口与所述通信服务模块建立连接后,通过基于所述第一接口和所述通信服务模块建立的通信通道,将所述多路音频数据传输至所述第一录音应用。

一种录音装置,应用于基于安卓系统的智能设备的音频系统中的音频硬件抽象模块,包括:获取模块、第一缓存模块和第一传输模块;

所述获取模块,用于获取多路音频数据;

所述第一缓存模块,用于将所述多路音频数据保存至第一缓冲池中;

所述第一传输模块,用于当第一录音应用通过第一接口请求多路音频数据时,将所述第一缓冲池中的所述多路音频数据通过所述第一接口传输至所述第一录音应用,其中,所述第一接口为用于传输至少两路音频信号的接口。

所述录音装置还包括:第二缓存模块和第二传输模块;

所述第二缓存模块,用于将所述多路音频数据中的一路或两路音频数据保存至第二缓冲池中;

所述第二传输模块,用于当第二录音应用通过第二接口请求一路或两路音频数据时,将所述第二缓冲池中的一路或两路音频数据通过所述第二接口传输至所述第二录音应用,其中,所述第二接口为用于传输最多两路音频信号的接口。

一种基于安卓系统的智能设备的音频系统,至少包括:音频硬件抽象模块、音频驱动模块和多个模数转换模块,其中,所述音频硬件抽象模块设置有第一缓冲池,每个模数转换模块对应一麦克风;

所述模数转换模块,用于获取对应麦克风采集的模拟音频信号,将所述模拟音频信号转换为数字音频信号;

所述音频驱动模块,用于获取所述多个模数转换模块输出的多路音频数据;

所述音频硬件抽象模块,用于从所述音频驱动模块获取所述多路音频数据,将所述多路音频数据保存至第一缓冲池中;以及,当第一录音应用通过第一接口请求多路音频数据时,将所述第一缓冲池中的所述多路音频数据通过所述第一接口传输至所述第一录音应用,其中,所述第一接口用于传输至少两路音频信号。

其中,所述音频硬件抽象模块还设置有第二缓冲池;

所述音频硬件抽象模块,还用于将所述多路音频数据中的一路或两路音频数据保存至第二缓冲池中;以及,当第二录音应用通过第二接口请求一路或两路音频数据时,将所述第二缓冲池中的一路或两路音频数据通过所述第二接口传输至所述第二录音应用,其中,所述第二接口用于传输最多两路音频信号。

其中,所述音频硬件抽象模块,具体用于在所述安卓系统启动时,启动录音线程,通过所述录音线程从所述音频驱动模块获取所述多路音频数据。

其中,所述音频系统设置有与所述第一接口对应的通信服务模块;

所述音频硬件抽象模块,具体用于在所述安卓系统启动时,启动所述通信服务模块,当所述第一录音应用通过所述第一接口与所述通信服务模块建立连接后,通过基于所述第一接口和所述通信服务建立的通信通道,将所述多路音频数据传输至所述第一录音应用。

一种录音设备,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,所述程序具体用于:

获取多路音频数据;

将所述多路音频数据保存至第一缓冲池中;

当第一录音应用通过第一接口请求多路音频数据时,将所述第一缓冲池中的所述多路音频数据通过所述第一接口传输至所述第一录音应用,其中,所述第一接口为用于传输至少两路音频信号的接口。

一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现所述的录音方法的各个步骤。

经由上述的技术方案可知,本申请提供的录音方法、装置、音频系统、录音设备及存储介质,在获取到多路音频信号后,通过将多路音频信号保存至音频硬件抽象模块设置的第一缓冲池中,使得当第一录音应用通过设置的用于传输多路音频数据的第一接口请求多路音频数据时,音频硬件抽象模块能够从第一缓冲池中获取多路音频信号,并通过第一接口将多路音频信号传输至第一录音应用,由此可见,本申请可通过安卓系统实现两路以上麦克风音频数据的输入,从而能够适用于采用麦克风阵列采集音频数据的应用场景。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为现有技术中基于安卓系统的音频系统的结构示意图;

图2为本申请实施例提供的基于安卓系统的音频系统的结构示意图;

图3为本申请实施例提供的录音方法的一流程示意图;

图4为本申请实施例提供的录音方法的另一流程示意图;

图5为本申请实施例提供的录音装置的结构示意图;

图6为本申请实施例提供的录音设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参阅图1,示出了现有的基于安卓系统的音频系统的结构示意图,该音频系统包括模数转换模块101、音频驱动模块102、音频硬件抽象模块103、音频框架模块104。基于图1示出音频系统实现录音的方案为:

模数转换器101获取麦克风采集的单路或者双路模拟音频信号,将获取的单路或双路模拟音频信号转换为数字音频信号,并将单路或双路数字音频信号传输至音频驱动模块102,当录音应用100通过安卓标准接口请求音频数据时,先将所需音频格式通过安卓标准接口传输给音频硬件抽象模块103,音频硬件抽象模块103从音频驱动模块102中获取单路或双路数字音频数据,将获取的音频数据转换为录音应用所需要的格式,再将格式转换后的音频数据通过安卓标准接口传输给录音应用100。需要说明的是,在录音时,音频硬件抽象模块103调用安卓标准接口,以供音频框架模块104通过该安卓标准接口执行录音操作。

由于安卓系统目前主要应用于移动终端如手机、平板电脑等,而手机、平板电脑等的麦克风为一个或两个,因此,目前的安卓系统最多支持两路音频数据的输入,而无法支持两路以上音频数据的输入。

为了实现对两路以上音频数据的输入,本申请实施例提供了一种基于安卓系统的音频系统,请参阅图2,示出了该音频系统的结构示意图,该音频系统可以包括:多个模数转换模块201、音频驱动模块202、音频硬件抽象模块203、通信服务模块204和音频框架模块205,其中,音频硬件抽象模块203设置有第一缓冲池,每个模数转换模块201对应一麦克风。

模数转换模块201,用于获取对应麦克风采集的模拟音频信号,将模拟音频信号转换为数字音频信号。

音频驱动模块202,用于获取多个模数转换模块203输出的多路音频数据。

音频硬件抽象模块203,用于从音频驱动模块202获取多路音频数据,将多路音频数据保存至第一缓冲池中,当第一录音应用206通过第一接口请求多路音频数据时,将第一缓冲池中的多路音频数据通过第一接口传输给第一录音应用206。

其中,第一录音应用206可以为专门用于获取多路尤其是两路以上音频数据的录音应用,第一接口为本申请专门设置的用于传输至少两路音频数据的接口。

需要说明的是,第一录音应用206在请求多路音频数据时,先将所需音频数据的音频格式通过第一接口发送至音频硬件抽象模块203,音频硬件抽象模块203从第一缓冲池中获取多路音频数据,将获取的多路音频数据的格式转换为第一录音应用206所需的音频格式,然后将进行格式转换后的多路音频数据通过第一接口传输至第一录音应用206。

在本申请中,当安卓系统启动时,音频硬件抽象模块203启动录音,启动录音的同时,启动录音线程,不断从音频驱动模块202获取音频数据。

另外,音频硬件抽象模块203启动录音的同时,启动通信服务模块204,以等待第一录音应用请求多路音频数据。音频硬件抽象模块203在第一录音应用通过第一接口请求连接,并与通信服务模块204建立连接后,通过基于第一接口和通信服务模块建立的通信通道,将多路音频数据传输至第一录音应用。在一种可能的实现方式中,第一接口可以为本地套接字localsocket,通信服务模块204可以为本地套接字localsocket服务模块。

需要说明的是,现有技术中为了实现多路音频数据的输入,在现有音频系统的基础上,设置一中转应用,中转应用通过安卓标准接口获取多路音频数据并缓存,当用于获取多路音频的录音应用请求多路音频数据时,通过设置的私有接口将音频格式传输给中转应用,中转应用通过私有接口将格式转换后的多路音频数据传输至用于获取多路音频数据的录音应用。发明人在实现本发明创造的过程中发现,由于录音资源的独占性,中转应用占有录音时,用于获取一路或两路音频的录音应用无法通过安卓标准接口获取音频数据。

鉴于现有方案存在的问题,即为了使现有的用于获取一路或两路音频数据的录音应用与用于获取多路音频的录音应用在同时获取音频数据时互不影响,在本申请中,音频硬件抽象模块203还设置了第二缓冲池,第二缓冲池用于缓存多路音频数据中的一路或两路音频数据。

具体的,音频硬件抽象模块203在从音频驱动模块202获取到多路音频数据后,一方面将多路音频数据保存至第一缓冲池中,另一方面,从多路音频数据中获取一路或两路音频数据保存至第二缓冲池中。

当第二录音应用通过第二接口请求音频数据时,音频硬件抽象模块201将第二缓冲池中的一路或两路音频数据通过第二接口传输至第二录音应用。其中,第二录音应用为用于获取一路或两路音频数据的应用,第二接口为用于传输最多两路音频信号的接口,其可以为现有的安卓标准接口。

本申请提供的基于安卓系统的音频系统中,音频硬件抽象模块在获取到多路音频信号时,一方面将多路音频数据保存至第一缓冲池中,另一方面,将多路音频数据中的一路或两路音频数据保存至第二缓冲池中,这使得,当第一录音应用通过第一接口请求多路音频数据时,音频硬件抽象模块能够从第一缓冲池中获取多路音频数据,并将多路音频数据通过第一接口传输至第一录音应用,当第二录音应用通过第二接口请求一路或两路音频数据时,音频硬件抽象模块能够从第二缓冲池中获取一路或两路音频数据,并将一路或两路音频数据通过第二接口传输至第二录音应用。由此可见,本申请实施例提供的音频系统不但可以实现两路以上音频数据的输入,而且,由于多路音频数据与一路或两路音频数据保存在不同的缓冲池中,且两个缓冲池中的音频数据通过不同的接口传输,因此,第一录音应用与第二录音应用同时获取音频数据时互不影响。

本申请实施例还提供了一种录音方法,该录音方法应用于基于安卓系统的音频系统中的音频硬件抽象模块,音频硬件抽象模块设置有第一缓冲池,请参阅图3,示出了该录音方法的流程示意图,该方法可以包括:

步骤s301:获取多路音频数据。

具体地,从音频系统中的音频驱动模块获取多路音频数据,多路音频数据为由多个麦克风采集并由模数转换器转换后的音频数据。

在本申请中,当安卓系统启动时,可启动录音线程,通过录音线程从音频驱动模块获取录音数据。

步骤s302:将多路音频数据保存至第一缓冲池中。

在将多路音频数据保存至第一缓冲池时,若第一缓冲池中填满音频数据,则用待保存音频数据覆盖第一缓冲池中最早保存的数据。

步骤s303:当第一录音应用通过第一接口请求多路音频数据时,将第一缓冲池中的多路音频数据通过第一接口传输至第一录音应用。

其中,第一录音应用可以为专门用于获取多路尤其是两路以上音频数据的录音应用,第一接口为本申请专门设置的用于传输至少两路音频数据的接口。

在本实施例中,当安卓系统启动时,可启动通信服务模块,以等待第一录音应用请求多路音频数据,在第一录音应用通过第一接口请求连接,并与通信服务模块建立连接后,通过基于第一接口和通信服务模块建立的通信通道,将多路音频数据传输至第一录音应用。在一种可能的实现方式中,第一接口可以为本地套接字localsocket,通信服务模块为本地套接字localsocket服务模块。

将第一缓冲池中的多路音频数据通过第一接口传输至第一录音应用的过程包括:从第一缓冲池中获取多路音频数据,将获取的多路音频数据的格式转换为第一录音应用所需的音频格式,然后将进行格式转换后的多路音频数据通过第一接口传输至第一录音应用。

本申请实施例提供的录音方法,在获取到多路音频信号后,通过将多路音频信号保存至音频硬件抽象模块设置的第一缓冲池中,使得当第一录音应用通过设置的用于传输多路音频数据的第一接口请求多路音频数据时,音频硬件抽象模块能够从第一缓冲池中获取多路音频信号,并通过第一接口将多路音频信号传输至第一录音应用,由此可见,本申请实施例提供的录音方法可通过安卓系统实现两路以上麦克风音频数据的输入。

为了使用于获取一路或两路音频数据的录音应用与用于获取多路音频的录音应用在同时获取音频数据时互不影响,本申请实施例提供了另一录音方法,请参阅图4,示出了该录音方法的流程示意图,该方法可以包括:

步骤s401:获取多路音频数据。

当安卓系统启动时,启动录音线程,通过录音线程从音频系统中的音频驱动模块获取多路音频数据。

步骤s402:将多路音频数据保存至第一缓冲池中,将多路音频数据中的一路或两路音频数据保存至第二缓冲池中。

当第一缓冲池、第二缓冲池中的任一缓冲池被音频数据填满时,用待保存音频数据覆盖该缓冲池中最早保存的音频数据。

步骤s403a:当第一录音应用通过第一接口请求多路音频数据时,将第一缓冲池中的多路音频数据通过第一接口传输至第一录音应用。

其中,第一录音应用可以为专门用于获取多路尤其是两路以上音频数据的录音应用,第一接口为本申请专门设置的用于传输至少两路音频数据的接口。

步骤s403b:当第二录音应用通过第二接口请求一路或两路音频数据时,将第二缓冲池中的一路或两路音频数据通过第二接口传输至第二录音应用。

其中,第二录音应用为获取一路或两路音频数据的应用,第二接口为用于传输最多两路音频信号的接口,其可以为现有的安卓标准接口。

本申请提供的录音方法使得,音频硬件抽象模块在获取到多路音频信号时,一方面将多路音频数据保存至第一缓冲池中,另一方面,将多路音频数据中的一路或两路音频数据保存至第二缓冲池中,这使得,当第一录音应用通过第一接口请求多路音频数据时,能够从第一缓冲池中获取多路音频数据,并将多路音频数据通过第一接口传输至第一录音应用,当第二录音应用通过第二接口请求一路或两路音频数据时,能够从第二缓冲池中获取一路或两路音频数据,并将一路或两路音频数据通过第二接口传输至第二录音应用。由此可见,本申请提供的音频系统不但可以实现两路以上音频数据的输入,而且,由于多路音频数据与一路或两路音频数据放在不同的缓冲池中,因此,第一录音应用与第二录音应用同时获取音频数据时互不影响。

本申请实施例还提供了一种录音装置,该录音装置应用于基于安卓系统的音频系统中的音频硬件抽象模块,音频硬件抽象模块设置有第一缓冲池,请参阅图5,示出了该装置的结构示意图,可以包括:获取模块501、第一缓存模块502和第一传输模块503。

获取模块501,用于获取多路音频数据。

第一缓存模块502,用于将多路音频数据保存至第一缓冲池中。

第一传输模块503,用于当第一录音应用通过第一接口请求多路音频数据时,将所述第一缓冲池中的所述多路音频数据通过所述第一接口传输至所述第一录音应用。

其中,第一接口为用于传输至少两路音频信号的接口。

本申请提供的录音装置,在获取到多路音频信号后,通过将多路音频信号放在设置的第一缓冲池中,使得当第一录音应用通过设置的用于传输多路音频数据的第一接口请求多路音频数据时,能够从第一缓冲池中获取多路音频信号,并通过第一接口将多路音频信号传输至第一录音应用,由此可见,本申请可通过安卓系统实现两路以上音频数据的输入。

为了使用于获取一路或两路音频数据的录音应用与用于获取多路音频的录音应用在同时获取音频数据时互不影响,上述实施例提供的录音装置还可以包括:第二缓存模块和第二传输模块。

所述第二缓存模块,用于将所述多路音频数据中的一路或两路音频数据保存至第二缓冲池中。

所述第二传输模块,用于当第二录音应用通过第二接口请求一路或两路音频数据时,将所述第二缓冲池中的一路或两路音频数据通过所述第二接口传输至所述第二录音应用。

其中,所述第二接口为用于传输最多两路音频信号的接口。

上述实施例提供的录音装置中,第一缓存模块,在将多路音频数据保存至第一缓冲池时,若第一缓冲池被音频数据填满,则用待保存至该缓冲池的音频数据覆盖第一缓冲池中最早保存的音频数据。

同样地,第二缓存模块,在将所述多路音频数据中的一路或两路音频数据保存至第二缓冲池时,若第二缓冲池被音频数据填满,则用待保存音频数据覆盖第二缓冲池中最早保存的音频数据。

上述实施例提供的录音装置中,获取模块,具体用于当所述安卓系统启动时,启动录音线程,通过所述录音线程从所述音频系统中的音频驱动模块获取所述多路音频数据。

上述实施例提供的录音装置中,第一传输模块,具体用于在所述第一录音应用通过第一接口与对应的通信服务模块建立连接后,通过基于所述第一接口和所述通信服务模块建立的通信通道,将所述多路音频数据传输至所述第一录音应用。

本发明实施例还提供了一种录音设备,请参阅图6,示出了该设备的结构示意图,该设备可以包括:存储器601和处理器602。

存储器601,用于存储程序;

处理器602,用于执行所述程序,所述程序具体用于:

获取多路音频数据;

将所述多路音频数据保存至第一缓冲池中;

当第一录音应用通过第一接口请求多路音频数据时,将所述第一缓冲池中的所述多路音频数据通过所述第一接口传输至所述第一录音应用,其中,所述第一接口为用于传输至少两路音频信号的接口。

录音设备还可以包括:总线、通信接口603、输入设备604和输出设备606。

处理器602、存储器601、通信接口603、输入设备604和输出设备606通过总线相互连接。其中:

总线可包括一通路,在计算机系统各个部件之间传送信息。

处理器602可以是通用处理器,例如通用中央处理器(cpu)、微处理器等,也可以是特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

处理器602可包括主处理器,还可包括基带芯片、调制解调器等。

存储器601中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,存储器601可以包括只读存储器(read-onlymemory,rom)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(randomaccessmemory,ram)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。

输入设备604可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。

输出设备606可包括允许输出信息给用户的装置,例如显示屏、扬声器等。

通信接口603可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(ran),无线局域网(wlan)等。

处理器602执行存储器601中所存放的程序,以及调用其他设备,可用于实现本申请实施例所提供的录音方法的各个步骤。

本申请还提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述实施例的录音方法的各个步骤。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1