0

我正在尝试使用 essentia 的(phyton 库)OnsetDetectionGlobal 获取音频文件的开始时间。不幸的是,当我尝试将此函数的输出传递给 Onsets 以及时获取位置时,我收到以下错误:

在 convertData raise TypeError('Cannot convert data from type %s (%s) to type %s' % TypeError: Cannot convert data from type VECTOR_REAL (<class 'numpy.ndarray'>) to type MATRIX_REAL

从错误来看,问题似乎是 Onsets 期望随着时间的推移会出现一系列 onsets 函数,而 OnsetDetectionGlobal 只返回一个......我试着玩一下大小(比如将输出重塑为矩阵)但无法解决它。这是导致错误的函数:

def infogain_onset(filename):
    audio = MonoLoader(filename=filename)()#load audio
    od1 = OnsetDetectionGlobal(method='infogain')#initialize onset algorithm

    onsets = Onsets()#initialize onset postprocessing
    onset_matrix=od1(audio)#obtain the onset function over time
    #onset_matrix=np.reshape(onset_matrix,(len(onset_matrix),1))
    onsets_infogain = onsets(onset_matrix, [1])#obtain the onsets location
    return (onsets_infogain)
4

0 回答 0