音频处理方法、装置、系统、浏览器模块和可读存储介质

文档序号:972878 发布日期:2020-11-03 浏览:5次 >En<

阅读说明:本技术 音频处理方法、装置、系统、浏览器模块和可读存储介质 (Audio processing method, device, system, browser module and readable storage medium ) 是由 范林峰 刘楚文 黄勇尤 于 2020-04-14 设计创作,主要内容包括:本公开涉及一种音频处理方法、装置、系统、浏览器模块和可读存储介质,涉及计算机技术领域。本公开的方法包括:浏览器模块响应于用户的预览请求,获取待合成的多个音频,以及各个音频的配置信息;其中,每个音频的配置信息包括:该音频在合成音频中的起始时刻,以及该音频用于合成的时间段;浏览器模块接收用户的播放请求,播放请求包括:合成音频的播放起始时刻;浏览器模块根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频,以便向用户展示合成音频的效果。(The disclosure relates to an audio processing method, an audio processing device, an audio processing system, a browser module and a readable storage medium, and relates to the technical field of computers. The method of the present disclosure comprises: the browser module responds to a preview request of a user and acquires a plurality of audios to be synthesized and configuration information of each audio; wherein the configuration information of each audio comprises: the starting time of the audio in the synthesized audio, and the time period of the audio for synthesis; the browser module receives a play request of a user, wherein the play request comprises: synthesizing the playing start time of the audio; and the browser module plays the audio in the time period for synthesizing each audio according to the playing starting time of the synthesized audio and the starting time of each audio in the synthesized audio so as to show the effect of the synthesized audio to the user.)

音频处理方法、装置、系统、浏览器模块和可读存储介质

技术领域

本公开涉及计算机技术领域,特别涉及一种音频处理方法、装置、系统、浏览器模块和可读存储介质。

背景技术

为了提升音频的表现力,通常会将多个音频进行合成。例如,在主音频中添加一些特定的音效,例如,功夫片中的拳击声,树叶掉落声等等。

目前,用户如果要对合成音频进行预览或试听,通常是由服务器端对各个音频进行合并,将合成的新音频发送到浏览器后开始播放。

发明内容

发明人发现:目前,用户通过浏览器预览音频时,可能反复对音频配置参数(例如,音效播放的时间、次数等)做调整,如果每次调整都通过服务器来合成音频,再返回给浏览器进行播放,会导致服务器负担过重,尤其在用户较多的情况下。并且,等待服务器合成音频和返回给浏览器需要较长时间,这样也将导致用户体验变得很差。

本公开所要解决的一个技术问题是:如何提高用户对合成音频预览时合成音频的播放效率和实时性,并降低服务器压力。

根据本公开的一些实施例,提供的一种音频处理方法,包括:浏览器模块响应于用户的预览请求,获取待合成的多个音频,以及各个音频的配置信息;其中,每个音频的配置信息包括:该音频在合成音频中的起始时刻,以及该音频用于合成的时间段;浏览器模块接收用户的播放请求,播放请求包括:合成音频的播放起始时刻;浏览器模块根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频,以便向用户展示合成音频的效果。

在一些实施例中,浏览器模块根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频包括:浏览器模块确定合成音频的播放起始时刻与各个音频在合成音频中的起始时刻的时间差;针对每个音频,浏览器模块在该音频对应的时间差大于零的情况下,设置该音频对应的开始定时器的值为该时间差,在该音频对应的开始定时器结束时,开始播放该音频用于合成的时间段内的音频。

在一些实施例中,浏览器模块根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频还包括:针对每个音频,浏览器模块在该音频对应的时间差等于零的情况下,开始播放该音频用于合成的时间段内的音频;或者,针对每个音频,浏览器模块在该音频对应的时间差小于零的情况下,确定该音频用于合成的时间段的开始时刻与该时间差的差值,从该音频与差值对应的时刻开始播放。

在一些实施例中,浏览器模块根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频还包括:针对每个音频,浏览器模块在开始播放该音频的同时,根据该音频用于合成的时间段的结束时刻,设置该音频对应的结束定时器,在结束定时器结束时结束播放该音频。

在一些实施例中,每个音频的配置信息还包括:该音频的重复次数;浏览器模块根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频包括:针对每个音频,浏览器模块在该音频当前播放结束的情况下,判断是否达到该音频的重复次数,在未达到该音频的重复次数的情况下,重新播放该音频用于合成的时间段内的音频。

