CN104301783A - 音频文件的生成方法、播放方法及装置 - Google Patents

音频文件的生成方法、播放方法及装置 Download PDF

Info

Publication number
CN104301783A
CN104301783A CN201410587140.3A CN201410587140A CN104301783A CN 104301783 A CN104301783 A CN 104301783A CN 201410587140 A CN201410587140 A CN 201410587140A CN 104301783 A CN104301783 A CN 104301783A
Authority
CN
China
Prior art keywords
audio file
time value
value
audio
reproduction time
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
Application number
CN201410587140.3A
Other languages
English (en)
Other versions
CN104301783B (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.)
iFlytek Co Ltd
Original Assignee
iFlytek 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 iFlytek Co Ltd filed Critical iFlytek Co Ltd
Priority to CN201410587140.3A priority Critical patent/CN104301783B/zh
Publication of CN104301783A publication Critical patent/CN104301783A/zh
Application granted granted Critical
Publication of CN104301783B publication Critical patent/CN104301783B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

本发明公开了一种音频文件的生成方法、播放方法及装置,其中该生成方法包括:获取音频数据以及其的总时长,并按照预设的时长步进值对音频数据进行编码;获取预留的音频文件的文件头部的预设值;根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列;以及将关键帧数值对序列进行三次样条插值以生成三次样条函数,并将其写入音频文件的文件头部,以及将编码后的音频编码数据写入音频文件中。本发明实施例的方法在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,同时实现了音频文件播放时的进度控制。

Description

