Получить основные данные аудио спектра в единстве - PullRequest
0 голосов
/ 14 сентября 2018

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

Я попробовал следующий код:

    void Update () {

    AnalyzeSound();

    text1.text = "sound!\n"+ " rmsValue : " + rmsValue ;
}


void AnalyzeSound()
{
    audio.GetOutputData(samples, 0);

    //GetComponent rms

    int i = 0;
    float sum = 0;

    for (; i < SAMPLE_SIZE; i++)
    {
        sum = samples[i] * samples[i];
    }

    rmsValue = Mathf.Sqrt(sum / SAMPLE_SIZE);

    //get the dbValue
    dbValue = 20 * Mathf.Log10(rmsValue / 0.1f);
   }

Могу ли я принять rmsValue в качестве входа звука на микрофон? или я должен взять dbValue? какое должно быть пороговое значение? в нескольких словах, когда я могу сказать, что микрофон имеет звук?

1 Ответ

0 голосов
/ 15 сентября 2018

Не существует четкого и быстрого определения, которое бы отделяло шум от тишины во всех случаях. Это действительно зависит от того, насколько громкий фоновый шум. Сравните, например, тишину, записанную в безэховой камере, с тишиной, записанной рядом с системой HVAC. Проще всего попробовать поэкспериментировать с различными пороговыми значениями в дБ, ниже которых вы рассматриваете сигнал как шум, и выше которого он считается сигналом. Затем отрегулируйте пороговое значение вверх или вниз, чтобы удовлетворить ваши потребности. В зависимости от характера сигнала (например, музыка против речи) вы можете использовать другие методы, такие как обнаружение голосовой активности (https://en.wikipedia.org/wiki/Voice_activity_detection) или сверточная нейронная сеть, для сегментирования речи и музыки

...