1.本发明涉及数字
信号处理技术领域,具体为一种基于浏览器的实时音频处理方法、系统、储存装置。
背景技术:
2.浏览器中录制高质量无损音频具有挑战性,向谷歌和火狐这样的浏览器会将录制的音频优化呈压缩格式,比图ogg或mp3等格式。
3.浏览器当尝试录制音频的pcm格式时,其会因为受到自身设备硬件的问题限制,而使所录制的音频在进行处理的过程中造成帧下降,为缓解此种问题,目前需要实现在浏览器上搭载webworkers,使得浏览器能够开启并行
线程模式,进而可以提供更好的性能管道的原始pcm数据,从而大幅度减少帧下降的频率,且网络工作者还可以通过执行信号处理,以检测噪声和振幅水平,进一步确保高质量的记录,因此亟需设计一种基于浏览器的实时音频处理方法、系统、储存装置来解决上述问题。
技术实现要素:
4.本发明的目的在于提供一种基于浏览器的实时音频处理方法、系统、储存装置,以解决上述背景技术中提出的目前需要实现在浏览器上搭载webworkers,使得浏览器能够开启并行线程模式,进而可以提供更好的性能管道的原始pcm数据,从而大幅度减少帧下降的频率,且网络工作者还可以通过执行信号处理,以检测噪声和振幅水平,进一步确保高质量的记录的问题。
5.为实现上述目的,本发明提供如下技术方案:浏览器对信号声音的调制处理采用一种基于javascript且能够在后台建立子线程的webworkers处理脚本,其在处理声音信息的时候能够通过并行线程进行进一步信号转化,同时子线程可以对转化后的数字信号进行噪声平滑处理。
6.优选的,
所述系统包括建立有采集端口,所述采集端口可以对声音信号进行采集,所述采集端口通过电信号连接有浏览器的js
引擎线程,所述js引擎线程可以在后台建立worker线程当作与主线程并行的子线程,所述js引擎线程在接收到声音的原始信号信息时会建立并行子线程,所述子线程为worker线程,所述js引擎线程将声音信号传输给worker线程进行处理。
7.优选的,所述js引擎线程通过postmessage api向worker线程传输信息,所述js引擎线程通过onmessage api接收worker线程传输的信息,所述worker线程会对接收的原始信号进行采样,所述原始信号被采样后会被转化成pam信号。
8.优选的,所述pam信号通过量化比较可以转化为量化信号,所述量化信号通过编码被转化为数字信号,所述worker线程在将原始信号转化为数字信号后会通过onmessage api将其传输回js引擎线程。
9.优选的,所述js引擎线程在worker线程进行声音信号的处理转化时,其自身会进
行正常的数据处理工作,所述worker线程将通过并行运作的方式与js引擎线程进行同时的数据处理,且两种线程之间在进行数据传输的时候不会相互产生影响。
10.优选的,所述worker线程通过将原始信号调制编码为数字信号后,其通过onmessage api将数字信号发送至主线程中进行数据存储。
11.优选的,所述worker线程能够对转化成的数字信号进行平滑去噪处理。
12.优选的,所述js引擎线程能够对从worker线程发送回来的音频数字信号进行加密封装,所述加密封装后的音频数字信号可以通过互联网传输至定向接收端,所述接收端能够对加密封装的音频进行解封装,使其转化为数字信号,所述数字信号可以通过接收端进行解调使其转化为模拟信号。
13.与现有技术相比,本发明的有益效果是:
14.1、本发明系统通过在浏览器上搭载webworkers脚本,从而保证其能够在浏览器的js引擎线程后台建立与其并行的子线程,通过并行线程的建立,使其能够独立与js引擎线程进行运作,从而对使用浏览器的装置所抓取到的声音信号进行采样转化为pam信号,进而通过量化比较使其转化为量化信号,最后通过编码转化成数字信号,数字信号再传输至主线程中进行存储运作,此种运作模式降低了js引擎线程的运算处理工作,从而保证了声音录制的高保真效果。
15.2、在通过浏览器的js引擎线程开启的子线程对音频的原始信号进行处理,使其转化为数字信号后,从而会对其进行数字信号的平滑去噪处理,以达到最原始声音中噪声的消除,使得信号在通过onmessage api传输至主线程中时,保证浏览器能够获得高质量的声音音频文件,进而对其进行存储。
附图说明
16.图1为本发明的系统处理程序示意图;
具体实施方式
17.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清除、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.请参阅图1,本发明提供的一种实施例:
19.一种基于浏览器的实时音频处理方法、系统、储存装置,包括:浏览器对信号声音的调制处理采用一种基于javascript且能够在后台建立子线程的webworkers处理脚本,其在处理声音信息的时候能够通过并行线程进行进一步信号转化,同时子线程可以对转化后的数字信号进行噪声平滑处理,通过在浏览器的后台搭载web workers处理脚本,使其能够在接收到音频信号时使js引擎线程建立并行的子线程,进而将js引擎线程所接收到的原始声音信号移动至并行线程中进行信号的处理,从而保证js引擎线程的运算工作降低,使得对音频信号的处理更加完善,从而能够获得更高质量的音频文件。
20.进一步的,所述系统包括建立有采集端口,所述采集端口可以对声音信号进行采集,所述采集端口通过电信号连接有浏览器的js引擎线程,所述js引擎线程可以在后台建
立worker线程当作与主线程并行的子线程,所述js引擎线程在接收到声音的原始信号信息时会建立并行子线程,所述子线程为worker线程,所述js引擎线程将声音信号传输给worker线程进行处理,当采集端口对声音信号进行采集后,其是通过模拟信号的形式将声音传递至js引擎线程中,此时线程在后台建立的worker线程将开始接收原始的音频信号,从而对其进行采样量化等一系列的处理,最后获得数字信号。
21.进一步的,所述js引擎线程通过postmessage api向worker线程传输信息,所述js引擎线程通过onmessage api接收worker线程传输的信息,所述worker线程会对接收的原始信号进行采样,所述原始信号被采样后会被转化成pam信号,js引擎线程所建立其的worker线程是一个独立的空间,与主线程之间也是完全隔离的,worker线程计算出来的结果想要在文档对象模型上显示必须通过主线程来操作,所以需要解决两者之间的通信问题,因此浏览器提供了onmessage和postmessage来实现两者之间的通信,此种数据的传输模式是通过序列化对象来与线程交互特定数据,从而使得两者之间在进行独立运作的时候还可以进行数据的传递。
22.进一步的,所述pam信号通过量化比较可以转化为量化信号,所述量化信号通过编码被转化为数字信号,所述worker线程在将原始信号转化为数字信号后会通过onmessage api将其传输回js引擎线程,对pam信号的量化处理过程,就是将时间连续的信号,处理成时间离散的信号,并用实数表示,这些实数将被转换为二进制数用于模拟信号的存储和传输。
23.进一步的,所述js引擎线程在worker线程进行声音信号的处理转化时,其自身会进行正常的数据处理工作,所述worker线程将通过并行运作的方式与js引擎线程进行同时的数据处理,且两种线程之间在进行数据传输的时候不会相互产生影响,通过worker线程的建立,从而降低js引擎主线程的运算量,使其可以进行其他的运算工作,而worker线程则可以对js引擎线程经过postmessage api所传递的声音原始信号进行调制处理,使其在通过高度的编码运算后转化为数字信号,进而worker线程通过onmessage api将数字音频信号回递至js引擎主线程中进行数据存储,进而对其进行加密封装工作。
24.进一步的,所述worker线程通过将原始信号调制编码为数字信号后,其通过onmessage api将数字信号发送至主线程中进行数据存储,当被编码的量化信号转化为数字信号后,通过onmessage api通道实现信号数据在并行线程之间的回传,进而将数字音频信号进行存储,从而在保证主线程能够流畅运行的情况下,通过使用浏览器进行音频录制的设备能够获得高质量的音频文件。
25.进一步的,所述worker线程能够对转化成的数字信号进行平滑去噪处理,信号在实际测量中,难免会混入各种噪声,系统则通过对数字信号进行算法去除高频的随机噪声,信号平滑去噪法可分为几种,滑动平均法也叫做移动平均法、平均法、移动平均值滤波法等等,其被看成是一种时间域思想上的信号光滑方法,此种过程的算法思路为,将该点附近的采样点做算数平均,作为这个点光滑后的值以达到整体数据的平均,或者以线程自身来借调一种函数实现对整体数据的平均化过程,通过此种平滑去噪的过程,使得浏览器录制获得的声音可以形成高质量的音频文件进行存储。
26.进一步的,所述js引擎线程能够对从worker线程发送回来的音频数字信号进行加密封装,所述加密封装后的音频数字信号可以通过互联网传输至定向接收端,所述接收端能够对加密封装的音频进行解封装,使其转化为数字信号,所述数字信号可以通过接收端
进行解调使其转化为模拟信号,通过双线程的并行模式,从而可以完成js引擎线程的独立运算,并且保证子线程能够进行音频数据的针对性处理,从而保证处理后的音频文件维持自身的高质量,进而在主线程中进行存储后能够使其维持一种高质量的形式发送给所需的定向端口。
27.工作原理:在使用浏览器的设备采集端口进行外界声音的采集后,其会被采集端口抓取进而通过电信号的形式将音频信号传递至主线程中进行数据的调配,此时由于浏览器被搭载有webworkers,从而使得js引擎线程在接收到音频数据后,会在同时建立起worker线程,此种worker线程是一种与js引擎线程所并立运行的独立子线程端口,其不依赖于js引擎线程进行运算操作,当worker线程被建立后,js引擎线程通过postmessage api序列化对象来与线程交互特定数据,从而将音频原始信号输送至worker线程进行独立运算处理,在worker线程接收到来自js引擎线程的原始数据信号后,其内部开设进行原始信号的采样,使其转化成为pam信号,pam信号进而通过量化比较,从而转化成为量化信号,通过子线程对量化信号的数据进行编码,则使其转化成为数字信号,进而worker线程通过onmessage api将数字信号回传至js引擎线程,使其对回传的数据信号进行加密封装,至此worker子线程将结束运行,双线程将并为单线程,通过js引擎线程所建立的双线程通道,可以使得声音信号的原始采集处理优化变得更加合理,也保证了浏览器在进行正常运作的过程中能够获得更高质量的音频存储文件。
28.在js引擎线程所建立的并行线程中,通过采集端口所采集的原始声音信号中必然会存在噪声,而噪声在被js引擎线程建立子线程进行单独的声音信号处理时,其通过被并行线程经过采样量化的处理过程而转化成为数字信号,数字信号中则会存在数据分布不均的情况,此时子线程在将原始信号转化为数字信号后,会对数字信号噪声点附近的点进行采样,进而做算数平均,作为这个点光滑后的值以达到整体数据的平均,或者以线程自身来借调一种函数实现对整体数据的平均化过程,通过此种方式满足整体数字音频信号的平滑噪声处理,进而在噪声处理后子线程将其回递至主线程,通过主线程将数字信号进行音频存储进而加密封装,子线程在回递信息后将关闭运行,整个浏览器的音频处理以此种方式而使得自身能够获得更高质量的音频文件。
29.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
技术特征:
1.一种基于浏览器的实时音频处理方法、系统、储存装置,其特征在于,包括:浏览器对信号声音的调制处理采用一种基于javascript且能够在后台建立子线程的web workers处理脚本,其在处理声音信息的时候能够通过并行线程进行进一步信号转化,同时子线程可以对转化后的数字信号进行噪声平滑处理。2.根据权利要求1所述的一种基于浏览器的实时音频处理方法、系统、储存装置,其特征在于:所述系统包括建立有采集端口,所述采集端口可以对声音信号进行采集,所述采集端口通过电信号连接有浏览器的js引擎线程,所述js引擎线程可以在后台建立worker线程当作与主线程并行的子线程,所述js引擎线程在接收到声音的原始信号信息时会建立并行子线程,所述子线程为worker线程,所述js引擎线程将声音信号传输给worker线程进行处理。3.根据权利要求1所述的一种基于浏览器的实时音频处理方法、系统、储存装置,其特征在于:所述js引擎线程通过postmessage api向worker线程传输信息,所述js引擎线程通过onmessage api接收worker线程传输的信息,所述worker线程会对接收的原始信号进行采样,所述原始信号被采样后会被转化成pam信号。4.根据权利要求3所述的一种基于浏览器的实时音频处理方法、系统、储存装置,其特征在于:所述pam信号通过量化比较可以转化为量化信号,所述量化信号通过编码被转化为数字信号,所述worker线程在将原始信号转化为数字信号后会通过onmessage api将其传输回js引擎线程。5.根据权利要求1所述的一种基于浏览器的实时音频处理方法、系统、储存装置,其特征在于:所述js引擎线程在worker线程进行声音信号的处理转化时,其自身会进行正常的数据处理工作,所述worker线程将通过并行运作的方式与js引擎线程进行同时的数据处理,且两种线程之间在进行数据传输的时候不会相互产生影响。6.根据权利要求1所述的一种基于浏览器的实时音频处理方法、系统、储存装置,其特征在于:所述worker线程通过将原始信号调制编码为数字信号后,其通过onmessage api将数字信号发送至主线程中进行数据存储。7.根据权利要求1所述的一种基于浏览器的实时音频处理方法、系统、储存装置,其特征在于:所述worker线程能够对转化成的数字信号进行平滑去噪处理。8.根据权利要求1所述的一种基于浏览器的实时音频处理方法、系统、储存装置,其特征在于:所述js引擎线程能够对从worker线程发送回来的音频数字信号进行加密封装,所述加密封装后的音频数字信号可以通过互联网传输至定向接收端,所述接收端能够对加密封装的音频进行解封装,使其转化为数字信号,所述数字信号可以通过接收端进行解调使其转化为模拟信号。
技术总结
本发明涉及数字信号处理技术领域,具体为一种基于浏览器的实时音频处理方法、系统、储存装置,包括:浏览器对信号声音的调制处理采用一种基于Javascript且能够在后台建立子线程的Web Workers处理脚本,其在处理声音信息的时候能够通过并行线程进行进一步信号转化,同时子线程可以对转化后的数字信号进行噪声平滑处理。本发明系统通过在浏览器上搭载Web Workers脚本,从而保证其能够在浏览器的JS引擎线程后台建立与其并行的子线程,从而保证了声音录制的高保真效果,且在通过浏览器的JS引擎线程开启的子线程对音频的原始信号进行处理,从而会对其进行数字信号的平滑去噪处理,保证浏览器能够获得高质量的声音音频文件,进而对其进行存储。而对其进行存储。而对其进行存储。
技术研发人员:
符甜
受保护的技术使用者:
火星语盟(深圳)科技有限公司
技术研发日:
2022.08.22
技术公布日:
2022/11/18