音频文件的生成方法、播放方法及装置
技术领域
本发明涉及信息技术领域,尤其涉及一种音频文件的生成方法、装置以及一种音频文件的播放方法、装置。
背景技术
相关技术中,通常主要采用以下两种方法对原始的音频数据进行编码以生成音频文件:第一种方法,采用恒定码率对原始的音频数据进行编码;第二种方法,采用非恒定码率(如变长码率)对原始的音频数据进行编码,首先,音频文件被保存成非恒定码率的,再通过格式转换工具将其转换成恒定码率的并回放。
然而,第一种方法中采用恒定码率就意味着往往采用的是较传统的编码格式,如MP3,在保证音质的情况下则需要更大的码率,这样会给直播时的流量带宽带来更大的压力,并且传统的编码格式在进行编码时的CPU占用也会比较高。第二种方法中由于转码的过程中往往是比较耗时的,直播结束后的音频无法在第一时间进行回放,因此导致音频文件保存的实时性不高,并且非恒定码率的音频在播放时无法对进度进行控制。
因此,目前对于音频文件而言可以引入关键帧,从而解决在播放音频时无法拖动到指定进度的问题。相关技术中,关键帧一般是通过一组连续的数值对表示的,一个数值对包含一个时间和与时间对应的文件位置,如下面表1所示。
时间(s) 0.1 0.2 0.3 0.4 0.5 2.0 2.1 2.2
位置(byte) 2453 3542 4513 6125 7146 30126 32568 34786
表1
但是,从表1可以看出,当音频文件的总时长越长时,需要存储的数值对就会越多,占用的空间就会越大,从而导致音频文件增大。
发明内容
本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种音频文件的生成方法。该方法在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,同时通过对音频文件引入关键帧,实现了音频文件播放时的进度控制。
本发明的第二个目的在于提出一种音频文件的生成装置。
本发明的第三个目的在于提出一种音频文件的播放方法。
本发明的第四个目的在于提出一种音频文件的播放装置。
为了实现上述目的,本发明第一方面实施例的音频文件的生成方法,包括:获取音频数据和所述音频数据的总时长,并按照预设的时长步进值对所述音频数据进行编码;获取预留的音频文件的文件头部的预设值;根据所述音频数据的总时长、所述预设的时长步进值、编码后的音频编码数据和所述预留的文件头部的预设值生成关键帧数值对序列;以及将所述关键帧数值对序列作为插值条件进行三次样条插值,以生成三次样条函数,并将所述三次样条函数写入音频文件的文件头部,以及将所述编码后的音频编码数据写入所述音频文件中。
根据本发明实施例的音频文件的生成方法,可先获取音频数据和音频数据的总时长,并按照预设的时长步进值对音频数据进行编码,之后可获取预留的音频文件的文件头部的预设值,并根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列,最后将关键帧数值对序列作为插值条件进行三次样条插值以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件,即在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,降低了音频文件的大小,同时通过对音频文件引入关键帧,实现了音频文件播放时的进度控制。
为了实现上述目的,本发明第二方面实施例的音频文件的生成装置,包括:第一获取模块,用于获取音频数据和所述音频数据的总时长;编码模块,用于按照预设的时长步进值对所述音频数据进行编码;第二获取模块,用于获取预留的音频文件的文件头部的预设值;第一生成模块,用于根据所述音频数据的总时长、所述预设的时长步进值、编码后的音频编码数据和所述预留的文件头部的预设值生成关键帧数值对序列;以及第二生成模块,用于将所述关键帧数值对序列作为插值条件进行三次样条插值,以生成三次样条函数,并将所述三次样条函数写入音频文件的文件头部,以及将所述编码后的音频编码数据写入所述音频文件中。
根据本发明实施例的音频文件的生成装置,可通过第一获取模块获取音频数据和音频数据的总时长,编码模块按照预设的时长步进值对音频数据进行编码,第二获取模块获取预留的音频文件的文件头部的预设值,第一生成模块根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列,最后第二生成模块将关键帧数值对序列作为插值条件进行三次样条插值以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件,即在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,降低了音频文件的大小,同时通过对音频文件引入关键帧,实现了音频文件播放时的进度控制。
为了实现上述目的,本发明第三方面实施例的音频文件的播放方法,所述音频文件是根据本发明第一方面实施例的音频文件的生成方法生成的,所述播放方法包括:获取所述音频文件;当接收到播放所述音频文件指令时,读取并初始化所述音频文件的文件头部中的三次样条函数;获取输入的进度时间值,并根据所述进度时间值和所述三次样条函数获取所述进度时间值对应的音频文件位置;根据所述进度时间值对应的音频文件位置对音频文件进行播放。
根据本发明实施例的音频文件的播放方法,可先获取音频文件,在接收到播放音频文件指令时,获取并初始化音频文件的文件头部中的三次样条函数,之后可获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置,最后根据进度时间值对应的音频文件位置对音频文件进行播放,即通过对播放器仅做少量的改造即可支持进度的拖动,实现了音频的进度控制功能,提升了用户体验。
为了实现上述目的,本发明第四方面实施例的音频文件的播放装置,所述音频文件是根据本发明第一方面实施例的音频文件的生成方法生成的,所述播放装置包括:第一获取模块,用于获取所述音频文件;读取模块,用于在接收到播放所述音频文件指令时,读取并初始化所述音频文件的文件头部中的三次样条函数;第二获取模块,用于获取输入的进度时间值,并根据所述进度时间值和所述三次样条函数获取所述进度时间值对应的音频文件位置;播放模块,用于根据所述进度时间值对应的音频文件位置对音频文件进行播放。
根据本发明实施例的音频文件的播放装置,可通过第一获取模块获取音频文件,读取模块在接收到播放音频文件指令时,获取并初始化音频文件的文件头部中的三次样条函数,第二获取模块获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置,播放模块根据进度时间值对应的音频文件位置对音频文件进行播放,即通过对播放器仅做少量的改造即可支持进度的拖动,实现了音频的进度控制功能,提升了用户体验。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的音频文件的生成方法的流程图;
图2是根据本发明一个实施例的生成关键帧数值对序列的流程图;
图3是根据本发明一个实施例的音频文件的生成装置的结构示意图;
图4是根据本发明一个实施例的第一生成模块的结构示意图;
图5是根据本发明一个实施例的音频文件的播放方法的流程图;以及
图6是根据本发明一个实施例的音频文件的播放装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的音频文件的生成方法、播放方法及装置。
图1是根据本发明一个实施例的音频文件的生成方法的流程图。如图1所示,该音频文件的生成方法可以包括:
S101,获取音频数据和音频数据的总时长,并按照预设的时长步进值对音频数据进行编码。
其中,需要说明的是,在本发明的实施例中,音频数据为没有经过压缩等处理的原始的声音数据,即PCM(Pulse Code Modulation,脉冲编码调制)数据。
具体地,可先获取音频数据和该音频数据对应的总时长,之后可按照预设的时长步进值(如0.1秒、或0.5秒等)对音频数据进行编码。其中,在本发明的实施例中,可通过非恒定码率(即变长码率)对音频数据进行编码。例如,以预设的时长步进值为0.1秒为例,当对音频数据进行编码时,可每次编码0.1秒的音频块数据(即PCM数据),直至所有的音频数据编码完成。
S102,获取预留的音频文件的文件头部的预设值。
应当理解,在本发明的实施例中,预留的音频文件的文件头部的预设值可以理解为预先在音频文件的文件头部预留的大小,例如,1kBytes(1K字节),即1024Bytes(字节)。
S103,根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列。
为了避免常规的关键帧存储比较占资源等的问题,在发明的实施例中,可采用三次样条差值函数来保存关键帧。具体而言,在本发明的一个实施例中,如图2所示,可通过以下步骤生成关键帧数值对序列:
S201,以预设的时长步进值为差值,将音频数据的总时长进行拆分以获取播放时间值序列,播放时间值序列包括多个播放时间值,多个播放时间值是以预设的时长步进值为差值进行排列的。
举例而言,假设获取到的音频数据的总时长为241.2秒,预设的时长步进值为0.1秒,可以0.1秒为差值,将音频数据的总时长241.2秒进行拆分,获得一个播放时间值序列,即{0.1、0.2、0.3、……、240.1、241.2},其中单位为秒。可以看出,播放时间值序列中的播放时间值为以0.1为差值的递增序列。
S202,获取每个播放时间值对应的编码后的音频块编码数据的大小。
也就是说,每个播放时间值对应一个音频块数据,在对这些音频块数据进行编码的过程中,可获取每个播放时间值对应的音频块数据编码后的大小。例如,以播放时间值序列为{0.1、0.2、0.3、……、240.1、241.2}、单位为秒为例,可分别获取播放时间值为0.1秒对应的音频块数据编码后的大小为358byte、播放时间值为0.2秒对应的音频块数据编码后的大小为386byte、……、播放时间值为241.2秒对应的音频块数据编码后的大小为377byte,即可通过如下表2来记录播放时间值与编码后的音频块编码数据的对应关系及大小。
时间(秒) 0.1 0.2 0.3 0.4 0.5 240.0 240.1 241.2
大小(byte) 358 386 410 327 334 405 319 377
表2
S203,根据预留的文件头部的预设值和每个播放时间值对应的编码后的音频块编码数据的大小,获得每个播放时间值对应的音频文件位置。
例如,以上面表2中的数据为例,可先将表2中每个播放时间值对应的编码后的音频块编码数据的大小进行转换,之后在转换结果的基础上加上预留的文件头部的预设值1K字节,即可获得每个播放时间值对应的音频文件位置,可通过如下表3来表示播放时间值与其对应的音频文件位置的对应关系及大小。
时间(秒) 0.1 0.2 0.3 0.4 0.5 240.0 240.1 241.2
位置(byte) 1382 1768 2178 2505 2839 843244 843563 843940
表3
结合表2和表3可以看出,播放时间值为0.1秒对应的音频文件位置的计算过程:播放时间值为0.1秒对应的编码后的音频块编码数据的大小(358byte)+预留的文件头部的预设值(1K字节(即1024字节)),播放时间值为0.2秒对应的音频文件位置的计算过程:播放时间值为0.2秒对应的编码后的音频块编码数据的大小(386byte)+播放时间值为0.1秒对应的音频文件位置(1382byte),播放时间值为0.3秒对应的音频文件位置的计算过程:播放时间值为0.3秒对应的编码后的音频块编码数据的大小(410byte)+播放时间值为0.2秒对应的音频文件位置(1768byte),……,播放时间值为241.2秒对应的音频文件位置的计算过程:播放时间值为241.2秒对应的编码后的音频块编码数据的大小(377byte)+播放时间值为240.1秒对应的音频文件位置(843563byte)。也就是说,播放时间值序列中的第一个播放时间值对应的音频文件位置可根据第一播放时间值对应的编码后的音频块编码数据的大小加上预留的文件头部的预设值,播放时间值序列中的其余播放时间值对应的音频文件位置可根据该播放时间值对应的编码后的音频块编码数据的大小和前一个播放时间值对应的音频文件位置获得。
S204,根据每个播放时间值和每个播放时间值对应的音频文件位置组成关键帧数值对序列。
具体地,可将播放时间值序列中的每个播放时间值与每个播放时间值对应的音频文件位置对应的记录在一起以形成一个数值对序列,即将上面表3中的数据成对的记录在一个序列中以组成关键帧数值对序列。可以看出,在本发明的实施例中,关键帧数值对序列可包含多个关键帧数值对,每个关键帧数值对可包含播放时间值和与播放时间值对应的音频文件位置。
S104,将关键帧数值对序列作为插值条件进行三次样条插值,以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,以及将编码后的音频编码数据写入音频文件中。
具体地,可将关键帧数值对序列作为插值条件进行三次样条插值,最终可得到一个插值函数,即三次样条函数,之后可将这个三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件。
为了优化三次样条函数的精度,在本发明的实施例中,为了简化三次样条函数,最终并不需要将所有的关键帧数值对作为插值条件。例如,第一批插值条件以0.5秒为步进,并保留边界两端的数据,记为S(xi)=yi,i=0、1、2…、n,xi=0、0.5、1、1.5…。插值结束后得到一个三次样条函数f(xi)。第二批插值条件以0.2秒为步进,如果已包含在第一批的插值条件中,则抛弃这对数据,记为S(xj)=yj,j=0、1、2…、m,xj=0.2、0.4、0.6…。首先进行插值结果测试,例如,如果fabs(f(xj)-yj)<500,其中500的单位为字节,则S(xj)=yj这对数据可以忽略,否则作为插值条件。最终的插值条件集合是第一批插值条件和部分第二批插值条件的集合。由此,简化了三次样条函数。
根据本发明实施例的音频文件的生成方法,可先获取音频数据和音频数据的总时长,并按照预设的时长步进值对音频数据进行编码,之后可获取预留的音频文件的文件头部的预设值,并根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列,最后将关键帧数值对序列作为插值条件进行三次样条插值以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件,即在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,降低了音频文件的大小,同时通过对音频文件引入关键帧,实现了音频文件播放时的进度控制。
为了实现上述实施例,本发明还提出了一种音频文件的生成装置。
图3是根据本发明一个实施例的音频文件的生成装置的结构示意图。如图3所示,该音频文件的生成装置可以包括:第一获取模块110、编码模块120、第二获取模块130、第一生成模块140和第二生成模块150。
具体地,第一获取模块110可用于获取音频数据和音频数据的总时长。编码模块120可用于按照预设的时长步进值对音频数据进行编码。其中,需要说明的是,在本发明的实施例中,音频数据为没有经过压缩等处理的原始的声音数据,即PCM数据。
更具体地,第一获取模块110可获取音频数据和该音频数据对应的总时长,编码模块120可按照预设的时长步进值(如0.1秒、或0.5秒等)对音频数据进行编码。其中,在本发明的实施例中,可通过非恒定码率(即变长码率)对音频数据进行编码。例如,以预设的时长步进值为0.1秒为例,当对音频数据进行编码时,可每次编码0.1秒的音频块数据(即PCM数据),直至所有的音频数据编码完成。
第二获取模块130可用于获取预留的音频文件的文件头部的预设值。应当理解,在本发明的实施例中,预留的音频文件的文件头部的预设值可以理解为预先在音频文件的文件头部预留的大小,例如,1kBytes(1K字节),即1024Bytes(字节)。
第一生成模块140可用于根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列。为了避免常规的关键帧存储比较占资源等的问题,在发明的实施例中,可采用三次样条差值函数来保存关键帧。具体而言,在本发明的一个实施例中,如图4所示,第一生成模块140可包括第一获取单元141、第二获取单元142、第三获取单元143和生成单元144。
具体地,第一获取单元141可用于以预设的时长步进值为差值,将音频数据的总时长进行拆分以获取播放时间值序列,播放时间值序列包括多个播放时间值,多个播放时间值是以预设的时长步进值为差值进行排列的。举例而言,假设获取到的音频数据的总时长为241.2秒,预设的时长步进值为0.1秒,第一获取单元141可以0.1秒为差值,将音频数据的总时长241.2秒进行拆分,获得一个播放时间值序列,即{0.1、0.2、0.3、……、240.1、241.2},其中单位为秒。可以看出,播放时间值序列中的播放时间值为以0.1为差值的递增序列。
第二获取单元142可用于获取每个播放时间值对应的编码后的音频块编码数据的大小。也就是说,每个播放时间值对应一个音频块数据,在对这些音频块数据进行编码的过程中,第二获取单元142可获取每个播放时间值对应的音频块数据编码后的大小。例如,以播放时间值序列为{0.1、0.2、0.3、……、240.1、241.2}、单位为秒为例,可分别获取播放时间值为0.1秒对应的音频块数据编码后的大小为358byte、播放时间值为0.2秒对应的音频块数据编码后的大小为386byte、……、播放时间值为241.2秒对应的音频块数据编码后的大小为377byte,即可通过如下表2来记录播放时间值与编码后的音频块编码数据的对应关系及大小。
时间(秒) 0.1 0.2 0.3 0.4 0.5 240.0 240.1 241.2
大小(byte) 358 386 410 327 334 405 319 377
表2
第三获取单元143可用于根据预留的文件头部的预设值和每个播放时间值对应的编码后的音频块编码数据的大小,获得每个播放时间值对应的音频文件位置。例如,以上面表2中的数据为例,第三获取单元143可先将表2中每个播放时间值对应的编码后的音频块编码数据的大小进行转换,之后在转换结果的基础上加上预留的文件头部的预设值1K字节,即可获得每个播放时间值对应的音频文件位置,可通过如下表3来表示播放时间值与其对应的音频文件位置的对应关系及大小。
时间(秒) 0.1 0.2 0.3 0.4 0.5 240.0 240.1 241.2
位置(byte) 1382 1768 2178 2505 2839 843244 843563 843940
表3
结合表2和表3可以看出,播放时间值为0.1秒对应的音频文件位置的计算过程:播放时间值为0.1秒对应的编码后的音频块编码数据的大小(358byte)+预留的文件头部的预设值(1K字节(即1024字节)),播放时间值为0.2秒对应的音频文件位置的计算过程:播放时间值为0.2秒对应的编码后的音频块编码数据的大小(386byte)+播放时间值为0.1秒对应的音频文件位置(1382byte),播放时间值为0.3秒对应的音频文件位置的计算过程:播放时间值为0.3秒对应的编码后的音频块编码数据的大小(410byte)+播放时间值为0.2秒对应的音频文件位置(1768byte),……,播放时间值为241.2秒对应的音频文件位置的计算过程:播放时间值为241.2秒对应的编码后的音频块编码数据的大小(377byte)+播放时间值为240.1秒对应的音频文件位置(843563byte)。也就是说,播放时间值序列中的第一个播放时间值对应的音频文件位置可根据第一播放时间值对应的编码后的音频块编码数据的大小加上预留的文件头部的预设值,播放时间值序列中的其余播放时间值对应的音频文件位置可根据该播放时间值对应的编码后的音频块编码数据的大小和前一个播放时间值对应的音频文件位置获得。
生成单元144可用于根据每个播放时间值和每个播放时间值对应的音频文件位置组成关键帧数值对序列。更具体地,生成单元144可将播放时间值序列中的每个播放时间值与每个播放时间值对应的音频文件位置对应的记录在一起以形成一个数值对序列,即将上面表3中的数据成对的记录在一个序列中以组成关键帧数值对序列。可以看出,在本发明的实施例中,关键帧数值对序列可包含多个关键帧数值对,每个关键帧数值对可包含播放时间值和与播放时间值对应的音频文件位置。
第二生成模块150可用于将关键帧数值对序列作为插值条件进行三次样条插值,以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,以及将编码后的音频编码数据写入音频文件中。更具体地,第二生成模块150可将关键帧数值对序列作为插值条件进行三次样条插值,最终可得到一个插值函数,即三次样条函数,之后可将这个三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件。
为了优化三次样条函数的精度,在本发明的实施例中,为了简化三次样条函数,最终并不需要将所有的关键帧数值对作为插值条件。例如,第一批插值条件以0.5秒为步进,并保留边界两端的数据,记为S(xi)=yi,i=0、1、2…、n,xi=0、0.5、1、1.5…。插值结束后得到一个三次样条函数f(xi)。第二批插值条件以0.2秒为步进,如果已包含在第一批的插值条件中,则抛弃这对数据,记为S(xj)=yj,j=0、1、2…、m,xj=0.2、0.4、0.6…。首先进行插值结果测试,,例如,如果fabs(f(xj)-yj)<500,其中500的单位为字节,则S(xj)=yj这对数据可以忽略,否则作为插值条件。最终的插值条件集合是第一批插值条件和部分第二批插值条件的集合。由此,简化了三次样条函数。
根据本发明实施例的音频文件的生成装置,可通过第一获取模块获取音频数据和音频数据的总时长,编码模块按照预设的时长步进值对音频数据进行编码,第二获取模块获取预留的音频文件的文件头部的预设值,第一生成模块根据音频数据的总时长、预设的时长步进值、编码后的音频编码数据和预留的文件头部的预设值生成关键帧数值对序列,最后第二生成模块将关键帧数值对序列作为插值条件进行三次样条插值以生成三次样条函数,并将三次样条函数写入音频文件的文件头部,将编码后的音频编码数据写入音频文件中,从而生成一个完整的音频文件,即在仅增加少量存储空间的前提下,通过三次样条插值为音频文件增加关键帧,避免了常规的关键帧存储比较占资源、且精度较差的问题,降低了音频文件的大小,同时通过对音频文件引入关键帧,实现了音频文件播放时的进度控制。
在音频文件引入以三次样条函数的形式保存的关键帧之后,播放器在播放该音频文件时也应做少量的改造以实现关键帧的作用,即支持进度的拖动。为此,本发明还提出了一种音频文件的播放方法。
图5是根据本发明一个实施例的音频文件的播放方法的流程图。
需要说明的是,在本发明的实施例中,音频文件是根据上述实施例的音频文件的生成方法所生成的,该音频文件具有关键帧,该关键帧是以三次样条函数的形式保存在音频文件的文件头部。如图5所示,该音频文件的播放方法可以包括:
S501,获取音频文件。
S502,当接收到播放音频文件指令时,读取并初始化音频文件的文件头部中的三次样条函数。
例如,在接收到用户针对音频文件输入的播放指令时,可先从音频文件的文件头部读取并初始化文件头部中的三次样条函数。
S503,获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置。
例如,当检测到用户想对音频文件进行进度的拖动控制时,可先获取用户输入的进度时间值,并根据该进度时间值和三次样条函数找到该进度时间值在音频文件中的大概位置。
S504,根据进度时间值对应的音频文件位置对音频文件进行播放。
具体地,在找到进度时间值在音频文件中的大概位置之后,可从该位置开始找到下一个完整的音频帧帧头即可开始播放。
根据本发明实施例的音频文件的播放方法,可先获取音频文件,在接收到播放音频文件指令时,获取并初始化音频文件的文件头部中的三次样条函数,之后可获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置,最后根据进度时间值对应的音频文件位置对音频文件进行播放,即通过读取音频文件中基于三次样条函数保存的关键帧即可找到用户输入的时间点所对应的音频文件位置,使得对播放器仅做少量的改造即可支持进度的拖动,实现了音频的进度控制功能,提升了用户体验。
为了实现上述实施例,本发明还提出了一种音频文件的播放装置。
图6是根据本发明一个实施例的音频文件的播放装置的结构示意图。如图6所示,该音频文件的播放装置可以包括:第一获取模块210、读取模块220、第二获取模块230和播放模块240。
具体地,第一获取模块210可用于获取音频文件。
读取模块220可用于在接收到播放音频文件指令时,读取并初始化音频文件的文件头部中的三次样条函数。例如,读取模块220在接收到用户针对音频文件输入的播放指令时,可先从音频文件的文件头部读取并初始化文件头部中的三次样条函数。
第二获取模块230可用于获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置。例如,当检测到用户想对音频文件进行进度的拖动控制时,第二获取模块230可先获取用户输入的进度时间值,并根据该进度时间值和三次样条函数找到该进度时间值在音频文件中的大概位置。
播放模块240可用于根据进度时间值对应的音频文件位置对音频文件进行播放。更具体地,在第二获取模块230找到进度时间值在音频文件中的大概位置之后,播放模块240可从该位置开始找到下一个完整的音频帧帧头即可开始播放。
根据本发明实施例的音频文件的播放装置,可通过第一获取模块获取音频文件,读取模块在接收到播放音频文件指令时,获取并初始化音频文件的文件头部中的三次样条函数,第二获取模块获取输入的进度时间值,并根据进度时间值和三次样条函数获取进度时间值对应的音频文件位置,播放模块根据进度时间值对应的音频文件位置对音频文件进行播放,即通过读取音频文件中基于三次样条函数保存的关键帧即可找到用户输入的时间点所对应的音频文件位置,使得对播放器仅做少量的改造即可支持进度的拖动,实现了音频的进度控制功能,提升了用户体验。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (8)

