位置: IT常识 - 正文

ICASSP 2023论文模型开源|语音分离Mossformer(icse论文)

编辑:rootadmin
ICASSP 2023论文模型开源|语音分离Mossformer

推荐整理分享ICASSP 2023论文模型开源|语音分离Mossformer(icse论文),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:icic论文,icse论文,isscc2020论文,icse论文,icassp审稿周期,isscc2021论文下载,isscc2020论文,icassp2021论文集,内容如对您有帮助,希望把文章链接给更多的朋友!

人类能在复杂的多人说话环境中轻易地分离干扰声音,选择性聆听感兴趣的主讲人说话。但这对机器却不容易,如何构建一个能够媲美人类听觉系统的自动化系统颇具挑战性。

本文将详细解读ICASSP2023本届会议收录的单通道语音分离模型Mossformer论文,以及如何基于开发者自有数据进行该模型的调优训练。

▏语音分离模型能做什么?

由于麦克风采集的音频信号中除了主说话人之外,通常还包括噪声、其他人说话的声音、混响等干扰。语音分离的目标即是把独立的目标语音信号从混合的音频信号中分离出来。其应用范围不仅包括听力假体、移动通信、鲁棒的自动语音以及说话人识别等,最近也被广泛应用在各个语音方向的机器学习场景中。

根据干扰的不同,语音分离任务可以是单纯的多说话人分离,也可以包括噪声消除和解混响等附加任务。在没有噪声和混响的情况下,单纯的语音分离任务已经被研究了几十年,从最初的传统信号处理算法如独立分量分析(ICA)和非负矩阵分解(NMF),到最近的基于端到端深度神经网络(DNN)算法,算法的分离性能有了明显的进步。至今,语音分离仍然是一个高度活跃的研究领域,我们最新推出的MossFormer语音分离模型,是在现有深度学习算法的基础上,通过融入更先进的门控注意力机制和带记忆的深度卷积网络,从而更有效地对长语音序列进行建模和学习,大幅提升深度学习分离算法的性能。

目前比较流行的语音分离模型架构一般由三个主要组成模块:编码器、分离器和解码器。编码器的作用是将原始的语音信号转换为高维的表示,类似于傅立叶变换后的频谱信息,但使用的转换不是预先设定好的,而是通过训练模型自己学习到的。分离器的作用是根据输入的高维表示来估计语音的分量,并将其分离成多个独立的语音信号。解码器的作用是将分离出的语音信号重新编码成原始语音信号的形式。下图给出的是语音分离模型架构的示意图:

图1. 语音分离模型架构示意图

分离器模块是影响语音分离性能的关键模块,主要的架构包括深度卷积网络(例如:Conv-TasNet)、循环神经网络(例如:DPRNN),和Transformer(例如:SepFormer)等,其中基于自注意力机制的Transformer架构在最近的研究中表现出了很好的性能。利用自注意力机制可以有效地捕捉长距离的依赖关系,从而更好地建模语音信号。

与传统的循环神经网络相比,Transformer可以并行计算,提高了计算效率,同时也可以更好地避免梯度消失的问题。基于Transformer的架构在单声道语音分离任务中获得了显著的性能改进,但和最近给出的分离Cramer-Rao上限相比,仍存在明显差距,主要原因在于,由于注意力计算的二次复杂度,Transformer架构的自注意力受限于上下文长度。为了能够处理极长的输入序列,当前的Transformer模型使用双路径框架,将输入序列分成较小的块并分别处理块内和块间的信息,跨块的长距离信息依赖需要通过中间状态隐式建模,这一事实可能对长距离建模能力产生负面影响,导致模型次优表现。

▏2023 ICASSP-MossFormer模型

为了有效解决双路径架构中跨块间的间接元素交互问题,我们提出了一种基于联合自注意力的带门控单头Transformer语音分离模型架构,并使用卷积增强模块,命名为MossFormer(Monaural speech separation Transformer)。

MossFormer采用联合局部和全局自注意力架构,同时对局部段执行完整自注意力运算和对全局执行线性化低成本自注意力运算。联合注意力使MossFormer模型能够直接处理全序列元素交互,真正有效地捕捉长距离的依赖关系,解决双路径模型在远程元素交互的建模能力问题。此外,我们采用了强大的带注意力门控机制,可以使用大幅简化的单头自注意力,MossFormer除了关注长距离建模外,还使用深度卷积来帮助模型更好地处理局部的特征,从而提高模型的性能。相关工作已被语音顶会ICASSP 2023录用。

