首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将"audible ticks“添加到波形以进行起始检测调试

将"audible ticks“添加到波形以进行起始检测调试
EN

Stack Overflow用户
提问于 2009-10-13 16:37:34
回答 3查看 288关注 0票数 0

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

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

有谁有办法做到这一点吗?理想情况下,这将是一个简单的for循环,我将运行几百或几千个样本。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-13 16:45:50

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2009-10-13 16:40:41

穷人的答案是:找到一段滴答声或嘟嘟声的录音,然后在每个期望的时刻将其与原始波形混合。您可以通过简单地平均蜂鸣音和输入波形的值来混合蜂鸣音的持续时间。

票数 1
EN

Stack Overflow用户

发布于 2009-10-13 16:45:12

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1561433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档