文档章节

Andrew Ng 机器学习鸡尾酒音频分离算法解析

gdxz110
 gdxz110
发布于 07/16 19:55
字数 260
阅读 11
收藏 0

[w,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');

在学习机器学习的课程过程中,ng用一行代码实现了音频分离的效果,这里对这行代码进行解析。

 

[x1, Fs1] = audioread('E:\sounds\first.wav');
[x2, Fs2] = audioread('E:\sounds\second.wav');
xx = [x1, x2]';
yy = sqrtm(inv(cov(xx')))*(xx-repmat(mean(xx,2),1,size(xx,2)));
[W,s,v] = svd((repmat(sum(yy.*yy,1),size(yy,1),1).*yy)*yy');

a = W*xx; %W is unmixing matrix
subplot(2,2,1); plot(x1); title('mixed audio - mic 1');
subplot(2,2,2); plot(x2); title('mixed audio - mic 2');
subplot(2,2,3); plot(a(1,:), 'g'); title('unmixed wave 1');
subplot(2,2,4); plot(a(2,:),'r'); title('unmixed wave 2');

audiowrite('unmixed1.wav', a(1,:), Fs1);
audiowrite('unmixed2.wav', a(2,:), Fs1);

 

问题来源地址:

学习链接

Help:

安装octave

替换Homebrew默认源

matlab入门

Links

KICA

© 著作权归作者所有

上一篇: 理解矩阵乘法
gdxz110
粉丝 7
博文 79
码字总数 30516
作品 0
广州
程序员
私信 提问
机器学习课程_课堂笔记1:

声明:这个系列的文章主要用来记录自己这段时间学习斯坦福大学《机器学习》课程的个人学习笔记,内容主要来自Andrew Ng教授学习视频。准备大部分记录自己的理解,可能会有一些实验贴出来。各...

zhouplus
2016/11/09
13
0
Andrew NG Coursera教程学习笔记-Week1

Introduction 什么是Machine Learning Andrew给出了几种定义如下: Arthur Samuel给了一个较老的定义: He defined machine learning as the field of study that gives computers the abili......

geekpy
2018/01/16
0
0
在利用支持向量机进行分类的时候怎么选择合适的核函数?

Andrew Ng理论1:当数据量足够庞大时,feature足够多时,所有的分类算法最终的效果都差不多。也就是说,不管你选用什么样的核,在训练集够大的情况下都是然并卵。当然,就分类效果来说,非线...

jh_zhai
2018/04/16
0
0
百度Deep Voice详解分析:快速理解语音合成流程(Part I)

首发地址:https://yq.aliyun.com/articles/73809 更多深度文章,请关注:https://yq.aliyun.com/cloud 作者介绍 Dhruv Parthasarathy:MIT毕业,曾经就职于Udacity,带领人工智能、自动驾驶...

uncle_ll
2017/07/12
0
0
“眼”来助听:谷歌视觉-音频分离模型解决「鸡尾酒会效应」

雷锋网 AI 科技评论按:人类很擅长在嘈杂的环境下将其他非重点的声响「静音」化,从而将注意力集中在某个特定人物身上。这也就是众所周知的「鸡尾酒会效应」,这种能力是人类与生俱来的。然而...

刘鹏
2018/04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
15分钟前
2
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
昨天
7
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部