You are here: CSP Developer’s Guide: Overview > 7 Configuring and Using Resources on the DSP Series 2 Cards > PVD/AMD Overview

PVD/AMD Overview

Introduction

The Positive Voice Detection/Answering Machine Detection (PVD/AMD) functions provide analysis of the incoming Pulse Coded Modulation (PCM) data input to determine if the PCM is one of the detectable signals.

The host has the ability to configure and query the PVD and AMD parameters on the DSP Series 2 card. The host can also attach a PVD or AMD receiver to a particular channel, so that it can detect the signal on that particular channel. While attaching the receiver, the host has the option to set the PVD/AMD parameters for a particular channel that are different from the board level default values. When the signal is detected on the particular channel, the CSP acts like the host using the Call Processing Events.

PVD/AMD Functionality

The following functions comprise the PVD/AMD feature. Refer to PVD/AMD Functional Diagram, PVD/AMD Block Diagram, and Voice Activity Detector to support PVD/AMD functionality.

User Defined State Machine

Using the Call Processing Events (CPEs) provided by the PVD and/or AMD, the developer can create a state machine that allows:

• Solutions to be deployed that match a culture with a region. For example, differences between greetings can determined.

• Maximum flexibility and control to address field problems in the most effective and timely manner.

Energy Detection

The energy of the signal is approximated by taking the sum of the absolute value of the speech samples over a five millisecond (ms) window.

Positive Voice Detection (PVD)

The PVD feature, under host control, provides energy detection on a selected channel. The following parameter such as time constant, dB level, and sensitivity settings can be configured and are defined by the energy detection receiver. The energy detection receiver makes no distinction between a recorded voice, a live voice or any noise.

The PVD feature informs the host application when it detects the following:

• Energy/noise (rising edge)

• Energy/noise is removed (falling edge) with the duration of the noise (in the data of the falling edge)

• Silence

The PVD takes the signal output of the energy block and computes a long term estimate of the background noise based on the statistics of the signal. Signals are reported as positive voice when the short term energy measurement exceeds the long term noise by the specified API programmable noise margin. The PVD brackets individual words with detection events.

Answering Machine Detection (AMD)

The AMD uses the output of the PVD to provide indications of long term voice activity, and the presence of tonal signals. Long term voice requires that the positive voice be present for a user-programmable turn-on time to indicate voice present, and be absent for a hangover time to indicate a long-term voice is not present.

In addition, the AMD provides a report of any single tone present on the voice channel.

• The AMD adds a tone receiver looking in the frequency ranges defined in the PVD/AMD configuration.

• The AMD falling edge event also indicates the frequency of the detected tone.

• The AMD only detects single frequency tones.

Example: If you perform PVD/AMD on a fax machine the application will receive PVD events and the AMD tone events. This is because the PVD does not discriminate on tones; it is looking for any energy that falls within the defined Time Constant, dB level, and sensitivity settings. If you did not have the AMD portion applied in the Resource Connect message during a fax test, you would have no idea that the energy being detected is actually a tone at a given frequency.

Figure 7-10 PVD/AMD Functional Diagram

Figure 7-11 PVD/AMD Block Diagram

Figure 7-12 Voice Activity Detector

See Pulse Code Modulation.
Digital Signal Processor
The condition of a component at a given instant. The current "context" of a PPL object, such as Idle, Seizing, Answered. In PPL files, a State is represented by a circle.
In PPL, a condition that, when met, drives a state machine (PPL Component) from one state to another, by invoking an associated Primitive. In PPL files, an Event is marked by an arrow and text.