在一些实施例中,该方法还包括:响应于用户确认浏览器模块展示的合成音频的效果,服务器获取待合成的多个音频,以及各个音频的配置信息;服务器根据各个音频的配置信息将各个音频合成为一个音频。

在一些实施例中,服务器根据各个音频的配置信息将各个音频合成为一个音频包括:服务器将各个音频的配置信息转换为快速前进动态图像专家组FFmpeg中的过滤器复合filter_complex参数;服务器利用FFmpeg,根据各个音频的filter_complex参数将各个音频合成为一个音频。

在一些实施例中,服务器将各个音频的配置信息转换为FFmpeg中filter_complex参数包括:依次针对每个音频,服务器添加截取atrim过滤器,并根据该音频用于合成的时间段配置filter_complex参数中该音频对应的atrim过滤器的参数,添加延迟adelay过滤器,并根据该音频在合成音频中的起始时刻,配置filter_complex参数中该音频对应的adelay过滤器的参数;服务器添加融合amix过滤器,根据所有音频的数量,配置filter_complex参数中的amix过滤器的参数。

在一些实施例中,每个音频的配置信息还包括:该音频的重复次数;服务器将各个音频的配置信息转换为FFmpeg中过滤器复合filter_complex参数还包括:依次针对每个音频,服务器添加循环aloop过滤器,并该音频的重复次数配置filter_complex参数中该音频对应的aloop过滤器的参数。

根据本公开的另一些实施例,提供的一种浏览器模块,包括:获取单元,用于响应于用户的预览请求,获取待合成的多个音频,以及各个音频的配置信息;其中,每个音频的配置信息包括:该音频在合成音频中的起始时刻,以及该音频用于合成的时间段;接收单元,用于接收用户的播放请求,播放请求包括:合成音频的播放起始时刻;播放单元,用于根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频,以便向用户展示合成音频的效果。

在一些实施例中,播放单元用于确定合成音频的播放起始时刻与各个音频在合成音频中的起始时刻的时间差;针对每个音频,在该音频对应的时间差大于零的情况下,设置该音频对应的开始定时器的值为该时间差,在该音频对应的开始定时器结束时,开始播放该音频用于合成的时间段内的音频。

在一些实施例中,播放单元还用于针对每个音频,在该音频对应的时间差等于零的情况下,开始播放该音频用于合成的时间段内的音频;或者,针对每个音频,在该音频对应的时间差小于零的情况下,确定该音频用于合成的时间段的开始时刻与该时间差的差值,从该音频与差值对应的时刻开始播放。

在一些实施例中,播放单元还用于针对每个音频,在开始播放该音频的同时,根据该音频用于合成的时间段的结束时刻,设置该音频对应的结束定时器,在结束定时器结束时结束播放该音频。

在一些实施例中,每个音频的配置信息还包括:该音频的重复次数;播放单元还用于针对每个音频,在该音频当前播放结束的情况下,判断是否达到该音频的重复次数,在未达到该音频的重复次数的情况下,重新播放该音频用于合成的时间段内的音频。

根据本公开的又一些实施例,提供的一种音频处理系统,包括:前述任意实施例的浏览器模块;以及服务器,用于响应于用户确认浏览器模块展示的合成音频的效果,获取待合成的多个音频,以及各个音频的配置信息;根据各个音频的配置信息将各个音频合成为一个音频。

在一些实施例中,服务器用于将各个音频的配置信息转换为快速前进动态图像专家组FFmpeg中的过滤器复合filter_complex参数;利用FFmpeg,根据各个音频的filter_complex参数将各个音频合成为一个音频。

在一些实施例中,依次针对每个音频,服务器用于添加截取atrim过滤器,并根据该音频用于合成的时间段配置filter_complex参数中该音频对应的atrim过滤器的参数,添加延迟adelay过滤器,并根据该音频在合成音频中的起始时刻,配置filter_complex参数中该音频对应的adelay过滤器的参数;添加融合amix过滤器,根据所有音频的数量,配置filter_complex参数中的amix过滤器的参数。

在一些实施例中,每个音频的配置信息还包括:该音频的重复次数;依次针对每个音频,服务器还用于添加循环aloop过滤器,并该音频的重复次数配置filter_complex参数中该音频对应的aloop过滤器的参数。

