我正在使用 Python 将元素从音乐中分离出来。训练一个模型,我将我的音频分成帧,并为每个帧都有一个标签 - 1 或 0。不幸的是,由于舍入误差,我的标签总是短 1 或 2 帧。
将我的音频转换为帧,我得到一个值 (13, 3709)
s = []
for y in audio:
mfcc = librosa.feature.mfcc(y= y, sr = 16000, n_mfcc=13, n_fft=2048, hop_length = 1024)
s.append(mfcc)
将我的文本文件(对于我正在使用的 mp3)从毫秒转换为帧数,我得到一个向量值 3708。
output = []
for block in textCorpus:
block_start = int(float(block[0]) * 16000 / 1024) # Converted to frame number
block_end = int(float(block[1]) * 16000 / 1024) # Converted to frame number
singing = block[2]
block_range = np.arange(block_start, block_end, 1) # Step size is 1 (per frame number)
# extraneous code
我试过使用 Decimal
, math.floor
还有math.ceil
在我的block_start
和 block_stop
变量,但我似乎无法匹配我的音频帧长度。
最佳答案
使用标准库中的 Fraction 包: https://docs.python.org/2/library/fractions.html
它对精确的有理数运算很有用。
关于python - 机器学习 - 有什么解决 Python 舍入错误的建议吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49679254/