王小稳

摘   要:本文介绍了一种基于计算多个音频信号物理特征值相关系数的音频内容比对算法。利用两路音频的时域帧序列、短时过零率序列、谱质心序列和梅尔倒频系数序列,再将这四组参数进行相关性统计,计算出它们的相关性函数,获得最大相关性系数。从而判断两路音频是否内容一致的音频比对算法。是信号处理领域,更进一步涉及音频信号处理领域中的一种基于相似度的音频比对方法。

关键词:音频内容比对  音频比对算法  时域相关系数 过零率相关系数 梅尔倒频系数  谱质心相关系数

中图分类号:TN912.3                             文献标识码:A                        文章编号:1674-098X(2020)02(a)-0141-02

语言是我们人类的重要交流工具,自然高效、方便准确。对于语音信号处理的研究最早可以追溯到1876年贝尔发明电话。把模拟音频信号转换成电信号,再将电信号转换成模拟信号完成电话的功能。对音频的处理在我们身边无处不在。与我们的生活息息相关。近年来在工作中接触到对音频内容的判别,实时、准确的判断传输链路上的音频内容是否一致,都要靠人工去判别,当播出节目是非汉语节目时,判别起来也是件很困难的事情。为了使我们的工作更简便,有效地减少人为播出事故,更迅速的发现播出音频的异常。为此我们早在十几年前,就研究了几种公开发表的关于音频比对的文章、算法和专利,以便学习研究出一种新的拥有自主知识产权的音频内容比对算法。下面将介绍这种由我们自己研究的音频比对的方法。供大家一起研讨。

1  比对算法简介

本算法的功能是比对从不同设备或相同设备不同通道采集的两路音频信号,判断音频信号内容是否是相同。它是信号处理领域,更进一步涉及音频信号处理领域中的一种基于相似度的音频比对方法,是利用时频分析法计算语音信号物理特征值进行相关性统计的方法。

2  本算法的具体思路

获得两路需要比对的音频信号,对音频信号进行预处理,分别取长度为N的音频采样序列计算两路音频的相关性参数,并计算两路的延迟,然后通过延迟值将两路信号重新对齐,再重新计算两路音频的相关性参数。最后取分别长度为M的音频采样序列,计算相关性来得到两路音频信号的相似度。计算的音频物理特征值有它们的时域帧序列、短时过零率序列、谱质心和梅尔倒频系数序列。再将这四组参数进行相关性统计,计算出它们的相关性函数,获得最大相关性系数。从而判断两路音频是否内容一致。

3  具体步骤

3.1 音频信号预处理

读取两路音频信号数据重采样并取长度为 N的采样序列进行预加重,归一化音频序列;然后对音频信号进行音频帧划分,将其划分为M 个不同的帧。

3.2 提取音频帧的过零率

先计算提取音频帧的包络序列,然后提取音频帧包络序列的过零率。

3.3 提取音频帧的MFCC(梅尔倒频系数)系数

对每一个音频帧进行FFT变换,求得每帧信号的频率谱,根据频率谱求得每个音频帧的幅度谱;再根据音频的参数设计一组Mel滤波器;求得滤波器的输出,并将输出取对数;将上一步中的输出作离散余弦变换(DCT),从而求得MFCC(梅尔倒频系数)系数,最后组成MFCC(梅尔倒频系数)系数序列。

3.4 提取音频帧的谱质心

分别对M个音频帧进行傅里叶变换,将其转换到频域得到M个音频帧频谱;将每个音频帧频谱划分为L个子带,并分别计算频谱子带的质心;将频谱子带质心归一化,组成谱质心序列。

3.5 计算归一化谱质心序列的相关函数

分别对两个音频谱质心序列进行离散傅里叶变换得到序列XA和XB序列;取序列XA的共轭并与序列XB逐元素相乘得到序列XC;对序列XC进行逆离散傅里叶变换得到两路音频的相关函数序列;对相关函数序列重新进行排序,取出序列的后半部分与前半部分重新拼接成新的相关函数序列;对相关函数序列进行归一化处理,并求得最大的相关系数。

3.6 计算音频时域序列的相关函数

根据计算归一化谱质心序列的相关函数的方法求预处理后音频时域序列的相关函数;对相关函数序列进行归一化处理,并求得最大的相关系数。

