過零率是沿着信號的符號變化率,即信號從正變化爲負或反變化的速率。使用零交叉率區分濁音/清音語音
過零率的Zn可以用來:
1-區分濁音/清音語音從靜態背景噪聲 -2-獨立清音語音。
這是 有聲和無聲的講話地區來區分一個簡單(但有效)的方式:
• Voiced region: lower zero-crossing rate
• Unvoiced region: higher zero-crossing rate
,這裏是我使用的代碼:
public double evaluate(){
int numZC=0;
int size=signals.length;
for (int i=0; i<size-1; i++){
if((signals[i]>=0 && signals[i+1]<0) || (signals[i]<0 && signals[i+1]>=0)){
numZC++;
}
}
return numZC/lengthInSecond;
}
我的問題是:
1-我使用零交叉的目標是消除信號的清音部分,,,這段代碼給出了零交叉率(ZERO-CROSSING RATE)。那麼我將如何做到這一點?!
2-我將如何知道「低」過零率和「高」過零率有多大?
這與編程無關,但與信號概念有關。最好去http://dsp.stackexchange.com/ – leonbloy
不,我的問題實際上是編程的一部分!這就是爲什麼我在這裏發佈它! @leonbloy – hana
出於好奇,你有一個研究鏈接,詳細說明如何使用過零率來區分濁音和濁音? – Shannon