一种低延迟音频矩阵配置方法及服务器与流程



1.本发明涉及音频处理技术领域,尤其涉及一种低延迟音频矩阵配置方法及服务器。


背景技术:



2.随着社会信息化的进步,各行各业对中大型舞台会议、播音室和演播厅等专业场景的音频矩阵在不同场景下的音频输出要求越来越高,包括但不限于输出源的输出准确性、无延迟性、高质量混音效果和应对复杂的音频抢占逻辑。
3.目前现有的技术只是针对于音频数据包进行拆分,将大包的音频数据拆分成多个小包,从而做到一定减低延迟,但是在网络或者设备环境当中,会存在网络设备等等一系列环境导致的延迟问题,并且现有技术是将延迟时间最高的设备作为调整的标准,将其他的数据同步延迟到最高的时间,进行延迟同步发送,并未从根本解决延迟的问题,导致在一些专业场景下,音频播放出来会有明显的延迟感。


技术实现要素:



4.为了克服现有技术的不足,本发明的目的之一在于提供一种低延迟音频矩阵配置方法,其能解决在专业场景下音频数据的传输受网络环境影响出现明显延迟的问题。
5.本发明的目的之二在于提供一种低延迟音频矩阵配置服务器,其能解决在专业场景下音频数据的传输受网络环境影响出现明显延迟的问题。
6.为了达到上述目的之一,本发明所采用的技术方案如下:
7.一种低延迟音频矩阵配置方法,包括以下步骤:
8.s1:驱使输入设备与输出设备建立连接,输入设备和输出设备之间进行音频数据交互;
9.s2:获取各个播放设备的硬件运算速率、当前网络延迟情况以及音频数据包处理量,计算音频数据截取量,驱使输出设备截取相应的音频数据,再发送至播放设备。
10.优选的,所述s2具体由以下步骤实现:
11.s21:获取各个播放设备的当前网络延迟情况;
12.s22:判断当前网络延迟情况是否大于或等于预设延迟值,若否,则驱使输出设备将音频数据发送至播放设备,若是,则执行s23;
13.s23:获取播放设备的硬件运算速率以及音频数据包处理量,并计算音频数据截取量;
14.s24:驱使输出设备截取相应的音频数据,再发送至播放设备。
15.优选的,所述s1具体由以下步骤实现:
16.向输入设备与输出设备发送音频配置信息,驱使输入设备与输出设备通过音频配置信息建立连接,进行音频数据交互。
17.优选的,所述s1和s2之间还包括以下步骤:
18.a1:驱使输入设备将回声从音频帧中清除,并进行降噪处理,识别以及过滤背景噪音;
19.a2:判断输入设备当前是否获取到音频数据,若否,则编码生成一个空白编码帧,输送至输出设备,若是,则执行a3;
20.a3:判断是否进行混音处理,若是,则通过衰减因子对语音进行衰减,若否,则将音频数据解析成pcm音频流数据,并进行噪音检测处理。
21.为了达到上述目的之二,本发明所采用的技术方案如下:
22.一种低延迟音频矩阵配置服务器,包括储存器和处理器;
23.储存器,用于储存程序指令;
24.处理器,用于运行所述程序指令,以执行如上述的低延迟音频矩阵配置方法。
25.相比现有技术,本发明的有益效果在于:通过对各个播放设备的硬件运算速率、当前网络延迟情况以及音频数据包处理量进行充分考虑,并实时计算需要截取的数量,从而对不同网络延迟情况的设备所需处理的数据进行不同程度的动态截取,使得多个设备能够实现同步,以适应专业场景中对多个设备同步播放音频的需求,消除网络环境造成的延迟感。
附图说明
26.图1为本发明中所述的低延迟音频矩阵配置方法的流程图。
具体实施方式
27.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
28.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
29.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
30.下面,结合附图以及具体实施方式,对本发明做进一步描述:
31.在本发明中,主机(相当于服务器)、输入设备与输出设备构建成音频矩阵,所述输入设备可以为tx-8770编码器,所述输出设备可以为tx-8704解码器,所述主机、输入设备与输出设备均接入到同一网络中。
32.实施例一:
33.如图1所示,一种低延迟音频矩阵配置方法,包括以下步骤:
34.s1:驱使输入设备与输出设备建立连接,输入设备和输出设备之间进行音频数据
交互;
35.具体的,通过驱使输入设备与输出设备建立连接,使得输入设备将从音频源中采集的音频数据传输至输出设备,输出设备再将音频数据传输至播放设备,在本实施例中,所述s1具体由以下步骤实现:
36.向输入设备与输出设备发送音频配置信息,驱使输入设备与输出设备通过音频配置信息建立连接,进行音频数据交互。
37.优选的,主机(服务器)服务正常启动后,向网络环境中发送udp广播协议,输入设备和输出设备接收到udp广播协议后,向主机发送上线请求协议,主机接受到各设备的上线协议的设备后,标记设备配置信息,并保持和各设备的健康心跳通信,在主机中设置设备信息、矩阵配置、抢占逻辑配置和音频配置,根据输入设备和输出设备的地址,主机分别发送音频配置信息(相当于配置协议信号)到输入设备和输出设备,输入设备根据接收的音频配置信息进行配置,输出音频数据到输出源设备,输出设备根据接收的音频配置信息进行配置、校验并接受输入设备输送的音频数据,然后输出设备的各通道向播放设备输出接收到的音频数据。
38.若主机离线,输入设备和输出设备仍可按照音频配置信息进行音频数据传输,若输入设备和输出设备出现断电,断网等异常情况,设备重启后,主机会重新下发音频配置信息,输入设备和输出设备的音频数据交互恢复正常。
39.进一步的,所述s1和s2之间还包括以下步骤:
40.a1:驱使输入设备将回声从音频帧中清除,并进行降噪处理,识别以及过滤背景噪音;
41.具体的,通过输入设备对音频数据进行回声消除、噪音抑制和静音检测等常规的音频处理,优选的,依据刚播放的音频帧,在采集的音频帧中做一些类似抵消的运算,从而将回声从采集的音频帧中清除掉;进行降噪处理时,将属于背景噪音的部分识别出来,并从音频帧中过滤掉。
42.a2:判断输入设备当前是否获取到音频数据,若否,则编码生成一个空白编码帧,输送至输出设备,若是,则执行a3;
43.具体的,通过静音检测算法结合前面的噪声抑制算法,可以识别出当前没有音频源输入到输入设备,若没有,则输入设备编码就可以输出一个特殊的编码帧,如空白编码帧,输送至输出设备,可以达到节省带宽和流量。
44.a3:判断是否进行混音处理,若是,则通过衰减因子对语音进行衰减,若否,则将音频数据解析成pcm音频流数据,并进行噪音检测处理。
45.具体的,进行混音时,采用归一化混音算法(自适应加权混音算法)进行混音处理,使用更多的位数(32bit)来表示音频数据的一个样本,混完音后在想办法降低其振幅,使其仍旧分布在16bit所能表示的范围之内。为避免发生溢出,使用一个可变的衰减因子对语音进行衰减。这个衰减因子也就代表语音的权重,衰减因子随着音频数据的变化而变化,所以称为自适应加权混音。当溢出时,衰减因子较小,使得溢出的数据在衰减后能够处于临界值以内,而在没有溢出时,又让衰减因子慢慢增大,使数据较为平缓的变化。
46.非混音时采用基于深度学习的aec算法,传统信号处理与深度学习技术结合的方式,在回声消除自适应滤波之后做进一步的残余回声抑制,在程序内部,对音频解析成pcm
音频流数据,进行一系列噪音检测处理,自适应将音质增益到一个稳定的频率区间,在传输中减低了延迟,提高音频质量。
47.s2:获取各个播放设备的硬件运算速率、当前网络延迟情况以及音频数据包处理量,计算音频数据截取量,驱使输出设备截取相应的音频数据,再发送至播放设备。
48.具体的,在音频数据发送之前,根据每个播放设备之间在网络中延迟和设备处理数据速率情况,进行音频数据截取量计算,实时同步低延迟处理发送,在本实施例中,所述s2具体由以下步骤实现:
49.s21:获取各个播放设备的当前网络延迟情况;
50.具体的,可通过直接ping保存在服务器中的各个终端设备(播放设备)的网络延迟程度,获取当前网络延迟情况。
51.s22:判断当前网络延迟情况是否大于或等于预设延迟值,若否,则驱使输出设备将音频数据发送至播放设备,若是,则执行s23;
52.具体的,通过判断当前网络延迟情况是否大于预设延迟值,来衡量是否需要对音频数据进行处理,优选的,若当前网络延迟情况小于1ms,则认为是正常,并记录各个终端当前秒的延迟情况,若当前网络延迟情况大于1ms,则需要对音频数据进行截取。
53.s23:获取播放设备的硬件运算速率以及音频数据包处理量,并计算音频数据截取量;
54.具体的,计算获取到当前设备的芯片的运算速率,因为设备和服务器之间存在特定的私有协议,会实时保持心跳数据,心跳包存储当前设备的基本信息,如网络情况,温度,当前处理速率,速率的计算公式如下:数据量(字节/秒)=采样率(hz)*采样位数(bit)*芯片采样通道数/8,其中1byte=8bit,12位采样位数,4通道,200k采样频率的ad芯片1秒数据量大小为:200000*12*4/8=1200000byte=1171.875k=1.14441m;也就是一秒钟传输速率为1200000byte/s,每毫秒传输1200byte/ms,如同时接收到其他的数据过来,将计算出剩余还能处理的数据量参数进行读取存储到服务器中,然后计算音频的每秒数据包情况,如下:设置音频采样率=48000,采样通道=2,位深度=16,采样间隔=20ms,即一秒钟总的数据量,采样间隔20ms,每秒钟需采集50次(1s=1000ms),那么总的数据量计算为:
55.一秒钟总的数据量=44100*2*16/8=192000(byte)
56.每帧音频数据大小=192000/50=3840(byte)
57.每个通道样本数=320/2=160(byte)
58.每毫秒的数据量=192000/1000=192(byte)
59.再根据设备播放设备的硬件运算速率和当前网络延迟情况,例如,播放设备a的自身当前处理的速率剩余能处理量:5000byte/ms以及当前网络延迟情况1ms,那么5000byte/ms数据处理速率》192byte/ms,正常传输数据;
60.若播放设备b的自身当前处理的速率剩余能处理量:100byte/ms以及当前网络延迟情况2ms,即当前多出1ms的延迟,处理速率为100byte《192byte,那么所需处理总数据为192+192-100=284byte;
61.若播放设备c的自身当前处理的速率剩余能处理量:1200byte/ms以及当前网络延迟情况3ms,即当前多出2ms的延迟,故当前音频数据为192*2=386byte,设备本身处理速率为1200byte/ms》192byte/ms故应当处理的总数居为386byte;
62.综上所述,最终发送的数据结果,将192000byte/s的数据拆分成512byte数据为一包,一秒钟发送375次,在本实施例中,在普通的局域网环境,udp传输的数据最大为1472字节最好(避免分片重组)。但在网络编程中,internet中的路由器可能有设置成不同的值(小于默认值),internet上的标准mtu值为576,所以internet的udp编程时数据长度最好在576-20-8=548字节以内,又因为512是2的9次方,计算机是二进制的。所以,所有与2有关的乘法和除法都可以转化成位移操作,能大大降低计算负担。
63.s24:驱使输出设备截取相应的音频数据,再发送至播放设备。
64.在本实施例中,若播放设备a正常发送192000byte数据,第一包数据正常发送;播放设备b一秒钟发送192000-284=191716byte,将数据前面284个字节的数据截取掉,从第284开始算到第192000个数据第一包数据发送;播放设备c一秒钟发送192000-386=191614byte数据,将数据前面386个字节的数据截取掉,从第386开始算到第192000个数据第一包数据发送512-386=126byte;所以在音频数据截取完成之后,将播放设备a、b和c在时间上的误差解决了,它们的数据出来是同步的,声音播放出来和声音输入是1ms误差,故不影响正常的使用,虽然会造成设备有一定的音频数据少,但是做了声音的淡入效果,效果从小到大,所处的时间完全够音频一起同步发出,不影响使用,之后的音频数据包跟随着网络波动情况和设备本身处理情况进行实时调整计算,在播音室专业场景里,保持了音源进来到声音出来的时间延迟到1ms以内。
65.进一步的,在音频数据上进行了唯一标识和对数据进行了数据标识的加盐加密,不至于在传输中被抓包截取数据,对目标设备不断输出音频造成干扰)抢占逻辑可在客户端页面调用不同场景的下的音频矩阵系统,场景存在优先级,优先级高的可抢占优先级低的,当配置了音频抢占的时候,根据输入通道配置的优先级值的高低进行抢占,优先级高的可抢占优先级低的。当没有配置音频抢占的时候,会各路音频则进行混音或非混音输出。
66.另外,系统考虑到特定场景需要随时切换音频,输出不同的音频,还提供io触发切换场景,实现了脱机操作,在主机上将各个需要的场景矩阵点配置好,对应着设备编码器(输入设备)不同的io触发口,之后脱机使用方便用户进行切换,在某种特定的场所,要及时切换场景,就可以绕开主机,直接对设备编码器进行io口的触发,进行设备场景配置,切换不同的编码器和解码器之间的音频处理,应用不同的音源输入,输出不同的音频。流程如下:
67.场景1:有编码器1,编码器2,解码器1,解码器2,将各个矩阵点对应的输出通道和输入通道配置完之后,保存,在编码器1中,将io触发的通道1联动到场景2,保存
68.场景2:有编码器1,编码器3,解码器1,解码器2,将各个矩阵点对应的输出通道和输入通道配置完之后,保存,在编码器1中,将io触发的通道2联动到场景1,保存。
69.在项目现场根据实际需求对编码器1的io通道口进行短路触发切换之前保存的场景或者在电脑端进行场景切换,将不同的音频应用到该场景中,输入输出指定的音频音源。
70.实施例二:
71.一种低延迟音频矩阵配置服务器,包括储存器和处理器;
72.储存器,用于储存程序指令;
73.处理器,用于运行所述程序指令,以执行如实施例一所述的低延迟音频矩阵配置方法。
74.对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

