一种音频变速播放方法、装置、电子设备及介质制造方法及图纸

技术编号:37423115 阅读:20 留言:0更新日期:2023-04-30 09:45
本公开提供了一种音频变速播放方法、装置、电子设备及介质,涉及计算机技术领域,尤其涉及音频处理技术领域。具体实现方案为:接收音频变速请求,音频变速请求用于请求将指定音频的播放速率调整为目标速率;将指定音频包括的待变速音频数据和指定音频的目标采样位数输入WASM模块;调用WASM模块中封装的目标音频工具按照目标速率对待变速音频数据进行变速处理,得到变速音频数据;目标音频工具为与目标采样位数匹配的音频工具;获取变速音频数据,并播放变速音频数据。可以达到变速不变调的效果。的效果。的效果。

【技术实现步骤摘要】
一种音频变速播放方法、装置、电子设备及介质


[0001]本公开涉及计算机
,尤其涉及音频处理


技术介绍

[0002]网页浏览器在播放音频时,为满足用户变速播放的需求,可以通过设置播放速率的倍率来实现音频的变速播放。例如,若用户选择0.5倍速播放,则网页浏览器可以将音频播放速度降低为正常播放速率的0.5倍,若用户选择2倍速播放,则网页浏览器可以将播放速率升高为正常播放速率的2倍。

技术实现思路