1.一种音频文件的生成方法,其特征在于,包括以下步骤:
获取音频数据和所述音频数据的总时长,并按照预设的时长步进值对所述音频数据进行编码;
获取预留的音频文件的文件头部的预设值;
根据所述音频数据的总时长、所述预设的时长步进值、编码后的音频编码数据和所述预留的文件头部的预设值生成关键帧数值对序列;以及
将所述关键帧数值对序列作为插值条件进行三次样条插值,以生成三次样条函数,并将所述三次样条函数写入音频文件的文件头部,以及将所述编码后的音频编码数据写入所述音频文件中。
2.如权利要求1所述的音频文件的生成方法,其特征在于,所述根据所述音频数据的总时长、所述预设的时长步进值、编码后的音频编码数据和所述预留的文件头部的预设值生成关键帧数值对序列具体包括:
以所述预设的时长步进值为差值,将所述音频数据的总时长进行拆分以获取播放时间值序列,所述播放时间值序列包括多个播放时间值,所述多个播放时间值是以所述预设的时长步进值为差值进行排列的;
获取每个播放时间值对应的编码后的音频块编码数据的大小;
根据所述预留的文件头部的预设值和所述每个播放时间值对应的编码后的音频块编码数据的大小,获得所述每个播放时间值对应的音频文件位置;
根据所述每个播放时间值和所述每个播放时间值对应的音频文件位置组成关键帧数值对序列。
3.如权利要求2所述的音频文件的生成方法,其特征在于,所述关键帧数值对序列包含多个关键帧数值对,每个关键帧数值对包含播放时间值和与所述播放时间值对应的音频文件位置。
4.一种音频文件的生成装置,其特征在于,包括:
第一获取模块,用于获取音频数据和所述音频数据的总时长;
编码模块,用于按照预设的时长步进值对所述音频数据进行编码;
第二获取模块,用于获取预留的音频文件的文件头部的预设值;
第一生成模块,用于根据所述音频数据的总时长、所述预设的时长步进值、编码后的音频编码数据和所述预留的文件头部的预设值生成关键帧数值对序列;以及
第二生成模块,用于将所述关键帧数值对序列作为插值条件进行三次样条插值,以生成三次样条函数,并将所述三次样条函数写入音频文件的文件头部,以及将所述编码后的音频编码数据写入所述音频文件中。
5.如权利要求4所述的音频文件的生成装置,其特征在于,所述第一生成模块包括:
第一获取单元,用于以所述预设的时长步进值为差值,将所述音频数据的总时长进行拆分以获取播放时间值序列,所述播放时间值序列包括多个播放时间值,所述多个播放时间值是以所述预设的时长步进值为差值进行排列的;
第二获取单元,用于获取每个播放时间值对应的编码后的音频块编码数据的大小;
第三获取单元,用于根据所述预留的文件头部的预设值和所述每个播放时间值对应的编码后的音频块编码数据的大小,获得所述每个播放时间值对应的音频文件位置;
生成单元,用于根据所述每个播放时间值和所述每个播放时间值对应的音频文件位置组成关键帧数值对序列。
6.如权利要求5所述的音频文件的生成装置,其特征在于,所述关键帧数值对序列包含多个关键帧数值对,每个关键帧数值对包含播放时间值和与所述播放时间值对应的音频文件位置。
7.一种音频文件的播放方法,其特征在于,所述音频文件是根据如权利要求1-3中任一项所述的音频文件的生成方法生成的,所述播放方法包括:
获取所述音频文件;
当接收到播放所述音频文件指令时,读取并初始化所述音频文件的文件头部中的三次样条函数;
获取输入的进度时间值,并根据所述进度时间值和所述三次样条函数获取所述进度时间值对应的音频文件位置;
根据所述进度时间值对应的音频文件位置对音频文件进行播放。
8.一种音频文件的播放装置,其特征在于,所述音频文件是根据如权利要求1-3中任一项所述的音频文件的生成方法生成的,所述播放装置包括:
第一获取模块,用于获取所述音频文件;
读取模块,用于在接收到播放所述音频文件指令时,读取并初始化所述音频文件的文件头部中的三次样条函数;
第二获取模块,用于获取输入的进度时间值,并根据所述进度时间值和所述三次样条函数获取所述进度时间值对应的音频文件位置;
播放模块,用于根据所述进度时间值对应的音频文件位置对音频文件进行播放。
CN201410587140.3A 2014-10-27 2014-10-27 音频文件的生成方法、播放方法及装置 Active CN104301783B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410587140.3A CN104301783B (zh) 2014-10-27 2014-10-27 音频文件的生成方法、播放方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410587140.3A CN104301783B (zh) 2014-10-27 2014-10-27 音频文件的生成方法、播放方法及装置

