針對傳統經典的線性混音,路數多時音量變小的缺點;自創了乙個新的混音演算法,解決該問題,聲音不會忽大忽小,而且該方法還能一定程度抑制雜訊,突出人聲,能實時計算量小,專利已經受理。
對於混音方法,網上和文獻上流傳許多方法。
1.平均權重
2.隨幅值變化的權重
3.利用衰減因子緩慢規整
4.絕對值處理
5.a+b-a*b(書寫不是很精確)
經過實驗,方法做了比較了:
方法1.唯一的缺陷就是正反時抵消的情況
方法2.計算量大,忽重忽輕
方法3.小值的時候 比 線性的 聲強要大,但是對於比較洪亮的歌曲,出現波形失真,會破音,也無法避免方法1的問題
放大4.能保證語義資訊,但是丟失了相位資訊,聲音失真。
方法5.網上流傳的經典演算法 a+b-a*b,能克服1的問題,但是聲音有些失真,其它情況,與方法1相當。
方法5的理解:
其實就是線性分量a+b與非線性分量a*b的乙個疊加
(a+b)/a*b=1/a+1/b。 (-1對於04*a*b,也就是說a+b的分量遠遠大於a*b。為了進一步達到該目的,可以進一步做優化處理,目的就是使得
a和b都盡可能小,最後混音完後,再放大。
同樣的,其他情況也是如此。
乙個演算法的延伸
int i 5 根據i輸出如下 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 今天不小心看見有這麼個題目,其實沒什麼新意。都是快老的不行了的題目。但絕大多數解題思路是按照值順利賦值的。如果問題這麼問當i 6,問值2...
乙個演算法的實現
某同學幫國外某mm做的題。演算法描述 首先將兩個字串和乙個臨界值作為引數傳入函式,比如 aaaaaaaaaa bbaaababaa 2,然後在函式中依次比較兩個字串的每個字元,當不同的字元數超過指定的臨界值後,繼續比較,並將大於等於臨界值且最大數目的第乙個字串中的相同字元轉換為大寫,比如,根據以上輸...
乙個遞迴演算法
要求實現1,1,2,3,5,8,13,21,這樣乙個序列。分析一下輸出結果 發現後乙個數字是前2個數字的和。遞迴演算法如下 public static int recursion int i if i 0 return 0 else if i 0 i 2 return 1 else return r...