音频播放音量的调节方法、装置及存储介质与流程
本申请涉及一种音频播放音量的调节方法、装置及存储介质,属于信号处理技术领域。
背景技术:
用户通常使用音频播放设备来播放音频。音频解码后,用户为了能听清楚内容,会将音频调节到适合的一档音量,比如:通过调节播放设备的音量来调节音频的音量,或者,也可以通过调节软件播放器的音量来调节音频的音量。
现有的音频播放音量的调节方式为对音频数据整体进行放大。对于需要将音频播放设备播放的音频重新采集的场景,比如:音视频会议、对播放音频中的智能音箱讲话等场景,需要对音频播放设备播放的音频进行回声消除处理。即,通过回声消除算法将再次采集到的音频滤除,以得到用户声音信号。
此时,如果音频数据被音频播放设备的信号放大器处理后出现非线性失真,拾音设备再次采集到的就是失真的数据,与原始播放的音频参考信号不同,回声消除的效果不佳,影响音频播放效果。
技术实现要素:
本申请提供了一种音频播放音量的调节方法、装置及存储介质,可以解决音频文件整体放大时容易出现截止失真的问题。本申请提供如下技术方案:
第一方面,提供了一种音频播放音量的调节方法,所述方法包括:
对于音频文件中的每帧音频数据,确定所述音频数据在不失真条件下的音量等级最大值;
获取所述音频文件的音量等级设置值;
在所述音量等级设置值大于所述音量等级最大值时,按照所述音量等级最大值对所述音频数据的播放音量进行调整。
可选地,所述对于音频文件中的每帧音频数据,确定所述音频数据在不失真条件下的音量等级最大值,包括:
获取所述音频数据中的样本最大值;
获取不失真条件下的样本阈值;
基于所述样本最大值和所述样本阈值确定所述音量等级最大值。
可选地,所述基于所述样本最大值和所述样本阈值确定所述音量等级最大值,包括:
计算所述样本最大值对应的第一分贝值;
计算所述样本阈值对应的第二分贝值;
将所述第二分贝值与所述第一分贝值之间的差除以分贝间隔值,得到音量等级可调节值,所述分贝间隔值是指相邻的两级音量等级之间对应的分贝值之差;
将所述音频数据的原始播放音量对应的音量等级基础值与所述音量等级可调节值的和确定为所述音量等级最大值。
可选地,所述按照所述音量等级最大值对所述音频数据的播放音量进行调整,包括:
基于上一帧音频数据的音量等级使用值逐帧调节预设的音量等级间隔值,直至所述音量等级使用值调节至所述音量等级最大值时停止。
可选地,所述方法还包括:
在所述音量等级设置值小于或等于所述音量等级最大值时,基于上一帧音频数据的音量等级使用值逐帧调节预设的音量等级间隔值,直至所述音量等级使用值调节至所述音量等级设置值时停止。
可选地,所述获取所述音频文件的音量等级设置值之后,还包括:
确定所述音量等级设置值是否大于所述音频数据的原始播放音量对应的音量等级基础值;
在所述音量等级设置值大于所述基础等级值时,触发执行所述在所述音量等级设置值大于所述音量等级最大值时,按照所述音量等级最大值对所述音频数据的播放音量进行调整的步骤。
可选地,所述方法还包括:
在所述音量等级设置值小于或等于所述基础等级值时,按照所述音量等级设置值对所述音频数据的播放音量进行调整。
可选地,所述方法还包括:
获取音量等级划分方式;
获取音频量化范围;
使用所述音频量化范围和所述等级划分方式确定音量等级范围,所述音量等级最大值和所述音量等级设置值均属于所述音量等级范围。
第二方面,提供了一种音频播放音量的调节装置,所述装置包括:
最大值确定模块,用于对于音频文件中的每帧音频数据,确定所述音频数据在不失真条件下的音量等级最大值;
设置值获取模块,用于获取所述音频文件的音量等级设置值;
音量调整模块,用于在所述音量等级设置值大于所述音量等级最大值时,按照所述音量等级最大值对所述音频数据的播放音量进行调整。
第三方面,提供一种音频播放音量的调节装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的音频播放音量的调节方法。
第四方面,提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的音频播放音量的调节方法。
本申请的有益效果在于:通过对每帧音频数据确定音频数据在不失真条件下的音量等级最大值;获取音频文件的音量等级设置值;在音量等级设置值大于音量等级最大值时,按照音量等级最大值对音频数据的播放音量进行调整;可以解决音频文件整体放大时容易出现截止失真的问题;由于对音频文件逐帧进行处理,将可能出现失真的一帧音频数据按照不失真条件下的音量等级最大值进行调整,可以保证放大后的音频数据均不失真,从而可以保证回声消除效果和音频播放效果。
另外,通过在调整音频数据时,逐帧调整预设的音量等级间隔值,可以实现音频音量的平滑过渡。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
图1是本申请一个实施例提供的音频播放音量的调节方法的流程图;
图2是本申请另一个实施例提供的音频播放音量的调节方法的流程图;
图3是本申请一个实施例提供的音频文件的波形的示意图;
图4是本申请一个实施例提供的音频文件整体放大后的波形的示意图;
图5是本申请一个实施例提供的音频文件逐帧放大后的波形的示意图;
图6是本申请一个实施例提供的音频播放音量的调节装置的框图;
图7是本申请一个实施例提供的音频播放音量的调节装置的框图。
具体实施方式
下面结合附图和实施例,对本申请的具体实施方式作进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
可选地,本申请以各个实施例的执行主体为电子设备,该电子设备具有音频的音量调节功能。示意性地,电子设备通过调用预先安装的音频播放软件(比如:通过音视频会议软件)执行本申请提供的音频播放音量的调节方法。其中,电子设备可以为视频会议终端、手机、计算机等,本实施例不对电子设备的设备类型作限定。
图1是本申请一个实施例提供的音频播放音量的调节方法的流程图。该方法至少包括以下几个步骤:
步骤101,对于音频文件中的每帧音频数据,确定音频数据在不失真条件下的音量等级最大值。
电子设备获取到音频文件后,对该音频文件进行解码得到多帧音频数据。对于每帧音频数据,确定音频数据在不失真条件下的音量等级最大值。
本实施例中,音量等级范围预设在电子设备中;或者,音量等级范围是电子设备根据当前的音量等级划分方式和音频量化范围划分得到的,此时,电子设备获取音量等级划分方式;获取音频量化范围;使用音频量化范围和等级划分方式确定音量等级范围,音量等级最大值和音量等级设置值均属于音量等级范围。
其中,音量等级划分方式用于指示音量等级的级数和音量等级范围的等级下限值;或者,用于指示音量等级的级数和音量等级范围的等级上限值;或者,音量等级划分方式用于指示音量等级范围的等级下限值和音量等级范围的等级上限值;本实施例不对音量等级划分方式的指示方式作限定。比如:音量等级划分方式指示的音量等级的级数为31级,且音量等级范围的等级下限值为1级,则得到的各个等级为1至31的各个整数对应的值。
音频量化范围用于指示量化后的音频音量的范围,音频量化范围与音频数据的编码位数有关。比如:音频数据以16位编码,则音频音量的范围为[-32768,32767]。
使用音频量化范围和等级划分方式确定音量等级范围,包括:计算音频音量的范围对应的分贝值范围;使用分贝值范围和级数计算分贝间隔值,得到各个音量等级对应的分贝值。其中,分贝间隔值是指相邻的两级音量等级对应的分贝值之差。
示意性地,音频音量的采样值与分贝值之间的转换关系通过下式表示:20*log10(|sampleval|/32768.0)。其中,sampleval即为音频的采样值。比如:音频音量的范围为[-32768,32767]、音量等级的级数为31级;将音量的幅值转换为分贝值之后,可以得到每增加一个等级,样本的音量增加0.8分贝(db),即样本放大约:1.096478倍。此时,可以调节等级的样本阈值通过下式表示:
threshold_limit=32768/1.096478=29885(小数4舍5入后的结果);
其中,threshold_limit是指样本最大值除以调节一档音量级别的放大倍数得到的值。若某一帧音频数据的样本最大值大于可以调节等级的样本阈值threshold_limit,即使放大一个等级,也会发生非线性失真(比如:截至失真)。
基于上述原理,对于音频文件中的每帧音频数据,确定音频数据在不失真条件下的音量等级最大值,包括:获取音频数据中的样本最大值;获取不失真条件下的样本阈值;基于样本最大值和样本阈值确定音量等级最大值。
示意性地,基于样本最大值和样本阈值确定音量等级最大值,包括:计算样本最大值对应的第一分贝值;计算样本阈值对应的第二分贝值;将第二分贝值与第一分贝值之间的差除以分贝间隔值,得到音量等级可调节值,分贝间隔值是指相邻的两级音量等级对应的分贝值之差;将音频数据的原始播放音量对应的音量等级基础值与音量等级可调节值的和确定为音量等级最大值。
音量等级最大值curfrmmaxusevollevel的确定方式通过下式表示:
curfrmmaxusevollevel=音量等级基础值+canaddlev;
20log10(dwsampmaxvalue/32768.0)+canaddlev*x=0
其中,canaddlev为在无截止失真的条件下,最大能增加的等级;
dwsampmaxvalue为当前一帧音频数据的样本最大值;x为分贝间隔值;音量等级基础值为原始播放音量对应的等级值,即未经过音量放大或者缩小处理的音量,通常音量等级基础值为音量等级上限值和音量等级下限值的中值,比如:在1至31级的音量级别中,第16级为音量等级基础值。
步骤102,获取音频文件的音量等级设置值。
音量等级设置值可以是用户设置的,比如:用户将音量的等级调节为31级。
步骤103,在音量等级设置值大于音量等级最大值时,按照音量等级最大值对音频数据的播放音量进行调整。
由于在音量等级设置值大于音量等级最大值,若按照用户设置的音量等级设置值对音频数据的播放音量进行放大,则放大后的音频数据会发生非线性失真的问题。因此,本实施例中,通过按照音量等级最大值对音频数据的播放音量进行调整,使得音频数据可以在不失真的情况下放大到最大程度,可以实现音频数据的自适应放大,保证音频数据放大后不失真。
在一个示例中,按照音量等级最大值对音频数据的播放音量进行调整,包括:基于上一帧音频数据的音量等级使用值逐帧调节预设的音量等级间隔值,直至音量等级使用值调节至音量等级最大值时停止。这样,可以保证音量调整过程的平滑度。
具体地,在上一帧音频数据的音量等级使用值大于音量等级最大值时,基于上一帧音频数据的音量等级使用值逐帧减小音量等级间隔值,直至音量等级使用值调节至音量等级最大值时停止;在上一帧音频数据的音量等级使用值小于音量等级最大值时,基于上一帧音频数据的音量等级使用值逐帧增加音量等级间隔值,直至音量等级使用值调节至音量等级最大值时停止。
音量等级间隔值可以为1级或者2级等,本实施例不对音量等级间隔值的取值作限定。
可选地,第一帧音频数据的音量等级使用值与音量等级设置值相同。
比如:一帧音频数据的时长为10ms,上一帧音频数据的音量等级使用值为18级,音量等级最大值为24级,音量等级间隔值为1级,此时,电子设备基于18级开始每帧增加1级,在6帧之后,即60ms之后,可以增加到音量等级最大值。
可选地,在音量等级设置值小于或等于音量等级最大值时,按照音量等级设置值对音频数据的播放音量进行调整。具体地,基于上一帧音频数据的音量等级使用值逐帧调节预设的音量等级间隔值,直至音量等级使用值调节至音量等级设置值时停止。
可选地,由于用户设置的音量等级设置值超过音量等级基础值时,才有音频数据失真的风险。因此,在音量等级设置值未超过音量等级基础值时,可以不执行按照音量等级最大值对音频数据的播放音量进行调整的步骤。此时,获取音频文件的音量等级设置值之后,还包括:确定音量等级设置值是否大于音频数据的原始播放音量对应的音量等级基础值;在音量等级设置值大于基础等级值时,执行步骤103。在音量等级设置值小于或等于基础等级值时,按照音量等级设置值对音频数据的播放音量进行调整。
为了更清楚地理解本申请提供的音频播放音量的调节方法,下面对该方法举一个实例进行说明,参考图2所示的音频播放音量的调节过程,该方法至少包括步骤21-294;
步骤21,接收音频文件,并解码得到多帧音频数据,初始化第一帧音频数据的音量等级使用值为音量等级设置值;
其中,多帧音频数据的样本值参考图3所示;
步骤22,对于每帧音频数据,确定音量等级设置值是否小于或等于音量等级基础值;若是,则执行步骤23;若否,则执行步骤25;
步骤23,按照音量等级设置值调节当前一帧音频数据的播放音量;
步骤24,播放调节后的音频数据,再次执行步骤22,直至各帧音频数据均调节完成时流程结束;
步骤25,计算当前一帧音频数据在不失真条件下的音量等级最大值;
步骤26,将当前一帧音频数据的音量等级最大值与音量等级设置值进行比较;在该音量等级最大值大于或等于音量等级设置值时,执行步骤27;在该音量等级最大值小于音量等级设置值时,执行步骤291;
步骤27,确定上一帧音频数据的音量等级使用值是否小于音量等级设置值;若是,则执行步骤28;若否,则执行步骤29;
步骤28,在上一帧音频数据的音量等级使用值的基础上增加音量等级间隔值(比如:以音量等级间隔值为1级);
步骤29,使用当前的音量等级使用值调节当前一帧音频数据的播放音量,执行步骤24;
步骤291,确定上一帧音频数据的音量等级使用值是否小于音量等级最大值;若是,则执行步骤292;若否,则执行步骤293;
步骤292,在上一帧音频数据的音量等级使用值的基础上增加音量等级间隔值,执行步骤29;
步骤293,确定上一帧音频数据的音量等级使用值是否大于音量等级最大值;若是,则执行步骤294;若否,则执行步骤29;
步骤294,在上一帧音频数据的音量等级使用值的基础上减小音量等级间隔值,执行步骤29。
若按照传统的音量调整方式,将图3所示的音频数据整体放大(比如:放大12db),得到放大后的音频数据参考图4所示,根据图4可知,音频数据整体放大后存在大量的截止失真。而基于本申请提供的播放音量调整方法,得到的放大后的音频数据如图5所示,根据图5可知,截止失真明显减少,且小声音被放大,音量动态平滑调节。
综上所述,本实施例提供的音频播放音量的调节方法,通过对每帧音频数据确定音频数据在不失真条件下的音量等级最大值;获取音频文件的音量等级设置值;在音量等级设置值大于音量等级最大值时,按照音量等级最大值对音频数据的播放音量进行调整;可以解决音频文件整体放大时容易出现截止失真的问题;由于对音频文件逐帧进行处理,将可能出现失真的一帧音频数据按照不失真条件下的音量等级最大值进行调整,可以保证放大后的音频数据均不失真,从而可以保证回声消除效果和音频播放效果。
另外,通过在调整音频数据时,逐帧调整预设的音量等级间隔值,可以实现音频音量的平滑过渡。
图6是本申请一个实施例提供的音频播放音量的调节装置的框图。该装置至少包括以下几个模块:最大值确定模块610、设置值获取模块620和音量调整模块630。
最大值确定模块610,用于对于音频文件中的每帧音频数据,确定所述音频数据在不失真条件下的音量等级最大值;
设置值获取模块620,用于获取所述音频文件的音量等级设置值;
音量调整模块630,用于在所述音量等级设置值大于所述音量等级最大值时,按照所述音量等级最大值对所述音频数据的播放音量进行调整。
相关细节参考上述方法实施例。
需要说明的是:上述实施例中提供的音频播放音量的调节装置在进行音频播放音量的调节时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将音频播放音量的调节装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的音频播放音量的调节装置与音频播放音量的调节方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是本申请一个实施例提供的音频播放音量的调节装置的框图,该装置可以是:会议终端、智能手机、平板电脑、笔记本电脑、台式电脑或服务器。音频播放音量的调节装置还可能被称为用户设备、便携式终端、膝上型终端、台式终端、控制终端等,本实施例不对调节装置的类型作限定。该装置至少包括处理器701和存储器702。
处理器701可以包括一个或多个处理核心,比如:4核心处理器、8核心处理器等。处理器701可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本申请中方法实施例提供的音频播放音量的调节方法。
在一些实施例中,音频播放音量的调节装置还可选包括有:外围设备接口和至少一个外围设备。处理器701、存储器702和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、音频电路、和电源等。
当然,音频播放音量的调节装置还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的音频播放音量的调节方法。
可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的音频播放音量的调节方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除