一种音频播放方法及移动终端与流程

文档序号:15062310发布日期:2018-07-31 22:04阅读:171来源:国知局

本发明涉及音频处理领域,尤其涉及一种音频播放方法及移动终端。



背景技术:

随着人们生活水平的提高,人们对音乐的热爱程度越来越深。中国红歌会,中国好声音等等大型音乐活动掀起的热浪,更是将跟多的人对音乐的追求从被动的听到开始主动的唱,很多人开始在社交平台上发布自己的歌唱作品,这也让越来越多k歌软件开始盛行。

现有技术中,麦克风录入的录音数据需要依次通过录音线程传输至k歌软件的录音线程至k歌软件的播放线程处,录音数据在k歌软件的播放线程与伴音数据进行混音处理获得混音音频数据,进而传输至喇叭处进行播放。

由于录音数据从麦克风到喇叭需要走一系列流程,例如虚拟机、进程间通讯、重采样等,上述每一个环节都会影响到声音从录入到播放出来的延时。并且,由于部分手机的处理器、闪存等技术都相对落后,导致这部分手机延时问题更加严重。现有技术中的手机,延迟时间最短的时间为70ms左右,最差的可以超过300ms。然而人耳所能识别的声音最小间隙是20ms,这么长的时间间隙会导致录入的声音和伴奏严重不一致,给人体验的非常差。

综上,现有技术由于录音数据传输至k歌软件的播放线程所需要经过的流程较多,导致音频播放的延时时间较长。



技术实现要素:

本发明提供了一种音频播放方法及移动终端,以解决k歌过程中音频数据播放延迟时间较长的问题。

第一方面,本发明实施例提供了一种音频播放方法,应用于移动终端,包括:

获取在录音线程中缓存的麦克风所采集的录音数据以及获取目标应用程序发送至混音器的伴音数据;

对所述录音数据与所述伴音数据进行混音处理;

将所述混音处理后的播放数据发送至播放线程。

第二方面,本发明实施例还提供了一种移动终端,包括:

获取模块,用于获取在录音线程中缓存的麦克风所采集的录音数据以及获取目标应用程序发送至播放线程的伴音数据;

处理模块,用于对所述录音数据与所述伴音数据进行混音处理;

第一发送模块,用于将所述混音处理后的播放数据发送至播放线程。

第三方面,本发明实施例还提供了一种移动终端,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的音频播放方法的步骤。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的音频播放方法的步骤。

这样,本发明的实施例中,由于将麦克风采集的录音数据直接通过录音线程传输至混音器,减少了对麦克风采集的录音数据的传输时间,缩短了音频数据播放的延迟时间,提高了用户体验。

附图说明

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

图1表示本发明的音频播放方法的实施例的流程图之一;

图2表示本发明的实施例中录音数据与伴音数据混音得到播放数据的流程示意图;

图3表示本发明的音频播放方法的实施例的流程图之二;

图4表示本发明的移动终端的实施例的流程图之一;

图5表示本发明的移动终端的实施例的流程图之二;

图6表示本发明移动终端的实施例的框图。

具体实施方式

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

参照图1,本发明实施例提供了一种音频播放方法,应用于移动终端,包括:

步骤101,获取在录音线程中缓存的麦克风所采集的录音数据以及获取目标应用程序发送至混音器的伴音数据。

具体地,在获取在录音线程中缓存的麦克风所采集的录音数据的步骤中,麦克风所采集的录音数据在录音线程中依次经过信号转换和编码处理。

麦克风所采集的录音数据为一模拟信号。麦克风在采集到该模拟信号后,将该模拟信号发送至codec(coderdecoder,编解码器)进行信号转换和编码处理,codec将模拟信号转换为数字信号后,codec根据特定的音频文件格式对数字录音数据进行编码处理。

经过codec进行编码处理后的数字音频数据依次通过alsadriver(advancedlinuxsoundarchitecturediver,声卡驱动程序)以及声卡驱动程序的适配层tinyalsa传输至移动终端的混音器。

移动终端的混音器在接收到该数字音频数据后,将该数字音频数据封装至一录音音频封装包中,具体的,该录音音频封装包为native层安卓系统播放音频数据的统一封装包audioreack。

其中,在本发明实施例中,目标应用程序将一首歌曲的伴奏音划分为三部分,依次,为前奏伴音,正歌伴音以及结尾伴音。对于正歌伴音来说,目标应用程序按照以每一句歌词对应的伴音数据进行发送。

步骤102,对录音数据与伴音数据进行混音处理。

具体地,对录音数据与伴音数据进行混音处理的步骤包括:

具体的,混音器获取录音数据的各个音频帧和每个音频帧所对应的时间戳以及伴音数据的各个音频帧和每个音频帧所对应的时间戳,将录音数据和伴音数据中具有相同时间戳的音频帧叠加得到合成音频帧,该合成音频帧具有原始时间戳,将合成音频帧、伴音数据具有但录音数据不具有的音频帧以及录音数据具有但伴音数据不具有的音频帧,按照时间戳由前至后的顺序生成播放数据。