根据本公开的再一些实施例,提供的一种音频处理装置,包括:处理器;以及耦接至处理器的存储器,用于存储指令,指令被处理器执行时,使处理器执行如前述任意实施例的音频处理方法。

根据本公开的又一些实施例,提供的一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例音频处理方法的步骤

本公开中浏览器模块响应于用户的预览请求,获取待合成的多个音频,以及各个音频的配置信息。每个音频的配置信息包括:该音频在合成音频中的起始时刻,以及该音频用于合成的时间段。当用户发起播放请求时,浏览器模块根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频。通过本公开的方法,在用户频繁修改音频时能在浏览器模块端直接预览,无需每次通知服务器重新合成音频并返回浏览器模块,提高用户对合成音频预览时合成音频的播放效率和实时性,并且降低了服务器压力。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本公开的一些实施例的音频处理方法的流程示意图。

图2示出本公开的另一些实施例的音频处理方法的流程示意图。

图3示出本公开的又一些实施例的音频处理方法的流程示意图。

图4示出本公开的一些实施例的浏览器模块的结构示意图。

图5示出本公开的一些实施例的音频处理系统的结构示意图。

图6示出本公开的一些实施例的音频处理装置的结构示意图。

图7示出本公开的另一些实施例的音频处理装置的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

本公开提出一种音频处理方法,可以应用于用户对合成音频进行预览的场景,下面结合图1进行描述。

图1为本公开音频处理方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤S102~S106。

在步骤S102中,浏览器模块响应于用户的预览请求,获取待合成的多个音频,以及各个音频的配置信息。

每个音频的配置信息例如包括:该音频在合成音频中的起始时刻,以及该音频用于合成的时间段。例如,音频在合成音频中的起始时刻表示为start,start=2表示在该音频在合成音频的第2s开始播放;音频用于合成的时间段可以用startTime和endTime表示,startTime=3,endTime=5表示该音频的第3~5s内的音频用于合成。音频用于合成的时间段也可以用startTime和duration表示,startTime=3,duration=2表示该音频的第3~5s内的音频用于合成。音频的配置信息的表示方式,可以根据实际需求进行设置,不限于所举示例。

进一步,每个音频的配置信息还可以包括该音频的重复次数,例如,音频的重复次数表示为times,times=5表示在该音频在合成音频中重复播放5次。多个音频可以包括:主音频和至少一个辅音频;主音频在合成音频中的起始时间为零时刻。

在步骤S102之前,浏览器模块可以接收用户的音频合成请求,向用户提供可选择的音频或者接收用户上传的音频。进一步,用户针对选择的或上传的多个音频设置配置信息,浏览器模块接收用户设置的各个音频的配置信息。用户可以通过试听各个音频,并通过相应的按键等设置各个音频在合成音频中的起始时刻,以及各个音频用于合成的时间段。进一步,用户可以通过点击预览按钮向浏览器模块发出预览请求,以便对合成音频的效果进行预览。

浏览器模块读取各个音频的配置信息,并行加载各个音频。浏览器模块可以根据各个音频的配置信息生成配置列表,可以包括各个音频的标识,对应的音频在合成音频中的起始时刻start,对应的音频用于合成的时间段startTime、endTime(或duration),对应的音频的重复次数times中至少一项。浏览器模块还可以获取各个音频总时长,也可以存入配置列表,便于后续的播放操作。

在步骤S104中,浏览器模块接收用户的播放请求。

浏览器模块接收用户的预览请求后,可以向用户显示合成音频的播放窗口,用户通过点击播放按钮发出播放请求。播放请求中可以包括合成音频的播放起始时刻。即用户可以选择在任意时刻开始播放,例如,在合成音频的第10秒开始播放,或者直接从0秒开始播放等。

在步骤S106中,浏览器模块根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频,以便向用户展示合成音频的效果。

在多个音频的播放时间范围存在交集的情况下,浏览器模块可以同时播放多个音频,从而可以向用户展示合成音频的效果。例如,播放主音频的同时播放辅音频,从而向用户展示在主音频中加入辅音频的效果。

