Voice activity detection in SDK

Voice Activity Detection is done in the SDK by using the tone detection mechanism. To do this, your program should enable tones, using DivaReportTones() setting bEnable = true. 

From then on, you will receive the event DivaEventToneDetected whenever the Diva Media Board detects a tone on the line. Each tone detected event comes with a parameter that tells you which kind of tone was detected on the line. 

For the purposes of VAD, the Diva Media Board sends a special tone indication called DivaHumanSpeech. When you receive this tone indication, you know that there is speech activity on this channel, and so you can use this to set or reset timers, or record "active talker" information, or whatever your application requires. 

By using this event to reset a "silence timer" in your application you can also implement silence detection, i.e. if the silence timer ever expires then you know that no "human speech" has been detected on the line for 'n' seconds.

NOTE

The above description assumes a Diva Server board with DSPs is being used.  For information on performing silence detection without DSPs, refer to the linked article.

Return to Documentation Home I Return to Sangoma Support