3

我有一个用 [tabread~] 阅读的音频文件)。音频以一些静音开始,我试图找到第一个非静音样本索引。

我曾尝试使用 [bonk~]、[fiddle~] 或 [sigmund~],但结果是近似的,而不是常数。

有人对此有解决方案吗?谢谢。

帕斯卡

在此处输入图像描述

4

1 回答 1

1

我已经在Pure Data 论坛中回答了这个问题,但我在这里复制它(稍微改编)以防其他人发现它有用:

如果声音在您标记的点之前完全静音(也就是说,在该点之前表格中填充了零),那么您可以简单地使用[tabread]遍历数组的元素,从第一个样本开始并检查绝对随后的值大于零。如果信号不是完全静音而是接近静音,那么您可以使用某种攻击检测(例如[bonk~])或简单地使用类似这样的东西:

...
|
[tabread array1]
|
{abs]
|
[> 0.001]
|
[sel 1]
|
...

请注意我是如何使用[> 0.001]而不是[> 0]的。调整此数字(直接作为参数或通过[>]的最右侧入口)以控制检测的灵敏度。然后,一旦[sel 1]收到一个 float 的 value 1,您就可以使用它的 bang 来停止该过程,因为您找到了第一个非静默元素。

于 2016-07-22T20:55:59.020 回答