在python中将音频频谱图转换为树皮频率标度

问题描述

要构建类似于RNNoise(https://jmvalin.ca/demo/rnnoise/)的降噪系统,我想将频谱图转换为“树皮频率标度”。 我做了下面的函数,但是很慢:

bark_scale = [100,200,300,400,510,630,770,920,1080,1270,1480,1720,2000,2320,2700,3150,3700,4400,5300,6400,7700,9500]
def convertToBark(spect,max_freq):
    band = max_freq/len(spect)
    bark = np.zeros((len(bark_scale)))
    current_freq = 0
    for i in range(0,len(bark_scale)):
        current_bark = []
        while current_freq * band < bark_scale[i] and current_freq<len(spect):
            current_bark.append(spect[current_freq])
            current_freq+=1
        bark[i] = tf.math.reduce_mean(current_bark)
    return bark

使用Numpy和Tensorflow函数,我认为有一个更快的解决方案,但我找不到。

我使用下一个网站获取树皮秤的值: https://ccrma.stanford.edu/~jos/bbt/Bark_Frequency_Scale.html

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)