Publications (2)

Publication Number Publication Date
CN104301783A true CN104301783A (zh) 2015-01-21
CN104301783B CN104301783B (zh) 2018-06-15

Family

ID=52321313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410587140.3A Active CN104301783B (zh) 2014-10-27 2014-10-27 音频文件的生成方法、播放方法及装置

Country Status (1)

Country Link
CN (1) CN104301783B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105788616A (zh) * 2016-02-25 2016-07-20 广东欧珀移动通信有限公司 一种音频文件播放方法及终端

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110634512A (zh) * 2019-09-29 2019-12-31 李翼东 音频文件采样率的转化方法、装置、设备及储存介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026640A1 (en) * 2001-05-30 2002-02-28 Nokia Corporation System and method for jumping to a timepoint in a MPEG file
US20040249489A1 (en) * 2001-09-06 2004-12-09 Dick Robert James Method and apparatus elapsed playback timekeeping of variable bit-rate digitally encoded audio data files
CN102074239A (zh) * 2010-12-23 2011-05-25 福建星网视易信息***有限公司 一种实现声音变速的方法
CN102665103A (zh) * 2012-04-13 2012-09-12 烽火通信科技股份有限公司 一种适用于流媒体服务的音频视频封装方法
CN102724488A (zh) * 2011-03-31 2012-10-10 新奥特(北京)视频技术有限公司 一种支持flv文件直接帧精确定位的索引方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026640A1 (en) * 2001-05-30 2002-02-28 Nokia Corporation System and method for jumping to a timepoint in a MPEG file
US20040249489A1 (en) * 2001-09-06 2004-12-09 Dick Robert James Method and apparatus elapsed playback timekeeping of variable bit-rate digitally encoded audio data files
CN102074239A (zh) * 2010-12-23 2011-05-25 福建星网视易信息***有限公司 一种实现声音变速的方法
CN102724488A (zh) * 2011-03-31 2012-10-10 新奥特(北京)视频技术有限公司 一种支持flv文件直接帧精确定位的索引方法
CN102665103A (zh) * 2012-04-13 2012-09-12 烽火通信科技股份有限公司 一种适用于流媒体服务的音频视频封装方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105788616A (zh) * 2016-02-25 2016-07-20 广东欧珀移动通信有限公司 一种音频文件播放方法及终端
CN105788616B (zh) * 2016-02-25 2018-09-21 广东欧珀移动通信有限公司 一种音频文件播放方法及终端

