音频格式转换方法和装置的制造方法
【技术领域】
[0001]本发明涉及音频处理技术领域,特别是涉及一种音频格式转换方法和装置。
【背景技术】
[0002]用户在进行录音时输出的多为PCM(Pulse Code Modulat1n,脉冲编码调制)语音数据,若直接保存成音频文件,是无法被播放器进行播放的,所以须先实现数据编码及压缩,将其转换成其它格式。而在进行格式转换时,传统的方法是建立编码线程进行数据编码,当编码线程中有数据时则开始进行处理,编码线程需不断循环查看是否有数据需要进行处理,造成大量的系统消耗。
【发明内容】
[0003]基于此,有必要针对音频数据进行格式转换时造成大量系统消耗的问题,提供一种音频格式转换方法。
[0004]此外,还有必要针对音频数据进行格式转换时造成大量系统消耗的问题,提供一种音频格式转换装置。
[0005]—种音频格式转换方法,包括以下步骤:
[0006]读取原始的音频数据并将所述原始的音频数据添加到第一缓冲区;
[0007]判断所述第一缓冲区中原始的音频数据是否达到预设帧数;
[0008]若所述第一缓冲区中原始的音频数据达到预设帧数,则从所述第一缓冲区中取出原始的音频数据进行转码,得到预设格式的音频数据;
[0009]将转换成预设格式的音频数据写入预设格式文件中。
[0010]在其中一个实施例中,所述读取原始的音频数据并将所述原始的音频数据添加到第一缓冲区具体为:
[0011 ]从第二缓冲区读取原始的音频数据并将所述原始的音频数据添加到第一缓冲区;
[0012]所述方法还包括以下步骤:
[0013]根据预设帧数调整第二缓冲区大小,使所述第二缓冲区的大小为所述预设帧数的整数倍。
[0014]在其中一个实施例中,在所述从第二缓冲区读取原始的音频数据并将所述原始的音频数据添加到第一缓冲区的步骤之前,还包括:
[0015]通过音频设备采集声音信息;
[0016]对所述声音信息进行处理得到原始的音频数据;
[0017]将所述原始的音频数据存入所述第二缓冲区。
[0018]在其中一个实施例中,所述方法还包括以下步骤:
[0019]当所述音频设备停止采集声音信息时,将所述原始的音频数据的结尾信息写入所述第一缓冲区;
[0020]将所述原始的音频数据的结尾信息编码成预设格式;[0021 ]将所述编码成预设格式的结尾信息写入所述预设格式文件中。
[0022]在其中一个实施例中,所述原始的音频数据为原始的录音数据,所述预设格式为MP3格式,所述方法具体包括以下步骤:
[0023]调用读取线程读取原始的录音数据并将所述原始的录音数据添加到第一缓冲区;
[0024]判断所述第一缓冲区中的原始的录音数据是否达到预设帧数;
[0025]若所述第一缓冲区中原始的录音数据达到预设帧数,则调用编码线程从所述第一缓冲区中取出预设帧数的原始的录音数据编码成MP3格式;
[0026]将转换成MP3格式的录音数据写入MP3文件中。
[0027]一种音频格式转换装置,包括:
[0028]读取模块,用于读取原始的音频数据并将所述原始的音频数据添加到第一缓冲区;
[0029]判断模块,用于判断所述第一缓冲区中原始的音频数据是否达到预设帧数;
[0030]转码模块,用于若所述第一缓冲区中原始的音频数据达到预设帧数,则从所述第一缓冲区中取出原始的音频数据进行转码,得到预设格式的音频数据;
[0031]写入模块,用于将转换成预设格式的音频数据写入预设格式文件中。
[0032]在其中一个实施例中,所述读取模块还用于从第二缓冲区读取原始的音频数据并将所述原始的音频数据添加到第一缓冲区;
[0033]所述装置还包括:
[0034]调整模块,用于根据预设帧数调整第二缓冲区大小,使所述第二缓冲区的大小为所述预设帧数的整数倍。
[0035]在其中一个实施例中,所述装置还包括:
[0036]采集模块,用于通过音频设备采集声音信息;
[0037]处理模块,用于对所述声音信息进行处理得到原始的音频数据;
[0038]存储模块,用于将所述原始的音频数据存入所述第二缓冲区。
[0039]在其中一个实施例中,所述读取模块还用于当所述音频设备停止采集声音信息时,将所述原始的音频数据的结尾信息写入所述第一缓冲区;
[0040]所述转码模块还用于将所述原始的音频数据的结尾信息编码成预设格式;
[0041]所述写入模块还用于将所述编码成预设格式的结尾信息写入所述预设格式文件中。
[0042]在其中一个实施例中,所述原始的音频数据为原始的录音数据,所述预设格式为MP3格式;
[0043]所述读取模块还用于调用读取线程读取原始的录音数据并将所述原始的录音数据添加到第一缓冲区;
[0044]所述判断模块还用于判断所述第一缓冲区中的原始的录音数据是否达到预设帧数;
[0045]所述转码模块还用于若所述第一缓冲区中原始的录音数据达到预设帧数,则调用编码线程从所述第一缓冲区中取出预设帧数的原始的录音数据编码成MP3格式;
[0046]所述写入模块还用于将转换成MP3格式的音频数据写入MP3文件中。
[0047]上述音频格式转换方法和装置,只有当第一缓冲区的数据达到预设帧数时才进行音频数据的格式转换,由音频数据来通知进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。
【附图说明】
[0048]图1为一个实施例中音频格式转换方法的流程示意图;
[0049]图2为一个实施例中转换音频数据的结尾信息的流程示意图;
[0050]图3为另一个实施例中音频格式转换方法的流程示意图;
[0051 ]图4为一个实施例中音频格式转换装置的结构示意图;
[0052]图5为另一个实施例中音频格式转换装置的结构示意图。
【具体实施方式】
[0053]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0054]如图1所示,一种音频格式转换方法,包括以下步骤:
[0055]步骤S110,读取原始的音频数据并将原始的音频数据添加到第一缓冲区。
[0056]具体的,可调用读取线程读取原始的音频数据并将原始的音频数据添加到第一缓冲区。第一缓冲区可为用户自行设置的缓冲区,大小可根据实际情况进行设定,原始的音频数据的数据包在第一缓冲区中以队列的形式进行排列,先读取的排在队列前面,依次类推添加到第一缓冲区中。原始的音频数据为需要转换成预设格式的音频数据,例如录音数据,其原始格式为PCM格式,需要转换成MP3(Moving Picture Experts Group Aud1 LayerIII,动态影像专家压缩标准音频层面3)、WAV(Windows Media Aud1 ,Windows多媒体压缩)等其它音频格式,但不限于此。
[0057]在一个实施例中,步骤SllO可具体为从第二缓冲区读取原始的音频数据并将原始的音频数据添加到第一缓冲区。
[0058]具体的,第二缓冲区为操作系统中专门用于临时存放原始的音频数据的缓冲区。在进一步的实施例中,在步骤SllO之前,还包括:根据预设帧数调整第二缓冲区大小,使第二缓冲区的大小为预设帧数的整数倍。
[0059]因当读取线程从第二缓冲区读取的原始的音频数据达到预设帧数时,即调用编码线程从第一缓冲区中取出原始的音频数据进行编码成预设格式,将第二缓冲区的大小调整为预设帧数的整数倍可减少原始的音频数据的丢失。
[0060]步骤S120,判断第一缓冲区中原始的音频数据是否达到预设帧数,若是,则执行步骤SI 30,若否,则执行步骤SI 10。
[0061 ]具体的,可预先设置通知周期,以帧为单位,当读取的原始的音频数据的数据包达到预设帧数,即第一缓冲区中原始的音频数据达到预设帧数时,立即调用编码线程进行转码,由读取线程来通知编码线程进行工作,该预设帧数可根据实际需求进行设置,例如100帧、200帧等。此外,通过建立读取线程与编码线程,将读取线程与编码线程分开,可避免发生线程阻塞。
[0062]步骤S130,从第一缓冲区中取出原始的音频数据进行转码,得到预设格式的音频数据。
[0063]具体的,当读取的原始的音频数据的数据包达到预设帧数,读取线程即通知编码线程开始进行转码,调用编码线程从第一缓冲区中取出原始的音频数据,并将该原始的音频数据编码成预设格式,可从第一缓冲区中取出预设帧数的原始的音频数据,即取出第一缓冲区全部的原始的音频数据