【发布时间】:2019-09-13 14:13:00
【问题描述】:
我正在处理来自机器人的音频流。我正在使用 python,并将流式传输结果保存在 .raw 文件中。当我尝试重现文件时,它非常嘈杂。我需要标准化原始音频并将新清理的音频保存在我将保存到新原始文件中的 ndarray 中。
我看到,如果我将原始文件导入 Audacity,然后应用效果归一化,则噪声会被移除并且音频完全听得见。(在 Audacity 效果归一化中,我将归一化最大振幅设置为 -1.0 dB)
这是原始数据的内容(out_1_2.raw 是包含我在 Audacity 中导入的音频的文件)
A = np.fromfile('out_1_2.raw', dtype='int16')
print(A.shape)
print("A MAX --> "+ str(max(abs(A))))
这段代码的输出是:
(1638400,)
[ 0 0 7168 16560 0 0 1024 16561 0 0]
A MAX --> 32704
在 Audacity 中导入 out_1_2.raw 并应用上述规范化效果后,我从 Audacity 将新的可听波导出到新的原始文件 (out_1_2_normalized.raw),生成的文件具有以下内容:
B = np.fromfile('out_1_2_normalized.raw', dtype='int16')
print(B.shape)
print("B MAX --> "+ str(max(abs(B))))
这段代码的输出是:
(1638400,)
[ 0 -16384 -22494 16316 0 8192 17813 16318 0 24576]
B MAX --> 32767
我希望知道必须用于此转换的算法是什么,以便我可以在我的 python 代码中应用它。如果我需要从零开始实现算法,或者是否有可以使用的python库。
这是raw audio file的示例
【问题讨论】:
-
我真的不明白
Normalize是如何消除您音频中的噪音的!你能上传一个音频文件的样本吗? -
我添加了音频文件的样本。
-
首先,原始原始文件中出现的不是噪音。您确定仅规范化就可以解决所有问题吗?规范化后你听过文件吗?
-
是的,单独规范化可以解决我的问题。音频完全听得见。如果您能听到结果,只需将附加的原始音频文件导入 audacity(它是一个单声道轨道,这些是导入编码的参数:64 位浮点数,字节顺序:小端,通道:1 Channell(单声道),起始偏移量:0 字节,导入量:100%,采样率:44100 Hz)。然后在导入之后,您只需应用效果标准化,音频就变得完全可听了。(在 Audacity 效果标准化中,我将标准化最大振幅设置为 -1.0 dB)
标签: python audio normalization