潘嘉琦 曹科才 丁嘉存 雷镇豪 赵 勃
(南京邮电大学自动化学院人工智能学院 南京 210023)
随着电子信息技术与控制理论的广泛应用和普及,无人机技术得到不断完善。现今无人机正走入各个领域,逐渐成为各行各业生产以及生活中的助推剂[1]。但目前极少有支持语音对讲功能的无人机产品以及相关研究,大部分无人机只支持视频拍摄功能,而无法实现拾音功能。这浪费了无人机潜在的应用价值。如果能够实现无人机上的语音降噪,实现无人机的语音系统,则可以充分挖掘无人机的应用潜力,使无人机拥有更加完备的功能以及更加广泛的应用。例如当人被困于山崖中,或被困于因地震、洪水形成的的孤岛中,救援人员难以抵达,无法与被困人员通信时,无人机可以飞抵被困人员身边,其搭载的麦克风接收被困人员喊话,从而使得被困人员有效地向救援人员传递信息。但如何在无人机发出较大噪音的环境中尽可能地拾取有效语音信号,并从带噪语音信号中还原出尽可能纯净的原始语音是一项技术难题。
语音降噪问题是近年来的一个研究热点,对此各国学者提出了诸多方法[2],其中应用较为广泛的有基本谱减法[3]、LMS自适应滤波[4]、维纳滤波[5]、以及独立成分分析[6~8]等方法。独立成分分析是近年来较为流行的方法[9],该方法针对人为线性叠加的信号有较好的分离效果,但对于在空气中自然混合的声音信号,由于涉及到叠加的非线性以及过程中存在的卷积等问题,难以达到较好的降噪效果。而在经典的语音降噪方法中,维纳滤波降噪适应性广、特别是处理平稳噪声效果较好,是较为简便且应用广泛的方法[10~11]。经过对各种方法的仿真测试比较,发现维纳滤波在在无人机语音系统的中有着较好的效果,因此本文选用维纳滤波降噪方法。
此外,为了实现系统中音视频的实时传输,本文基于WebRTC技术,获取各终端本地的音视频媒体信息,在无人机与地面终端间建立对等连接,将媒体和数据通道关联至该连接,实现流媒体传输,并搭建硬件平台,应用维纳滤波降噪算法与We⁃bRTC技术,最终完成了无人机语音系统的设计与实现。
本文基于维纳滤波算法以及WebRTC协议设计了一种无人机语音系统,结构如图1,本系统实现了以下功能。
图1 无人机语音系统结构图
1)通过无人机上搭载的麦克风与摄像头实时采集原始音视频信息;
2)通过流媒体传输技术将采集到的音视频信息实时传送至地面站;
3)使用维纳滤波算法对含噪语音进行降噪,获得较纯净语音信号;
4)将地面站人员语音信息传送至无人机终端并通过扩音器播放,实现音频双向传输。
针对上述系统功能,开展了以下工作。
1)分析无人机噪声,并针对其特征采用维纳滤波降噪算法设计滤波器;
2)搭建相应硬件平台;
3)分析多种流媒体技术优劣,采用WebRTC技术实现音视频双向交互。
使用Adobe Audition软件生成含无人机噪音的语音的频率分析图,如图2。
图2 含无人机噪音的语音频率分析图
根据分析结果以及相关资料[12~13],认为无人机噪音有以下特征。
1)噪音是分别来自电机、桨叶、气流、电流等多种噪音源的多种类型噪音的混合;
2)噪音频带较宽,覆盖0~20kHz的全频带;
3)噪音能量主要集中在几个特定频率点(电机、桨叶、电流等工作频率)附近;
4)无人机在飞行状态稳定的情况下,噪音可近似看作平稳噪声。
图中0.4kHz~4kHz频段内的间断出现的频率成分即为语音,可见语音与无人机噪音频率虽有重叠,但仍可辨识。因此设计合适的滤波器,可达到语音降噪的效果。
维纳滤波过程中,混合信号可表示为
其中s(n)为目标信号,d(n)为附加噪声信号。
若设计一个滤波器H(z),其单位脉冲响应为h(n),当如输入混合信号x(n)时,滤波器的输出为
维纳滤波的基本原理即为寻找滤波器H(z),使其输出与纯净目标信号最为接近,即按照最小均方差准则,使s(n)与的均方误差取得最小值[14~15]。s(n)与的均方误差为
设h(n)的长度为l,为取得ε的最小值,将ε对h(n)的每一个元素分别求偏导数,并令其等于0,即:
根据式(2)、(4)可得到维纳-霍夫方程:
令i=1,2,…,l,可得l个方程,解之可得序列h的全部有限个元素h(1),h(2),…,h(l),将其做反z变换,即为目标滤波器H(z)。
实际无人机飞行过程中,无人机产生的噪音会随着气流的变化以及无人机运动状态的变化而变化,但可将其视为短时平稳信号,因此对其做分帧处理。
分帧处理会增加信号的高次谐波分量,加窗处理可使此问题得到改善,这里选用语音信号处理中较为常用的汉明窗进行处理。
对于一段带噪语音信号,应用3.2小节所述方法。首先将前导无话段噪声视为目标信号s(n),将带噪语音信号视为混合信号x(n)。得到提取估计噪声的滤波器H(z),对于之后的每一帧带噪语音信号xj(n)使用滤波器H(z)进行滤波,得到噪音信号的估计,记为(n)。利用谱减法,将x(n)与功率谱相减[16],可得对语音信号的估计,记为
维纳滤波实现降噪的算法如下。
函数功能:对语音与噪声的混合信号降噪
进行无人机悬停,地面人员喊话“测试,一、二、三”的录音实验,并对音频进行本节所述的降噪处理,结果如图3~6。
图3 混合信号时域波形
由时域以及频域的波形可见,降噪处理后的噪音信号成分明显减少,处理后的语音信号清晰可辨。可见维纳滤波对于无人机语音系统的降噪应用有着显著的效果。
图4 维纳滤波降噪处理后信号时域波形
图5 混合信号频域图
图6 维纳滤波降噪处理后信号频域图
除维纳滤波外,谱减法和独立成分分析在降噪中也有着广泛应用。使用3.4小节测试所使用的音频进行测试,图7为谱减法降噪后的时域波形,图8为加入另一麦克风(得到两路同步的录音),使用独立成分分析后得到的两路分离信号的时域波形。可以看出,相比于维纳滤波,谱减法残留的噪声较大,而独立成分分析几乎没有降噪效果,这也佐证了声音在空气中自然混合并非单纯的线性叠加。
图7 谱减法降噪处理后信号时域波形
图8 独立成分分析分离后信号时域波形
综上,经比较,维纳滤波为无人机语音系统中较为理想的降噪方法。
流媒体传输实现难点在于控制视频和音频的延时[17],视频延迟与感官的关系如表1。若要获得较好的实时传输效果,需将延迟控制在800ms以内。
表1 视频延迟与感官的关系
目前实时流媒体传输主流有三种实现方式:HLS[18]、RTMP[19]和WebRTC[20]。
1)HLS(HTTPLive Streaming)是一种把流媒体拆分成多个独立小文件的技术,按照播放时间请求不同文件,将hls的文件进行解复用后,取出音视频数据交由video播放。其优点是使用了传统http协议,具有良好的兼容性和稳定性,缺点是有较大延时,通常在10s以上。
2)RTMP(Real Time Messaging Protocol)是一套使用长连接的完整流媒体传输协议。相对于HLS请求分片的形式,RTMP由于使用长连接,接收不间断的数据流,因而延迟比HLS小很多,通常是1s~3s,对于低互动需求的直播来说,这种方式的延迟是可以接受的。
3)WebRTC(Web Real Time Communication)由谷歌推出,并在Google、Mozilla、Opera支持下被纳入W3C推荐标准。WebRTC致力于高效的实时音视频通信,做到比RTMP提供更低的延迟和更小的缓冲率,通常能够将延迟控制在300ms~600ms,能够应对对实时性要求较高的场景下的需求。
综合考虑到语音系统对实时性的要求[21]以及实现方式的特点,采用WebRTC实现实时音视频交互。
4.2.1 WebRTC简介
WebRTC并不是单个的协议,而是提供了包括音视频的采集、编解码、网络传输、展示等功能的一些列协议的总称。
WebRTC主要由三大组件组成,如图9所示。
图9 WebRTC组件
1)MediaStream负责获取用户本地的多媒体数据,如调起摄像头录像等。
2)RTCPeerConnection负责建立P2P连接以及传输多媒体数据。
3)RTCDataChannel提供的一个信令通道,在实现互动的重要元素。
4.2.2 流媒体传输过程
建立连接需要的条件如下。
1)需获取到双方的IP地址和对应端口号;
2)需获取双方所支持的音视频编解码格式等软硬件信息。
满足上述条件后,即可通过RTCPeerConnec⁃tion对象建立连接,流程如图10。
图10 流媒体传输流程
1)获取各终端本地的音视频媒体信息
(1)如图10,地面站终端决定与无人机终端建立连接,首先打开无人机的摄像头和麦克风阵列,获取到mediaStream,并把它添加到RTCPeerCon⁃nection的对象里面,然后创建一个本地的SDP格式(SDP涵盖了一个指定用户的描述、时间配置和对媒体的限制等全部信息)的offer,地面站终端将自身的会话描述对象(包含SDP描述符的offer提议信令)发送至树莓派服务器。
(2)树莓派服务器将地面站终端的offer通过websocket服务发送至无人机终端。
(3)无人机终端收到后创建一个answer,格式、作用和offer一样,之后将自身的会话描述对象(包含SDP描述符answer应答信令)发送至树莓派服务器。
(4)树莓派服务器转发应答至地面站终端,当任意一方收到对方的sdp信息后就会调setRemote⁃Description记录起来。
2)在无人机终端与地面站终端间建立对等连接
(1)地面站终端和无人机终端开始交互,确定访问对方的最佳方式。
为了实现双方的互联互通,由服务器与其中一方(Peer)建立连接,而后路由器将建立一个内网与外网端口号的映射关系并保存,服务器将一方的端口加上IP地址告知另一方(Peer),并使其用该地址进行连接,此即STUN协议[22]。
STUN协议有效性受制于用户的网络拓扑结构。若路由器的映射关系既取决于内网的IP与端口号,也取决于服务器的IP加端口号,此时将无法建立连接。因为服务器获取的地址不能给另外一个外网的应用程序使用(会建立不同的映射关系)。相反如果地址映射表只取决于内网机器的IP和端口号则是可行的。对于无法建立连接的情况,WebRTC也提供了解决方法,TURN服务器可以在对等连接的双方之间增加一个转播,它可以下载、处理并重定向每一个用户发过来的数据包
最 后,ICE(Interactive Connectivity Establish⁃ment)则是一个将STUN和TURN结合在一起的标准,它会判断双方的网络状况,并用相应的方法来建立双方的连接。
(2)完成后,地面站终端和无人机终端开始协商通信密钥,建立连接。
3)将媒体和数据通道关联至该连接
地面站终端和无人机终端开始交换语音、视频或数据,双方建立连接成功后将会触发onaddstream事件,提取event.stream,并对音频应用第3节所述维纳滤波降噪算法,得到最终音视频流媒体。
为测试无人机语音系统的真实降噪效果,搭建了无人机语音系统硬件平台,其构成主要为四旋翼无人机、麦克风阵列开发板、树莓派以及摄像头模块。其中麦克风阵列开发板和摄像头模块安装在无人机正下方。麦克风阵列开发板同时具备接收、发送数据功能,如图11。
图11 系统硬件实物图
使用无人机语音系统硬件平台进行无人机悬停,地面人员喊话“测试,一、二、三”的实际录音测试。经测试系统各模块运行良好,降噪前后对比明显,降噪后语音较为清晰可辨,其频谱如图12~13所示。
图13 降噪处理后信号时域波形及频谱分析
无人机自身噪声大,使得实现无人机语音系统成为难题,目前市面上极少有无人机语音系统的相关研究,这浪费了无人机的潜在应用价值。本文提出了一种基于维纳滤波的无人机语音系统的实现方案,依照最小均方差准则,获得目标滤波器,对含噪语音滤波获得无语音噪声,应用功率谱减法,得到较纯净语音,经测试降噪效果优良。基于We⁃bRTC协议,实现无人机与地面站的信息交互,最终实现无人机语音系统的降噪以及音频交互,为无人机噪音下的语音降噪提供了一种解决方案。下一步工作计划优化降噪算法,在争取更好的降噪效果的同时进一步降低系统延迟,进一步优化无人机语音系统。