soundtouch变速wsola算法之改进】的更多相关文章

soundtouch变速算法很类似sola算法,细看才知道是wsola算法. 上个星期有个需求,将该变速应用到直播的包处理,有点类似于webrtc的netEQ处理机制. 直接使用soundtouch,会存在一些问题: 1.一段正常,一段变速,中间会出现不连续,有冲击.或者不同速率的切换. 越频繁,现象更明显,有de,de的声响. 2.soundtouch每次处理,会有残余,如果用flush,音质会受到影响,一般到结尾采用该函数. 也就是说输入样本有残余. 3.soundtouch变速的长度不能精…
soundtouch变速主要采用WSOLA算法来进行变速. http://www.surina.net/soundtouch/ https://blog.csdn.net/suhetao/article/details/5863477 The principle of WSOLA refer to following figure: There are three important parameter: SequenceMs, overlapMs, seekWindowMs. These pa…
ISAP算法对 Dinic算法的改进: 在刘汝佳图论的开头引言里面,就指出了,算法的本身细节优化,是比较复杂的,这些高质量的图论算法是无数优秀算法设计师的智慧结晶. 如果一时半会理解不清楚,也是正常的.但是对于一个优秀的acmer来说,其算法的本身,可以锻炼你的思维.增长见识! 下面是我对 Dinic和ISAP的认识: Dinic算法比较值钱的 EK算法来说,已经有很大的提高了,其优势在哪里呢? 就是在于他的分层思想.在层次图上增广.但是,他也有弊端. 就是每次进行增广后,对于层次图都进行了从头…
http://blog.csdn.net/pipisorry/article/details/48914067 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Leskovec courses学习笔记之关联规则Apriori算法的改进:非hash方法 - 大数据集下的频繁项集:挖掘随机采样算法.SON算法.Toivonen算法 Apriori算法的改进:大数据集下的频繁项集挖掘 1. 前面所讨论的频繁项都是在一次能处理的情况.如果数据量过大超过了主存的大小,这…
http://blog.csdn.net/pipisorry/article/details/48901217 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Leskovec courses学习笔记之关联规则Apriori算法的改进:基于hash的方法:PCY算法, Multistage算法, Multihash算法 Apriori算法的改进 {All these extensions to A-Priori have the goal of minimiz…
md5是哈希算法的改进加强,因为不同原始值可能hash结果一样,但md5则改善了用于验证消息完整性,不同md5值原始值也必将不一样…
KMP算法的改进 KMP算法已经在极大程度上提高了子符串的匹配效率,但是仍然有改进的余地. 1. 引入的情景 下面我们就其中的一种情况进行分析: 主串T为"aaaabcde-" 子串S为"aaaade" 那么容易求得子串的next[]={0,1,2,3,4} 下标 1 2 3 4 5 子串 a a a a d next 0 1 2 3 4 当使用KMP算法进行匹配时, 由于T[5]!=S[5], 因此子串指针回溯, 子串回溯后变为T[5]与S[4]的关系,依然不等,…
KMP算法简介 KMP算法是在基础的模式匹配算法的基础上进行改进得到的算法,改进之处在于:每当匹配过程中出现相比较的字符不相等时,不需要回退主串的字符位置指针,而是利用已经得到的部分匹配结果将模式串向右"滑动"尽可能远的距离,再继续进行比较.在KMP算法中,依据模式串的next函数值实现字串的滑动,本随笔介绍next函数值如何求解. next[ j ]求解 将 j-1 对应的串与next[ j-1 ]对应的串进行比较,若相等,则next[ j ]=next[ j-1 ]+1;若不相等,…
1.朴素的模式匹配算法 朴素的模式匹配算法:就是对主串的每个字符作为子串开头,与要连接的字符串进行匹配.对主串做大循环,每个字符开头做T的长度的小循环,直到成功匹配或全部遍历完成为止. 又称BF算法 package com.alice.dataStructe5.bf; /** * 返回子串t在主串s中第pos个字符之后的位置,若不存在,则返回-1 * @author Administrator * */ public class BF { public int index(String s,St…
改进的冒泡排序 一.算法描述 基于原冒泡排序 每次选取第一个元素作为主元往后进行比较,若遇到比它小的则放到它左边(即进行交换),若遇到比它大的则选取大的作为主元进行后续比较,每趟选取了无序列中最大元素放置无序列最后位,当一趟比较没有发生交换则为有序序列,即像吐泡泡一样第一次把最大的数吐到最末位,第二趟把倒数第二大的数吐到倒数第二位..... 到last,同样当某趟排序不发生交换时完成排序 二.算法分析 原每趟排序的范围固定为0到n,0到n-1,0到n-2......到last,且每次的last是…
传统的Canny边缘检测算法是一种有效而又相对简单的算法,可以得到很好的结果(可以参考上一篇Canny边缘检测算法的实现).但是Canny算法本身也有一些缺陷,可以有改进的地方. 1. Canny边缘检测第一步用高斯模糊来去掉噪声,但是同时也会平滑边缘,使得边缘信息减弱,有可能使得在后面的步骤中漏掉一些需要的边缘,特别是弱边缘和孤立的边缘,可能在双阀值和联通计算中被剔除.很自然地可以预见,如果加大高斯模糊的半径,对噪声的平滑力度加大,但也会使得最后得到的边缘图中的边缘明显减少.这里依然用Lena…
## 基本PSO的改进 虽然粒子群在求解优化函数时,表现了较好的寻优能力:通过迭代寻优计算,能够迅速找到近似解:但基本的PSO容易陷入局部最优,导致结果误差较大. 两个方面:1.将各种先进理论引入到PSO算法,研究各种改进和PSO算法:(混沌技术,神经网络技术,自适应技术)2.将PSO算法和其它智能优化算法相结合,研究各种混合优化算法,达到取长补短.改善算法某方面性能的效果. 近时期粒子群改进策略主要体现的方面:1.PSO算法的惯性权重模型,通过惯性权重的引入,提高了算法的全局搜索能力:2.带邻…
最先看到这一题,直觉的解法就是len从1到s1.size()-1,递归调用比較s1和s2长度为len的子串是否相等.以及剩余部分是否相等. 将s1分成s1[len + rest],分别比較s2[len + rest]和s2[rest + len] 代码例如以下: bool isScramble(string s1, string s2) { return find(s1, s2); } bool find(string s1, string s2) { if (s1.compare(s2) ==…
kmeans算法的流程:   EM思想很伟大,在处理含有隐式变量的机器学习算法中很有用.聚类算法包括kmeans,高斯混合聚类,快速迭代聚类等等,都离不开EM思想.在了解kmeans算法之前,有必要详细了解一下EM思想. Kmeans算法属于无监督学习中的一种,相比于监督学习,能节省很多成本,省去了大量的标签标注.每个数据点都有自己的隐式的分类.聚类要做的是,从中选取出数个聚类中心,对数据集进行初始聚类.此后,通过更新聚类中心(把簇中心缓存起来),重新聚类,然后再更新簇中心,如果此簇中心与旧的簇…
              1.前言                                a.对于工程问题,一般描述为:从一些测量值(观测量)x 中估计参数 p?即x = f(p),                              其中,x为测量值构成的向量,参数p为待求量,为了让模型能适应一般场景,这里p也为向量.                              这是一个函数求解问题,可以使用Guass-Newton法进行求解,LM算法是对Newton法的改进.…
第三章 如何改进和优化RSA算法 这章呢,我想谈谈在实际应用出现的问题和理解. 由于近期要开始各种忙了,所以写完这章后我短时间内也不打算出什么资料了=- =(反正平时就没有出资料的习惯.) 在讲第一章的时候我提到过两个函数在真实应用时舍弃掉的,为何这样说呢? 因为在实际应用中,生成了数据规模N和两把密钥E与D即可进行RSA算法的运作,在应用RSA时只需要一个a^b%c幂模运算函数,所以优化点集中在了数据类型和数据加密解密速度上. 注意RSA函数有个特点,就是根据源数据产生的密文一定是属于n内的,…
#include <stdio.h> #include <string.h> #include <stdlib.h> #include<cstring> #include<iostream> using namespace std; #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int Status; #define MAXSTRLEN 255 //用户可在255以内定义最长串长…
对sunway程序中的BUG所进行的修改 需要注意的是Sunway上面文章“深入A*算法”中引用了一个A*的游戏程序进行讲解,并有这个源码的下载,不过它有一个不小的Bug, 就是新的子节点放入OPEN表中进行了排序,而当子节点在Open表和Closed表中时,重新计算估价值后,没有重新的对Open表中的节点排序,这个问题会导致计算有时得不到最优解,另外在路网权重悬殊很大时,搜索范围不但超过Dijkstra,甚至搜索全部路网, 使效率大大降低. Drew 对这个问题进行了如下修正,当子节点在Ope…
传送门: Dijkstra Bellman-Ford SPFA Floyd 1.算法思想 Bellman-Ford算法时间复杂度比较高,在于Bellman-Ford需要递推n次,每次递推需要扫描所有的边,在递推n次的过程中,很多判断是多余的,所以考虑用队列优化,减少不必要的判断,这种算法称为SPFA(Shortest Path Faster Algorithm) SPFA算法的大致流程就是用一个队列来进行维护,初始时将源点加入队列,每次从队列中取出一个顶点,并对它所有相邻的节点进行松弛,如果某个…
示例背景: 我的朋友海伦一直使用在线约会网站寻找合适自己的约会对象.尽管约会网站会推荐不同的人选,但她并不是喜欢每一个人.经过一番总结,她发现曾交往过三种类型的人: (1)不喜欢的人: (2)魅力一般的人: (3)极具魅力的人: 尽管发现了上述规律,但海伦依然无法将约会网站推荐的匹配对象归入恰当的分类,她觉得可以在周一到周五约会那些魅力一般的人,而周末则更喜欢与那些极具魅力的人为伴.海伦希望我们的分类软件可以更好地帮助她将匹配对象划分到确切的分类中.此外,海伦还收集了一些约会网站未曾记录的数据信…
字符串查找即为特征查找: 特征即位hash: 1.将待查找的字符串hash: 2.在容器字符串中找头字符匹配的字符串,并进行hash: 3.比较hash的结果:相同即位匹配: hash算法的设计为其中的重点.…
Problem Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),设计一个时间复杂度为O(N).空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段. 注意:交换操作会有多次,每次交换都是在上次交换完成后的顺序表中进行. Input 第一行输入整数len(1<=len<…
盖尔-沙普利算法 “盖尔-沙普利算法”(the Gale-Shapley algorithm),也被称为“延迟接受算法”(deferred-acceptance algorithm),简称“GS算法”.是盖尔和沙普利为了寻找一个稳定匹配而设计出的市场机制.市场一方中的对象(医疗机构)向另一方中的对象(医学院学生)提出要约,每个学生会对自己接到的要约进行考虑,然后抓住自己青睐的(认为它是可接受的),拒绝其它的.该算法一个关键之处在于,合意的要约不会立即被接受,而只是被“抓住”(hold on to…
前段时间,在尝试音乐节拍数的提取时,终于有了突破性的进展,效果基本上比市面上的许多商业软件还要好,在作节拍数检测时,高频信息作用不大, 通过重采样减小运算量.重采样让我想起了在学校里面做的变速变调算法,在这里顺便回顾一下. OLA(Overlap-and-Add, OLA)重叠叠加算法是音频变速算法中最简单的时域方法,它是后续时域算法(SOLA, SOLA-FS, TD-PSOLA, WSOLA)的基础. OLA分为分解与合成两个部分,公式看起来很复杂,所以不贴出了,基本思路从图中更能清晰的表现…
其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入.但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做过的东西分享出去更给更多需要的人.从论文刊登后,陆陆续续收到本科生.研究生还有博士生的来信和短信微信等,表示了对论文的兴趣以及寻求算法的效果和实现细节,所以,我也就通过邮件或者短信微信来回信,但是有时候也会忘记回复. 另外一个原因也是时间久了,我对于论文以及改进的算法的记忆也越来越模糊,或者那天无意间把代码遗失在哪个角落,真的很难想象我还会全…
本文使用FFmpeg + SoundTouch实现将音频解码后,进行变调变速处理,并将处理后的结果保存为WAV文件. 主要有以下内容: 实现一个FFmpeg的工具类,保存多媒体文件所需的解码信息 将解码后的音频保存为WAV文件 SoundTouch的使用指南 1.从视频文件中提取音频保存为WAV文件 本小节实现从视频文件中提取音频,解码并保存为WAV文件. 在使用FFmpeg解码时,一般的流程是: 打开一个多媒体文件流 得到媒体流信息 查找视频.音频流的index 根据流的index查找相应的的…
转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的一种聚类算法,是BIRCH层次聚类算法的改进版本.可以应用于混合属性数据集的聚类,同时加入了自动确定最佳簇数量的机制,使得方法更加实用.本文在学习文献[1]和“IBM SPSS Modeler 15 Algorithms Guide”的基础上,融入了自己的理解,更详尽地叙述两步聚类算法的流程和细节.…
简单选择排序算法: 基本思想: 在待排序数据中,选出最小的一个数与第一个位置的数交换:然后在剩下的数中选出最小的数与第二个数交换:依次类推,直至循环到只剩下两个数进行比较为止. 实例: 0.初始状态 3,1,5,7,2,4,9,6(共8个数) 1.n=8 个数中,最小数值为1,与第一个数交换:1,3,5,7,2,4,9,6 2.剩下 n-1=7 个数中,最小数值为2,与第二个数交换:1,2,5,7,3,4,9,6 3.剩下 n-2=6 个数中,最小数值为3,与第三个数交换:1,2,3,7,5,4…
一. 马氏距离 我们熟悉的欧氏距离虽然很有用,但也有明显的缺点.它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求.例如,在教育研究中,经常遇到对人的分析和判别,个体的不同属性对于区分个体有着不同的重要性.因此,有时需要采用不同的距离函数. 如果用dij表示第i个样品和第j个样品之间的距离,那么对一切i,j和k,dij应该满足如下四个条件:    ①当且仅当i=j时,dij=0 ②dij>0 ③dij=dji(对称性) ④dij≤dik+dkj(三角不等式) 显…
S. S. Keerthi等人在Improvements to Platt's SMO Algorithm for SVM Classifier Design一文中提出了对SMO算法的改进,纵观SMO算法,其核心是怎么选择每轮优化的两个拉格朗日乘子,标准的SMO算法是通过判断乘子是否违反原问题的KKT条件来选择待优化乘子的,由KKT条件: 是否违反它,与这几个因素相关:拉格朗日乘子 .样本标记 .偏置b . b的更新依赖于两个优化拉格朗日乘子,这就可能出现这种情况:拉格朗日乘子 已经能使目标函数…