circuitcellar.com
Magazine Support   Digital Library   Products & Services   Suppliers Directory 
 
 





 

Issue 156 July 2003
Stealth Telephone Screener
Mad Dash for Flash Cash Grand Prize Winner


by Richard Wotiz

Tired of receiving bothersome automated phone calls from telemarketing companies armed with predictive dialing systems, Richard decided to fight technology with technology. The result? A PIC-based call screener that’s been consistently successful at blocking unwanted automated calls.


Start Talking BackFrame Update Analog Processing In My Dreams Sources and PDF

Almost everyone has been bothered, at some point in time, by annoying phone calls from telemarketers. After the marketers had convinced themselves that their time is more valuable than yours, they began using predictive dialing systems, which were implemented to place numerous calls at one time and connect only the first person to answer. The other calls were dropped, leaving many people to find only dead air on the line and wonder why so many people had been hanging up on them. I’ve received my share of these calls, so I recently decided to do something about them.

There are many screening products on the market today. Most of them require either the caller to know a special code to dial before connection or the callee to manually screen the call and press a button to ignore it. Other systems play a sequence of three special information tones, which are used to indicate a disconnected number, in an attempt to fool a dialing machine into hanging up. I wanted something that would neither require manual input nor offend people who don’t appreciate being screened—especially those who would rather not leave a message on an answering machine if they don’t know a special code.

The Stealth Screener was born out of these requirements (see Photo 1). It answers the phone with a natural-sounding “Hello,” and then waits for a response. A predictive dialer will remain silent, causing the screener to hang up after a short delay. If the caller plays an automated recorded message, the screener will hang up if there is continuous, unbroken speech for a long period of time. Otherwise, if it hears an appropriate response, it will play a second greeting message (e.g., “Just a minute”), and then initiate ringing tones while ringing through its internal speaker. Any other phones should have their ringers turned off, so only the screener’s ring is heard.

(Click here to enlarge)

Photo 1—The prototype was wire-wrapped and installed in a 5” × 7” plastic box. The high-voltage components are along the right side next to the battery compartment.

 

A block diagram of the system is shown in Figure 1. The hardware is based on a Microchip PIC16F872, which contains a 10-bit A/D converter and PWM D/A converter. There are a 128-Kb I2C EEPROM and a pair of MCP6022 dual op-amps. A 9-V battery powers the entire system.

(Click here to enlarge)

Figure 1—The architecture is straightforward. The phone line isn’t isolated, so be sure to unplug it before connecting the ICSP cable.

HEARING VOICES

The Stealth Screener’s most important characteristic is the voice detection algorithm shown in Figure 2. I used a commonly known method of tracking the audio’s speech and noise levels and computing a threshold based on the values.

(Click here to enlarge)

Figure 2—The VOX algorithm distinguishes between speech and background noise levels, and adjusts its thresholds accordingly.

The levels are derived from the root mean square (RMS) energy of the input signal. As each sample is acquired, its square is computed and summed. Then, at the end of each block of 200 samples, the square root of the sum is computed. I used a reverse look-up table for the square root because computing it algorithmically would have been too slow.

The RMS energy is then run through a pair of averaging filters. The speech filter has a fast attack time and a slow decay to track the peaks of the audio envelope. To track the valleys, the noise filter has a slow attack and fast decay.

The VOX turn-on threshold is set to the larger of one-sixteenth of the speech level and two times the noise level, which is subject to minimum and maximum limits. After it’s turned on, the turn-off threshold is one-eighth of the overall highest speech level. There are various ways to fine-tune the thresholds beyond the current algorithm, but they aren’t necessary.