Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#include
using namespace std; vector
readMFCC(const string &filename) { // This function reads MFCC feature values from file vector
features; ifstream infile("mfcc_files/" + filename); if (!infile) { cerr << "Error opening file: " << filename << endl; return features; } double val; while (infile >> val) { features.push_back(val); } infile.close(); return features;// } double euclideanDistance(const vector
& a, const vector
& b) { double sum = 0; for (size_t i = 0; i < a.size(); i++) { sum += pow(a[i] - b[i], 2); } return sqrt(sum); } int main() { vector
classes = {"AKAL", "AMAR", "ANEKO", "EDURO", "KANOK"}; vector
> class_files = { {"AKAL00.mfc", "AKAL01.mfc", "AKAL02.mfc", "AKAL03.mfc", "AKAL04.mfc"}, {"AMAR00.mfc", "AMAR01.mfc", "AMAR02.mfc", "AMAR03.mfc", "AMAR04.mfc"}, {"ANEK00.mfc", "ANEK01.mfc", "ANEK02.mfc", "ANEK03.mfc", "ANEK04.mfc"}, {"EDUR00.mfc", "EDUR01.mfc", "EDUR02.mfc", "EDUR03.mfc", "EDUR04.mfc"}, {"KANOK00.mfc", "KANOK01.mfc", "KANOK02.mfc", "KANOK03.mfc", "KANOK04.mfc"} }; int numClasses = classes.size(); vector
> distances(numClasses); vector
avgError(numClasses, 0.0); for (int c = 0; c < numClasses; c++) { // Read seed (first file) vector
seed = readMFCC(class_files[c][0]); double sum = 0; for (size_t f = 0; f < class_files[c].size(); f++) { vector
sample = readMFCC(class_files[c][f]); double dist = euclideanDistance(seed, sample); distances[c].push_back(dist); sum += dist; } avgError[c] = sum / class_files[c].size(); } // Print Output cout << left << setw(10) << "Classes" << setw(45) << "Class Members (Distances)" << "Average Error" << endl; cout << string(80, '-') << endl; for (int c = 0; c < numClasses; c++) { cout << left << setw(10) << classes[c]; for (size_t d = 0; d < distances[c].size(); d++) { cout << fixed << setprecision(2) << distances[c][d]; if (d != distances[c].size() - 1) cout << ", "; } cout << setw(10) << " " << avgError[c] << endl; } return 0; }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)