CN110493634A - 一种音量控制方法及系统 - Google Patents
一种音量控制方法及系统 Download PDFInfo
- Publication number
- CN110493634A CN110493634A CN201910597354.1A CN201910597354A CN110493634A CN 110493634 A CN110493634 A CN 110493634A CN 201910597354 A CN201910597354 A CN 201910597354A CN 110493634 A CN110493634 A CN 110493634A
- Authority
- CN
- China
- Prior art keywords
- level
- data point
- current data
- average
- volume
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000007906 compression Methods 0.000 claims abstract description 39
- 230000006835 compression Effects 0.000 claims abstract description 37
- 238000001514 detection method Methods 0.000 claims abstract description 33
- 238000005070 sampling Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 24
- 238000001914 filtration Methods 0.000 claims description 12
- 238000010606 normalization Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 abstract description 7
- 230000007704 transition Effects 0.000 description 32
- 230000005236 sound signal Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- SNDPXSYFESPGGJ-UHFFFAOYSA-N L-norVal-OH Natural products CCCC(N)C(O)=O SNDPXSYFESPGGJ-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/233—Processing of audio elementary streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/439—Processing of audio elementary streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/439—Processing of audio elementary streams
- H04N21/4394—Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Circuit For Audible Band Transducer (AREA)
Abstract
本发明实施例提供一种音量控制方法及系统,包括:S0.根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;S1.计算所述当前数据点的平均电平和检测电平;S2.当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;S3.根据所述音量调整系数调整音量,并继续进行下一数据点的采集。本发明实施例在声音音量较大时,能够迅速将声音控制在设定强度,在声音音量较小时,可以平滑地增加音量使音强达到设定范围。具有计算量小,控制精度高,响应速度快的特点。
Description
技术领域
本发明涉及音量控制技术领域,尤其涉及一种音量控制方法及系统。
背景技术
互联网音视频播放过程中,不同的音视频源相互切换、视频间插入广告、电视切换频道等多视频切换的场景下,因各个音频源的音量差异,容易出现音量强烈变化的问题,需要使用者不停的调节音量控制器,使声音音量达到适合的听音状态。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供一种音量控制方法及系统,以实现在声音音量较大时,迅速将声音控制在设定强度,避免声音音量突然加大给人造成的不适;在声音音量较小时,平滑地增加音量使音强达到设定范围,达到调音目的。
一方面,本发明实施例提供了一种音量控制方法,包括:
S0.根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
S1.计算所述当前数据点的平均电平和检测电平;
S2.当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;
S3.根据所述音量调整系数调整音量,并继续进行下一数据点的采集。
更进一步的,所述步骤S0包括:
S01.对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
S02.根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
S03.根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
更进一步的,所述步骤S1包括:
S11.采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
更进一步的,所述步骤S1还包括:
S12.根据设定的缓冲长度间隔,获取所述当前数据点之前的数据点的平均电平,设为电平集;
S13.将所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的最大值,设为所述当前数据点的所述检测电平;其中所述静音电平为所述声音数据处于无声状态时的最高电平。
更进一步的,所述压缩电平法包括:
S211.根据设定的压缩率,计算所述当前数据点的电平增量;其中,所述当前数据点的所述电平增量的计算公式如下:
INCREMENT_DB=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
其中,
INDB为所述第二处理数据;
H_LIMIT为所述限制电平上限;
KRATE为所述压缩率;
S212.根据所述当前数据点的所述电平增量,计算所述音量调整系数;其中,所述音量调整系数的计算公式如下:
其中,Kratio为所述音量调整系数。
更进一步的,所述线性百分比法包括:
S221.根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数。其中,所述音量调整系数的计算公式如下:
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数。
另一方面,本发明实施例提供了一种音量控制系统,包括:
采样模块,用于根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
电平计算模块,用于计算所述当前数据点的平均电平和检测电平;
音量调整系数计算模块,用于当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,用于当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;
音量调整模块,用于根据所述音量调整系数调整音量。。
更进一步的,所述采样模块包括:
归一化单元,用于对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
滤波单元,用于根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
采集单元,用于根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
更进一步的,所述电平计算模块包括:
平均电平计算单元,用于采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
更进一步的,所述电平计算模块还包括:
检测电平计算第一单元,用于根据设定的缓冲长度间隔,获取所述当前数据点之前的数据点的平均电平,设为电平集;
检测电平计算第二单元,用于将所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的最大值,设为所述当前数据点的所述检测电平;其中所述静音电平为所述声音数据处于无声状态时的最高电平。
更进一步的,所述音量调整系数计算模块包括:
压缩电平法计算第一单元,用于根据设定的压缩率,计算所述当前数据点的电平增量;其中,所述当前数据点的所述电平增量的计算公式如下:
INCREMENT_DB=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
其中,
INDB为所述第二处理数据;
H_LIMIT为所述限制电平上限;
KRATE为所述压缩率;
压缩电平法计算第二单元,用于根据所述当前数据点的所述电平增量,计算所述音量调整系数;其中,所述音量调整系数的计算公式如下:
其中,Kratio为所述音量调整系数。
更进一步的,所述音量调整系数计算模块包括:
线性百分比法计算单元,用于根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数。其中,所述音量调整系数的计算公式如下:
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数。
上述技术方案具有如下有益效果:
在声音音量较大时,能够迅速将声音控制在设定强度,避免声音音量突然加大给人造成的不适感,同时并不会影响较大音量声源中音强较小部分的声音的强度,不会在音量减小时影响音强较小部分声音信号的效果;在声音音量较小时,可以平滑地增加音量使音强达到设定范围。本方法音量控制响应时间可控制在15毫秒以内,控制精度在-2~+2dB范围,具有计算量小,控制精度高,响应速度快的特点,在实时声音播放时可提高声音收听舒适度,给用户带来的更好的使用体验。可以解决互联网音视频播放过程中,不同的音视频源相互切换、视频间插入广告、电视切换频道等多视频切换的场景下,因各个音频源的音量差异,容易出现音量强烈变化的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一种音量控制方法的流程图;
图2是根据本发明实施例采集所述当前数据点的流程图;
图3是根据本发明实施例计算所述平均电平和所述检测电平的流程图;
图4是根据本发明实施例计算所述音量调整系数的流程图;
图5是根据本发明实施例一种音量控制系统的结构框图;
图6是根据本发明实施例所述采样模块的结构框图;
图7是根据本发明实施例所述电平计算模块的结构框图;
图8是根据本发明实施例所述音量调整系数计算模块的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
如图1所示,一种音量控制方法,包括:
S0.根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
在本实施例中,如图2所示,所述步骤S0包括:
S01.对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
归一化处理是将不同位宽的脉冲编码调制数据的值归一化到-1~+1范围,使不同位宽的音频数据所表示的幅度在同一量级,方便后续运算。
归一化公式如下所示:
其中,
val表示脉冲编码调制数据的值,以定点数表示;
nval为归一化后的音频数据的值,以浮点数据表示;
bitnum表示定点数据val的位宽。
S02.根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
数据归一化处理后,需要根据播放设备的频率范围设置相应的高低通滤波频点,使后续计算的平均电平能正确反应实际播放出来的声音的强度。例如,若当前通道的播放设备为低音音箱,则需要通过低通滤波器滤除300Hz以上的频率信号;若当前通道的播放设备为高频音箱,则需要通过高通滤波器滤除高频音箱无法播放的低频信号;若当前通道的播放设备为全频音箱(频率范围一般在65~20KHz),则需要通过低通滤波器滤除20KHz以上的频率信号,并通过高通滤波器滤除65Hz以下的频率信号。有关高低通滤波器的参数计算和实现为行业通用知识,此处不再细述。
S03.根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
S1.计算所述当前数据点的平均电平和检测电平;
在本实施例中,如图3所示,所述步骤S1包括:
S11.采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
采用滑动窗口方式计算所述当前数据点的所述平均电平,所述平均电平为所述当前数据点及之前的N个数据点的所述第二处理数据的平均电平。窗口大小取值范围一般在5~20毫秒,在本实施例中选取10毫秒。
所述当前数据点的所述平均电平计算公式如下所示:
其中,N表示10毫秒对应的数据个数,在其中一种实施方式中,设定采样率为48KHz,故N=480。ndata(n)是所述第二处理数据,ndata(N)表示所述当前数据点的所述第二处理数据。由于对于每个所述当前数据点在计算所述当前平均电平时,均需要进行480次对数运算,使得运算量过大,故在其中一种实施方式中,可采用查表方法获取对数运算log10()的结果。这里采用1001个数据的表,用于存放步进为0.001,数据范围在0~1间的对数值,计算公式如下:
查表时,首先将数据转换成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
logdata=r2dbtab[tabindex]
所述平均电平公式可化为:
所述缓冲指针用来指示计算得到的当前平均等分值即将存入的位置,同时也是所述当前平均等分值的向前第N个值存放位置。所述平均电平avgdb计算步骤如下所示:
从所述平均电平中去除所述数据缓冲中相对所述当前平均等分值的前面第N个值。
avgdb=avgdb-uintavgdb[ploop]
将所述当前平均等分值加入所述数据缓冲,即
uintavgdb[ploop]=CUR_uintavgdb
重新计算所述平均电平,即
avgdb=avgdb+CUR_uintavgdb
所述缓冲指针向后移动,即
由以上步骤可实时计算所述当前数据点的所述平均电平。
所述步骤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.根据所述当前数据点的所述电平增量,计算所述音量调整系数;其中,所述音量调整系数的计算公式如下:
其中,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表示过渡进度,它与过渡时间的关系如下公式所示:
其中,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表示过渡进度,它与过渡时间的关系如下公式所示:
其中,MIN()表示取最小值,FS表示所述的设定的采样率,TA表示设置的上升过渡时间,单位毫秒。过渡时间一般在0.2~10毫秒。
综合电平上升、下降过渡段的公式及压缩段的公式,得到音频较大时的总的电平增量公式,如下所示:
所述电平增量计算完成后,计算所述音量调整系数Kratio。计算公式如下:
所述线性百分比法包括:
S221.根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数。其中,所述音量调整系数的计算公式如下:
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数。
当所述检测电平TESTDB低于所述限制电平下限L_LIMIT时,需要对音频数据幅度做扩张处理。所述音量调整系数的计算公式如下所示:
其中,avgdb_M是根据设定的缓冲长度间隔,读取之前已计算过的数据点的平均电平,在去除在所述静音电平以下的平均电平后,获取最近的连续M个平均电平的平均值。
S3.根据所述音量调整系数调整音量,并继续进行下一数据点的采集。
根据所述音量调整系数调整音量公式如下:
VOL=VOL×Kratio
本实施例的技术方案,可以在声音音量较大时,迅速将声音控制在设定强度,避免声音音量突然加大给人造成的不适感,同时并不会影响较大音量声源中音强较小部分的声音的强度,不会在音量减小时影响音强较小部分声音信号的效果;同时,在声音音量较小时,可以平滑地增加音量使音强达到设定范围。本方法音量控制响应时间可控制在15毫秒以内,控制精度在-2~+2dB范围,具有计算量小,控制精度高,响应速度快的特点,在实时声音播放时可提高声音收听舒适度,给用户带来的更好的使用体验。
实施例2:
如图5所示,一种音量控制系统,包括:
采样模块0,用于根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
在本实施例中,如图6所示,所述采样模块0,包括
归一化单元01,用于对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
归一化处理是将不同位宽的脉冲编码调制数据的值归一化到-1~+1范围,使不同位宽的音频数据所表示的幅度在同一量级,方便后续运算。
归一化公式如下所示:
其中,
val表示脉冲编码调制数据的值,以定点数表示;
nval为归一化后的音频数据的值,以浮点数据表示;
bitnum表示定点数据val的位宽。
滤波单元02,用于根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
数据归一化处理后,需要根据播放设备的频率范围设置相应的高低通滤波频点,使后续计算的平均电平能正确反应实际播放出来的声音的强度。例如,若当前通道的播放设备为低音音箱,则需要通过低通滤波器滤除300Hz以上的频率信号;若当前通道的播放设备为高频音箱,则需要通过高通滤波器滤除高频音箱无法播放的低频信号;若当前通道的播放设备为全频音箱(频率范围一般在65~20KHz),则需要通过低通滤波器滤除20KHz以上的频率信号,并通过高通滤波器滤除65Hz以下的频率信号。有关高低通滤波器的参数计算和实现为行业通用知识,此处不再细述。
采集单元03,用于根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
电平计算模块1,用于计算所述当前数据点的平均电平和检测电平;
在本实施例中,所述电平计算模块1包括:
平均电平计算单元11,用于采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
所述平均电平计算单元11采用滑动窗口方式计算所述当前数据点的所述平均电平,所述平均电平为所述当前数据点及之前的N个数据点的所述第二处理数据的平均电平。窗口大小取值范围一般在5~20毫秒,在本实施例中选取10毫秒。
所述当前数据点的所述平均电平计算公式如下所示:
其中,N表示10毫秒对应的数据个数,在其中一种实施方式中,设定采样率为48KHz,故N=480。ndata(n)是所述第二处理数据,ndata(N)表示所述当前数据点的所述第二处理数据。由于对于每个所述当前数据点在计算所述当前平均电平时,均需要进行480次对数运算,使得运算量过大,故在其中一种实施方式中,可采用查表方法获取对数运算log10()的结果。这里采用1001个数据的表,用于存放步进为0.001,数据范围在0~1间的对数值,计算公式如下:
查表时,首先将数据转换成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
logdata=r2dbtab[tabindex]
所述平均电平公式可化为:
所述缓冲指针用来指示计算得到的当前平均等分值即将存入的位置,同时也是所述当前平均等分值的向前第N个值存放位置。所述平均电平avgdb计算步骤如下所示:
从所述平均电平中去除所述数据缓冲中相对所述当前平均等分值的前面第N个值。
avgdb=avgdb-uintavgdb[ploop]
将所述当前平均等分值加入所述数据缓冲,即
uintavgdb[ploop]=CUR_uintavgdb
重新计算所述平均电平,即
avgdb=avgdb+CUR_uintavgdb
所述缓冲指针向后移动,即
由以上步骤可实时计算所述当前数据点的所述平均电平。
在本实施例中,如图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,用于根据所述当前数据点的所述电平增量,计算所述音量调整系数;其中,所述音量调整系数的计算公式如下:
其中,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表示过渡进度,它与过渡时间的关系如下公式所示:
其中,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表示过渡进度,它与过渡时间的关系如下公式所示:
其中,MIN()表示取最小值,FS表示所述的设定的采样率,TA表示设置的上升过渡时间,单位毫秒。过渡时间一般在0.2~10毫秒。
综合电平上升、下降过渡段的公式及压缩段的公式,得到音频较大时的总的电平增量公式,如下所示:
所述压缩电平法计算第一单元211计算所述电平增量完成后,所述压缩电平法计算第二单元212计算所述音量调整系数Kratio。计算公式如下:
所述音量调整系数计算模块2还包括:
线性百分比法计算单元22,用于根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数。其中,所述音量调整系数的计算公式如下:
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数。
当所述检测电平TESTDB低于所述限制电平下限L_LIMIT时,所述线性百分比法计算单元22需要对音频数据幅度做扩张处理。所述音量调整系数的计算公式如下所示:
其中,avgdb_M是根据设定的缓冲长度间隔,读取之前已计算过的数据点的平均电平,在去除在所述静音电平以下的平均电平后,获取最近的连续M个平均电平的平均值。
音量调整模块3,用于根据所述音量调整系数调整音量。
根据所述音量调整系数调整音量公式如下:
VOL=VOL×Kratio
本实施例的技术方案,可以在声音音量较大时,迅速将声音控制在设定强度,避免声音音量突然加大给人造成的不适感,同时并不会影响较大音量声源中音强较小部分的声音的强度,不会在音量减小时影响音强较小部分声音信号的效果;同时,在声音音量较小时,可以平滑地增加音量使音强达到设定范围。本方法音量控制响应时间可控制在15毫秒以内,控制精度在-2~+2dB范围,具有计算量小,控制精度高,响应速度快的特点,在实时声音播放时可提高声音收听舒适度,给用户带来的更好的使用体验。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种音量控制方法,其特征在于,包括:
S0.根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
S1.计算所述当前数据点的平均电平和检测电平;
S2.当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;
S3.根据所述音量调整系数调整音量,并继续进行下一数据点的采集。
2.如权利要求1所述的一种音量控制方法,其特征在于,所述步骤S0包括:
S01.对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
S02.根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
S03.根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
3.如权利要求2所述的一种音量控制方法,其特征在于,所述步骤S1包括:
S11.采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
4.如权利要求3所述的一种音量控制方法,其特征在于,所述步骤S1还包括:
S12.根据设定的缓冲长度间隔,获取所述当前数据点之前的数据点的平均电平,设为电平集;
S13.将所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的最大值,设为所述当前数据点的所述检测电平;其中所述静音电平为所述声音数据处于无声状态时的最高电平。
5.如权利要求3所述的一种音量控制方法,其特征在于,所述压缩电平法包括:
S211.根据设定的压缩率,计算所述当前数据点的电平增量;其中,所述当前数据点的所述电平增量的计算公式如下:
INCREMENT_DB=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
其中,
INDB为所述第二处理数据;
H_LIMIT为所述限制电平上限;
KRATE为所述压缩率;
S212.根据所述当前数据点的所述电平增量,计算所述音量调整系数;其中,所述音量调整系数的计算公式如下:
其中,Kratio为所述音量调整系数。
6.如权利要求4所述的一种音量控制方法,其特征在于,所述线性百分比法包括:
S221.根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数。其中,所述音量调整系数的计算公式如下:
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数。
7.一种音量控制系统,其特征在于,包括:
采样模块,用于根据设定的采样率对原始声音数据顺序进行采集,得到当前数据点;
电平计算模块,用于计算所述当前数据点的平均电平和检测电平;
音量调整系数计算模块,用于当判定所述当前数据点的所述平均电平大于预设的限制电平上限时,通过压缩电平法计算音量调整系数;以及,用于当判定所述当前数据点的所述检测电平小于预设的限制电平下限时,通过线性百分比法计算音量调整系数;
音量调整模块,用于根据所述音量调整系数调整音量。
8.如权利要求1所述的一种音量控制系统,其特征在于,所述采样模块包括:
归一化单元,用于对所述原始声音数据中不同位宽的脉冲编码调制数据的值进行归一化处理,得到第一处理数据;
滤波单元,用于根据播放设备的频率范围,对所述第一处理数据进行滤波,得到第二处理数据;
采集单元,用于根据设定的采样率对所述第二处理数据依时间顺序进行数据采集,得到所述当前数据点。
9.如权利要求2所述的一种音量控制系统,其特征在于,所述电平计算模块包括:
平均电平计算单元,用于采用滑动窗口方式计算所述当前数据点的所述平均电平;其中,计算公式如下:
其中,
avgdb表示所述当前数据点的所述平均电平;
ndata(n)表示所述第二处理数据。
10.如权利要求3所述的一种音量控制系统,其特征在于,所述电平计算模块还包括:
检测电平计算第一单元,用于根据设定的缓冲长度间隔,获取所述当前数据点之前的数据点的平均电平,设为电平集;
检测电平计算第二单元,用于将所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的最大值,设为所述当前数据点的所述检测电平;其中所述静音电平为所述声音数据处于无声状态时的最高电平。
11.如权利要求3所述的一种音量控制系统,其特征在于,所述音量调整系数计算模块包括:
压缩电平法计算第一单元,用于根据设定的压缩率,计算所述当前数据点的电平增量;其中,所述当前数据点的所述电平增量的计算公式如下:
INCREMENT_DB=(INDB-H_LIMIT)×(KRATE-1),INDB≥H_LIMIT
其中,
INDB为所述第二处理数据;
H_LIMIT为所述限制电平上限;
KRATE为所述压缩率;
压缩电平法计算第二单元,用于根据所述当前数据点的所述电平增量,计算所述音量调整系数;其中,所述音量调整系数的计算公式如下:
其中,Kratio为所述音量调整系数。
12.如权利要求4所述的一种音量控制系统,其特征在于,所述音量调整系数计算模块包括:
线性百分比法计算单元,用于根据所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值,计算所述音量调整系数。其中,所述音量调整系数的计算公式如下:
其中,
L_LIMIT为所述限制电平下限;
avgdb_M为所述电平集中距离所述当前数据点最近的设定个数个连续大于静音电平的平均电平的平均值;
Kratio为所述音量调整系数。
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 true CN110493634A (zh) | 2019-11-22 |
CN110493634B 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 (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885711A (zh) * | 2005-06-24 | 2006-12-27 | 腾讯科技(深圳)有限公司 | 一种音量控制方法和系统 |
CN101764586A (zh) * | 2008-12-04 | 2010-06-30 | 索尼株式会社 | 音量校正装置、音量校正方法、音量校正程序及电子设备 |
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 |
CN103828232A (zh) * | 2011-09-22 | 2014-05-28 | 伊尔索芙特有限公司 | 动态范围控制 |
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 | 中国电信股份有限公司 | 用于动态调节视频音量的方法、装置以及机顶盒 |
-
2019
- 2019-07-04 CN CN201910597354.1A patent/CN110493634B/zh active Active
Patent Citations (11)
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 |
CN101764586A (zh) * | 2008-12-04 | 2010-06-30 | 索尼株式会社 | 音量校正装置、音量校正方法、音量校正程序及电子设备 |
CN103828232A (zh) * | 2011-09-22 | 2014-05-28 | 伊尔索芙特有限公司 | 动态范围控制 |
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)
Title |
---|
夏忠朝: "Authorware中几种音量控制方法的比较研究", 《电脑知识与技术(学术交流)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110493634B (zh) | 2021-07-27 |
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 | |
US7848531B1 (en) | Method and apparatus for audio loudness and dynamics matching | |
US10128809B2 (en) | Intelligent method and apparatus for spectral expansion of an input signal | |
JP4983694B2 (ja) | 音声再生装置 | |
CN110493634B (zh) | 一种音量控制方法及系统 | |
JP2001188599A (ja) | オーディオ信号復号装置 | |
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 |