我打算在实时硬件中移植语音活动检测算法,所以我成功地对语音和静音/噪声进行了分类,但现在的问题是用舒适噪声替换静音帧(最好是任何固定噪声)
所以任何人都可以建议任何开源 CNG 算法或舒适噪音如何可以是任何类型(粉红色、白色等)
为此,我们通常使用 rand() 函数,但是由于实时 DSP 不提供这些类型的函数,那么如何移植这种类型的算法?
我打算在实时硬件中移植语音活动检测算法,所以我成功地对语音和静音/噪声进行了分类,但现在的问题是用舒适噪声替换静音帧(最好是任何固定噪声)
所以任何人都可以建议任何开源 CNG 算法或舒适噪音如何可以是任何类型(粉红色、白色等)
为此,我们通常使用 rand() 函数,但是由于实时 DSP 不提供这些类型的函数,那么如何移植这种类型的算法?
您可能想尝试双管齐下的方法。首先,在对话/交换开始时有一个标准的预打包 CN 注入(如 jan 和 Jason R 建议)。
随着对话的进行,通过对 VAD 结束点和开始点之间的最低音量信号进行采样,收集低音量数据,这可能是我假设你已经拥有的降噪算法的一部分。将您的小体积样品与您的标准 CN 进行比较,如果它与您建立的某些阈值或特征相匹配,则替换(或卷积以简单地稀释您的合成 CN)。您所需要的只是一些 rand 和规范化函数,也许还有 FFT,所有这些在 C(和汇编)中都很容易获得。
对于我的问题,我已经按照上面一些人的建议寻求了一个简单的解决方案,而且我的想法是我对这种方法保持简单
在解码器方面,我采用了两种具有不同噪声强度的舒适噪声,同时流式传输解码数据,如果用户发现用一种噪声强度分布,我将切换到另一种噪声
我有 1 秒的噪音文件,重复也不会打扰人耳