3.7 计算过零率序列的相关函数

根据计算归一化谱质心序列的相关函数的方法求过零率序列的相关函数;对相关函数序列进行归一化处理,并求得最大的相关系数。

3.8 计算MFCC(梅尔倒频系数)系数序列的相关函数

根据计算归一化谱质心序列的相关函数的方法求MFCC(梅尔倒频系数)系数序列的相关函数;对相关函数序列进行归一化处理,并求的最大的相关系数。

3.9 计算音频信号延迟

记录谱质心序列、过零率序列和MFCC(梅尔倒频系数)序列的相关函数最大位置和中点位置;相关函数最大位置与中点位置的差值乘以音频信号采样频率来求的延迟时间,求三个延迟的平均值即为信号延迟时间。

3.10 重新对齐音频信号

如果两路音频信号存在延迟,剪切延迟时间,将两路信号重新对齐,重新执行3.2~3.7内的步骤;如果两路音频信号不存在延迟,直接执行下一步。

3.11 获得音频信号相关系数

选择谱质心相关系数、时域相关系数、过零率相关系数和MFCC(梅尔倒频系数)相关系数,采用加权的方式求得音频的相关系数。

通过这个算法,我们可以实现对音频内容的判断,把这个算法封装成库文件,应用软件将要比对的两路音频送给库文件的接口,并读取返回的相似度的数值。根据最大的相似度数值判别音频内容是否一致。

4  算法仿真实验

本算法的效果可以通过下面的仿真实验得到进一步证明。

4.1 仿真条件

本发明的仿真平台用Inter(R)Core(TM)i5-8250U 1.6GHz,内存为8GB,运行Windows10专业版的PC机,开发工具为Microsoft Visual Studio2010。

4.2 仿真内容与结果分析

仿真实验是对从设备上不同的两个通道,直接采集的相同音頻信号进行处理,采样频率为:22050Hz,其中一路音频信号相对另一路有延迟。

如图1所示,为利用本文所述的音频比对算法计算的,从设备不同通道中采集相同的两段音频信号,逐段比对的相关系数分布图,从图中可以看出两路音频信号的相关系数基本稳定在0.3~0.6之间,有很强的相关性,可以有效的对音频信号进行比对。实现对音频内容是否一致的判断。

5  结语

实现音频比对的功能有很多不同的方法,尤其是最近一两年来,各种实现的比对算法层出不穷。像音频声纹比对识别技术、基于时域相似度算法、基于频域相似度的算法、还有现在最流行的时频分析法,如Gabor变换、小波变换等等。各有各自的优缺点。这些都是对语音信号处理的研究。音频内容的比对只是其中一个简单的应用。语音信号处理技术正处于蓬勃发展的时期,不断有新产品被研发出来、市场需求逐渐增加,具有良好的应用前景。伴随着人工智能、机器人的发展,语音识别成为热门研究课题,语音的信号处理技术正发挥越来越重要的作用,并且出现了新的研究方向,例如语音检索技术、语音的训练与矫正技术、语种的识别技术、语音的情感处理研究等等。

参考文献

[1] 韩纪庆,张磊,郑铁然.语音信号处理[M].北京:清华大学出版社,2013.

[2] 赵力.语言信号处理[M].北京:机械工业出版社,2018.

[3] 严勤,吕勇.语言信号处理与识别[M].北京:防工业出版社,2015.

