CN110493634B - 一种音量控制方法及系统 - Google Patents

一种音量控制方法及系统 Download PDF

Info

Publication number
CN110493634B
CN110493634B CN201910597354.1A CN201910597354A CN110493634B CN 110493634 B CN110493634 B CN 110493634B CN 201910597354 A CN201910597354 A CN 201910597354A CN 110493634 B CN110493634 B CN 110493634B
Authority
CN
China
Prior art keywords
level
data point
current data
average
adjustment coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910597354.1A
Other languages
English (en)
Other versions
CN110493634A (zh
Inventor
宋冬梅
武剑
王宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Thunderstone Technology Co ltd
Original Assignee
Beijing Thunderstone Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Thunderstone Technology Co ltd filed Critical Beijing Thunderstone Technology Co ltd
Priority to CN201910597354.1A priority Critical patent/CN110493634B/zh
Publication of CN110493634A publication Critical patent/CN110493634A/zh
Application granted granted Critical
Publication of CN110493634B publication Critical patent/CN110493634B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams

Abstract

本发明实施例提供一种音量控制方法及系统,包括:S0.根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;S1.计算所述当前数据点的平均电平和检测电平;S2.当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;S3.根据所述音量调整系数调整音量,并继续进行下一数据点的采集。本发明实施例在声音音量较大时,能够迅速将声音控制在设定强度,在声音音量较小时,可以平滑地增加音量使音强达到设定范围。具有计算量小,控制精度高,响应速度快的特点。

Description

一种音量控制方法及系统
技术领域
本发明涉及音量控制技术领域,尤其涉及一种音量控制方法及系统。
背景技术
互联网音视频播放过程中,不同的音视频源相互切换、视频间插入广告、电视切换频道等多视频切换的场景下,因各个音频源的音量差异,容易出现音量强烈变化的问题,需要使用者不停的调节音量控制器,使声音音量达到适合的听音状态。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供一种音量控制方法及系统,以实现在声音音量较大时,迅速将声音控制在设定强度,避免声音音量突然加大给人造成的不适;在声音音量较小时,平滑地增加音量使音强达到设定范围,达到调音目的。
一方面,本发明实施例提供了一种音量控制方法,包括:
S0.根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
S1.计算所述当前数据点的平均电平和检测电平;
S2.当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;
S3.根据所述音量调整系数调整音量,并继续进行下一数据点的采集。
更进一步的,所述步骤S0包括:
S01.对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
S02.根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
S03.根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
更进一步的,所述步骤S1包括:
S11.采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
Figure BDA0002117985920000021
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
更进一步的,所述步骤S1还包括:
S12.根据设定的缓冲长度间隔,获取所述当前数据点之前的数据点的平均电平,设为电平集;
S13.将所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的最大值,设为所述当前数据点的所述检测电平;其中所述静音电平为所述声音数据处于无声状态时的最高电平。
更进一步的,所述压缩电平法包括:
S211.根据设定的压缩率,计算所述当前数据点的电平增量;其中,所述当前数据点的所述电平增量的计算公式如下:
INCREMENT_DB=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
其中,
INDB为所述第二处理数据;
H_LIMIT为所述限制电平上限;
KRATE为所述压缩率;
S212.根据所述当前数据点的所述电平增量,计算所述音量调整系数;其中,所述音量调整系数的计算公式如下:
Figure BDA0002117985920000022
其中,Kratio为所述音量调整系数。
更进一步的,所述线性百分比法包括:
S221.根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数。其中,所述音量调整系数的计算公式如下:
Figure BDA0002117985920000023
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数。
另一方面,本发明实施例提供了一种音量控制系统,包括:
采样模块,用于根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
电平计算模块,用于计算所述当前数据点的平均电平和检测电平;
音量调整系数计算模块,用于当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,用于当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;
音量调整模块,用于根据所述音量调整系数调整音量。。
更进一步的,所述采样模块包括:
归一化单元,用于对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
滤波单元,用于根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
采集单元,用于根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
更进一步的,所述电平计算模块包括:
平均电平计算单元,用于采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
Figure BDA0002117985920000031
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
更进一步的,所述电平计算模块还包括:
检测电平计算第一单元,用于根据设定的缓冲长度间隔,获取所述当前数据点之前的数据点的平均电平,设为电平集;
检测电平计算第二单元,用于将所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的最大值,设为所述当前数据点的所述检测电平;其中所述静音电平为所述声音数据处于无声状态时的最高电平。
更进一步的,所述音量调整系数计算模块包括:
压缩电平法计算第一单元,用于根据设定的压缩率,计算所述当前数据点的电平增量;其中,所述当前数据点的所述电平增量的计算公式如下:
INCREMENT_DB=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
其中,
INDB为所述第二处理数据;
H_LIMIT为所述限制电平上限;
KRATE为所述压缩率;
压缩电平法计算第二单元,用于根据所述当前数据点的所述电平增量,计算所述音量调整系数;其中,所述音量调整系数的计算公式如下:
Figure BDA0002117985920000041
其中,Kratio为所述音量调整系数。
更进一步的,所述音量调整系数计算模块包括:
线性百分比法计算单元,用于根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数。其中,所述音量调整系数的计算公式如下:
Figure BDA0002117985920000042
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数。
上述技术方案具有如下有益效果:
在声音音量较大时,能够迅速将声音控制在设定强度,避免声音音量突然加大给人造成的不适感,同时并不会影响较大音量声源中音强较小部分的声音的强度,不会在音量减小时影响音强较小部分声音信号的效果;在声音音量较小时,可以平滑地增加音量使音强达到设定范围。本方法音量控制响应时间可控制在15毫秒以内,控制精度在-2~+2dB范围,具有计算量小,控制精度高,响应速度快的特点,在实时声音播放时可提高声音收听舒适度,给用户带来的更好的使用体验。可以解决互联网音视频播放过程中,不同的音视频源相互切换、视频间插入广告、电视切换频道等多视频切换的场景下,因各个音频源的音量差异,容易出现音量强烈变化的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一种音量控制方法的流程图;
图2是根据本发明实施例采集所述当前数据点的流程图;
图3是根据本发明实施例计算所述平均电平和所述检测电平的流程图;
图4是根据本发明实施例计算所述音量调整系数的流程图;
图5是根据本发明实施例一种音量控制系统的结构框图;
图6是根据本发明实施例所述采样模块的结构框图;
图7是根据本发明实施例所述电平计算模块的结构框图;
图8是根据本发明实施例所述音量调整系数计算模块的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
如图1所示,一种音量控制方法,包括:
S0.根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
在本实施例中,如图2所示,所述步骤S0包括:
S01.对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
归一化处理是将不同位宽的脉冲编码调制数据的值归一化到-1~+1范围,使不同位宽的音频数据所表示的幅度在同一量级,方便后续运算。
归一化公式如下所示:
Figure BDA0002117985920000061
其中,
val表示脉冲编码调制数据的值,以定点数表示;
nval为归一化后的音频数据的值,以浮点数据表示;
bitnum表示定点数据val的位宽。
S02.根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
数据归一化处理后,需要根据播放设备的频率范围设置相应的高低通滤波频点,使后续计算的平均电平能正确反应实际播放出来的声音的强度。例如,若当前通道的播放设备为低音音箱,则需要通过低通滤波器滤除300Hz以上的频率信号;若当前通道的播放设备为高频音箱,则需要通过高通滤波器滤除高频音箱无法播放的低频信号;若当前通道的播放设备为全频音箱(频率范围一般在65~20KHz),则需要通过低通滤波器滤除20KHz以上的频率信号,并通过高通滤波器滤除65Hz以下的频率信号。有关高低通滤波器的参数计算和实现为行业通用知识,此处不再细述。
S03.根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
S1.计算所述当前数据点的平均电平和检测电平;
在本实施例中,如图3所示,所述步骤S1包括:
S11.采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
Figure BDA0002117985920000062
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
采用滑动窗口方式计算所述当前数据点的所述平均电平,所述平均电平为所述当前数据点及之前的N个数据点的所述第二处理数据的平均电平。窗口大小取值范围一般在5~20毫秒,在本实施例中选取10毫秒。
所述当前数据点的所述平均电平计算公式如下所示:
Figure BDA0002117985920000071
其中,N表示10毫秒对应的数据个数,在其中一种实施方式中,设定采样率为48KHz,故N=480。ndata(n)是所述第二处理数据,ndata(N)表示所述当前数据点的所述第二处理数据。由于对于每个所述当前数据点在计算所述当前平均电平时,均需要进行480次对数运算,使得运算量过大,故在其中一种实施方式中,可采用查表方法获取对数运算log10()的结果。这里采用1001个数据的表,用于存放步进为0.001,数据范围在0~1间的对数值,计算公式如下:
Figure BDA0002117985920000072
查表时,首先将数据转换成0~1000以内的整数值,转换方法如下公式所示:
tabindex=round(|ndata(n)|×1000)
其中round()表示四舍五入操作。tabindex为数据ndata(n)的log10()的值在r2dbtab表中的位置,r2dbtab[tabindex]即为数据ndata(n)的log10()的值。为了节省运算时间,可将480个数据点的对数值求平均值运算转换为缓冲存储、一个加法、一个减法和一个乘法运算,极大节省运算量。具体方法如下:建立480个数据点的数据缓冲和缓冲指针,所述数据缓冲用来存储所述当前数据点及之前N-1个数据点的所述第二处理数据的平均等分值CUR_uintavgdb,公式如下:
CUR_uintavgdb=C×logdata
Figure BDA0002117985920000073
logdata=r2dbtab[tabindex]
所述平均电平公式可化为:
Figure BDA0002117985920000074
所述缓冲指针用来指示计算得到的当前平均等分值即将存入的位置,同时也是所述当前平均等分值的向前第N个值存放位置。所述平均电平avgdb计算步骤如下所示:
从所述平均电平中去除所述数据缓冲中相对所述当前平均等分值的前面第N个值。
avgdb=avgdb-uintavgdb[ploop]
将所述当前平均等分值加入所述数据缓冲,即
uintavgdb[ploop]=CUR_uintavgdb
重新计算所述平均电平,即
avgdb=avgdb+CUR_uintavgdb
所述缓冲指针向后移动,即
Figure BDA0002117985920000081
由以上步骤可实时计算所述当前数据点的所述平均电平。
所述步骤S1还包括:
S12.根据设定的缓冲长度间隔,获取所述当前数据点之前的数据点的平均电平,设为电平集;
S13.将所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的最大值,设为所述当前数据点的所述检测电平;其中所述静音电平为所述声音数据处于无声状态时的最高电平。
所述检测电平是根据设定的缓冲长度间隔,读取之前已计算过的数据点的平均电平,在去除在所述静音电平以下的平均电平后,获取最近的连续M个平均电平的最大值作为所述检测电平,M取值范围可在20~50之间。
S2.当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;
如图4所示,所述压缩电平法包括:
S211.根据设定的压缩率,计算所述当前数据点的电平增量;其中,所述当前数据点的所述电平增量的计算公式如下:
INCREMENT_DB=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
其中,
INDB为所述第二处理数据;
H_LIMIT为所述限制电平上限;
KRATE为所述压缩率;
S212.根据所述当前数据点的所述电平增量,计算所述音量调整系数;其中,所述音量调整系数的计算公式如下:
Figure BDA0002117985920000082
其中,Kratio为所述音量调整系数。
所述压缩电平法是在所述当前数据点的所述平均电平超过设定的所述限制电平上限时对音频数据幅度压缩的方法,可有效压缩幅度较大的音频信号,同时不损伤幅度较小的音频信号能量。压缩处理是针对的输入电平值,即所述平均电平,在所述平均电平超过H_LIMIT时按一定的比例KRATE压缩使输出电平尽量接近H_LIMIT。
压缩曲线可由如下公式表示:
OUTDB=KRATE×INDB+B,INDB≥H_LIMIT
压缩比KRATE已知,启动压缩起点对应的输入、输出电平为INDB0=OUTDB0=H_LIMIT。可得:B=OUTDB0-KRATE×INDB0
将INDB0=OUTDB0=H_LIMIT条件代入,进一步化简为
B=(1-KRATE)×H_LIMIT
将B代回压缩曲线公式可得
OUTDB=KRATE×INDB+(1-KRATE)×H_LIMIT,INDB≥H_LIMIT
进一步化简为:
OUTDB=KRATE×(INDB-H_LIMIT)+H_LIMIT,INDB≥H_LIMIT
可得到输出电平与输入电平差值,即所述电平增量INCREMENT_DB。
INCREMENT_DB=OUTDB-INDB=KRATE×(INDB-H_LIMIT)+H_LIMIT-INDB
=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
当所述平均电平达由较低值上升到所述限制电平上限H_LIMIT时,或所述平均电平由较高值降至所述限制电平上限H_LIMIT时,从非压缩折线到压缩折线间往往需要增加一个过渡曲线,它可以平衡音频的音量变化,避免产生噪声。
1.电平下降过渡段的计算:
当所述平均电平由较高降低到所述限制电平上限以下时,过渡曲线段电平增量公式如下所示:
INCREMENT_DB_D=INCREMENT_DB_PRE×a,INDB<H_LIMIT
其中INCREMENT_DB_D表示所述平均电平由较高降低到所述限制电平上限以下时的下降段电平增量。INCREMENT_DB_PRE表示上一个数据点计算得到的电平增量。a表示过渡进度,它与过渡时间的关系如下公式所示:
Figure BDA0002117985920000091
其中,MAX()表示取最大值,FS表示所述的设定的采样率,TD表示设置的下降过渡时间,单位毫秒,过渡时间一般在50~1000毫秒。
2.电平上升过渡段的计算:
当所述平均电平由较低增加到所述限制电平上限时,过渡曲线段电平增量公式如下所示:
INCREMENT_DB_A=INCREMENT_DB×a+INCREMENT_DB_PRE×(1-a),
INDB≥H_LIMIT
其中INCREMENT_DB_A表示所述平均电平由较低增加到所述限制电平上限时的上升段电平增量。INCREMENT_DB_PRE表示上一个数据点计算得到的电平增量。a表示过渡进度,它与过渡时间的关系如下公式所示:
Figure BDA0002117985920000101
其中,MIN()表示取最小值,FS表示所述的设定的采样率,TA表示设置的上升过渡时间,单位毫秒。过渡时间一般在0.2~10毫秒。
综合电平上升、下降过渡段的公式及压缩段的公式,得到音频较大时的总的电平增量公式,如下所示:
Figure BDA0002117985920000105
所述电平增量计算完成后,计算所述音量调整系数Kratio。计算公式如下:
Figure BDA0002117985920000102
所述线性百分比法包括:
S221.根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数。其中,所述音量调整系数的计算公式如下:
Figure BDA0002117985920000103
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数。
当所述检测电平TESTDB低于所述限制电平下限L_LIMIT时,需要对音频数据幅度做扩张处理。所述音量调整系数的计算公式如下所示:
Figure BDA0002117985920000104
其中,avgdb_M是根据设定的缓冲长度间隔,读取之前已计算过的数据点的平均电平,在去除在所述静音电平以下的平均电平后,获取最近的连续M个平均电平的平均值。
S3.根据所述音量调整系数调整音量,并继续进行下一数据点的采集。
根据所述音量调整系数调整音量公式如下:
VOL=VOL×Kratio
本实施例的技术方案,可以在声音音量较大时,迅速将声音控制在设定强度,避免声音音量突然加大给人造成的不适感,同时并不会影响较大音量声源中音强较小部分的声音的强度,不会在音量减小时影响音强较小部分声音信号的效果;同时,在声音音量较小时,可以平滑地增加音量使音强达到设定范围。本方法音量控制响应时间可控制在15毫秒以内,控制精度在-2~+2dB范围,具有计算量小,控制精度高,响应速度快的特点,在实时声音播放时可提高声音收听舒适度,给用户带来的更好的使用体验。
实施例2:
如图5所示,一种音量控制系统,包括:
采样模块0,用于根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
在本实施例中,如图6所示,所述采样模块0,包括
归一化单元01,用于对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
归一化处理是将不同位宽的脉冲编码调制数据的值归一化到-1~+1范围,使不同位宽的音频数据所表示的幅度在同一量级,方便后续运算。
归一化公式如下所示:
Figure BDA0002117985920000111
其中,
val表示脉冲编码调制数据的值,以定点数表示;
nval为归一化后的音频数据的值,以浮点数据表示;
bitnum表示定点数据val的位宽。
滤波单元02,用于根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
数据归一化处理后,需要根据播放设备的频率范围设置相应的高低通滤波频点,使后续计算的平均电平能正确反应实际播放出来的声音的强度。例如,若当前通道的播放设备为低音音箱,则需要通过低通滤波器滤除300Hz以上的频率信号;若当前通道的播放设备为高频音箱,则需要通过高通滤波器滤除高频音箱无法播放的低频信号;若当前通道的播放设备为全频音箱(频率范围一般在65~20KHz),则需要通过低通滤波器滤除20KHz以上的频率信号,并通过高通滤波器滤除65Hz以下的频率信号。有关高低通滤波器的参数计算和实现为行业通用知识,此处不再细述。
采集单元03,用于根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
电平计算模块1,用于计算所述当前数据点的平均电平和检测电平;
在本实施例中,所述电平计算模块1包括:
平均电平计算单元11,用于采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
Figure BDA0002117985920000121
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
所述平均电平计算单元11采用滑动窗口方式计算所述当前数据点的所述平均电平,所述平均电平为所述当前数据点及之前的N个数据点的所述第二处理数据的平均电平。窗口大小取值范围一般在5~20毫秒,在本实施例中选取10毫秒。
所述当前数据点的所述平均电平计算公式如下所示:
Figure BDA0002117985920000122
其中,N表示10毫秒对应的数据个数,在其中一种实施方式中,设定采样率为48KHz,故N=480。ndata(n)是所述第二处理数据,ndata(N)表示所述当前数据点的所述第二处理数据。由于对于每个所述当前数据点在计算所述当前平均电平时,均需要进行480次对数运算,使得运算量过大,故在其中一种实施方式中,可采用查表方法获取对数运算log10()的结果。这里采用1001个数据的表,用于存放步进为0.001,数据范围在0~1间的对数值,计算公式如下:
Figure BDA0002117985920000123
查表时,首先将数据转换成0~1000以内的整数值,转换方法如下公式所示:
tabindex=round(|ndata(n)|×1000)
其中round()表示四舍五入操作。tabindex为数据ndata(n)的log10()的值在r2dbtab表中的位置,r2dbtab[tabindex]即为数据ndata(n)的log10()的值。为了节省运算时间,可将480个数据点的对数值求平均值运算转换为缓冲存储、一个加法、一个减法和一个乘法运算,极大节省运算量。具体方法如下:建立480个数据点的数据缓冲和缓冲指针,所述数据缓冲用来存储所述当前数据点及之前N-1个数据点的所述第二处理数据的平均等分值CUR_uintavgdb,公式如下:
CUR_uintavgdb=C×logdata
Figure BDA0002117985920000131
logdata=r2dbtab[tabindex]
所述平均电平公式可化为:
Figure BDA0002117985920000132
所述缓冲指针用来指示计算得到的当前平均等分值即将存入的位置,同时也是所述当前平均等分值的向前第N个值存放位置。所述平均电平avgdb计算步骤如下所示:
从所述平均电平中去除所述数据缓冲中相对所述当前平均等分值的前面第N个值。
avgdb=avgdb-uintavgdb[ploop]
将所述当前平均等分值加入所述数据缓冲,即
uintavgdb[ploop]=CUR_uintavgdb
重新计算所述平均电平,即
avgdb=avgdb+CUR_uintavgdb
所述缓冲指针向后移动,即
Figure BDA0002117985920000133
由以上步骤可实时计算所述当前数据点的所述平均电平。
在本实施例中,如图7所示,所述电平计算模块1还包括:
检测电平计算第一单元12,用于根据设定的缓冲长度间隔,获取所述当前数据点之前的数据点的平均电平,设为电平集;
检测电平计算第二单元13,用于将所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的最大值,设为所述当前数据点的所述检测电平;其中所述静音电平为所述声音数据处于无声状态时的最高电平。
所述检测电平计算第一单元12和所述检测电平计算第二单元13根据设定的缓冲长度间隔,读取之前已计算过的数据点的平均电平,在去除在所述静音电平以下的平均电平后,获取最近的连续M个平均电平的最大值作为所述检测电平,M取值范围可在20~50之间。
音量调整系数计算模块2,用于当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,用于当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;
如图8所示,所述音量调整系数计算模块2包括:
压缩电平法计算第一单元211,用于根据设定的压缩率,计算所述当前数据点的电平增量;其中,所述当前数据点的所述电平增量的计算公式如下:
INCREMENT_DB=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
其中,
INDB为所述第二处理数据;
H_LIMIT为所述限制电平上限;
KRATE为所述压缩率;
压缩电平法计算第二单元212,用于根据所述当前数据点的所述电平增量,计算所述音量调整系数;其中,所述音量调整系数的计算公式如下:
Figure BDA0002117985920000141
其中,Kratio为所述音量调整系数。
所述压缩电平法计算第一单元211和所述压缩电平法计算第二单元212在所述当前数据点的所述平均电平超过设定的所述限制电平上限时对音频数据的幅度进行压缩,可有效压缩幅度较大的音频信号,同时不损伤幅度较小的音频信号能量。压缩处理是针对的输入电平值,即所述平均电平,在所述平均电平超过H_LIMIT时按一定的比例KRATE压缩使输出电平尽量接近H_LIMIT。
压缩曲线可由如下公式表示:
OUTDB=KRATE×INDB+B,INDB≥H_LIMIT
压缩比KRATE已知,启动压缩起点对应的输入、输出电平为INDB0=OUTDB0=H_LIMIT。可得:B=OUTDB0-KRATE×INDB0
将INDB0=OUTDB0=H_LIMIT条件代入,进一步化简为
B=(1-KRATE)×H_LIMIT
将B代回压缩曲线公式可得
OUTDB=KRATE×INDB+(1-KRATE)×H_LIMIT,INDB≥H_LIMIT
进一步化简为:
OUTDB=KRATE×(INDB-H_LIMIT)+H_LIMIT,INDB≥H_LIMIT
可得到输出电平与输入电平差值,即所述电平增量INCREMENT_DB。
INCREMENT_DB=OUTDB-INDB=KRATE×(INDB-H_LIMIT)+H_LIMIT-INDB
=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
当所述平均电平达由较低值上升到所述限制电平上限H_LIMIT时,或所述平均电平由较高值降至所述限制电平上限H_LIMIT时,从非压缩折线到压缩折线间往往需要增加一个过渡曲线,它可以平衡音频的音量变化,避免产生噪声。
1.电平下降过渡段的计算:
当所述平均电平由较高降低到所述限制电平上限以下时,过渡曲线段电平增量公式如下所示:
INCREMENT_DB_D=INCREMENT_DB_PRE×a,INDB<H_LIMIT
其中INCREMENT_DB_D表示所述平均电平由较高降低到所述限制电平上限以下时的下降段电平增量。INCREMENT_DB_PRE表示上一个数据点计算得到的电平增量。a表示过渡进度,它与过渡时间的关系如下公式所示:
Figure BDA0002117985920000151
其中,MAX()表示取最大值,FS表示所述的设定的采样率,TD表示设置的下降过渡时间,单位毫秒,过渡时间一般在50~1000毫秒。
2.电平上升过渡段的计算:
当所述平均电平由较低增加到所述限制电平上限时,过渡曲线段电平增量公式如下所示:
INCREMENT_DB_A=INCREMENT_DB×a+INCREMENT_DB_PRE×(1-a),
INDB≥H_LIMIT
其中INCREMENT_DB_A表示所述平均电平由较低增加到所述限制电平上限时的上升段电平增量。INCREMENT_DB_PRE表示上一个数据点计算得到的电平增量。a表示过渡进度,它与过渡时间的关系如下公式所示:
Figure BDA0002117985920000152
其中,MIN()表示取最小值,FS表示所述的设定的采样率,TA表示设置的上升过渡时间,单位毫秒。过渡时间一般在0.2~10毫秒。
综合电平上升、下降过渡段的公式及压缩段的公式,得到音频较大时的总的电平增量公式,如下所示:
Figure BDA0002117985920000164
所述压缩电平法计算第一单元211计算所述电平增量完成后,所述压缩电平法计算第二单元212计算所述音量调整系数Kratio。计算公式如下:
Figure BDA0002117985920000161
所述音量调整系数计算模块2还包括:
线性百分比法计算单元22,用于根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数。其中,所述音量调整系数的计算公式如下:
Figure BDA0002117985920000162
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数。
当所述检测电平TESTDB低于所述限制电平下限L_LIMIT时,所述线性百分比法计算单元22需要对音频数据幅度做扩张处理。所述音量调整系数的计算公式如下所示:
Figure BDA0002117985920000163
其中,avgdb_M是根据设定的缓冲长度间隔,读取之前已计算过的数据点的平均电平,在去除在所述静音电平以下的平均电平后,获取最近的连续M个平均电平的平均值。
音量调整模块3,用于根据所述音量调整系数调整音量。
根据所述音量调整系数调整音量公式如下:
VOL=VOL×Kratio
本实施例的技术方案,可以在声音音量较大时,迅速将声音控制在设定强度,避免声音音量突然加大给人造成的不适感,同时并不会影响较大音量声源中音强较小部分的声音的强度,不会在音量减小时影响音强较小部分声音信号的效果;同时,在声音音量较小时,可以平滑地增加音量使音强达到设定范围。本方法音量控制响应时间可控制在15毫秒以内,控制精度在-2~+2dB范围,具有计算量小,控制精度高,响应速度快的特点,在实时声音播放时可提高声音收听舒适度,给用户带来的更好的使用体验。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种音量控制方法,其特征在于,包括:
S0.根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
S1.计算所述当前数据点的平均电平和检测电平;其中,S12.根据设定的缓冲长度间隔,获取所述当前数据点之前的数据点的平均电平,设为电平集;S13.将所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的最大值,设为所述当前数据点的所述检测电平;其中所述静音电平为所述声音数据处于无声状态时的最高电平;
S2.当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;其中,所述压缩电平法包括:S211.根据设定的压缩率,计算所述当前数据点的电平增量;S212.根据所述当前数据点的所述电平增量,计算所述音量调整系数;
所述线性百分比法包括:S221.根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数,其中,所述音量调整系数的计算公式如下:
Figure FDA0003002753940000011
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数;
S3.根据所述音量调整系数调整音量,并继续进行下一数据点的采集。
2.如权利要求1所述的一种音量控制方法,其特征在于,所述步骤S0包括:
S01.对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
S02.根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
S03.根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
3.如权利要求2所述的一种音量控制方法,其特征在于,所述步骤S1包括:
S11.采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
Figure FDA0003002753940000021
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
4.如权利要求1所述的一种音量控制方法,其特征在于,所述压缩电平法包括:
所述当前数据点的所述电平增量的计算公式如下:
INCREMENT_DB=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
其中,
INDB为所述第二处理数据;
H_LIMIT为所述限制电平上限;
KRATE为所述压缩率;
所述音量调整系数的计算公式如下:
Figure FDA0003002753940000022
其中,Kratio为所述音量调整系数。
5.一种音量控制系统,其特征在于,包括:
采样模块,用于根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
电平计算模块,用于计算所述当前数据点的平均电平和检测电平;其中,电平计算模块还包括:
检测电平计算第一单元,用于根据设定的缓冲长度间隔,获取所述当前数据点之前的数据点的平均电平,设为电平集;
检测电平计算第二单元,用于将所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的最大值,设为所述当前数据点的所述检测电平;其中所述静音电平为所述声音数据处于无声状态时的最高电平;
音量调整系数计算模块,用于当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,用于当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;其中,所述音量调整系数计算模块包括:
压缩电平法计算第一单元,用于根据设定的压缩率,计算所述当前数据点的电平增量;
压缩电平法计算第二单元,用于根据所述当前数据点的所述电平增量,计算所述音量调整系数;
线性百分比法计算单元,用于根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数,其中,所述音量调整系数的计算公式如下:
Figure FDA0003002753940000031
其中,
I_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数;
音量调整模块,用于根据所述音量调整系数调整音量。
6.如权利要求5所述的一种音量控制系统,其特征在于,所述采样模块包括:
归一化单元,用于对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
滤波单元,用于根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
采集单元,用于根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
7.如权利要求6所述的一种音量控制系统,其特征在于,所述电平计算模块包括:
平均电平计算单元,用于采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
Figure FDA0003002753940000041
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
8.如权利要求5所述的一种音量控制系统,其特征在于,所述音量调整系数计算模块包括:
所述当前数据点的所述电平增量的计算公式如下:
INCREMENT_DB=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
其中,
INDB为所述第二处理数据;
H_LIMIT为所述限制电平上限;
KRATE为所述压缩率;
所述音量调整系数的计算公式如下:
Figure FDA0003002753940000042
其中,Kratio为所述音量调整系数。
CN201910597354.1A 2019-07-04 2019-07-04 一种音量控制方法及系统 Active CN110493634B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910597354.1A CN110493634B (zh) 2019-07-04 2019-07-04 一种音量控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910597354.1A CN110493634B (zh) 2019-07-04 2019-07-04 一种音量控制方法及系统

Publications (2)

Publication Number Publication Date
CN110493634A CN110493634A (zh) 2019-11-22
CN110493634B true CN110493634B (zh) 2021-07-27

Family

ID=68546062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910597354.1A Active CN110493634B (zh) 2019-07-04 2019-07-04 一种音量控制方法及系统

Country Status (1)

Country Link
CN (1) CN110493634B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1885711A (zh) * 2005-06-24 2006-12-27 腾讯科技(深圳)有限公司 一种音量控制方法和系统
US8432796B2 (en) * 2007-09-18 2013-04-30 Verizon Patent And Licensing Inc. Method, computer program product, and apparatus for providing automatic gain control via signal sampling and categorization
CN104811644A (zh) * 2015-04-14 2015-07-29 龙迅半导体科技(合肥)有限公司 一种hdmi发射器输出信号幅度控制电路
CN105322904A (zh) * 2015-09-08 2016-02-10 湖南国科微电子股份有限公司 一种数字音频信号的电平控制方法
CN105611203A (zh) * 2015-10-12 2016-05-25 深圳创维数字技术有限公司 一种调节电视节目音量的方法、装置及数字电视接收终端
CN105681876A (zh) * 2015-12-30 2016-06-15 惠州市伟乐科技股份有限公司 用于广电播出系统的音频响度一致性控制方法及系统
CN106293606A (zh) * 2016-08-16 2017-01-04 微鲸科技有限公司 音量控制系统和音量控制方法
CN108647005A (zh) * 2018-05-15 2018-10-12 努比亚技术有限公司 音频播放方法、移动终端及计算机可读存储介质
CN109120991A (zh) * 2017-06-26 2019-01-01 中国电信股份有限公司 用于动态调节视频音量的方法、装置以及机顶盒

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4826625B2 (ja) * 2008-12-04 2011-11-30 ソニー株式会社 音量補正装置、音量補正方法、音量補正プログラムおよび電子機器
CN103828232A (zh) * 2011-09-22 2014-05-28 伊尔索芙特有限公司 动态范围控制

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1885711A (zh) * 2005-06-24 2006-12-27 腾讯科技(深圳)有限公司 一种音量控制方法和系统
US8432796B2 (en) * 2007-09-18 2013-04-30 Verizon Patent And Licensing Inc. Method, computer program product, and apparatus for providing automatic gain control via signal sampling and categorization
CN104811644A (zh) * 2015-04-14 2015-07-29 龙迅半导体科技(合肥)有限公司 一种hdmi发射器输出信号幅度控制电路
CN105322904A (zh) * 2015-09-08 2016-02-10 湖南国科微电子股份有限公司 一种数字音频信号的电平控制方法
CN105611203A (zh) * 2015-10-12 2016-05-25 深圳创维数字技术有限公司 一种调节电视节目音量的方法、装置及数字电视接收终端
CN105681876A (zh) * 2015-12-30 2016-06-15 惠州市伟乐科技股份有限公司 用于广电播出系统的音频响度一致性控制方法及系统
CN106293606A (zh) * 2016-08-16 2017-01-04 微鲸科技有限公司 音量控制系统和音量控制方法
CN109120991A (zh) * 2017-06-26 2019-01-01 中国电信股份有限公司 用于动态调节视频音量的方法、装置以及机顶盒
CN108647005A (zh) * 2018-05-15 2018-10-12 努比亚技术有限公司 音频播放方法、移动终端及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Authorware中几种音量控制方法的比较研究;夏忠朝;《电脑知识与技术(学术交流)》;20070723;全文 *

Also Published As

Publication number Publication date
CN110493634A (zh) 2019-11-22

Similar Documents

Publication Publication Date Title
US11296668B2 (en) Methods and apparatus for adjusting a level of an audio signal
US8199933B2 (en) Calculating and adjusting the perceived loudness and/or the perceived spectral balance of an audio signal
EP2002429B1 (en) Controlling a perceived loudness characteristic of an audio signal
US10128809B2 (en) Intelligent method and apparatus for spectral expansion of an input signal
KR0129429B1 (ko) 오디오신호처리장치
JP4983694B2 (ja) 音声再生装置
CN110493634B (zh) 一种音量控制方法及系统
JP2001188599A (ja) オーディオ信号復号装置
CN118018935A (zh) 宽动态范围压缩优化方法、装置及计算机可读存储介质
GB2494894A (en) Dynamic range control

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant