本文代码请见:https://github.com/Ryuk17/SpeechAlgorithms


目录

1. 时频掩蔽

2. 语音分离


​Mask这个单词有的地方翻译成掩蔽有的地方翻译成掩膜,我个人倾向于掩蔽这个翻译,本文就用掩蔽来作为Mask的翻译。

1. 时频掩蔽

我们都知道语音信号可以通过时域波形或者频域的各种频谱来表示,此外语谱图可以同时展示时域和频域的信息,因此被广泛应用,如下图所示。

现在我们假设有两段语音信号,一段是音乐信号,另一段是噪声,它们混合在一起了,时域波形和对应的语谱图分别如下图所示:

如果我们想将音乐信号从混合信号中抽离(这个过程叫语音分离)在时域方面是不容易做到的。现在我们从频域角度入手去解决语音分离问题。首先我们提出两个假设:

  1. 我们假设信号能量稀疏的,即对于大多数时频区域它的能量为零,如下图所示,我们可以看到大多数区域的值,即频域能量为0。

  2. 我们假设信号能量不相交的,即它们的时频区域不重叠或者重叠较少,如下图所示,我们可以看到时频区域不为0的地方不重叠或者有较少部分的重叠。

基于以上两点假设,我们就可以分离我们想要的信号和噪声信号。给可能属于一个信号源的区域分配掩码为1,其余的分配掩码0,如下图所示。

我们通过0和1的二值掩码然后乘以混合信号的语谱图就可以得到我们想要喜好的语谱图了,如下图所示。

但是,这里存在一个问题,我们无法从语谱图中还原语音信号。为了解决这一问题,我们首先还原所有的频率分量,即对二值掩码做个镜像后拼接。假设我们计算语谱图时使用的是512点SFTF,我们一般去前257点进行分析和处理,在这里我们将前257点的后255做镜像,然后拼接在一起得到512点频率分量,如下图所示。

然后根据这个还原语音信号。这里指的一提的是,在进行STFT后的相位信息要保存,用于还原语音信号。

接下来介绍如何计算掩蔽值,掩蔽值计算方法有许多,但一般来说有两种常用的计算方法,分别为理想二值掩蔽(Ideal Binary Mask, IBM)和理想比值掩蔽(Ideal Ratio Mask, IRM)。IBM的计算公式如下:

其中LC为阈值,一般取0,SNR计算公式为:

IRM为一个[0-1]的值,计算公式为:

其中β为可调节尺度因子,一般取0.5。

2. 语音分离

我们使用上面的方法来尝试对混合语音进行分离,我们首先找两段语音,将它们混合,如下图所示。

然后看下混合后的语谱图

然后计算掩蔽值

将掩蔽值与语谱图对位相乘后,根据ISTFT恢复被分离的语音信号。


                                                                          语音信号处理交流群:  652292630        

基于Mask的语音分离相关推荐

  1. 【论文综述】基于深度学习语音分离技术的研究现状与进展

    基于深度学习语音分离技术的研究现状与进展 本文主要是针对单通道的监督性语音分离技术的综述,描述该技术涉及到的特征.模型和目标三个主要方面:并对语音分离的一般流程和整体框架进行了详细的介绍.归纳和总结. ...

  2. 滴滴单通道语音分离与目标说话人提取和抑制技术进展

    桔妹导读:为了将目标语音从含多种干扰(如车噪.导航音.车内FM等)的复杂声学环境中分离出来同时尽量减小对原始语音的损伤,提高人机交互.客服听音等的效率,滴滴结合了在前端信号处理的多年研发积累与该领域的 ...

  3. 【深蓝学院】语音信号处理|ch8-深度学习语音分离

    语音信号处理|ch8-深度学习语音分离 概述 1. 深度学习语音处理 [目标] ①能够有更好的自动语音识别(ASR)的指标: ②能够有更好的人类听觉感知 [现状] ①可以显著提升处理过程的速度并且提升 ...

  4. 语音跟踪:信号分解、锁相、鸡尾酒会效应、基于PR的信号分离

    NLP中关于语音的部分,其中重要的一点是语音信号从背景噪音中分离.比如在一个办公室场景中,有白天的底噪-类似于白噪音的噪音.空调的声音.键盘的啪啪声.左手边45度7米元的地方同事讨论的声音.右手边1. ...

  5. 搜狗研究员:详解基于深度学习的语音分离

    来源:AI 研习社 本文长度为3000字,建议阅读6分钟 本文为你介绍语音分离方面主要的研究课题和相关方法. [导读] 基于深度学习的有监督语音分离在学术界和工业界越来越受到关注,也是深度学习在语音领 ...

  6. matlab基因频率是看最大值吗,基于ICA的语音信号盲分离.doc

    资源描述 基于基于 ICAICA 的语音信号盲分离的语音信号盲分离 [ [摘摘 要要] ]语音信号盲分离处理的含义是指利用 BSS 技术对一段语音信号进行处理.混合语 音信号的分离是盲分离的重要内容, ...

  7. 深度学习在语音分离的应用

    基于深度学习的有监督语音分离在学术界和工业界越来越受到关注,也是深度学习在语音领域的应用中重要的一部分.这个主题社长曾经邀请搜狗语音研究员文仕学做过分享. 以下是他的分享内容,点击查看更多往期回顾: ...

  8. 从鸡尾酒会问题入门语音分离

    前言 谷歌这篇文章<Looking to Listen at the Cocktail Party: A Speaker-Independent Audio-Visual Model for S ...

  9. 语音分离---学习笔记(1)

    语音分离任务可分为3类: 当干扰为噪声信号时,可以称为"语音增强" 当干扰为其他说话人时,可以称为"多说话人分离" 当干扰为目标说话人自己声音的反射波时,可以称 ...

最新文章

  1. Linux下redis安装部署
  2. Oracle 11G RAC:生产环境下架构
  3. AD域与外部网站域名相同处理办法
  4. python实现表格合并_Python实现合并excel表格的方法分析
  5. 哪里的草莓质量又好又便宜呢?水果批发市场(前提你买的得多)
  6. webpack 工作方式
  7. PCL:PCL1.9.0更新
  8. 程序=数据结构+算法
  9. ant部署web工程模板
  10. python分配问题_1.1python解决数学建模之席位分配问题
  11. swift 3.0 协议笔记
  12. Windows 系统中 hosts 文件无法修改的问题
  13. HTML 调用打印机打印指定区域
  14. 沃尔沃押注“超大尺寸HUD”,软硬件同步升级机会凸显
  15. linux nginx配置81端口用于访问web81
  16. 音乐计算机曲谱狂妄之人,【B】 Undertale Sans战斗曲 MEGALOVANIA狂妄之人
  17. 微信iOS版7.0版发布:界面全新改版
  18. 教你用一行代码伪装黑客
  19. redis恢复阿里云rdb文件
  20. C语言m++与++m

热门文章

  1. postgresql源码学习(49)—— MVCC⑤-cmin与cmax 同事务内的可见性判断
  2. 西门子200/300PLC转以太网同时实现PPI/MPI/DP转modbus通信
  3. mysql 5.9 新特性_MySQL 5.7新特性介绍
  4. 北京内推 | 智源人工智能研究院招聘CV/NLP方向科研实习生
  5. 基于Airtest抖音养号源代码
  6. 微信公众号开发之40164错误,导致获取不到access_token
  7. Android应用实现QQ授权登录
  8. 保证都是你没有体验过的
  9. python每天必练_Python每日一练(4)
  10. 数字转人民币(大写汉字)读法(Python经典编程案例)