Presentation

Introduction

The ALSoundDetection module detects significative sounds in incoming audio buffers. This detection is based on the audio signal level and as such behaves similarly on any type of sound (provided it is loud enough).

Principles

The processing is made on NAO's front microphone signal. The raw signal is first smoothed by calculating the signal mean on a moving window. A peak based detection is then applied on this averaged signal to provide the user (through ALMemory) with the index of the detected sound start. The end of that sound is eventually detected when the level of the averaged signal comes back to its original value (before the peak detection).

Sensibility of the detection

The sensibility of the detection can be set by calling the setParameter function as follows:

#python example proxy = ALProxy("ALSoundDetection","192.168.0.0",9559) proxy.setParameter("Sensibility",0.2)

The sensibility should be set to a value between 0 (less sensitive) and 1 (more sensitive). The default value is "0.90".

How to collect the results ?

The output of the algorithm is inserted at the "SoundDetected" key in ALMemory.

This key is organised as follows:

[[index_1, type_1, confidence_1, time_1], ..., [index_n, type_n, confidence_n, time_n]]

, where "n" is the number of "sounds" detected in the last audio buffer, "index" is the index (in samples) of either the sound start (if "type" is equal to 1) or the sound end (if "type" is equal to 0), "time" is the detection time in micro seconds and "confidence" gives an estimate of the probability [0;1] that the sound detected by the module corresponds to a real sound.

This ALMemory key can be retrieved and used (like any others) by subscribing to it in Choregraphe (right click on diagrams left border : "Add input from ALMemory"):





Copyright © 2010 Aldebaran-Robotics - All rights reserved