在一些实施例中,浏览器模块确定合成音频的播放起始时刻与各个音频在合成音频中的起始时刻的时间差。针对每个音频,浏览器模块在该音频对应的时间差大于零的情况下,设置该音频对应的开始定时器的值为该时间差,在该音频对应的开始定时器结束时,开始播放该音频用于合成的时间段内的音频;或者,针对每个音频,浏览器模块在该音频对应的时间差等于零的情况下,开始播放该音频用于合成的时间段内的音频;或者,针对每个音频,浏览器模块在该音频对应的时间差小于零的情况下,确定该音频用于合成的时间段的开始时刻与该时间差的差值,从该音频与差值对应的时刻开始播放。

如图2所示,针对每个音频,浏览器模块可以采用以下方法进行处理。

在步骤S202中,设置合成音频的播放起始时刻。

在步骤S204中,读取音频的配置信息。

浏览器模块可以遍历之前生成的配置列表,读取配置列表里每个音频在合成音频中的起始时刻,用于合成的时间段等信息。

在步骤S206中,计算音频在合成音频中的起始时刻和合成音频的播放起始时刻的时间差。

例如,针对各个音频,时间差分别为Δt0,Δt1,...,Δtn,n表示音频的数量。

在步骤S208中,判断音频对应的时间差是否大于0。如果大于0,则执行步骤S209,如果等于0,则执行步骤S210,如果小于0,则执行步骤S211。

在步骤S209中,设置音频对应的开始定时器的值为对应的时间差。之后执行步骤S212。

如果Δti>0,则表示音频i(0≤i≤n,i为整数)还没有开始播放,则浏览器模块设置该音频i对应的开始定时器的值为Δti,等待Δti之后开始播放音频i。

在步骤S210中,开始播放音频用于合成的时间段内的音频。

如果Δti=0,则表示音频i在合成音频中的起始时刻恰好开始播放。

在步骤S211中,确定音频用于合成的时间段的开始时刻与该时间差的差值,从该音频与差值对应的时刻开始播放。

如果Δti<0,则表示音频i在合成音频中的起始时刻已经播放了一段时间。例如,音频i在合成音频中的起始时刻为第2s,而用户选择的合成音频的播放起始时刻为第3s,则Δti=-1,表示音频i已经播放了1s,音频i配置信息中用于合成的时间段为4~7s,则用于合成的时间段的开始时刻为第4s。在合成音频的播放起始时刻,音频i应该从第5s开始播放。

在步骤S212中,响应于开始定时器结束时,开始播放音频用于合成的时间段内的音频。

在步骤S214中,设置音频对应的结束定时器。

在一些实施例中,针对每个音频,浏览器模块在开始播放该音频的同时,根据该音频用于合成的时间段的结束时刻,设置该音频对应的结束定时器,在结束定时器结束时结束播放该音频。浏览器模块可以针对每个音频,计算开始播放时该音频剩余的用于合成的时间段,将结束定时器的值设置为剩余的用于合成的时间段长度。例如,在合成音频的播放起始时刻,音频i用于合成的时间段为4~7s,音频i从第5s开始播放,则剩余的用于合成的时间段为5~7s,结束定时器的值设置为2s。

在步骤S216中,响应于结束定时器结束时结束播放音频。

在步骤S218中,判断音频播放次数是否达到重复次数,如果达到播放次数则结束,否则返回步骤S210开始执行。

在一些实施例中,针对每个音频,浏览器模块在该音频当前播放结束的情况下,判断是否达到该音频的重复次数,在未达到该音频的重复次数的情况下,重新播放该音频用于合成的时间段内的音频。

针对每个音频,如果没有配置start,startTime等参数,可以将这些参数默认为0,如果没有配置endTime,可以默认为音频用于合成的时间段的结束时刻为该音频的结束时刻,如果没有配置times,可以默认重复次数为1。这些默认数值也可以存储至配置列表。

浏览器模块可以利用Web Audio API(网络音频接口)或使用audio节点技术实现上述实施例中合成音频预览的方案,不限于所举示例。

上述实施例中浏览器模块响应于用户的预览请求,获取待合成的多个音频,以及各个音频的配置信息。每个音频的配置信息包括:该音频在合成音频中的起始时刻,以及该音频用于合成的时间段。当用户发起播放请求时,浏览器模块根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频。通过上述实施例的方法,在用户频繁修改音频时能在浏览器模块端直接预览,无需每次通知服务器重新合成音频并返回浏览器模块,提高用户对合成音频预览时合成音频的播放效率和实时性,并且降低了服务器压力。