图2是本发明实施例中提供的录音数据与伴音数据混音得到播放数据的示意图,如图2所示,录音数据20和伴音数据30均包括多个音频帧,每个音频帧具有各自的时间戳。如果录音数据20和伴音数据30中存在相同时间戳的音频帧,智能终端则将录音数据20和伴音数据30中存在相同时间戳的音频帧叠加,比如将具有相同时间戳的音频帧a1和音频帧b1叠加得到合成音频帧c1,将具有相同时间戳的音频帧a3和音频帧b3叠加得到合成音频帧c2,将具有相同时间戳的音频帧a4和音频帧b6叠加得到合成音频帧c3。最后,将录音数据20和伴音数据30中未进行叠加的其它音频帧与得到的合成音频帧按照时间戳由前至后的顺序生成播放数据40。

步骤103,将混音处理后的播放数据发送至播放线程。

具体地,将混音处理后的播放数据发送至播放线程的步骤中,在播放线程中,对播放数据进行解码处理和信号转换。

其中,播放线程在收到该播放数据后,按照录音线程采用的编码方式相对于的解码方式对播放数据进行解码。例如,在录音线程处利用pcm对应的编码方式对音频数据进行编码时,播放线程则采用pcm对应的解码方式对播放数据进行编码。

通过本发明实施例提供的音频播放方法,由于将麦克风采集的录音数据直接通过录音线程传输至混音器,减少了对麦克风采集的录音数据的传输时间,缩短了音频数据播放的延迟时间,提高了用户体验。

更进一步地,在本发明实施例中,参照图3,获取目标应用程序发送至播放线程的伴音数据的步骤之前,方法还包括:

步骤104,接收目标应用程序发送的伴音播放请求。

其中,该伴音播放请求为目标应用程序向混音器用于存储伴音数据的封装空间的请求。

由于目标应用程序将歌曲的伴奏数据划分为三部分(前奏、正歌和结尾),因此,三部分伴音数据对应的伴音播放请求也不相同。目标应用程序首先将歌曲伴音数据划分为三大部分,并且,对正歌部分的伴音,按照每一句歌词对应的伴音数据进行划分。目标应用程序将每一部分伴音数据分别封装至一iava伴音数据封装包中。在将该伴音数据发送至混音器之前,需要将该iava伴音数据封装包转换为c/c++伴音数据封装包。

步骤105,判断伴音播放请求中是否携带有用于指示伴音数据为歌词伴音数据的标识信息。

目标应用程序在发送该伴音播放请求之前,需要根据待发送的伴音数据是否为歌词伴音数据,若为,则需要在该伴音播放请求中添加一标识信息,以使得混音器能够确定待发送的伴音数据为歌词伴音数据。

步骤106,若携带有用于指示伴音数据为歌词伴音数据的标识信息,则向目标应用程序发送一延迟预定时间后发送伴音数据的第一指示信息。

具体地,该预定时间为用户输入的预定时间。

目标应用程序在接收到该第一指示信息后,即在该预定时间后再将该伴音数据发送至混音器。

在此过程中,由于目标应用程序延迟发送了该伴音数据,因此,在该预定时间内,播放线程处不会输出音频数据。用户在此预定时间内,可以对刚录音的一句歌词进行比对,确定所唱歌词的发音,曲调是否正确。同时,无需用户手动输入暂停指令,提高用户体验。

更进一步地,在本发明实施例中,方法还包括:

步骤107,若伴音播放请求中未携带有用于指示伴音数据为歌词伴音数据的标识信息,则向目标应用程序发送一立即发送伴音数据的第二指示信息。

若该伴音播放请求中未携带有该标识信息,即表明目标应用程序即将要发送给混音器的伴音数据为前奏数据或者结尾数据,此过程中,由于用户不会进行歌唱,不会产生录音数据。因此,无需对歌曲伴奏进行暂停,缩短伴奏播放时间。

本发明实施例中,可以将需要对正歌伴奏采用延迟播放的方式设置为一种特殊的播放模式,也即,若用户未启动该种播放模式,目标应用程序则按照现有方式中的持续输出伴音数据的方式对伴音数据进行输出;仅在用户启动该种播放模式时,目标应用程序才按照步骤104至步骤107中的方式对伴音数据进行输出。

通过本发明上述实施例提供的音频播放方法,不仅缩短了k歌过程中的音频播放延迟时间,同时,还能够自动对正歌部分伴音数据按照用户设定的时间进行延迟播放,使得用户能够及时对刚才歌唱过的歌曲进行仔细核对,无需用户手动输入暂停指令,提高用户体验。

参照图4,根据本发明的另一方面,本发明实施例还提供了一种移动终端200,包括:

