Ozeki VoIP SIP SDK makes it easy to implement Voice Activation Detection (VAD)
into your application. After reading through this page you will be
fully familiar with all the essential terms concerning VAD technology and what you will
need for creating your own solution using Ozeki VoIP SIP SDK.
Windows 8, Windows 7, Vista, 200x, XP
Free disk space:
Visual Studio 2010 (Recommended), Visual Studio 2008, Visual Studio 2005
Voice Activation Detection (VAD) is a technology that is used for detecting the
incoming voice activation of a phone call. It means that the detecting algorithm is capable to
specify when the remote party speaks and it differentiates it from the silence periods.
Figure 1 - Voice activation detection
Voice Activation Detection is mainly used in predictive dialer systems, when you need to
specify if the remote party is a human or an answering machine. In those solutions
the main algorithm is used for measuring the length of the speech and the silence periods
in between the speaking sections. This can only be written by having VAD technology
implemented in the background.
Ozeki VoIP SIP SDK provides superior VAD support from the version 9.1.0. The following sample code
describes how you can use this feature for detecting voice activation.
The following source code is based on the extraordinary background support that Ozeki VOIP SIP SDK
provides. You will need to download and
install Ozeki VoIP SIP SDK for using the sample code.
The sample program is written in C# programming language, therefore you will also need to have
Visual Studio 2010 and .NET Framework 4.0 for being able to use the program.
Using the Voice Activation Detection function of Ozeki VoIP SIP SDK
The Voice Activation Detection works with a special inbuilt MediaHandler class, the
VADFilter. This class is responsible for the voice detection. The example program
that is attached to this article contains a basic example how you can use the VADFilter class.
As the VADFilter is a standard MediaHandler, it can be used similar to other MediaHandlers.
Code 1 shows how you can declare and initialize the filter object.
vadFilter = new VADFilter();
Code 1 - The declaration and initialization of the VADFilter object
The VADFilter object needs an AudioProcessor object that will be connected to the
filter by the media connector object. Code 2 shows the initialization and setting of the AudioProcessor
This AudioProcessor works for noise reduction in the call. This is necessary if you do not
want to detect background noises as speech in the VAD process.
audioProcessor = new AudioProcessor();
Code 2 - Settings for the AudioProcessor object
When both the VADFilter and the AudioProcessor is set, they need to be connected as well as
the filter needs to be connected to the audio sender object, and the
microphone to the AudioProcessor (Code 3).
You can notice that basically the AudioProcessor and the VADFilter is set in between the
microphone and the audio sender object. The call itself works the same, only that the
talk does not goes directly from the microphone to the audio sender, but it goes through the
AudioProcessor and the VADFilter that is capable of detecting the voice activity.
Code 3 - You need to connect the proper MediaHandler object together
The sample program is a simple softphone application and works similar to a softphone. The other methods
are not changed. You only need to add the above mentioned changes if you want to use the VAD functionality.
This article introduced you the basic knowledge about Voice Activation Detection
and showed how Ozeki VoIP SIP SDK can help you to fulfill your goals.
If you have read through this page carefully, you already have all the knowledge you need
to start your own solution.
As you are now familiar with all the terms concerning this topic, now it is time
to take a step further and explore what other extraordinary solution Ozeki VoIP SIP SDK can provide to you.