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

问题描述 投票:0回答:3

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

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

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

waveform onset-detection
3个回答
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;
}

1
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.