Time Frequency (T-F) Masking Technique
时频掩蔽技术。
掩蔽效应
声掩蔽(auditory masking)是指一个声音的听阈因另一个声音的存在而上升的现象。纯音被白噪声所掩蔽时,纯音听阈上升的分贝数,主要决定于以纯音频率为中心一个窄带噪声的功率。
声掩蔽主要决定于以纯音频率为中心一个窄带噪声的功率。这个窄带的频率宽度是随着纯音频率的不同而变化的,称为临界频带。在听觉频率尺度上,一个临界频带的宽度等于1巴克。临界频带的概念是美国科学家H.富来车在20世纪40年代提出来的。这些频带与听觉滤波器有关。在频率上一个强的低频纯音可掩蔽高频纯音。在时间上除了即时掩蔽外,还存在一个声音可对它后面的声音产生掩蔽,称为前向掩蔽;一个声音也可对它前面的声音产生掩蔽,称为后向掩蔽。复合纯音的掩蔽比较复杂,与它的频率组合与相位关系有关,有时产生“时间窗”效应,即在某一时段内产生的掩蔽很小。如果一侧耳输入信号,另一侧耳输入噪声,则可在中枢产生掩蔽。
声音信号大多数时候时非稳态的瞬时信号,声压级随着时间变化很快,即强音后面跟着弱音,弱音后面又可能跟着强音。比较强的声音往往会掩蔽随后到来的较弱音。
【应用】掩蔽效应看来是噪声对信号的一种干扰,但也可在语音通信中加以利用。如数字语音压缩通信中,可借助掩蔽效应使嵌入的加密密码听不出来,即不因密码而降低通话质量。
【应用】根据掩蔽效应的原理,才衍生出电声技术指标中的SNR(信号噪声比),以及THD(谐波失真)等。当噪声或者失真保持在一定范围内的时候,对听觉效果没有影响。
一个较弱的声音(被掩蔽音)的听觉感受被另一个较强的声音(掩蔽音)影响的现象称为人耳的“掩蔽效应”。被掩蔽音单独存在时的听阈分贝值,或者说在安静环境中能被人耳听到的纯音的最小值称为绝对闻阈。
实验表明,3kHz—5kHz绝对闻阈值最小,即人耳对它的微弱声音最敏感;而在低频和高频区绝对闻阈值要大得多。在800Hz--1500Hz范围内闻阈随频率变化最不显著,即在这个范围内语言可储度最高。在掩蔽情况下,提高被掩蔽弱音的强度,使人耳能够听见时的闻阈称为掩蔽闻阈(或称掩蔽门限),被掩蔽弱音必须提高的分贝值称为掩蔽量。
BSS中的时频掩蔽
新近的研宄将语音分离看作一个有监督学习问题新近的研宄将语音分离看作一个有监督学习问题。
早期工作受到了计算听觉场景分析中时频掩蔽技术的启发。在计算听觉场景分析中的一个重要的目标是理想二值掩蔽(IBM)。
理想二值掩蔽在带噪语音的时频表示上标注出特定时频单元是否被目标语音主导,即目标语音的能量是否高于噪声的能量。根据人类听觉系统的掩蔽效应,时间、频率相近的(在同一个时频单元内的)两个声音信号中,能量低的那个信号会被能量高的那个掩蔽,听觉系统无法感知到被掩蔽掉的信号。利用理想二值掩蔽去除噪声主导的部分,人们就无法感知到噪声的存在了。
当把理想二值掩蔽作为计算目标时,语音分离就变成了一个二元分类问题。在训练的时候,把理想二值掩蔽作为训练目标,测试时再用训练好的模型来预测理想二值掩蔽。理想二值掩蔽是有监督的语音分离研究中使用的第一个训练目标。
汪德亮等人系统分析了以上的特征,使用拉索(Lasso)方式选择出了对语音分离最有效的特征组合为:梅尔倒谱系数、相对谱变换感知线性预测系数、振幅调制谱和语音基音特征。
目前,在有监督的语音分离中,最常使用的输入特征是语音短时傅里叶变换的振幅谱。
输出信号:目标语音或各种时域掩蔽。
【理想二值掩蔽】:理想二值掩蔽是最早使用的训练目标,在一个时频单元里,如果局部信噪比超过一个阈值,理想二值掩蔽在这个单元是1,否则是0。理想二值掩蔽里面的非零值标注出了目标语音主导的时频单元。

【理想浮值掩蔽】:

【整体模型】:

