Unity показывает аудио спектр (волну) при загрузке аудио файла - PullRequest
0 голосов
/ 01 марта 2019

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

Как это введите описание изображения здесь

Но естьинформация, показывающая спектр в реальном времени, но нет информации, показывающей волну загруженного аудиофайла.

1 Ответ

0 голосов
/ 02 марта 2019

То, что вы, вероятно, ищете, это отображение общей амплитуды аудиоданных, которые вы получаете.Однако данные, которые вы получаете из Unity с помощью GetSpectrumData, представляют собой массив, показывающий амплитуду на множестве разных частот.Чтобы найти подходящую «общую» амплитуду, вы можете либо усреднить, найти максимальное значение или суммировать содержимое этого массива, а затем использовать это новое значение для рисования вашей визуализации.Я бы, вероятно, пошел с поиском максимума, то есть самого высокого / самого громкого значения в массиве.Вы можете сделать это с помощью Linq:

using System.Linq;
/*...*/
float loudest = yourSpectrumDataArray.Max();

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

public float AmplitudeToDB(float value)
{
    return 20.0f * Mathf.Log10(value / 2.5f + 1.5849e-13f);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...