获取模块201,用于获取在录音线程中缓存的麦克风所采集的录音数据以及获取目标应用程序发送至混音器的伴音数据;

处理模块202,用于对录音数据与伴音数据进行混音处理;

第一发送模块203,用于将混音处理后的播放数据发送至播放线程。

优选地,获取在录音线程中缓存的麦克风所采集的录音数据的步骤中,麦克风所采集的录音数据在录音线程中依次经过信号转换和编码处理。

优选地,将混音处理后的播放数据发送至播放线程的步骤中,在播放线程中,对播放数据进行解码处理和信号转换。

优选地,参照图5,移动终端200还包括:

接收模块204,用于接收目标应用程序发送的伴音播放请求;

判断模块205,用于判断伴音播放请求中是否携带有用于指示伴音数据为歌词伴音数据的标识信息;

第二发送模块206,用于若携带有用于指示伴音数据为歌词伴音数据的标识信息,则向目标应用程序发送一延迟预定时间后发送伴音数据的第一指示信息。

优选地,参照图5,移动终端200还包括:

第三发送模块207,用于若伴音播放请求中未携带有用于指示伴音数据为歌词伴音数据的标识信息,则向目标应用程序发送一立即发送伴音数据的第二指示信息。

本发明实施例提供的移动终端能够实现图1至图3的方法实施例中移动终端实现的各个过程,为避免重复,这里不再赘述。不仅缩短了k歌过程中的音频播放延迟时间,同时,还能够自动对正歌部分伴音数据按照用户设定的时间进行延迟播放,使得用户能够及时对刚才歌唱过的歌曲进行仔细核对,无需用户手动输入暂停指令,提高用户体验。

图6为实现本发明各个实施例的一种移动终端的硬件结构示意图,该移动终端300包括但不限于:射频单元301、网络模块302、音频输出单元303、输入单元304、传感器305、显示单元306、用户输入单元307、接口单元308、存储器309、处理器310、以及电源311等部件。本领域技术人员可以理解,图6中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,移动终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。

其中,射频单元301,用于根据处理器310的控制进行收发信号;

处理器310,用于获取在录音线程中缓存的麦克风所采集的录音数据以及获取目标应用程序发送至混音器的伴音数据;对录音数据与伴音数据进行混音处理;将混音处理后的播放数据发送至播放线程。

应理解的是,本发明实施例中,射频单元301可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器310处理;另外,将上行的数据发送给基站。通常,射频单元301包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元301还可以通过无线通信系统与网络和其他设备通信。

移动终端通过网络模块302为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。

音频输出单元303可以将射频单元301或网络模块302接收的或者在存储器309中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元303还可以提供与移动终端300执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元303包括扬声器、蜂鸣器以及受话器等。

输入单元304用于接收音频或视频信号。输入单元304可以包括图形处理器(graphicsprocessingunit,gpu)3041和麦克风3042,图形处理器3041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元306上。经图形处理器3041处理后的图像帧可以存储在存储器309(或其它存储介质)中或者经由射频单元301或网络模块302进行发送。麦克风3042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元301发送到移动通信基站的格式输出。

移动终端300还包括至少一种传感器305,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板3061的亮度,接近传感器可在移动终端300移动到耳边时,关闭显示面板3061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器305还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。

显示单元306用于显示由用户输入的信息或提供给用户的信息。显示单元306可包括显示面板3061,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板3061。

用户输入单元307可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元307包括触控面板3071以及其他输入设备3072。触控面板3071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板3071上或在触控面板3071附近的操作)。触控面板3071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器310,接收处理器310发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板3071。除了触控面板3071,用户输入单元307还可以包括其他输入设备3072。具体地,其他输入设备3072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。

进一步的,触控面板3071可覆盖在显示面板3061上,当触控面板3071检测到在其上或附近的触摸操作后,传送给处理器310以确定触摸事件的类型,随后处理器310根据触摸事件的类型在显示面板3061上提供相应的视觉输出。虽然在图6中,触控面板3071与显示面板3061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板3071与显示面板3061集成而实现移动终端的输入和输出功能,具体此处不做限定。

接口单元308为外部装置与移动终端300连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。接口单元308可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端300内的一个或多个元件或者可以用于在移动终端300和外部装置之间传输数据。

存储器309可用于存储软件程序以及各种数据。存储器309可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器309可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器310是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器309内的软件程序和/或模块,以及调用存储在存储器309内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器310可包括一个或多个处理单元;优选的,处理器310可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器310中。

移动终端300还可以包括给各个部件供电的电源311(比如电池),优选的,电源311可以通过电源管理系统与处理器310逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

另外,移动终端300包括一些未示出的功能模块,在此不再赘述。

优选的,本发明实施例还提供一种移动终端,包括处理器310,存储器309,存储在存储器309上并可在所述处理器310上运行的计算机程序,该计算机程序被处理器310执行时实现上述音频播放方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述音频播放方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

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

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。

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