APP下载

智能广播质量监测系统的设计与实现

2022-02-01

科学技术创新 2022年36期
关键词:重传线程音频

何 伟

(中央广播电视总台,北京 100040)

在媒体融合时代,只有不断提升广播节目质量才能迎合受众需求、突出媒体竞争优势,为此需要对广播节目进行实时监测。监测对象除了节目内容外,还要重点关注音频质量、节目状态(有无误播、停播等)。在这一背景下,将大数据、人工智能等技术应用到广播节目的监测中,构建智能广播质量监测系统,保证广播台对异地频率落地节目覆盖情况、租机运行情况、节目播出情况的动态掌握。从该系统的应用需求来说,调频广播信号采集、音频编码传输、音频质量评价等均为系统主要功能,这也成为智能广播质量监测系统设计中需要关注的重点。

1 智能广播质量监测系统的需求分析与设计

1.1 系统功能需求分析

本文设计的智能广播质量监测系统应满足以下功能:(1) 可基于嵌入式设备,完成对调频广播信号的接收编码,同时还能实时、准确地采集特定频率的广播信号;(2) 可通过多条路径接收音频,并在实时编码后经过Internet 将音频数据传输至处理中心;(3)每隔一段时间进行一次传输音频数据的丢包检测,并在检测到有丢包现象后立即启动重传功能。对于正常接收到的音频数据,能够作出音频质量客观评价;(4)经过处理后的数据分目录保存到数据库中;(5) 在出现插播、停播等特殊情况后能够进行告警。

1.2 系统框架结构设计

本文设计的智能广播质量监测系统主要由两部分组成,即远程广播音频采集子系统、数据处理子系统。

远程广播音频采集子系统是由分布在不同地区的广播音频采集设备组成,其作用是实现对广播音频数据的采集,然后利用网络将采集到的数据传递给数据处理子系统。数据处理子系统位于广播电台的机房中,其作用是分析处理前端传输的音频数据。数据处理子系统又包括几个核心软件,如Web 服务软件、数据接收分发软件、数据存储软件等[1]。整个系统的整体框架见图1。

图1 系统整体框架

2 智能广播质量监测系统的软件设计与实现

结合上文介绍的系统整体架构,可以发现系统数据处理部分主要包括数据接收分发、音频质量评价、数据集存储等几部分,本文选择上述几个模块重点概述其设计内容与实现方式。本文所述的智能广播质量监测系统是基于Visual Studio 2017 开发环境,使用C++开发语言,各模块之间遵循TCP 协议完成数据的传输和指令的传达。

2.1 数据接收分发软件的设计与实现

2.1.1 音频数据处理模块

该模块主要包含了音频数据的接收、丢包分析、重传和分发4 部分。为保证音频数据的处理效率,使用了多线程技术;同时考虑到该系统运行中可能会存在网络不良或信号干扰,因此还设计了网络数据的重传机制。如果系统检测到有数据丢包,则发起重传的请求。各线程接口及其对应的功能如下:

线程1:ThreadRecvData,数据接收功能;

线程2:ThreadHandleData,接收并处理数据;

线程3:ThreadRequery,发送数据重传请求;

线程4:ThreadRecvReq,接收重传数据;

线程5:ThreadDataDistribute,分发数据。

这里以音频数据的接收处理为例,介绍其功能实现方式:系统正常接收音频数据后,执行一个初始化程序,然后将音频数据作解析处理。根据解析结果的类型,按照顺序将其存入对应的数据链表中。然后调用ProcessData 函数,处理链表中的数据,根据处理结果执行一个判断程序“是否有丢包现象?”如果判断结果为“否”,则直接跳转到“数据分发”程序,将数据分发至相应的软件;如果判断结果为“是”,则有系统生成并发送一个调整码率的指令。然后再执行一个判断程序“丢包是否超出门限?”如果判断结果为“是”,则跳转至“数据分发”程序,将数据分发至相应的软件;如果判断结果为“否”,则建立用于重传的数据处理线程ThreadRecvReq。如果重传正常结束,则进入“数据分发”程序,如果重传超时,则再次发起重传,直到重传正常结束。

2.1.2 命令数据处理模块

由于系统运行中经常会出现多个命令同时发送的情况,因此为了提高命令传输效率,在该模块的设计中也采取了多线程方式,为每一台远程广播接收设备提供了一条独立的命令接收线程[2]。根据命令内容或功能的不同,常用的线程有3 种,分别是:

线程1:ThreadListenCmd,设备命令监听线程;

线程2:ThreadRecvCmd,设备命令接收线程;

线程3:ThreadRevWebServerCmd,Web 服务器命令接收线程。

命令传输功能基于Windows Socket 编程实现,执行TCP 协议,命令处理模块的实现方式为:首先利用线程1 和线程3,在监听Web 服务器和被监听设备之间建立联系,并发送请求。请求通过后,Web 服务器调用命令数据处理函数AnalyWebServerCmd(),生成相应的命令数据。然后使用AES 加密算法,对命令数据进行加密,将其发送至远程接收设备。设备接收到该命令数据后,先解密,然后根据命令内容作出相应的设置,包括更改设备时间、更改设备频率、上传/下载节目表等。整个流程见图2。

图2 命令数据处理流程

2.1.3 数据加解密模块

