python - 机器学习 - 有什么解决 Python 舍入错误的建议吗?

标签 python rounding librosa

我正在使用 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_startblock_stop变量,但我似乎无法匹配我的音频帧长度。

最佳答案

使用标准库中的 Fraction 包: https://docs.python.org/2/library/fractions.html

它对精确的有理数运算很有用。

关于python - 机器学习 - 有什么解决 Python 舍入错误的建议吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49679254/

相关文章:

python - 我在运行 pip install pokitdok 时遇到错误?

python - 如何使用 cgi python 脚本发送对 html 的响应

php - 使用 PHP Maths 和 Round 计算页数

floating-point - 为什么 Octave 四舍五入到 1 'earlier' 而不是 0?

excel - 将值四舍五入到最接近的 50

python - PySpark - 使用共享相同值的两个键创建对 RDD

c# - IronPython索引器参数编译错误

python - 在时间戳记librosa上分割音频

python - 调用外部模块时多处理池变慢

python - 使用librosa函数将频谱图转换为音频