模型架构

MossFormer语音分离模型由一个卷积编码器-解码器结构和一个掩蔽网络组成(见图2)。编码器-解码器结构负责特征提取和波形重建,其中,编码器负责特征提取,由一维 (1D) 卷积层 (Conv1D) 和整流线性单元 (ReLU) 组成,后者将编码输出限制为非负值。解码器是一维转置卷积层,它使用与编码器相同的内核大小和步幅。 

图2. MossFormer模型整体结构示意图

掩码网络执行从编码器输出到𝐶组掩码的非线性映射,掩码网络的主组成部分是MossFormer模块,该模块是基于带卷积增强联合自注意力(convolution-augmented joint self-attentions)的门控单头自注意力架构(gated single-head transformer architecture )开发出来的。具体的,一个MossFormer 模块由四个卷积模块、缩放和偏移操作、联合局部和全局单头自注意力(SHSA)以及三个门控操作组成,负责进行长序列的处理。详细模块结构见图3。在MossFormer模块中,序列由卷积模块和注意力门控机制进行处理。卷积模块使用线性投影和深度卷积来处理序列。注意力门控机制执行联合局部和全局自注意力和门控操作。MossFormer模块仅学习残差部分并应用跳跃连接从输入连接到输出以提升训练效率。当前MossFormer块的输出被输入到下一个MossFormer块中。该过程被重复R次。

图3. MossFormer模块架构示意图

模型性能

我们在公开数据集WSJ0-2/3mix 和 WHAM!/WHAMR!上对模型进行了性能对比验证。WSJ0-2/3mix数据集是基于WSJ0数据语料库生成的。包括30小时的训练数据集、10小时的验证数据集、和5小时的测试集,混合语音是由随机选择的不同说话者的语音混合而成,混合语音按照-5 dB和5 dB随机信噪比(SNR)进行混合。该数据集包含2个和3个说话人,为纯净数据集,不含噪声和混响。

WHAM!数据集是在WSJ0-2mix数据集的基础上,通过进一步添加独特的环境噪声生成的,环境噪声主要包括从餐厅、咖啡馆、酒吧和公园录制的噪声。WHAMR! 数据集进一步扩展了WHAM!数据集,除了环境噪声之外,还为语音信号添加了人工混响效果。

ICASSP 2023论文模型开源|语音分离Mossformer(icse论文)

MossFormer模型与其它SOTA模型在公开数据集WSJ0-2mix/3mix和WHAM!/WHAMR!上的对比结果如下表 (模型算法引用标注沿用发表的论文引用顺序):

SI-SNR (Scale Invariant Signal-to-Noise Ratio) 尺度不变信噪比,是在普通信噪比基础上通过正则化消减信号变化导致的影响,是针对宽带噪声失真的语音增强算法的常规衡量方法。SI-SNRi (SI-SNR improvement) 是衡量对比原始混合语音,SI-SNR在分离后语音上的提升量。 

DM (Dynamic Mixing)是一种动态混合数据增强算法,用来补充训练数据的不足和提升模型训练的泛化能力。

结果对比

我们分别给出了小模型MossFormer(S)、中等模型MossFormer(M)、和大模型MossFormer(L)的结果。在WSJ0-2/3mix数据集上,除了具有10M参数的MossFormer(S)在WSJ0-2mix上表现稍差于具有29M参数的Wavesplit以外,我们的MossFormer模型结果优于之前所有模型的表现。使用数据增强后,MossFormer(L)在WSJ0-2mix/3mix上分别达到了22.8 dB和21.2 dB。不仅达到了Cramer-Rao分离上限,而且在WSJ0-2mix/3mix上取得了最新的SOTA结果。

