一种处理播放器音频数据爆音的方法与流程

文档序号:20497759发布日期:2020-04-21 22:31阅读:2328来源:国知局
一种处理播放器音频数据爆音的方法与流程

本发明涉及音频数据处理技术领域,具体是一种处理播放器音频数据爆音的方法。



背景技术:

脉冲编码调制(pulsecodemodulation,pcm)就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程。音频数据通常以pcm数字格式进行存储,播放器在播放音频数据的时候,如果执行暂停、播放等操作,音频数据突然中断,声音可能会出现爆音,将pcm数据送入声卡,即可以让声卡发声。当送入声卡的pcm数据波形发生突变的情况下,喇叭可能会发生啪的一声爆音。这种现象出现尤其出现在播放器暂停或播放等操作,导致送入声卡的数据发生变化的情景下。



技术实现要素:

有鉴于此,本发明的目的是提供一种处理播放器音频数据爆音的方法,使得播放器在暂停或播放等操作时送入播放器的pcm数据波形不会发生突变,从而避免了播放器在暂停或播放等操作时发生爆音的现象。

为了实现上述目的,本发明的一种处理播放器音频数据爆音的方法,包括步骤:

(1)在播放器中对pcm音频数据段进行解码,获取该pcm音频数据段的采样率fs和对应的编码数据串;

(2a)当所述播放器在播放所述pcm音频数据段产生中断时,记录中断产生最后最后一刻的pcm音频数据的对应中断编码值x,并生成持续时间为t的中断缓冲pcm音频数据段,所述中断缓冲pcm音频数据段在持续时间t内对应的编码值从所述中断编码值x逐步下降至0;

(3a)使所述播放器在中断产生播放所述中断缓冲pcm音频数据段;

(2b)当所述播放器在开始播放所述pcm音频数据时,记录开始播放时第一个所述pcm音频数据的对应续播编码值y,并生成持续时间同样为t的续播缓冲pcm音频数据段,所述续播缓冲pcm音频数据段在持续时间t内对应的编码值从0逐步上升到所述续播编码值y;

(3b)使所述播放器在开始播放时,在将要播放的pcm音频数据段前插入所述续播缓冲pcm音频数据段。

本发明进一步的,所述持续时间t的值为50ms。

本发明进一步的,所述中断缓冲pcm音频数据段的产生步骤包括:

将所述中断编码值x作为初始值,生成一个子项数为n的递减的等差数列a,其中n=采样率fs*持续时间t,公差

将所述等差数列a作为pcm编码值获得所述中断缓冲pcm音频数据段。

本发明进一步的,所述续播缓冲pcm音频数据段的产生步骤包括:

将0作为初始值,y作为结束值,生成一个子项数为n的递增的等差数列b,其中n=采样率fs*持续时间t,公差

将所述等差数列b作为pcm编码值获得所述续播缓冲pcm音频数据段。

本发明进一步的,所述播放器的播放中断情形包括但不限于暂停、数据中断和播放结束;所述播放器的开始播放情形包括但不限于继续播放和播放开始。

本发明进一步的,所述编码数据串、中断编码值x、中断缓冲pcm音频数据段、续播编码值y、续播缓冲pcm音频数据段以及出现的pcm编码值均为二进制编码或者二进制编码串。

本发明的有益效果是:本发明的一种处理播放器音频数据爆音的方法,通过使播放器在播放pcm音频数据发生中断的时候继续播放一段中断缓冲pcm音频数据段,使得播放中断时pcm数据波形不会从一个较高的值突变到零点,而是从中断点平滑地过度到零点,避免了中断时爆音的现象;通过使播放器在开始播放pcm音频数据之前插入一段续播缓冲pcm音频数据段,使得开始播放时pcm数据波形不会从零点突变到一个较高点,而是从零点平滑地过度到播放开始点,避免了在开始播放时爆音的现象。

附图说明

下面结合附图和实施例对本发明作进一步描述:

图1为本发明的工作流程图;

图2为本发明实施例中一端模拟音频曲线;

图3为本发明实施例中pcm音频曲线以及中断pcm缓冲数据段曲线。

具体实施方式

如图1所示:本实施例的一种处理播放器音频数据爆音的方法,包括步骤:

(1)在播放器中对pcm音频数据段进行解码,获取该pcm音频数据段的采样率fs和对应的编码数据串;

(2a)当播放器在播放pcm音频数据段产生中断时,记录中断产生最后最后一刻的pcm音频数据的对应中断编码值x,并生成持续时间为t的中断缓冲pcm音频数据段,中断缓冲pcm音频数据段在持续时间t内对应的编码值从中断编码值x逐步下降至0;

(3a)使播放器在中断产生播放中断缓冲pcm音频数据段;