参考
https://blog.csdn.net/hi_zhengjian/article/details/78959194
https://blog.csdn.net/dream_bin123/article/details/80031447?utm_source=blogxgwz4
Time Frequency (T-F) Masking Technique的更多相关文章
- [Mathematics][MIT 18.03] Detailed Explanation of the Frequency Problems in Second-Order Differential Equation of Oscillation System
Well, to begin with, I'd like to say thank you to MIT open courses twice. It's their generosity that ...
- Libfilth(一个滤波器C库)使用
Libfilth使用说明 winshton 2009年2月 (*本文大部分翻译自libfilth,还有一部分是个人使用实践 *时间水平均有限,翻译的不完整,尤其第二章可以忽略) 版本历史修改记录 版本 ...
- ffmpeg full help
Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile ...
- C++高精度计算代码运行时间(转载)
转载:http://blog.csdn.net/rrrfff/article/details/6583410 //在定时前应该先调用QueryPerformanceFrequency()函数获得机器内 ...
- Cisco IOS IP Service Level Agreementv (IP SLA)
Responder and Control Protocol 1.Responder内嵌在思科目标路由器中的一个组件,用来对IP SLA请求包做应答,通过对应达包添加时间戳属性,以提高测量计算的准确性 ...
- openstack中运行定时任务的两种方法及源代码分析
启动一个进程,如要想要这个进程的某个方法定时得进行执行的话,在openstack有两种方式: 一种是通过继承 periodic_task.PeriodicTasks,另一种是使用loopingcall ...
- 一个matlab数字图像处理程序的解释
clc; %clc是清除command window里的内容 clear all; %clear是清除workspace里的变量 close all; %close all来关闭所有已经打开的图像窗口 ...
- LoRa术语
ADR Adaptive Data Rate 自适应数据率 AES Advanced Encryption Standard 高级加密标准 AFA ...
- 10个重要的算法C语言实现源代码
包括拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔 .都是经典的数学算法,希望能开托您的思路.转自kunli.info 1.拉格朗日插值多项式 ,用于离散数 ...
随机推荐
- day07——数据类型补充、坑、二次编码
day07 数据类型补充 str 首字母大写:capitalize() name = 'alex' name1 = name.capitalize() print(name1) 每个单词首字母大写:t ...
- C基础 stack 设计
前言 - stack 设计思路 先说说设计 stack 结构的原由. 以前我们再释放查找树的时候多数用递归的后续遍历去释放. 其内部隐含了运行时的函数栈, 有些语言中存在爆栈风险. 所以想运用显示栈来 ...
- Mysql向新建表中插入数据, Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'UserName' at row 1
在本地通过MYSQL创建测试表 CREATE Table User ( UserId int not NULL PRIMARY KEY auto_increment, //主键自增 UserName ...
- oracle plsql基本语法
oracle plsql 基本语法 --plsql默认规则:plsql赋值用":=" plsql判断用"=" plsql输入用"&" ...
- Java调用Http/Https接口(6)--RestTemplate调用Http/Https接口
RestTemplate是Spring提供的用于访问Http接口的客户端,提供同步的API:在将来的Spring版本中可能会过时,将逐渐被WebClient替代.文中所使用到的软件版本:Java 1. ...
- Date类的相关方法记录
1.Date类中的时间单位是毫秒,System.currentTimeMills()方法就是获取当前时间到1970年1月1日0时0分0秒(西方时间)的毫秒数. public class Test6 { ...
- C++字符串相互转换
转自cs_wu原文 C++ char*,const char*,string的相互转换 1. string转const char* string s ="abc"; const c ...
- 英语foteball足球foteball单词
现代足球起源地是在英格兰.传说在11世纪,英格兰与丹麦之间有过一场战争,战争结束后,英格兰人在清理战争废墟时发现一个丹麦入侵者的头骨,出于愤恨,他们便用脚去踢这个头骨,一群小孩见了便也来踢,不过他们发 ...
- java static变量及函数
java以类为基础,没有游离在类之外单独存在的变量.所以,c++中的全局变量,在java中应该是不存在的.java中有的是成员变量和成员方法.当成员前以static修饰时,即为静态成员变量或静态成员方 ...
- day 04 作业 预科
目录 作业 1.分别列出 数字类型.字符串类型.列表.字典 的 作用.定义方式和使用方法. 数字类型 字符串类型 列表 字典 词云图 作业 1.分别列出 数字类型.字符串类型.列表.字典 的 作用.定 ...