# HCI 575: Homework 3 - Recognizing Touch Tones

## List of Audio Libraries and References

The following list of C libraries and references for audio processing is provided for your convenience only. You are not required to use any of these libraries/references to solve this homework:

- Touch Tone Dialing (READ THIS FIRST!) .
- The fastest Fourier Transform in the West library.
- Aubio.
- libsndfile.
- Example code for computing the spectrogram in C: alsgram.zip.
- The Fourier Transform and its Applications : Video Course.

You can use either MATLAB or C/C++ for this assignment.

# 1. Recognize Single Phone Digits from Audio

Your task is to write a program that can detect a single digit from audio of a touch-tone phone keypad (0-9, *, #) and print the digit.

##### Students with perfect pitch are not exempt from solving this problem. The digit must be detected by the program and not by the programmer.

Audio Data | Program Output
--- | ---
single-digit-1 | 8
single-digit-2 | Output of your program.
single-digit-3 | Output of your program.
single-digit-4 | Output of your program.
single-digit-5 | Output of your program.
single-digit-6 | Output of your program.
single-digit-7 | Output of your program.
single-digit-8 | Output of your program.
single-digit-9 | Output of your program.
single-digit-10 | Output of your program.
single-digit-11 | Output of your program.
single-digit-12 | Output of your program.

    Put your code here

# 2. Recognize Area Codes from Audio

In this problem you have to write a program that can recognize area codes from audio and print the area code.

##### Students with perfect pitch are not exempt from solving this problem. The area code must be detected by the program and not by the programmer.

Audio Data | Program Output
--- | ---
area-code-1 | 345
area-code-2 | Output of your program.
area-code-3 | Output of your program.
area-code-4 | Output of your program.
area-code-5 | Output of your program.
area-code-6 | Output of your program.
area-code-7 | Output of your program.
area-code-8 | Output of your program.
area-code-9 | Output of your program.
area-code-10 | Output of your program.

    Put your code here

# 3. Recognize Computer Generated Phone Numbers from Audio

In this problem your goal is to write a program to recognize full 10-digit phone numbers and print the phone number.

##### Students with perfect pitch are not exempt from solving this problem. The phone number must be detected by the program and not by the programmer.

## Part A. Phone Numbers with Fixed Duration/Pause

Audio Data | Program Output
--- | ---
phone-number-1 | 204-009-9212
phone-number-2 | Output of your program.
phone-number-3 | Output of your program.
phone-number-4 | Output of your program.
phone-number-5 | Output of your program.
phone-number-6 | Output of your program.
phone-number-7 | Output of your program.
phone-number-8 | Output of your program.
phone-number-9 | Output of your program.
phone-number-10 | Output of your program.

    Put your code here

## Part B. Phone Numbers with Random Duration/Pause

Audio Data | Program Output
--- | ---
phone-number-1 | Output of your program.
phone-number-2 | Output of your program.
phone-number-3 | Output of your program.
phone-number-4 | Output of your program.
phone-number-5 | Output of your program.

    Put your code here

# 4. Recognize Phone Numbers from Noisy Audio

In this problem your goal is to write a program to recognize full 10-digit phone numbers.

##### Students with perfect pitch are not exempt from solving this problem. The phone number must be detected by the program and not by the programmer.

Audio Data | Program Output
--- | ---
phone-number-1 | Output of your program.
phone-number-2 | Output of your program.
phone-number-3 | Output of your program.
phone-number-4 | Output of your program.
phone-number-5 | Output of your program.

    Put your code here