基础知识:
1、振铃信号
用来呼叫被叫用户。铃流为25±3Hz正弦波,谐波失真不大于10%,输出电压有效值90+-15V,振铃采用5s断续,即一秒送,4s断,断、续时间偏差不超过±10%。
2、拨号音
用来通知主叫用户可以拨号。拨号音采用频率为450±25Hz的交流电源,发送电平为-10±3dBm,是连续的信号音。
3、回铃音
表示被叫用户处于被振铃状态,采用频率为450±25Hz的交流电源,发送电平为-10±3dBm,它是5s断续的信号音,即1s送,4s断,与振铃音一致。
4、忙音
表示本次接续遇到机线忙或被叫用户忙,采用频率为450±25Hz的交流电源,发送电平为-10±3dBm,它是0.7断续的信号音,即0.35送,0.35断。久叫不应90s后送忙音。
算法:
用 8000Hz 采样,每 256 个点作为一个分析包。两个分析包之间重叠 128 个点。
令 W[i](i=0,1,...255) 是输入波形,
S[i]=sin(2*PI*i*450/8000),i=0,1,2,...255,PI=3.1415926
C[i]=cos(2*PI*i*450/8000),i=0,1,2,...255,PI=3.1415926
计算 X=求和 W[i]*S[i],i=0,1,2,...255;
计算 Y=求和 W[i]*C[i], i=0,1,2,...255;
计算 E=X^2+Y^2,称为能量。
关于如何定阈值:
先采一段拨号音,计算它的 E1;
再采一段非拨号音(通话后在双方都说话的情况下采样),计算它的 E2;
如果 E1>4E2,可取阈值是 2*E2,
如果 E1<4E2, 把 450 换成 440 再试试。
上面的算法是如果判断拨号音,判断其它信号音判断也比较容易。
忙音是 350MS 拨号音 : 350MS 静音;
回铃音是 1S 拨号音 : 4S 静音
修改语音文件:https://blog.youkuaiyun.com/qq_25827845/article/details/79498075