在带噪和混响WHAM!到WHAMR!数据集上,MossFormer(M)和MossFormer(L)比以前的模型表现出更大的优势,MossFormer(L)分别在WHAM!和WHAMR!上取得了最新的SOTA结果。例如,MossFormer(L)相比于SepFormer,分别提升了0.9 dB和2.3 dB。由于WHAM!/WHAMR!数据集是在WSJ0-2mix的基础上引入额外的噪声和混响来构建的,因此,在WHAM!/WHAMR!上的分离任务变得更加困难,因为模型不仅需要处理语音分离,还需要进行降噪和去混响处理。我们观察到,混响对Wavesplit和SepFormer的影响比对MossFormer的影响更大,显示MossFormer得益于独特的联合自注意力架构和深度卷积处理,可以更好的学习局部特征模式和全局长距离依赖性,从而获得更佳的分离性能。

理论上,MossFormer模型框架可以支持任意多说话人和任意环境下的语音分离任务,我们在ModelScope上首先开放的是基于两个说话人的纯语音分离模型,其目的是让用户可以在较简单的分离任务上,更快速的搭建和测试我们的模型平台。

▏如何训练自有的语音分离模型?

第一步:训练您的模型

环境准备

ModelScope网站官方提供的Notebook环境已经安装好了所有依赖,能够直接开始训练。如果您要在自己的设备上训练,可以参考模型主页上的环境准备步骤操作。环境准备完成后建议运行模型主页上推理示例代码验证模型可以正常工作。

数据准备

魔搭社区上开放的模型使用约30小时2人混合语音作为训练数据。混合语音是基于WSJ0数据集生成的,由于WSJ0的License问题无法在这里分享。我们在ModelScope上提供了基于LibriSpeech数据集生成的混合音频,以便您快速开始训练。其中训练集包含约42小时语音,共13900条,大小约7G。请访问官网页面了解数据集详情,链接在文章末尾。

模型训练

以下列出的为训练示例代码,其中work_dir可以替换成您需要的路径。

数据训练一遍为一个epoch,默认共训练120个epoch,需要约10天。

import osfrom datasets import load_datasetfrom modelscope.metainfo import Trainersfrom modelscope.msdatasets import MsDatasetfrom modelscope.preprocessors.audio import AudioBrainPreprocessorfrom modelscope.trainers import build_trainerfrom modelscope.utils.audio.audio_utils import to_segmentwork_dir = './train_dir'if not os.path.exists(work_dir): os.makedirs(work_dir)train_dataset = MsDataset.load( 'Libri2Mix_8k', split='train').to_torch_dataset(preprocessors=[ AudioBrainPreprocessor(takes='mix_wav:FILE', provides='mix_sig'), AudioBrainPreprocessor(takes='s1_wav:FILE', provides='s1_sig'), AudioBrainPreprocessor(takes='s2_wav:FILE', provides='s2_sig') ], to_tensor=False)eval_dataset = MsDataset.load( 'Libri2Mix_8k', split='validation').to_torch_dataset(preprocessors=[ AudioBrainPreprocessor(takes='mix_wav:FILE', provides='mix_sig'), AudioBrainPreprocessor(takes='s1_wav:FILE', provides='s1_sig'), AudioBrainPreprocessor(takes='s2_wav:FILE', provides='s2_sig') ], to_tensor=False)kwargs = dict( model='damo/speech_mossformer_separation_temporal_8k', train_dataset=train_dataset, eval_dataset=eval_dataset, work_dir=work_dir)trainer = build_trainer( Trainers.speech_separation, default_args=kwargs)trainer.train()

第二步:评估你的模型

以下列出的为模型评估代码,其中work_dir必须是您训练时指定的路径。程序会搜索路径下的最佳模型并自动加载。

import osfrom datasets import load_datasetfrom modelscope.metainfo import Trainersfrom modelscope.msdatasets import MsDatasetfrom modelscope.preprocessors.audio import AudioBrainPreprocessorfrom modelscope.trainers import build_trainerfrom modelscope.utils.audio.audio_utils import to_segmentwork_dir = './train_dir'if not os.path.exists(work_dir): os.makedirs(work_dir)train_dataset = Noneeval_dataset = MsDataset.load( 'Libri2Mix_8k', split='test').to_torch_dataset(preprocessors=[ AudioBrainPreprocessor(takes='mix_wav:FILE', provides='mix_sig'), AudioBrainPreprocessor(takes='s1_wav:FILE', provides='s1_sig'), AudioBrainPreprocessor(takes='s2_wav:FILE', provides='s2_sig') ], to_tensor=False)kwargs = dict( model='damo/speech_mossformer_separation_temporal_8k', train_dataset=train_dataset, eval_dataset=eval_dataset, work_dir=work_dir)trainer = build_trainer( Trainers.speech_separation, default_args=kwargs)trainer.model.load_check_point(device=trainer.device)print(trainer.evaluate(None))

