前言

SpeakerBeam发表与interspeech2018,这项技术需要预先说话人信息,然后从混合语音中提取相应的语音,SpeakerBeam与之前的传统语音分割算法相比,第一无需知道这段语音说话人位置,个数等信息,更符合实际场景的需要。

如图所示,SpeakerBeam包括两个模型,混合模型:混合语音在STFT后相加,提取模型:提取目标语音。

文章中所提到的SpeakerBeam有多种,但是最终最好的一种如图所示: the scaled activations method and sequence summarization with attention模式。SpeakerBeam分两个模块:主网络和联合网络。

代码展示

联合网络:

def AUX(x): ######联合网络conv1 = tf.nn.relu(tf.layers.conv1d(x,200,1,strides=1, padding='valid'))#linear + reluconv2 = tf.layers.conv1d(conv1,512,1,strides=1, padding='valid')#linearattention = tf.reshape(tf.nn.softmax(tf.keras.layers.GlobalAvgPool1D()(conv2),-1),[-1,1,512])results =  tf.reshape(tf.keras.layers.GlobalAvgPool1D()(conv2*attention),[-1,1,512])return results

BLSTM+linear:

def BLSTM_linear(x):# lstm模型正方向传播的RNNlstm_fw_cell = tf.nn.rnn_cell.BasicLSTMCell(512, forget_bias=1.0)# 反方向传播的RNNlstm_bw_cell = tf.nn.rnn_cell.BasicLSTMCell(512, forget_bias=1.0)    (outputs, output_states) = tf.nn.bidirectional_dynamic_rnn(lstm_fw_cell, lstm_bw_cell, x,  dtype=tf.float32)fw_outputs,bw_outputs = outputsout_results = tf.concat([fw_outputs,bw_outputs],-1)out_results = tf.layers.conv1d(out_results,512,1,strides=1, padding='valid')return out_results

SpeakerBeam

def SpeakerBeam(x1,x2): ######主干网络layer1 = tf.nn.tanh(BLSTM_linear(x1)*AUX(x2))#print(layer1)layer2 = tf.nn.tanh(BLSTM_linear(layer1))layer3 = tf.nn.tanh(BLSTM_linear(layer2))layer4 = tf.nn.sigmoid(tf.layers.conv1d(layer3,512,1,strides=1, padding='valid'))return layer4#return layer1

总代码

import tensorflow as tf inputs1 = tf.placeholder(tf.float32,[None,None,257])#输入数据
inputs2 = tf.placeholder(tf.float32,[None,None,257])#输入数据def AUX(x): ######联合网络conv1 = tf.nn.relu(tf.layers.conv1d(x,200,1,strides=1, padding='valid'))#linear + reluconv2 = tf.layers.conv1d(conv1,512,1,strides=1, padding='valid')#linearattention = tf.reshape(tf.nn.softmax(tf.keras.layers.GlobalAvgPool1D()(conv2),-1),[-1,1,512])results =  tf.reshape(tf.keras.layers.GlobalAvgPool1D()(conv2*attention),[-1,1,512])return resultsdef BLSTM_linear(x):# lstm模型正方向传播的RNNlstm_fw_cell = tf.nn.rnn_cell.BasicLSTMCell(512, forget_bias=1.0)# 反方向传播的RNNlstm_bw_cell = tf.nn.rnn_cell.BasicLSTMCell(512, forget_bias=1.0)    (outputs, output_states) = tf.nn.bidirectional_dynamic_rnn(lstm_fw_cell, lstm_bw_cell, x,  dtype=tf.float32)fw_outputs,bw_outputs = outputsout_results = tf.concat([fw_outputs,bw_outputs],-1)out_results = tf.layers.conv1d(out_results,512,1,strides=1, padding='valid')return out_resultsdef SpeakerBeam(x1,x2): ######主干网络layer1 = tf.nn.tanh(BLSTM_linear(x1)*AUX(x2))#print(layer1)layer2 = tf.nn.tanh(BLSTM_linear(layer1))layer3 = tf.nn.tanh(BLSTM_linear(layer2))layer4 = tf.nn.sigmoid(tf.layers.conv1d(layer3,512,1,strides=1, padding='valid'))return layer4#return layer1SpeakerBeam(inputs1,inputs2)

