Skip to content

DTMF Decoder interprets telephone keypad audio, converting dial tones into digits. Designed in Python using Fast Fourier Transform (FFT) and DSP, it applies noise filtering techniques with NumPy, pandas and SciPy to reliably decode dual frequency tones even in noisy recordings.

Notifications You must be signed in to change notification settings

Dhruvbam/Dual-Tone-Multi-Frequency-Decoder

Repository files navigation

Dual Tone Multi Frequency (DTMF) Decoder

Project Image

The DTMF Decoder is a Python based program that explores how to interpret dual-tone multi-frequency (DTMF) audio signals, the foundation of touch tone telephony and modern telecom signaling, transforming dial tones into their corresponding digits and symbols. Developed for the Computational Thinking & Data Science course, this project walks users through the entire digital audio pipeline: synthesizing tones, converting analog audio to digital and performing detailed frequency analysis, all developed in Python using Jupyter. By applying Fast Fourier Transform (FFT) and using advanced Python libraries like NumPy, pandas, and SciPy, the decoder reads audio as WAV files and decodes each key press’s unique dual tone frequencies, accurately mapping telephone keypad tones to digits (0-9, *, #). Employing advanced Digital Signal Processing (DSP) and robust noise filtering techniques ensures 100% accuracy even in the presence of background noise. This project demonstrates technical depth in advanced scientific Python workflows and a hands-on approach to modern telecom signaling, visually driven experimentation and comprehensive data science.

Features & Technical Details

  • Real World Audio Decoding: Accurately decodes telephone keypad dial tones from WAV files and maps it to digits and symbols (0-9, *, #).
  • Fast Fourier Transform (FFT): Utilizes Fast Fourier Transform to analyze frequency spectra for each audio segment, matching detected tones to DTMF standards.
  • Noise Filtering: Implements advanced digital signal processing and noise filtering techniques to reliably identify tones, even in noisy recordings.
  • Audio Pipeline: Covers audio synthesis, analog to digital conversion, detailed frequency analysis, and digit mapping.
  • Hands On Jupyter Workflow: Step by step code in Python Notebooks encourages experimentation and interactive learning.
  • Data Science Focus: Integrates visualizations, robust data handling and reinforcing experimentation and analytical debugging in a data science throughout the project.

Built With

  • Python Python: Primary language for audio processing workflows.
  • NumPy NumPy: For FFT implementation and numerical operations.
  • pandas pandas: For data manipulation and table handling.
  • SciPy SciPy: For low-level digital signal processing and filtering.
  • Jupyter Jupyter Notebooks: Interactive development and step-by-step demonstration.

Installation

To get a local copy up and running, follow these steps:

  1. Clone the repo
    git clone https://github.com/Dhruvbam/Dual-Tone-Multi-Frequency-Decoder
  2. Ensure you have Python and the necessary libraries installed.
  3. Run the Jupyter Notebooks (DTMF - Part 1 - Final.ipynb through DTMF - Part 4 - Final.ipynb) in sequence to experience the encoding, decoding, and analysis process.

Screenshots/Demo

Screenshots. Screenshots

About

DTMF Decoder interprets telephone keypad audio, converting dial tones into digits. Designed in Python using Fast Fourier Transform (FFT) and DSP, it applies noise filtering techniques with NumPy, pandas and SciPy to reliably decode dual frequency tones even in noisy recordings.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published