在用户通过在浏览器预览合成音频的效果后,用户可以重新对各个音频的配置进行调整,则根据上述方法可以重新进行预览。用户也可以确认合成音频,本公开还提供服务器对多个音频进行合成的方法的一些实施例,下面结合图3进行描述。

图3为本公开音频处理方法另一些实施例的流程图。如图3所示,该实施例的方法包括:步骤S302~S304。

在步骤S302中,响应于用户确认浏览器模块展示的合成音频的效果,服务器获取待合成的多个音频,以及各个音频的配置信息。

用户在预览完成后,可以通过触发确认功能,生成合成音频。浏览器模块在预览阶段和服务器在合成阶段可以共用相同的配置信息形成的一套前后端完整音频解决方案。

在步骤S304中,服务器根据各个音频的配置信息将各个音频合成为一个音频。

服务器可以采用FFmpeg(Fast Forward MEPG,快速前进动态图像专家组),Audition,SoX(Sound eXchange)等应用实现将各个音频合成为一个音频,不限于所举示例。无论采用哪些应用,需要将音频的配置信息转换为应用中相应的参数,调用相应的功能实现各个音频的合成。下面以FFmpeg为例,服务器具体如何进行音频的合成。

在一些实施例中,服务器将各个音频的配置信息转换为FFmpeg中的filter_complex(过滤器复合)参数;利用FFmpeg,根据各个音频的filter_complex参数将各个音频合成为一个音频。

Ffmpe中的filter_complex参数可以结合内置的各种复杂filter(过滤器)对音频任意修改,例如,atrim(音频截取)、adelay(音频延迟播放)、aloop(音频循环播放)、amix(音频流融合)等过滤器。由于filter_complex支持流的方式配置,并会按配置的逻辑自动合成音频,所以需要将传入的音频配置信息转换成filter_complex格式。

在一些实施例中,依次针对每个音频,服务器添加atrim过滤器,并根据该音频用于合成的时间段配置filter_complex参数中该音频对应的atrim过滤器的参数,添加延迟adelay过滤器,并根据该音频在合成音频中的起始时刻,配置filter_complex参数中该音频对应的adelay过滤器的参数;添加融合amix过滤器,根据所有音频的数量,配置filter_complex参数中的amix过滤器的参数。

进一步,每个音频的配置信息还可以包括:该音频的重复次数。依次针对每个音频,服务器添加aloop过滤器,并该音频的重复次数配置filter_complex参数中该音频对应的aloop过滤器的参数。

例如,音频配置信息可以以配置列表的形式表示。针对列表中每个音频可以采用以下方法进行参数的转换和处理。

(1)读取配置列表中的第i项配置信息,记为item(项目)。

(2)判断item.path是否已设置,如果是,则执行(3),否则抛出错误。item.path表示音频的路径,及判断音频的路径是否已设置。

(3)判断item.startTime或item.endTime或duration是否存在,如果item.startTime不存在,则将item.startTime设置为0,如果item.endTime或duration不存在,则将item.endTime设置为音频结束时刻,或将duration设置为从startTime到音频结束时刻的时长,如果存在则执行(4)。

即判断音频的配置信息是否包括用于合成的时间段相关信息,如果包括则执行步骤(4),否则按照上述方法进行设置。

(4)添加atrim过滤器根据item.startTime,item.endTime或duration截取音频。例如,音频的startTime=26,endTime=34,则filter_complex参数中atrim=startTime=26:endTime=34。

(5)判断item.times是否存在,如果不存在,则将item.times设置为1,否则执行(6)。即判断音频的重复次数是否已设置,如果未设置,则设置为1。

(6)添加aloop过滤器根据item.times设置音频播放次数。例如,音频的times=4,则filter_complex参数中aloop=times=4。

(7)判断item.start是否存在,如果不存在,则将item.start设置为0,否则执行(8)。即判断音频在合成音频中的起始时刻是否已设置,如果未设置则默认设置为0。

(8)添加adelay过滤器根据item.start设置音频在合成音频中的起始时刻。例如,音频的start=2,则filter_complex参数中adelay=2000,2000单位为ms,2单位为s。

(9)组合各个过滤器参数。

(10)判断i=n,n为音频的数量,如果是,则执行(11),否则,i=i+1,并返回(1)重新开始执行。