[0003]本公开提供了一种音频变速播放方法、装置、电子设备及介质。
[0004]根据本公开的第一方面,提供了一种音频变速播放方法,包括:
[0005]接收音频变速请求,所述音频变速请求用于请求将指定音频的播放速率调整为目标速率;
[0006]将所述指定音频包括的待变速音频数据和所述指定音频的目标采样位数输入WASM模块;
[0007]调用所述WASM模块中封装的目标音频工具按照所述目标速率对所述待变速音频数据进行变速处理,得到变速音频数据;所述目标音频工具为与所述目标采样位数匹配的音频工具;
[0008]获取所述变速音频数据,并播放所述变速音频数据。
[0009]根据本公开的第二方面,提供了一种音频变速播放装置,包括:
[0010]接收模块,用于接收音频变速请求,所述音频变速请求用于请求将指定音频的播放速率调整为目标速率;
[0011]输入模块,用于将所述指定音频包括的待变速音频数据和所述指定音频的目标采样位数输入WASM模块;r/>[0012]变速模块,用于调用所述WASM模块中封装的目标音频工具按照所述目标速率对所述待变速音频数据进行变速处理,得到变速音频数据;所述目标音频工具为与所述目标采样位数匹配的音频工具;
[0013]获取模块,用于获取所述变速音频数据,并播放所述变速音频数据。
[0014]根据本公开的第三方面,提供了一种电子设备,包括:
[0015]至少一个处理器;以及
[0016]与所述至少一个处理器通信连接的存储器;其中,
[0017]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
[0018]根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面所述的方法。
[0019]根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面所述的方法。
[0020]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0021]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0022]图1是本公开实施例提供的一种音频变速播放方法的流程图;
[0023]图2是本公开实施例提供的一种音频变速播放方法的示例性流程图;
[0024]图3是本公开实施例提供的一种音频变速播放装置的结构示意图。
[0025]图4是用来实现本公开实施例的音频变速播放方法的电子设备的框图。
具体实施方式
[0026]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0027]网页浏览器通常使用Audio Context(音频上下文)播放音频,Audio Context是一种音频接口,用于表示由链接在一起的Audio Node(音频节点)构建的音频处理图。
[0028]在利用Audio Context播放音频时,如果需要对音频进行变速播放,可以设置Audio Buffer Source Node的playbackRate(播放速率)的倍速来实现音频的变速。其中,Audio Buffer Source Node为一个音频节点,该音频节点是一个利用Audio Buffer(音频缓存)缓存了音频数据的音频源。
[0029]但是,调整playbackRate的倍速后会出现声音变调的问题。例如,在1.0倍速下的音频是44100Hz,在2.0倍速下音频会变成88200Hz,在0.5倍速下音频会变成22050Hz,导致出现明显的声音失真。
[0030]为了避免声音失真,本公开实施例提供了一种音频变速播放方法,该方法应用于web端,如图1所示,该方法包括:
[0031]S101、接收音频变速请求,音频变速请求用于请求将指定音频的播放速率调整为目标速率。
[0032]可选地,该音频变速请求可以为用户触发的,例如,在浏览器的网页中播放音频时,用户可以在网页中选择0.5倍速、1.25倍速、1.5倍速、2倍速等播放速率,从而触发音频变速请求。
[0033]指定音频为当前正在播放的音频,目标速率为用户选择的速率,例如可以为1.5倍速。
[0034]S102、将指定音频包括的待变速音频数据和指定音频的目标采样位数输入WASM模块。
[0035]WASM的全称为WebAssembly,是一种能够在web端中运行的编码格式。web端的浏览器可以从服务器中加载WASM文件,从而得到WASM模块。
[0036]WASM文件中封装有pitch.c和sonic工具。其中,pitch.c为利用C语言编写的代码,用于调用sonic工具。sonic工具是基于C语言的工具,用于实现音频变速功能。
[0037]本公开实施例中,可以预先利用Emscripten工具将pitch.c和sonic代码封装编译成WASM文件,并将该WASM文件存储于服务器中。作为示例,该服务器具体可以为内容分发网络(Content Delivery Network,CDN)服务器。
[0038]可选地,浏览器可以调用WASM模块中pitch.c暴露的接口,并通过该接口输入待变速音频数据,具体可以输入一个Uint8Array(8位无符号整型数组)对象,该Uint8Array对象中包括待变速音频数据,该待变速音频数据具体为脉冲编码调制(Pulse Code Modulation,PCM)。
[0039]S103、调用WASM模块中封装的目标音频工具按照目标速率对待变速音频数据进行变速处理,得到变速音频数据。
[0040]其中,web端可以调用WASM模块中的pitch.c,进而使得pitch.c调用目标音频工具。目标音频工具为与目标采样位数匹配的音频工具,即目标sonic工具。
[0041]目标音频工具可以按照目标速率对待变速音频数据进行变速处理,并输出变速音频数据。本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种音频变速播放方法,包括:接收音频变速请求,所述音频变速请求用于请求将指定音频的播放速率调整为目标速率;将所述指定音频包括的待变速音频数据和所述指定音频的目标采样位数输入WASM模块;调用所述WASM模块中封装的目标音频工具按照所述目标速率对所述待变速音频数据进行变速处理,得到变速音频数据;所述目标音频工具为与所述目标采样位数匹配的音频工具;获取所述变速音频数据,并播放所述变速音频数据。2.根据权利要求1所述的方法,在所述调用所述WASM模块中封装的目标音频工具按照所述目标速率对所述待变速音频数据进行变速处理,得到变速音频数据之后,所述方法还包括:获取所述WASM模块返回的回调函数,所述回调函数中包括所述变速音频数据的起始缓存位置和数据尺寸;所述获取所述变速音频数据,包括:响应于所述回调函数,从所述WASM模块的内存中,采用按字节取整的方式从所述起始缓存位置开始按照所述数据尺寸读取所述变速音频数据。3.根据权利要求2所述的方法,其中,所述从所述WASM模块的内存中,采用按字节取整的方式从所述起始缓存位置开始按照所述数据尺寸读取所述变速音频数据,包括:基于所述数据尺寸和所述目标采样位数确定所述变速音频数据包括的比特数;从所述WASM模块的内存中的起始缓存位置开始,按照所述比特数读取数据,将读取到的数据作为所述变速音频数据。4.根据权利要求2所述的方法,其中,所述回调函数中还包括所述变速音频数据对应的原始时间戳;所述方法还包括:在播放所述变速音频数据过程中,按照所述变速音频数据对应的原始时间戳显示所述变速音频数据的播放进度。5.根据权利要求1所述的方法,其中,所述目标音频工具的读数据类型和写数据类型均为与所述目标采样位数匹配的数据类型。6.根据权利要求5所述的方法,其中,若所述目标采样位数为8位,则所述目标音频工具的读数据类型和写数据类型均为无符号字符型;若所述目标采样位数为16位,则所述目标音频工具的读数据类型和写数据类型均为短整型;若所述目标采样位数为32位,则所述目标音频工具的读数据类型和写数据类型均为浮点型。7.一种音频变速播放装置,包括:接收模块,用于接收音频变速请求,所述音频变速请求用于请求将指定音频的播放速率调整为目标速率;输入模块,用于将所述指定音频包括的待变速音频数据和所述指定音频的目标采样位
数输入WASM模...

【专利技术属性】
技术研发人员:杨明张萌
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1