相关链接

语音分离模型地址:https://modelscope.cn/models/damo/speech_mossformer_separation_temporal_8k/summary

LibriSpeech 2人混合8K音频数据集:

https://modelscope.cn/datasets/modelscope/Libri2Mix_8k/summary

WSJ0数据集:

https://catalog.ldc.upenn.edu/LDC93s6a

WSJ0-mix脚本:

https://github.com/mpariente/pywsj0-mix

References

Shengkui Zhao and Bin Ma, “MossFormer: Pushing the Performance Limit of Monaural Speech Separation using Gated Single-head Transformer with Convolution-augmented Joint Self-Attentions”, accepted by ICASSP 2023.

本文链接地址:https://www.jiuchutong.com/zhishi/299396.html 转载请保留说明!

上一篇:如何快速上手Vue框架?(如何快速上手看门狗2)

下一篇:CSS给元素添加边框(样式、颜色、宽度)(css给div加边框)

  • iphone13mini手电筒怎么关(13手电筒在哪)

    iphone13mini手电筒怎么关(13手电筒在哪)

  • win11怎么把我的电脑放桌面(Win11怎么把我的电脑图标放桌面)

    win11怎么把我的电脑放桌面(Win11怎么把我的电脑图标放桌面)

  • 华为p40搭载的处理器是什么(华为p40搭载什么芯片)

    华为p40搭载的处理器是什么(华为p40搭载什么芯片)

  • 淘宝违规怎么恢复健康(淘宝违规怎么恢复正常)

    淘宝违规怎么恢复健康(淘宝违规怎么恢复正常)

  • 视频聊天可以录下来吗(视频聊天可以录音吗)

    视频聊天可以录下来吗(视频聊天可以录音吗)

  • 魅族手机收不到验证码怎么解决(魅族手机收不到短信验证码怎么办)

    魅族手机收不到验证码怎么解决(魅族手机收不到短信验证码怎么办)

  • 笔记本外接开机键教程?(笔记本外接开机键改造方案教程)

    笔记本外接开机键教程?(笔记本外接开机键改造方案教程)

  • 华为mate30声音小怎么回事(华为mate30声音小有杂音怎么办)

    华为mate30声音小怎么回事(华为mate30声音小有杂音怎么办)

  • 淘宝物流为啥没地图了(淘宝看不见物流)

    淘宝物流为啥没地图了(淘宝看不见物流)

  • 投屏什么意思(无线投屏什么意思)

    投屏什么意思(无线投屏什么意思)

  • 人工智能是由什么呈现出来的智能型(人工智能是由什么呈现出来的智能性)

    人工智能是由什么呈现出来的智能型(人工智能是由什么呈现出来的智能性)

  • 贡献音浪是什么意思(抖音直播贡献音浪是什么意思)

    贡献音浪是什么意思(抖音直播贡献音浪是什么意思)

  • 普通平键有哪三种形式(普通平键有哪三种结构类型及其应用)

    普通平键有哪三种形式(普通平键有哪三种结构类型及其应用)

  • 美版max支持电信吗(美版支持电信嘛)

    美版max支持电信吗(美版支持电信嘛)

  • x3440相当于什么cpu(x3460相当于什么u)

    x3440相当于什么cpu(x3460相当于什么u)

  • ssl连接在哪一层(ssl连接怎么设置在哪里)

    ssl连接在哪一层(ssl连接怎么设置在哪里)

  • 手机怎么把照片变成漫画(手机怎么把照片做成文件)

    手机怎么把照片变成漫画(手机怎么把照片做成文件)

  • 退群了聊天信息还在吗(退群了之后是不是所有聊天记录都没有了)

    退群了聊天信息还在吗(退群了之后是不是所有聊天记录都没有了)

  • 8p是几g运行(苹果8p是几g运存)

    8p是几g运行(苹果8p是几g运存)

  • 隔空投送距离多远有效(隔空投送距离多少可以收到)

    隔空投送距离多远有效(隔空投送距离多少可以收到)

  • 快手怎么看自己上没上热门(快手怎么看自己买的东西)

    快手怎么看自己上没上热门(快手怎么看自己买的东西)

  • 华为p30性能模式(华为p30性能模式开启有用吗)

    华为p30性能模式(华为p30性能模式开启有用吗)

  • ps怎么把人物抠图放到另一张(ps怎么把人物抠出来无背景图保存)

    ps怎么把人物抠图放到另一张(ps怎么把人物抠出来无背景图保存)

  • 腾讯大王卡怎么换省(腾讯大王卡怎么退订)

    腾讯大王卡怎么换省(腾讯大王卡怎么退订)

  • 8p有没有nfc(8plus有没有无线充电)

    8p有没有nfc(8plus有没有无线充电)

  • word最近使用的文档怎么删除(word最近使用的文档记录怎么删除)

    word最近使用的文档怎么删除(word最近使用的文档记录怎么删除)

  • Win11怎么开启硬件加速?Win11开启硬件加速方法(windows 11硬件)

    Win11怎么开启硬件加速?Win11开启硬件加速方法(windows 11硬件)

  • 银行存款利息收税吗
  • 税收会计在会计中的应用
  • 什么情况增值税计入成本
  • 小规模企业需要申报吗
  • 财务费用多好还是少好
  • 企业的承兑汇票贴息很高说明什么
  • 所得税申报表的营业收入包括营业外收入吗
  • 企业轿车报废
  • 年数总和法怎么做
  • 知道税负率和收入怎么算进项
  • 小规模增值税减免会计账务处理
  • 航天金税的服务费如何抵扣
  • 结转完工产品生产成本会计科目
  • 审计库存现金盘点方法
  • 住宿发票要附清单吗
  • 公司电话费用
  • 税后利润补亏的会计分录怎么做
  • 设备税款
  • 押金可以抵扣吗
  • 先付一半款财务应该怎么写
  • 过路费占运费比例
  • 营改增后房地产开发税费一览表
  • 如何确定旧机器的折旧年限?
  • 企业合并的会计分录
  • 申请小型微利企业
  • 期末进项税额和销项税额都有余额
  • 任务管理器网络占用率100%怎么办
  • windows11家庭版本地策略组
  • 个人取得的工资、薪金所得应按次征收个人所得税
  • 销售环节的运费怎么算
  • fsmb32.exe是什么进程 作用是什么 fsmb32进程查询
  • nmstt.exe - nmstt是什么进程 有什么用
  • 实缴注册资本股权转让怎么交税
  • 进程process.acore已停止怎么办
  • 内格罗斯岛
  • php timeout
  • php addslashes函数
  • 为公司垫付费用,怎么要回
  • 北方针叶林的特征有哪些?
  • vue项目打包后还能修改吗
  • 资产减值损失和存货跌价准备有什么区别
  • phpwechat
  • 域名续费多久生效
  • 用于职工福利的进项税账务处理
  • 预提的管理费用,汇算清缴怎么做
  • 固定资产货币化,货币资产保险化,保险资产信托化
  • 工业企业出租设备租金计入什么科目
  • 金税盘购买的会计分录
  • 企业年度所得税怎么算
  • 一般纳税人增值税减免政策2023
  • 利润的敏感性分析怎么做?
  • 软件开发服务费计入什么科目
  • 月末本年利润借方余额表示什么
  • 已认证抵扣的进项税额怎么填报表
  • 享受小微企业免征增值税政策
  • 补充养老保险和年金
  • 小规模可以开红网吗
  • 销售货物没开票是不是不交税
  • 收到专票未抵扣能购买方开红字发票吗
  • 留存收益属于什么会计要素
  • ubuntu怎么禁用nouveau
  • win8系统盘瘦身
  • win8电脑锁屏壁纸怎么设置方法
  • opengl用法
  • JavaScript弹出对话框
  • vim tagbar
  • ecmascript6 官方文档
  • node.js适用哪些场景
  • 获取控件的值
  • windows下为啥没有观看电视的软件
  • Android dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent详解
  • python相乘
  • javascript要怎么学
  • javascript要怎么学
  • Genymotion首次运行程序出现错误Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
  • 关注龙江医保
  • 中国税务网官网1732171695993732.2418.61431871
  • 天津车辆购置税网上办税
  • 云开票怎么报税
  • 电子发票查询官网入口国家税务局重庆电子税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设