为提高音频数据在传输过程中的安全性,该系统对所有需要传输的数据均采用AES 加密算法进行处理。密钥长度达到了256 位,共进行9 次加密,保证了音频数据的隐私安全。在具体的加密方式上,选择AES 加密算法中的EBC(电子密码本)模式,其原理是将需要加密的数据划分为数段,每段的长度与加密秘钥的长度保持一致,并且每一段均采取相同的密钥加密,这样既可以简化加密操作难度,同时还有利于计算机并行计算,提高了音频数据的处理效率[3]。

完成数据加密后,借助于Internet 进行音频数据的传输,在数据处理系统接收数据后,还要执行一个解密步骤,从而利用音频数据完成对广播质量的实时监测。在数据解密中,需要调用解密函数InvCipher(),在该函数中需要进行多轮解密,每一轮均需要使用不同的子函数,例如初始轮解密调用AddRoundKey()函数,最终轮解密调用InvSubBytes()函数等。数据加密、解密的具体流程见图3。

图3 Aes 加密、解密流程

2.2 音频质量评价软件的设计与实现

2.2.1 音频数据准备模块

该模块的主要功能是提供用于质量评价的音频数据,具体又涵盖了音频数据的接收、解码、读取等。在该模块的设计中,使用到的关键技术有Socket 数据接收技术、ffmpeg 解码技术、CMarkup 类解析技术等。首先通过Socket 接收音频数据,并将数据以.wma 格式进行存储。对于.wma 格式的音频数据,应用ffmpeg 解码技术进行解码;对于.xml 格式的节目表,则使用CMarkup 类解析。考虑到各类数据的总量较大,为了提高处理效率,在音频数据准备模块的设计中采用了双缓存结构。考虑到节目表可能会存在分时段停播的情况,因此在读取文件时,如果当前节目段播放完毕,则进行一遍节目表信息轮询,根据轮询结果判断下一个节目时段是否连续。如果判断为“是”,则直接将下一个节目的相关文件读入缓存;如果判断为“否”,则结束程序。

2.2.2 音频数据预处理模块

该模块的主要功能是静音段判断、时间对齐、同源判断、声压级归一化处理等。在完成上述处理后,可以对该段音频数据的质量作出相应的评价。在本系统的音频数据预处理模块设计中,通过设定频域、时域相关性门限,并对门限值进行判定,以此来确定音频数据是否满足同源条件[4]。在实际操作中,通常是先给定一个门限最低值,如果时域、频域相关性低于门限最低值,则说明两者不相关,即为非同源数据;反之,相关性高于门限最低值,则判断为相关,同时提高门限,再次进行判断。重复上述步骤,可以判断同源度。同源度越高,则音频质量越高。音频数据频域——时域的匹配搜索流程见图4。

图4 音频频域——时域匹配搜索流程

2.2.3 音频质量客观评价模块

音频质量评价是在参数预计算、激励样本处理、MOV 值计算等一系列工作的基础上得到的最终结果[5]。每个处理步骤均有独立的函数进行支持,例如参数预计算可调用CpeaqMain () 函数、MOV 值计算可调用CMovBlock()函数。这样就能显著增强不同处理程序之间的耦合性,从而让代码执行效率、音频质量评价结果精度都得到相应的提升。这里以MOV 值计算为例,其函数执行过程如下:

(1) 计算调制差异mobModDiff();

(2) 计算局部噪声响度mobNoiseLoud();

(3) 计算噪掩比mobNMR();

(4) 计算检测概率和声道超过门限的所需部署mobDetProb();

(5) 计算相对干扰mobRDF();

(6) 计算误差谐波结构mobEHS()。

将计算得到的评分结果带入表1,利用客观评价分数与音频质量的对应关系,即可得到音频质量客观评价结果。

表1 音频质量客观评价描述

2.3 音频数据存储模块的设计与实现

该模块可以将接收到的音频数据存储到本地服务器,同时自动进行数据备份,防止音频数据丢失。音频数据接收也需要使用到Scoket 技术,顺利接收后将其以.wma 格式存储。按照音频数据的帧信息、设备信息,将其分类存储到对应的文件中;如果存在数据帧丢失,则记录丢失数据帧信息。存储服务器方面,可配置多个SATA 硬盘,其中一部分用于存储,另一部分用于备份。存储音频数据时,首先要调用InitClinent()函数,完成存储系统的初始化。然后解析接收到的数据,并将解析后的数据存入到相应的链表中。然后再调用WriteData()函数,结合接收数据的设备信息,创建目录,目录格式为xx.mm.dd(如2022.08.27)。

3 结论

广播电视媒体引进智能广播质量监测系统是顺应融媒体时代发展趋势的一种必然选择,该系统的应用将会实现从广播节目的播出、监测、反馈、调整再到优化的闭环管理,对提高节目播出质量、改善用户的节目收听体验有积极帮助。本文设计的智能广播质量监测系统,除了支持远程音频数据采集、音频数据实时传输等功能外,还能通过智能算法实现对广播音频质量的客观评价,根据评价结果为下一步的节目调整与优化提供了参考,在实现广播智能化方面发挥了重要作用。

猜你喜欢

重传线程音频
适应于WSN 的具有差错重传的轮询服务性能研究
基于TDMA的wireless HART网络多路径重传算法
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
线程池调度对服务器性能影响的研究*
无线网络中基于网络编码与Hash查找的广播重传研究
必须了解的音频基础知识 家庭影院入门攻略:音频认证与推荐标准篇
基于Daubechies(dbN)的飞行器音频特征提取
面向异构网络的多路径数据重传研究∗
音频分析仪中低失真音频信号的发生方法