当前位置: 首页>>代码示例>>C++>>正文


C++ Wav::returnSampleRate方法代码示例

本文整理汇总了C++中Wav::returnSampleRate方法的典型用法代码示例。如果您正苦于以下问题:C++ Wav::returnSampleRate方法的具体用法?C++ Wav::returnSampleRate怎么用?C++ Wav::returnSampleRate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Wav的用法示例。


在下文中一共展示了Wav::returnSampleRate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc, char* argv[])
{
    if(argc <= 1)
    {
        cout << "Error";
        exit(0);
    }
    bool waitingForParam = true;
    string paramName;
    
    for (int i = 1; i < argc; ++i) {
        if (waitingForParam) {
            if (argv[i][0] == '-') { // new param 
                paramName = argv[i];
                waitingForParam = false;
            }
        }
        else {
            if (argv[i][0] == '-') { // empty value
                params.insert(make_pair(paramName, string()));
                paramName = argv[i];
            } else {
                params.insert(make_pair(paramName, string(argv[i])));
                waitingForParam = true;
            }
        }
    }
    
    string sample_name = argv[1];
    Wav sampleWave;
    MFCC mfcc;

    if(!sampleWave.readwav(sample_name, DOUBLE))
    {
        cout << "Cannot read the sample file";
        exit(0);
    }

    vector<double> rawData = sampleWave.returnRawSignal();

    int sample_rate = sampleWave.returnSampleRate();

    vector<DIMENSIONS_2> MFCC = mfcc.transform(rawData, sample_rate);

    if(exists("-t", params))
    {   
        Training training("repository/training/");
        if(training.open())
        {
            struct sampleData sample;

            sample.N = MFCC.size();
            sample.M = MFCC[0].size();
            sample.sample_name = argv[3];
            sample.speaker = argv[4];

            training.write_2D(MFCC, sample);
        }
    }


    if(exists("-r", params))
    {
        Training training("repository/training/");
        pair<int, string> minDistance(INT_MAX, "");
        if(training.open())
        {
            vector<string> files = training.files();
            string person; 

            for(unsigned i=0; (i < files.size()); i++)
            {
                vector<vector<double> > data;
                data.clear();
                string* speaker_features = new string[2];

                data = training.read_2D("repository/training/" + files[i], speaker_features);

                int currDistance = DTW::Distance(MFCC, data);
                if(currDistance < minDistance.first) {
                    minDistance.first = currDistance;
                    minDistance.second = speaker_features[0];
                    person = speaker_features[1];

                }
            }
            cout << "You said: " << minDistance.second << " You sound like: " << person << endl;
    
      }else{
        cout << "Cannot open the training file";
      }
    }

}
开发者ID:BruceLiCong,项目名称:RAPCS,代码行数:94,代码来源:DTWExample.cpp


注:本文中的Wav::returnSampleRate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。