Skip to content

Bonus-Hunters/Speaker-Identification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Speaker Identification System

{F307172D-EC22-492B-A0F9-541EA6C0D3B1}

📌 Overview

This project implements a speaker identification system using Dynamic Time Warping (DTW) algorithms with various optimization techniques. The system compares audio features (MFCC coefficients) to identify speakers from test samples.

🚀 Key Features

  • Multiple DTW Implementations:
    • Standard DTW with memory optimization
    • Pruned DTW for faster computation
    • Dijkstra-based DTW approach
  • Parallel Processing for efficient user feature loading
  • Accuracy Calculation to evaluate system performance
  • Modular Design with clear separation of concerns

⚙️ Technical Specifications

Core Algorithms

  1. DTW_MemoryReduction - O(F²) per comparison
  2. dtw_pruning - O(F×W) per comparison (W = pruning width)
  3. DTW_Dijkstra - Priority queue-based approach

Performance Characteristics

Component Time Complexity Space Complexity
DTW (Standard) O(F²) O(F)
DTW (Pruned) O(F×W) O(F)
User Loading O(M×N×F) O(M×N×F)
Test Loading O(T×F) O(T×F)

Where:

  • F = Frames per sequence
  • W = Pruning width
  • M = Number of users
  • N = Sequences per user
  • T = Number of tests

🛠️ Implementation Details

Core Classes

Algorithms.cs

Contains all DTW implementations:

  • DTW_MemoryReduction()
  • dtw_pruning()
  • DTW_Dijkstra()
  • runAlgorithm() - Main driver function

HelperClass.cs

Manages data loading and processing:

  • loadNextUser()
  • loadNext_N_tests()
  • LoadAllUsers()
  • calcAccuracy()

UserFunctions.cs

Handles database operations:

  • getUsers()
  • SaveUserFeatures()
  • LoadUserFeatures()

📊 Performance Optimization

  1. Memory-Efficient DTW:

    • Uses sliding window technique (O(F) space)
    • Avoids full matrix allocation
  2. Parallel Processing:

    • Concurrent user feature loading
    • Parallel DTW computations
  3. Pruning Techniques:

    • Reduces search space with window constraints
    • Early termination conditions

📸 Screenshots

{30AA0F76-6A6A-463A-B930-A249DECFC2B0}

image

image

About

This project implements a speaker identification system using Dynamic Time Warping (DTW) algorithms with various optimization techniques.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors