当前位置:首页 > 企业简介 >

MELP算法的Python实现(三)

编辑:北京盛典时光文化传媒有限公司时间:2017-09-07 13:30:45阅读次数:2
MELP算法的Python实现(三)

MELP算法的Python实现(三)。

\

#本模块主要用来计算基音周期 #position显示当前位置,应该为pitch_fr/2 def find_primary_pitch(sig_in,position,lower,upper,length): #print len(sig_in) even_flag = 1 maxcorr = 0.0 ipitch = lower cbegin = -((length+upper)/2) #计算前前160的平方和 c0_0 = np.dot(sig_in[position+cbegin:position+cbegin+length],sig_in[position+cbegin:position+cbegin+length]) #print c0_0 cT_T = np.dot(sig_in[position+cbegin+upper:position+cbegin+length+upper],sig_in[position+cbegin+upper:position+cbegin+length+upper]) #print cT_T for i in range(upper,lower-1,-1): corr = np.dot(sig_in[position+cbegin:position+cbegin+length],sig_in[position+cbegin+i:position+cbegin+length+i]) # print corr if corr>0.01: #做归一化 corr = corr*corr/(c0_0*cT_T) if corr>maxcorr: #和当前最大值进行比较 maxcorr=corr ipitch = i if even_flag: even_flag=0 c0_0 += (sig_in[cbegin +position+ length] * sig_in[cbegin +position+ length]) c0_0 -= (sig_in[cbegin+position] * sig_in[cbegin+position]) cbegin=cbegin+1 else: even_flag=1 cT_T += (sig_in[cbegin+position + i - 1] * sig_in[cbegin + position+i - 1]) cT_T -= (sig_in[cbegin +position+ i - 1 + length] * sig_in[cbegin +position+ i - 1 + length]) pcorr = math.sqrt(maxcorr) return ipitch,pcorr

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:黄冈网站制作 http://huanggang.666rj.com

上一篇:使用xdebug分析thinkphp框架函数调用图 下一篇:最后一页

相关阅读