用于FreeRTOS单芯片的音频重采样方法和装置与流程

文档序号:17773795发布日期:2019-05-28 19:46阅读:492来源:国知局
用于FreeRTOS单芯片的音频重采样方法和装置与流程

本发明属于互联网技术领域,尤其涉及用于freertos单芯片的音频重采样方法和装置。



背景技术:

相关技术中,在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(embeddedreal-timeoperationsystem,rtos)可以更合理、更有效地利用cpu的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。

freertos是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。

由于rtos需占用一定的系统资源(尤其是ram资源),只有μc/os-ii、embos、salvo、freertos等少数实时操作系统能在小ram单片机上运行。相对μc/os-ii、embos等商业操作系统,freertos操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。

近年来,随着智能设备的兴起,儿童故事机等教育类电子产品越来越受家长和孩子的青睐,这类设备扮演的角色是智能电子产品的终端,通过网络与服务器交互,属于典型的嵌入式应用,具有运算能力不足、内存资源有限等问题。

故事机作为一款音频类产品,播放的音源种类万千,不同的音源其采样率也不一样,充分调研了市场上的儿童故事机后,目前主流故事机采用以下两种方案:

(1)方案一:播放与录音用同一颗芯片完成。

发明人在实现本申请的过程中发现:该方案的优点是节约硬件成本,在播放不同采样率的音频时,通过动态调整芯片的频率来匹配不同的采样率,而在录音时,又修改时钟频率以符合录音的采样率。时钟频率的不断修改,使得播放与录音只能同时进行一项功能,由于vad(voiceactivitydetection,vad)和wakeup(唤醒)功能,需要在播放音频的同时,也能实时进行录音,因此采用该方案的产品不能支持vad和wakeup功能。

(2)方案二:播放与录音由两颗芯片单独完成。

发明人在实现本申请的过程中发现:该方案使得录音与播放分开,并且可以同时进行,可以实现vad和wakeup功能,相应也会增加硬件成本,从大量的发货量来看,硬件成本的一丝增加,也会造成巨大的开销。



技术实现要素:

本发明实施例提供一种用于freertos单芯片的音频重采样方法和装置,用于至少解决上述技术问题之一。

第一方面,本发明实施例提供一种用于freertos单芯片的音频重采样方法,包括:对左声道数据和右声道数据进行数据预处理生成单通道音频数据;基于预设的插值算法对所述单通道音频数据进行重采样以使得在单芯片上同时进行拾音和播放。。

第二方面,本发明实施例提供一种用于freertos单芯片的音频重采样装置,包括:预处理模块,配置为对左声道数据和右声道数据进行数据预处理生成单通道音频数据;以及重采样模块,配置为基于预设的插值算法对所述单通道音频数据进行重采样以使得在单芯片上同时进行拾音和播放。

第三方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的用于freertos单芯片的音频重采样方法的步骤。

第四方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行本发明任一实施例的用于freertos单芯片的音频重采样方法的步骤。

本申请的方法和装置在资源受限的嵌入式设备上,在保证音频质量的同时,能够实时完成重采样,有效降低硬件的设计成本,适用于计算能力以及资源不足的嵌入式产品,给用户较好的体验感。

附图说明

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

图1为本发明一实施例提供的一种用于freertos单芯片的音频重采样方法的流程图;

图2为本发明一实施例提供的一种用于freertos单芯片的音频重采样方法的具体示例图;

图3为本发明一实施例提供的一种用于freertos单芯片的音频重采样方法的具体示例与现有技术的效果对比图;

图4为本发明一实施例提供的一种用于freertos单芯片的音频重采样装置框图;

图5是本发明一实施例提供的电子设备的结构示意图。

具体实施方式

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

请参考图1,其示出了本申请的用于freertos单芯片的音频重采样方法一实施例的流程图,本实施例的用于freertos单芯片的音频重采样方法可以适用于嵌入式电子产品的终端、如智能儿童故事机、智能对话玩具、包含智能故事播放的设备等。

如图1所示,在步骤101中,对左声道数据和右声道数据进行数据预处理生成单通道音频数据;

在步骤102中,基于预设的插值算法对所述单通道音频数据进行重采样以使得在单芯片上同时进行拾音和播放。

在本实施例中,对于步骤10,1,音频重采样装置通过对左右声道的数据进行数据预处理使之形成单通道音频数据。之后,对于步骤102,采用预设的插值算法对该单通道音频数据进行重采样,从而支持在单芯片上同时进行拾音和播放。

在一些可选的实施例中,所述预设的插值算法为线性插值算法。采用线性插值算法进行重采样,可以有效地减少系统开销,由于重采样技术,使得同一个芯片能够同时进行拾音与播放功能。另一方面,线性插值对32k或以上的音频信号造成的噪声小,有效保障了音频的质量。

在一些可选的实施例中,所述数据预处理为混音处理。基于混音的原理与技术,可以把左右通道的数据混音,混合成一个单通道的音频,有效减少重采样的数据量,明显加速整个采样过程。

在一些可选的实施例中,在基于预设的插值算法对所述单通道音频数据进行重采样,上述方法还包括:基于直接内存存取进行数据在底层的传输以减少cpu的使用率。其中,直接内存存取(dma,directmemoryaccess)是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于cpu的大量中断负载。否则,cpu需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,cpu对于其他的工作来说就无法使用。数据的底层传输采用dma,直接略过cpu,完成数据的传输与访问,减少cpu的使用率,让cpu能够空闲处理其他任务。