(2b)当播放器在开始播放pcm音频数据时,记录开始播放时第一个pcm音频数据的对应续播编码值y,并生成持续时间同样为t的续播缓冲pcm音频数据段,续播缓冲pcm音频数据段在持续时间t内对应的编码值从0逐步上升到续播编码值y;

(3b)使播放器在开始播放时,在将要播放的pcm音频数据段前插入续播缓冲pcm音频数据段。

本实施例中,持续时间t的值为50ms,声音对人的听觉器官的作用效果并不随声音的消失而立即消除,而会暂留一短促时间,也就是说为了使中断缓冲pcm音频数据段和续播缓冲pcm音频数据段对人耳产生的影响足够小,使得听者不会在中断播放时产生明显的声音拖延现象,或者在开始播放时产生明显的延迟播放现象,将中断缓冲pcm音频数据段和续播缓冲pcm音频数据段的持续时间设置为50ms。

本实施例中,中断缓冲pcm音频数据段的产生步骤包括:

将中断编码值x作为初始值,生成一个子项数为n的递减的等差数列a,其中n=采样率fs*持续时间t,公差生成的等差数列a作为中断缓冲pcm音频数据段的对应编码,转化为机器能够识别的二进制编码后,就可以使得播放器在中断发生之后不会马上突变至零值,而是线性变化,声音波动曲线在50ms内振幅线性地递减至0,从而避免音爆的现象。

本实施例中,续播缓冲pcm音频数据段的产生步骤包括:

将0作为初始值,y作为结束值,生成一个子项数为n的递增的等差数列b,其中n=采样率fs*持续时间t,公差生成的等差数列b作为续播缓冲pcm音频数据段的对应编码,转化为机器能够识别的二进制编码后,就可以使得播放器在播放开始之前不会马上从零值突变到某个特定值(pcm音频数据段的开始值),而是线性变化,声音波动曲线在50ms内振幅线性地由0递增值某个特定值,从而避免音爆的现象。

本实施例中,播放器的播放中断情形包括但不限于暂停、数据中断和播放结束;播放器的开始播放情形包括但不限于继续播放和播放开始。

本实施例中,编码数据串、中断编码值x、中断缓冲pcm音频数据段、续播编码值y、续播缓冲pcm音频数据段以及出现的pcm编码值均为二进制编码或者二进制编码串,本发明的所有过程均在播放器中进行,因此机器识别的只能是二进制编码,本发明的所有编码均为二进制编码。

具体实施方式如下:

以电脑播放一段音频数据为例,将pcm音频数据输入至声卡中,对应喇叭就会发声,如图2所示,模拟音频数据一般是连续的,而pcm音频数据是采样之后呈离散状态的,以mp3格式为例,采样率为44100hz,也就是说,mp3格式的音频数据每秒采样44100次,每22.7μs采样一次。

为了便于展示,如图3所示中的pcm音频数据曲线横坐标为时间轴,纵坐标为pcm编码数值(十进制),假定采样率fs=200hz,每5ms采样一次,请参照图2和图3,pcm音频数据断点的坐标为(150ms.10),因此生成的中断缓冲pcm数据段的对应数列为:(155ms.9)(160ms.8)(165ms.7)(170ms.6)(175ms.5)(180ms.4)(185ms.3)(190ms.2)(195ms.1)(200ms.0),音频信号的对应值线性递减至零坐标,因此在中断发生,原pcm数据段终止时,电脑向声卡继续输入上述坐标值的中断缓冲pcm数据段,从而避免了音爆的现象,为便于展示,本实施例中的值均为真实值乘以特定倍数后的对应值;开始播放的情况与上述同理,如果pcm音频的第一个采样点的对应总坐标值为(150ms.10),那么对应的,电脑在pcm音频播放之前就应该预先向声卡输入续播pcm音频数据段,坐标为(100ms.0)(105ms.1)(110ms.2)(115ms.3)(120ms.4)(125ms.5)(130ms.6)(135ms.7)(140ms.8)(145ms.9),声卡在驱动原pcm数据段发声之前,预先播放续播pcm音频数据段,对应编码值从0线性递增至10,避免了音爆现象。需要说明的是,为了便于展示本实施例中展示的纵坐标值为十进制,在电脑或者声卡中为二进制,并且横坐标的采样时间也是倍化之后的时间,否者以22.7μs为横坐标,50ms的中断缓冲pcm数据段或者续播缓冲pcm数据段在图不便于显示。

本发明通过使播放器在播放pcm音频数据发生中断的时候继续播放一段中断缓冲pcm音频数据段,使得播放中断时pcm数据波形不会从一个较高的值突变到零点,而是从中断点平滑地过度到零点,避免了中断时爆音的现象;通过使播放器在开始播放pcm音频数据之前插入一段续播缓冲pcm音频数据段,使得开始播放时pcm数据波形不会从零点突变到一个较高点,而是从零点平滑地过度到播放开始点,避免了在开始播放时爆音的现象。

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

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