SpeakerBeam,说话人提取算法相关推荐

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

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

  2. INTERSPEECH 2018 | 语音识别技术之说话人自适应技术

    <Learning to adapt: a meta-learning approach for speaker adaptation> 这篇文章来自爱丁堡大学,以下是摘要: 通过调整声学 ...

  3. AD-NeRF:用于说话人头部合成的音频驱动神经辐射场

    作为构建未来虚拟世界诸多应用的主干,如何创造栩栩如生的虚拟数字人,一直是计算机视觉.计算机图形学与多媒体等人工智能相关学科密切关注的重要研究课题.近日,中国科学技术大学联合的卢深视科技有限公司.浙江大 ...

  4. 用于语音情绪识别的基于对抗学习的说话人无关的表示

    1. 用于语音情绪识别的基于对抗学习的说话人无关的表示 尝试解决的问题: 在语音情绪识别任务中,会面临到要测试的说话人未出现在训练集中的这个问题,本文尝试运用TDNN+LSTM作为特征提取部分,再通过 ...

  5. ISCSLP 2022 | AccentSpeech—从众包数据中学习口音来构建目标说话人的口音语音合成系统

    构建带口音的语音合成系统可以增加语音合成的多样性和趣味性.然而不是每个人都能说多种口音.为了实现口音与说话人音色的自由组合,借助迁移学习技术,为没有口音数据的说话人构建口音合成系统,是实现" ...

  6. 声纹识别之说话人验证speaker verification

    目录 一.speaker verification简介 二.主流方案和模型 1.Ecapa_TDNN模型 2.WavLm 三.代码实践 1.Ecapa_TDNN方案 a.模型结构 b.loss c.数 ...

  7. AI为啥能读懂说话人的情感?

    摘要:本文介绍了语音情感识别领域的发展现状,挑战,重点介绍了处理标注数据缺乏的问题. 本文分享自华为云社区<语音情感识别的应用和挑战>,作者:SSIL_SZT_ZS. 情感在人与人的交流中 ...

  8. (2014/7/16—28)当不同说话人讲相…

    总结一下近两周做的事情. 目标:有3个说话人,以4种不同的情感,分别说相同的200句话,建立模型供语音情感识别使用 过程:1.选择建立模型需要的特征及可用工具          2.处理数据     ...

  9. FACIAL:更可控的说话人驱动

    点击上方"机器学习与生成对抗网络",关注星标 获取有趣.好玩的前沿干货! 来源:AI科技评论 本文是对发表于计算机视觉领域的顶级会议 ICCV 2021的论文"FACIA ...

最新文章

  1. python获取图片像素矩阵_用python处理图片实现图像中的像素访问
  2. 联邦学习怎样应用在推荐系统中?
  3. 一口气带你踩完五个 List 的大坑!
  4. 1280*720P和1920*1080P的视频在25帧30帧50帧60帧时的参数
  5. Request.Url.Port 获取不到正确的端口号
  6. LeetCode MySQL 1112. 每位学生的最高成绩
  7. HttpClient连接池的连接保持、超时和失效机制
  8. 【erlang ~ 4 days】 Day # 1.1 History
  9. 学好mysql数据库能找到什么工作_MySQL数据库学习路线汇总整理全集(附详细的学习路线介绍图)...
  10. 测试开发工程师面试题目
  11. python编写程序统计一元人民币换成一分、两分和五分的所有兑换方案个数(用while循环)
  12. 用python爬取企查查_python爬取企查查江苏企业信息生成excel表格
  13. 按头安利 好看又实用的SolidEdge 3d模型素材看这里
  14. 网络攻防技术(郑大信安个人总结版)
  15. Nginx配置虚拟主机(基于域名、端口及IP)
  16. 鸿蒙手游——数字华容道
  17. 行业研究报告-全球与中国吊钩市场现状及未来发展趋势
  18. 五家车企宣布召回63万辆问题汽车 现代、本田等上榜
  19. ARC与非ARC混合编程
  20. eclipse开发jsp环境的插件

热门文章

  1. Jenkins忘记密码
  2. 移植openharmony之添加wifi驱动
  3. DataReader和DataSet的异同
  4. tinyxml用法学习
  5. 云端未来:云原神与原神是同一个游戏吗?
  6. 【LabVIEW信号处理】加速度信号到速度信号(1)
  7. libsvm matlab 使用,Libsvm在matlab环境下使用指南
  8. 定义一个简单的teacher类
  9. jQuery 创建和插入元素
  10. JRebel热部署插件手动触发