在一些可选的实施例中,上述方法用于嵌入式应用。由于嵌入式应用,通常具有运算能力不足、内存资源有限,所以采用上述用于freertos单芯片的音频重采样方法能够有效地减少对cpu的使用率以及内存的占用率。进一步可选的,所述嵌入式应用包括儿童故事机。儿童故事机属于典型的嵌入式应用,而市面上较低端的故事机很少使用重采样,本申请的方案为了进一步降低硬件成本,使得儿童故事机可以采用一个芯片进行音频的拾音和播放,通过对音源进行重采样,使得拾音与播放能够同时进行,奠定了vad与wakeup功能的实现。

下面对通过描述发明人在实现本发明的过程中遇到的一些问题和对最终确定的方案的一个具体实施例进行说明,以使本领域技术人员更好地理解本申请的方案。

方案构思:

鉴于市面上较低端的故事机很少使用重采样,本方案为了进一步降低硬件成本,采用一个芯片完成音频的拾音与播放,通过对音源进行重采样,使得拾音与播放能够同时进行,奠定了vad与wakeup功能的实现。

由于声音对于实时性、连续性要求非常高,因此重采样必须要快,不能影响实时性与连续性,否则出现较差的用户体验感。目前的重采样技术主要有:拉格朗日重采样、正弦插值重采样、线性插值重采样,基于mtk的mt7686上的freertos进行验证。拉格朗日重采样后的音频质量最好,但是巨大的运算,无法满足实时性,不适合在运算能力不足的嵌入式设备上运行;而正弦插值采样后的音频质量也很好,为了加速正弦值的计算,采用查找表的方法,可以加速正弦的计算结果,但是依然无法满足实时要求,且查找表生成的代码占用更多的内存与flash空间。

线性插值法是最简单的重采样算法,系统开销小,这是它最主要的优点。同时它也有明显的缺点就是容易引入较大的噪声,增加信噪比,减少动态范围。为了保证音频质量,应该尽量降低因重采样而引入的噪音,同时合理减少系统运算量。当原始音频信号采样频率不小于32k时,用线性插值法重采样能得到较好的音质。当原始音频信号采样频率小于32k时,线性插值法会引入较大噪声。显然,大部分的音源都是44.1khz或者48khz,均高于32k,因此重采样不会对音频质量影响较大,并将重采样后的频率设为32k。

因此,本方案采用线性插值完成重采样,统一重采样到32k,在mt7686上进行单一的重采样任务时,可以达到实时要求,但当任务增多时,实时性受到干扰,因此还需要对重采样进行优化,比如对数据进行预处理,减少待处理的数据量。

框架设计:

整体的框架设计如图2所示:

(1)预处理技术,基于混音的原理与技术,把左右通道的数据混音,混合成一个单通道的音频,有效减少重采样的数据量,明显加速整个采样过程。

(2)采用线性插值算法进行重采样,减少系统开销,由于重采样技术,使得同一个芯片能够同时进行拾音与播放功能。另一方面,线性插值对32k或以上的音频信号造成的噪声小,有效保障了音频的质量。

(3)数据的底层传输采用dma,直接略过cpu,完成数据的传输与访问,减少cpu的使用率,让cpu能够空闲处理其他任务。

结果对比:

请参考图3,结果对比主要从cpu与内存占用率这两个方面进行比较,本方案指上文设计的框架,对比未经优化的方法:直接使用线性插值算法进行重采样。数据表明,该方案对cpu的使用率以及内存的占用率,都在合理范围内。

请参考图4,其示出了本发明一实施例提供的用于freertos单芯片的音频重采样装置的框图。

如图4所示,一种用于freertos单芯片的音频重采样装置400,包括预处理模块410和重采样模块420。

其中,预处理模块410,配置为对左声道数据和右声道数据进行数据预处理生成单通道音频数据;以及重采样模块420,配置为基于预设的插值算法对所述单通道音频数据进行重采样以使得在单芯片上同时进行拾音和播放。

在一些可选的实施例中,上述用于freertos单芯片的音频重采样装置400,还包括:直接内存存取模块(图中未示出),配置为基于直接内存存取进行数据在底层的传输以减少cpu的使用率。

应当理解,图4中记载的诸模块与参考图1中描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征以及相应的技术效果同样适用于图4中的诸模块,在此不再赘述。

值得注意的是,本公开的实施例中的模块并不用于限制本公开的方案,例如属性分析模块可以描述为基于获取的用户的声纹信息,分析用户的基础属性的模块。另外,还可以通过硬件处理器来实现相关功能模块,例如属性分析模块也可以用处理器实现,在此不再赘述。

在另一些实施例中,本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的用于freertos单芯片的音频重采样方法;

作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:

对左声道数据和右声道数据进行数据预处理生成单通道音频数据;

基于预设的插值算法对所述单通道音频数据进行重采样以使得在单芯片上同时进行拾音和播放。

非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于freertos单芯片的音频重采样装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至用于freertos单芯片的音频重采样装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述任一项用于freertos单芯片的音频重采样方法。

图5是本发明实施例提供的电子设备的结构示意图,如图5所示,该设备包括:一个或多个处理器510以及存储器520,图5中以一个处理器510为例。用于freertos单芯片的音频重采样方法的设备还可以包括:输入装置530和输出装置540。处理器510、存储器520、输入装置530和输出装置540可以通过总线或者其他方式连接,图5中以通过总线连接为例。存储器520为上述的非易失性计算机可读存储介质。处理器510通过运行存储在存储器520中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例用于freertos单芯片的音频重采样方法。输入装置530可接收输入的数字或字符信息,以及产生与信息投放装置的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。

上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。

作为一种实施方式,上述电子设备应用于用于freertos单芯片的音频重采样装置中,用于客户端,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:

对左声道数据和右声道数据进行数据预处理生成单通道音频数据;

基于预设的插值算法对所述单通道音频数据进行重采样以使得在单芯片上同时进行拾音和播放。

本申请实施例的电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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