(11)添加amix过滤器合成多个音频。

上述实施例的方法浏览器模块进行音频预览和服务器进行音频合成共用相同的配置参数,形成的一套前后端完整音频解决方案。针对用户确认浏览器中预览后的音频才利用服务器进行音频合成,无需每次通知服务器重新合成音频并返回浏览器模块,提高用户对合成音频预览时合成音频的播放效率和实时性,并且降低了服务器压力。

本公开还提供一种浏览器模块,下面结合图4进行描述。

图4为本公开浏览器模块的一些实施例的结构图。如图4所示,该实施例的浏览器模块40包括:获取单元410,接收单元420,播放单元430。

获取单元410用于响应于用户的预览请求,获取待合成的多个音频,以及各个音频的配置信息;其中,每个音频的配置信息包括:该音频在合成音频中的起始时刻,以及该音频用于合成的时间段。

接收单元420用于接收用户的播放请求,播放请求包括:合成音频的播放起始时刻。

播放单元430用于根据合成音频的播放起始时刻,以及各个音频在合成音频中的起始时刻,播放各个音频用于合成的时间段内的音频,以便向用户展示合成音频的效果。

在一些实施例中,播放单元430用于确定合成音频的播放起始时刻与各个音频在合成音频中的起始时刻的时间差;针对每个音频,在该音频对应的时间差大于零的情况下,设置该音频对应的开始定时器的值为该时间差,在该音频对应的开始定时器结束时,开始播放该音频用于合成的时间段内的音频。

在一些实施例中,播放单元430还用于针对每个音频,在该音频对应的时间差等于零的情况下,开始播放该音频用于合成的时间段内的音频;或者,针对每个音频,在该音频对应的时间差小于零的情况下,确定该音频用于合成的时间段的开始时刻与该时间差的差值,从该音频与差值对应的时刻开始播放。

在一些实施例中,播放单元430还用于针对每个音频,在开始播放该音频的同时,根据该音频用于合成的时间段的结束时刻,设置该音频对应的结束定时器,在结束定时器结束时结束播放该音频。

在一些实施例中,每个音频的配置信息还包括:该音频的重复次数;播放单元430还用于针对每个音频,在该音频当前播放结束的情况下,判断是否达到该音频的重复次数,在未达到该音频的重复次数的情况下,重新播放该音频用于合成的时间段内的音频。

本公开还提供一种音频处理系统,下面结合图5进行描述。

图5为本公开音频处理系统的一些实施例的结构图。如图5所示,该实施例的音频处理系统5包括:浏览器模块40以及服务器52。

服务器52用于响应于用户确认浏览器模块40展示的合成音频的效果,获取待合成的多个音频,以及各个音频的配置信息;根据各个音频的配置信息将各个音频合成为一个音频。

在一些实施例中,服务器52用于将各个音频的配置信息转换为快速前进动态图像专家组FFmpeg中的过滤器复合filter_complex参数;利用FFmpeg,根据各个音频的filter_complex参数将各个音频合成为一个音频。

在一些实施例中,依次针对每个音频,服务器52用于添加截取atrim过滤器,并根据该音频用于合成的时间段配置filter_complex参数中该音频对应的atrim过滤器的参数,添加延迟adelay过滤器,并根据该音频在合成音频中的起始时刻,配置filter_complex参数中该音频对应的adelay过滤器的参数;添加融合amix过滤器,根据所有音频的数量,配置filter_complex参数中的amix过滤器的参数。

在一些实施例中,每个音频的配置信息还包括:该音频的重复次数;依次针对每个音频,服务器52还用于添加循环aloop过滤器,并该音频的重复次数配置filter_complex参数中该音频对应的aloop过滤器的参数。

本公开的实施例中的音频处理装置包括浏览器模块、服务器可由各种计算设备或计算机系统来实现,下面结合图6以及图7进行描述。

图6为本公开音频处理装置的一些实施例的结构图。如图6所示,该实施例的装置60包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行本公开中任意一些实施例中的音频处理方法。

其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。

图7为本公开音频处理装置的另一些实施例的结构图。如图7所示,该实施例的装置70包括:存储器710以及处理器720,分别与存储器610以及处理器620类似。还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730,740,750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口750为SD卡、U盘等外置存储设备提供连接接口。

本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:语音转换方法、装置及服务器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!