将“可听到的滴答声”添加到波形中以进行开始检测调试

时间:2009-10-13 16:37:34

标签: waveform onset-detection

我正在玩自己的一些起始/节拍检测算法。我的输入是.wav文件,输出是.wav文件;我可以访问float []数组的整个波形。

我无法想出一种调试和评估算法的好方法。由于我的输入和输出都是听觉的,我认为如果我的调试工具也是听觉的话,它最有意义,例如。通过在起始点向.wav文件添加可听见的“滴答声”或“嘟嘟声”。

有没有人对如何做到这一点有任何想法?理想情况下,这将是一个简单的for循环,我将运行几百或几千个样本。

3 个答案:

答案 0 :(得分:1)

穷人的回答:找到嘀嗒或嘟嘟声的录音,然后在每个所需时刻将其与原始波形混合。您可以通过在蜂鸣声持续时间内简单地对蜂鸣声和输入波形的值进行平均来进行混音。

答案 1 :(得分:1)

float * sample = first sample where beep is to be mixed in
float const beep_duration = desired beep duration in seconds
float const sample_rate = sampling rate in samples per second
float const frequency = desired beep frequency, Hz
float const PI = 3.1415926..
float const volume = desired beep volume
for( int index = 0; index < (int)(beep_duration * sample_rate); index++ )
{
   sample[index] += 
      sin( float(index) * 2.f * PI * sample_rate / frequency ) * volume;
}

答案 2 :(得分:0)

找出你要在样本中插入刻度线的位置(包括刻度线的长度,所以这是一个范围,而不是一个点)。获取波形该部分的FFT。添加到频域表示您想要的“滴答”声音的任何频率分量(最简单的只是单一频率音调)。对结果执行逆FFT,然后将音调混合到原始信号中。我想(自从我做完这件事以来已经有一段时间了。)