Also Published As

Publication number Publication date
CN104301783B (zh) 2018-06-15

Similar Documents

Publication Publication Date Title
JP6927385B2 (ja) 復号化装置および方法、並びにプログラム
KR101751228B1 (ko) 오디오 오브젝트들을 포함한 오디오 장면들의 효율적 코딩
KR102122004B1 (ko) 오디오 코딩 시스템들에서 사용자 상호 작용을 위한 음량 제어
KR101760248B1 (ko) 오디오 오브젝트들을 포함한 오디오 장면들의 효율적 코딩
US20150213836A1 (en) Apparatus and method for editing
CA2578190C (en) Device and method for generating a coded multi-channel signal and device and method for decoding a coded multi-channel signal
CN102447839B (zh) 一种基于Quartz Composer的视频制作方法及装置
CN106796799A (zh) 高效drc配置文件传输
JP2016526186A (ja) オーディオ・エンコーダおよびデコーダ
CN111182315A (zh) 一种多媒体文件拼接方法、装置、设备及介质
CN107370726A (zh) 一种用于分布式媒体文件转码***的虚拟切片方法及***
CN112004137A (zh) 一种智能视频创作方法及装置
CN104301783A (zh) 音频文件的生成方法、播放方法及装置
KR102683551B1 (ko) 복호 장치 및 방법, 그리고 프로그램을 기록한 컴퓨터 판독가능 기록매체
WO2015148275A1 (en) Fast and smart video trimming at frame accuracy on generic platform
US20100169753A1 (en) Media portability and compatibility for different destination platforms
EP2553572B1 (en) Opportunistic frame caching
CN110022496A (zh) 视频剪切方法、装置、***、计算机设备和存储介质
JP2009180972A (ja) オーディオレジューム再生装置及びオーディオレジューム再生方法
US20230197114A1 (en) Storage apparatus, playback apparatus, storage method, playback method, and medium
IT201900004823A1 (it) Sistema e metodo per la concatenazione istantanea di contenuti video tramite performance.
CN104994430A (zh) 一种切换播放模式的方法及装置
Koziel et al. The Use of Steganography to Control Multimedia Players
KR100980195B1 (ko) 동영상 부호화 장치 및 방법
JP2013254546A (ja) 記録再生装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190417

Address after: 401336 Second Floor of Building A, 99 Century Avenue, Chayuan New District, Nanan District, Chongqing

Patentee after: Chongqing Xunfei Huiyu Artificial Intelligence Technology Research Institute Co., Ltd.

Address before: 230088 666 Wangjiang West Road, Hefei hi tech Development Zone, Anhui

Patentee before: Iflytek Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210617

Address after: 230088 666 Wangjiang West Road, Hefei hi tech Development Zone, Anhui

Patentee after: IFLYTEK Co.,Ltd.

Address before: 401336 Second Floor of Building A, 99 Century Avenue, Chayuan New District, Nanan District, Chongqing

Patentee before: Chongqing Xunfei Huiyu Artificial Intelligence Technology Research Institute Co.,Ltd.

TR01 Transfer of patent right