以下是代表某人讲话记录的信号。我想基于此创建一系列较小的音频信号。想法是检测“重要”声音的开始和结束时间,并将其用作标记,以制作新的音频片段。换句话说,我想将静音用作指示音频“块”何时开始或停止的指标,并以此为基础创建新的音频缓冲区。
例如,如果某人记录自己说
Hi [some silence] My name is Bob [some silence] How are you?
那么我想从中制作三个音频片段。一个说Hi
,一个说My name is Bob
,一个说How are you?
。
我最初的想法是通过音频缓冲区不断检查是否存在低振幅区域。也许我可以通过获取前十个样本来进行此操作,取平均值,如果结果很低,则将其标记为无声。我将通过检查接下来的十个样本来继续处理缓冲区。通过这种方式递增,我可以检测到信封的开始和停止位置。
如果有人对好的,简单的方法有任何建议,那就太好了。就我的目的而言,解决方案可能是非常基本的。
我不是DSP的专业人士,但了解一些基本概念。另外,我将以编程方式进行此操作,因此最好讨论算法和数字样本。
感谢您的所有帮助!
编辑1
到目前为止反应良好!只是想澄清一下,这不是实时音频,我将自己用C或Objective-C编写算法,因此使用库的任何解决方案都不是真正的选择。