音频文件c语言对比,一种音频比对算法相关推荐

  1. 怎么视频提取音频文件?分享这3种简单实用的提取方法

    不知道大家平时用手机刷视频的时候,会不会被一些好听的背景音乐给吸引了呢?这些背景音乐大多都是网友们自己合成导入视频上传的,可能在许多音乐平台都不能找到音源播放.遇到这样的情况,大家一定都很苦恼吧?但其 ...

  2. php修改音频文件_解析用PHP读写音频文件信息的详解(支持WMA和MP3)

    // AudioExif.class.php // 用PHP进行音频文件头部信息的读取与写入 // 目前只支持 WMA 和 MP3 两种格式, 只支持常用的几个头部信息 // // 写入信息支持: T ...

  3. Java如何播放MP3格式音频文件,以及如何循环播放音频?

    首选,感谢你能在百忙之中阅读我的博客,在这里我告诉大家2中播放MP3格式音频的方法.第一种,使用自带的JavaFX技术来播放(现再最新的JDK版本中已被移除).第二种我们使用第三方库来进行播放. 点击 ...

  4. ​怎么翻译一段音频文件?教你轻松翻译音频文件方法

    怎么翻译一段音频文件呢?大家在日常的工作或者是学习中,也许会经常参加一些规模较大的会议或者是讲座,这种场合下也许会有一些国际友人来进行友好学术交流,我们将他们的讲话内容录下来,在整理的时候怎么把这份音 ...

  5. rca接口_音频线怎么区别?几种音频接口逐一介绍

    大家在安装专业音响设备时,面对各式各样的设备音频接口类型,难免会有点晕头转向. 接下来小编为大家介绍一下几种音频线接头,希望能在你选择音频线时提供一些帮助. 01 3.5mm音频线 这种音频线接头使用 ...

  6. linux 音频文件播放文件管理,linux dsp 播放音频文件

    #include #include #include #include #include #include #include /* 下面的三个参数是跟具体文件相关 * cmd: file 音频文件 * ...

  7. linux浏览器不能播放音频文件夹,在html中插入音频文件在浏览器中播放音频文件的兼容性问题...

    下面谈谈本人在html中插入音频文件,经过我的本地测试总结的一些问题(播放mp3文件): 1. 问题:IE8上正常(通过media player插件来播放)但在IE6和IE7上不会播放 Firefox ...

  8. python切割音频文件_python切割和合并wav音频文件

    切割wav音频文件 如果没有pydub需要使用pip install pydub来安装模块 from pydub import AudioSegment from pydub.utils import ...

  9. Python3 使用腾讯云 API 接口实现音频文件转写(支持本地音频或者 url 音频)

    本文参考链接: https://blog.csdn.net/wangliuqi123/article/details/80527417 https://blog.csdn.net/wangliuqi1 ...

最新文章

  1. 少儿python编程培训-全国少儿人工智能Python编程兴趣班
  2. as点击发送广播_Apache Flink 中广播状态的实用指南
  3. web python selenium自动化面试题_干货分享 | Selenium 自动化测试相关的面试题
  4. HTTP请求消息数据格式分析以及request和response
  5. 秒懂5G!通俗易懂外行也能看明白
  6. react jest测试_如何使用React测试库和Jest开始测试React应用
  7. 第 1 节:前端面试指南 — 简历篇
  8. 21矩阵——Schur分解定理、酉相似下的标准型、Hermite正定矩阵、正规矩阵
  9. Android listview实现单选变化的效果
  10. CSS3淘宝支付成功打勾动画代码
  11. 华为手表广告营销案例和广告策划案例PPT模板
  12. MSDTC不可用解决办法
  13. 安卓系统如何访问wincc服务器,wincc客户端读取服务器数据库
  14. 小学计算机教室海报,小学美术制作海报教案.doc
  15. 【ABMDRNet2021】 Adaptive-weighted Bi-directional Modality Difference Reduction Network for RGB-T Sema
  16. 复兴号为什么不能超载?_接下来:什么都没有? 信息超载如何影响我们的大脑。...
  17. 51Talk-Level 7 Unit 2 L3
  18. 关于AS5 SSH支持key认证的完全解决方案
  19. 超级计算机运行吃鸡,pdd花6万买的超级电脑,第二天玩吃鸡显卡被击穿,网友:人傻钱多...
  20. 剪贴板操作 Clipboard API 使用教程

热门文章

  1. python压缩视频文件_python使用zlib库压缩图片,使用ffmpeg压缩视频
  2. “压缩感知” 之 “Hello World”
  3. NOIP2016提高组Day1T3 换教室
  4. 树莓派3 远程控制方法
  5. 解决:Caused by: java.sql.SQLException: Access denied for user ‘root‘@‘hadoop102‘ (using password: YES)
  6. [译]未雨绸缪之:静态资源处理
  7. 第十一届蓝桥杯省赛(第二套)题解+代码
  8. Web链接测试如何做?
  9. 合工大计算机在职研究生学费,报考合肥工业大学在职研究生的费用大概是多少...
  10. 彻底解决Niushop单商户v4升级v5遇到的各种bug问题这是精粹总结,希望各位少走弯路