Почему Aurio не сравнивает мои аудиодорожки? - PullRequest
1 голос
/ 10 июня 2019

Я создаю веб-сайт для хора, чтобы автоматически оценивать кандидатов перед тем, как их приглашают на прослушивание.Я веду базу данных звуковых фрагментов, которые должен петь кандидат.

Я пытаюсь использовать код Aurio отсюда: https://github.com/protyposis/Aurio. Но я не могу заставить его правильно сравнивать звуковые дорожки, которыемедленнее или в другом масштабе.

private int findMatchesWang(String file1, String file2)
{
    // Setup the sources
    var audioTrack1 = new AudioTrack(new FileInfo(file1));
    var audioTrack2 = new AudioTrack(new FileInfo(file2));

    var profile = Aurio.Matching.Wang2003.FingerprintGenerator.GetProfiles()[0];
    var store = new Aurio.Matching.Wang2003.FingerprintStore(profile);
    var gen = new Aurio.Matching.Wang2003.FingerprintGenerator(profile);

    int hashCount = 0;

    gen.SubFingerprintsGenerated += delegate (object sender, SubFingerprintsGeneratedEventArgs e)
    {
        store.Add(e);
        hashCount += e.SubFingerprints.Count;
    };
    gen.Generate(audioTrack1);
    gen.Generate(audioTrack2);

    var matches = store.FindAllMatches();

    return matches.Count;
}

Когда file1 идентичен file2, функция возвращает ожидаемое значение (4686 совпадений).Я попытался вызвать функцию с помощью:

  • file2 - это та же песня, что и file1, но она воспроизводилась медленнее (см. Файл "slow.wav").

  • file2 - это та же песня, что и file1, но она воспроизводится в другом масштабе (см. файл "different-scale.wav").

В обоих случаях функция возвращает 0. Пожалуйста, найдитефайлы здесь: https://drive.google.com/drive/folders/10vKdc6C3InWpVs0g877Yub3ddv267GSZ?usp=sharing

Кто-нибудь может объяснить, что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...