技术特征:


1.一种低延迟音频矩阵配置方法,其特征在于,包括以下步骤:s1:驱使输入设备与输出设备建立连接,输入设备和输出设备之间进行音频数据交互;s2:获取各个播放设备的硬件运算速率、当前网络延迟情况以及音频数据包处理量,计算音频数据截取量,驱使输出设备截取相应的音频数据,再发送至播放设备。2.如权利要求1所述的低延迟音频矩阵配置方法,其特征在于,所述s2具体由以下步骤实现:s21:获取各个播放设备的当前网络延迟情况;s22:判断当前网络延迟情况是否大于或等于预设延迟值,若否,则驱使输出设备将音频数据发送至播放设备,若是,则执行s23;s23:获取播放设备的硬件运算速率以及音频数据包处理量,并计算音频数据截取量;s24:驱使输出设备截取相应的音频数据,再发送至播放设备。3.如权利要求1所述的低延迟音频矩阵配置方法,其特征在于,所述s1具体由以下步骤实现:向输入设备与输出设备发送音频配置信息,驱使输入设备与输出设备通过音频配置信息建立连接,进行音频数据交互。4.如权利要求1所述的低延迟音频矩阵配置方法,其特征在于,所述s1和s2之间还包括以下步骤:a1:驱使输入设备将回声从音频帧中清除,并进行降噪处理,识别以及过滤背景噪音;a2:判断输入设备当前是否获取到音频数据,若否,则编码生成一个空白编码帧,输送至输出设备,若是,则执行a3;a3:判断是否进行混音处理,若是,则通过衰减因子对语音进行衰减,若否,则将音频数据解析成pcm音频流数据,并进行噪音检测处理。5.一种低延迟音频矩阵配置服务器,其特征在于:包括储存器和处理器;储存器,用于储存程序指令;处理器,用于运行所述程序指令,以执行如权利要求1-4任意一项所述的低延迟音频矩阵配置方法。

技术总结


本发明公开了一种低延迟音频矩阵配置方法及服务器,所述方法包括以下步骤:S1:驱使输入设备与输出设备建立连接,输入设备和输出设备之间进行音频数据交互;S2:获取各个播放设备的硬件运算速率、当前网络延迟情况以及音频数据包处理量,计算音频数据截取量,驱使输出设备截取相应的音频数据,再发送至播放设备。在本发明中,通过对各个播放设备的硬件运算速率、当前网络延迟情况以及音频数据包处理量进行充分考虑,并实时计算需要截取的数量,从而对不同网络延迟情况的设备所需处理的数据进行不同程度的动态截取,使得多个设备能够实现同步,以适应专业场景中对多个设备同步播放音频的需求,消除网络环境造成的延迟感。消除网络环境造成的延迟感。消除网络环境造成的延迟感。


技术研发人员:

黄志军 王子兵 林弟 张常华 朱正辉 赵定金

受保护的技术使用者:

广州市保伦电子有限公司

技术研发日:

2022.11.02

技术公布日:

2023/2/3

本文发布于:2024-09-21 17:37:27,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/53267.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:音频   设备   数据   输出设备
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议