介绍
引言
ALSoundDetection模块在输入音频缓冲区中探测有效声音。 该探测基于音频信号水平,从而对任何声音类型均进行类似探测(必须保证声音足够响亮)。
原则
在NAO的前额扩音器信号上进行处理。首先,通过计算一个移动窗口上的信号平均值,对原始信号进行平滑处理。 然后,在这个平均信号上应用一个基于峰值的探测,以便(通过ALMemory)向用户提供探测到的声音起始指数。 当平均信号的水平回到(在峰值探测前的)初始值时,最终可能探测到该声音的尾音。
探测的敏感度
如下所示,可通过调用setParameter函数,来设定探测的敏感度:
#python example proxy = ALProxy("ALSoundDetection","192.168.0.0",9559) proxy.setParameter("Sensibility",0.2)
敏感度值应设定在0(最不敏感)和1(最敏感)之间。默认值为"0.90"。
如何收集结果?
算法输出被插入ALMemory中的"SoundDetected"关键码。
该关键码的构成如下:
[[index_1, type_1, confidence_1, time_1], ..., [index_n, type_n, confidence_n, time_n]]
其中,"n"是在最后一个音频缓冲区中探测到的"声音"数量; "index"可以是声音起始(如果"type"等于1)或声音结束(如果"type"等于0)的指数(在样本中); "time"是探测的时间,以微妙为单位, "confidence"给出概率的估计值[0;1],指示模块探测到声音是否对应于一个真实的声音。
通过将这个ALMemory关键码订阅至Choregraphe中,就可以(像其它关键码一样)解析并使用它(右击图表的左侧:"Add input from ALMemory")