APP下载

嵌入式实时音频比对报警器开发探析

2018-12-27孙超孙一晖

声屏世界 2018年9期

孙超 孙一晖

摘要:本文介绍了一种基于内容比对的嵌入式实时音频报警器,用于对广播播出音频内容的检测。该报警器采用了STM32作为音频信号处理单元并使用了快速音频内容比对算法,能够实现对直播间输出信号和FM解调信号的监测,并通过语音报警器和显示屏对故障情况进行实时提示,从而提高报警准确率,保障播出安全,减少值班人员值班压力。

关键词:实时音频比对 快速傅里叶变换 ARM

传统广播电台播控所使用的音频信号故障报警器存在许多不足,如检测手段单一(仅能检测电平和相位),误报频繁,无法对FM信号进行检测等。单片机和DSP芯片的高速发展,使得开发一种基于内容识别的精准故障报警监测嵌入式平台成为可能。我们利用ARM单片机设计了一种基于实时音频比对算法的嵌入式报警器,可以有效地检测到因总控或者发射部分出现故障而造成的FM解调信号与直播间发送信号不同的情况,保障广播的安全播出。

功能和硬件设计

本设计使用了两个STM32单片机,分别用于对直播间输出信号和FM解调信号进行实时比对,直播间输出信号和应急垫乐比对,并由主单片机负责比对结果和信号电平相位等异常报警。当音频故障产生时,显示屏和语音报警器均会作出报警响应,并将报警信息记录在内部存储器中以便事后查询。该系统结构如图1。

本设计采用了STM32f407单片机作为处理单元,它是基于ARM Cortex-M4内核的高性能、低成本、低功耗的单片机,采用了90nm制成,指令处理速度达到了210DMIPS@168MHz,片上集成多达1MB的Flash存储器和128KB的SRAM存储器,拥有多通道12bit 2.4Msps模数转换器,可用于对输入的模拟音频信号采样。①其高速的处理能力保证了系统响应的实时性。

显示屏采用320×240分辨率的大屏LCD,可通过按键切换分别显示音频输入信号的电平、频谱、比对相似度和报警记录回看等功能。语音报警部分使用预先录好的各种报警语音内容,通过单片机控制实时播报。

音频比对算法

一、快速傅里叶变换。由于单片机采样获得的音频信号是离散的时域信号,时域信号不能很好地反映音频信号的特征,因而需要通过离散傅里叶变换将时域信号转换为频域幅值信号。快速傅里叶变换是利用计算机计算离散傅里叶变换的高效、快速计算方法的统称,简称FFT。快速傅里叶变换是1965年由J.W.库利和T.W.图基提出的。使用这种方法能使计算机计算离散傅里叶变换的效率大大提高,特别是抽样点数越多,FFT算法的优势越显著。

本设计中使用STM32官方提供的DSP库进行FFT,该库使用基4的FFT,具有较高的执行效率。使用72M的系统主频进行256点的FFT运算,仅需0.437ms。根据采样定理,采样频率必须大于采样信号最高频率的2倍。音频信号的频率范围是20Hz到20KHz,通常使用的采样频率是44.1kHz。

在对信号进行256点FFT时只需调用STM32 DSP库函数中的cr4_fft_256_stm32()函数即可。实际调用语句为:cr4_fft_256_stm32(lBufOutArray,lBufInArray,NPT)。调用该函数之后,在lBufOutArray数组中就存放了进行FFT运算之后的结果数据,该数组中每个元素的数据格式为高16位存储虚部,低16位存储实部。得到FFT运算的结果数据之后,即可计算各次谐波的幅值。②将各频率谐波幅值保存获得频域幅值特性数据。

二、两路同步音频信号的比对。直播间输出信号和FM解调信號是两段同步的音频信号,对这两路信号的比对可以利用FFT运算获得的频域幅值图进行相似性检查。首先将音频信号分割为1s大小的音频缓冲帧,每间隔10ms分别对两路音频进行256点FFT运算,因而每个音频帧中将包括10组频谱幅值,从每组数据中去掉误差可能较大的频点,计算处理后的10组频谱幅值平均值获得帧特征频谱。计算两路信号的帧特征差值序列的样本方差S^2,当S^2小于预设的阈值时可判断两路信号相同。

三、直播间输出信号和应急垫乐的比对。山东广播电视台使用的是infomedia音频工作站,在自动播出模式下,如果该时间段节目未编满将会自动播放应急垫乐,由于此时仍有音频输出,传统音频报警器不会报警,但是此时已经造成节目的错播。因而本设计加入了直播间输出信号和应急垫乐的比对功能。

首先对应急垫乐音频信号进行预处理。假定10~20ms内信号为短时平稳,其频谱特性和一些物理特征是稳定不变的,然后采用平稳过程分析方法进行处理。把每10ms采集的音频数据作为一帧,每一帧进行5次256点FFT运算取平均值作为帧特征频谱。将该音频信号的所有帧特征频谱保存为二进制数据。由于数据量大于单片机片内存储空间,所以将其保存在片外存储器中,当需要该数据时使用DMA功能将数据高速传入RAM中。

在进行音频比对的过程中,对直播间输出信号进行相同的处理获得帧特征频谱,将该数据与片外存贮器中保存的垫乐信号数据进行逐帧比对。为提高比对成功率减少误差,选取逐帧比对获得的样本差最小值作为单帧的比对系数,将连续十次(可设置50ms比对一次总用时5s)的比对系数求平均值,若小于预设的阈值,则判断工作站播放了应急垫乐。此时单片机向主单片机发送中断信号,开启报警音并在LCD显示报警信息。该算法对于播放垫乐故障需要至少5s的识别时间,应急垫乐长度加长则需要额外的处理时间。

四、直播间输出信号质量检测。本设计中对于直播间源信号电平、声道、相位信息的检测是由主单片机实现的,其中判断是否反相的方法为:将直播间源信号左右声道信号分别作加法和减法运算,获得的两个音频信号比较电平大小,如果和音频电平小于差音频电平则可判断为信号反相。

系统抗干扰

在设备实际使用中,由于FM解调信号容易受到发射机和检波设备频率响应的影响,从而获得的特征频谱与原信号可能会有一定的出入,因此需要多次测试获得一个较为合适的阈值以保证监测的准确性。另外由于广播节目以人声为主选择频点的时候只选取50Hz到10KHz之间的频谱数据,因而对于AD转换的采样频率可以降低为22KHz,以提高系统的识别速度和内部存储器的使用效率。

由于传输通路比较复杂,FM解调信号可能略慢于直播间输出信号且时差相对固定,因此在源程序中应根据实际测试结果加入相应的输入延时以保证监测信号的同步性。

总结

保证广播节目内容安全播出是广播电台技术人员的主要职责。近年来不法分子对广播的信号进行干扰次数增多,本报警器在完成基本信号检测的前提下,也能够自动识别频率非法占用,为提高广播播出质量和播出安全提供了有力保障。

(作者单位:山东广播电视台)

注释:

①沈建良:《STM32F10X系列ARM微控制器入门与提高》,北京:北京航空航天大学出版社,2013年版。

②刘火良,杨 森:《STM32库开发实战指南:基于STM32F103》,北京:机械工业出版社,2017年版。