Похожее видео
00:00 Введение и установка библиотеки Замена кода вывода изображения на код обработки звука. Использование библиотеки NVVI для обработки звука. Установка библиотеки через меню Avalonia Loudness. 00:37 Обзор возможностей NVVI NVVI работает с дискретными сигналами позволяя обрабатывать аудиосэмплы. Возможность извлечения данных таких как уровень громкости и частота. Утилиты для преобразования сигналов в децибелы и другие единицы измерения. 01:35 Измерение громкости Фокус на измерении сигнала громкости. Отображение значения громкости в разных форматах: число полоса со стрелкой интегрированная динамика. Объяснение формата WAV как файла PCM с 16 битами на сэмпл. 02:33 Преобразование буфера данных Преобразование необработанного буфера данных в значение громкости. Привязка значения громкости к свойству в модели представления. Создание приватного вспомогательного класса для обработки данных. 04:55 Захват звука Создание устройства захвата звука. Начало захвата звука и обработка данных. Управление устройством захвата и его удаление при закрытии приложения. 07:49 Анализ данных WAV Анализ формата WAV как шестнадцатибитного PCM-файла. Вычисление количества сэмплов в буфере. Преобразование буфера в дискретный сигнал с частотой дискретизации 44100 Гц. 11:02 Извлечение значений сэмплов Извлечение шестнадцатибитных значений сэмплов из буфера. Использование бинарного ридера для чтения данных. Деление значений на 32768 для преобразования в формат с плавающей запятой. 12:42 Расчёт громкости в децибелах Выражение значения громкости в децибелах. Использование вспомогательного класса Scale для преобразования значений. Получение значения громкости в децибелах с помощью класса Scale. 13:27 Вычисление децибел Использование RMS для вычисления децибел. RMS рассматривается как среднее значение энергии сигнала. 13:58 Установка модели представления Переход в новый поток для установки модели представления. Выполнение команды для установки значения краткосрочной громкости. 14:31 Проблемы с вычислением Вычисление лофтов для каждого сэмпла и обновление пользовательского интерфейса. Обнаружение некорректного поведения значений. 15:35 Анализ краткосрочных значений Сравнение краткосрочных и усреднённых значений. Усреднённое значение остаётся на уровне 20 в то время как краткосрочное падает до 50. 16:34 Разработка алгоритма усреднения Использование таймера для усреднения образцов за секунду. Расчёт новых средних значений на основе данных за секунду. 17:15 Реализация алгоритма усреднения Создание массива чисел с плавающей запятой для хранения образцов. Замена списка на стек для удобства добавления и удаления элементов. 19:16 Исправление ошибок в алгоритме Исправление логики добавления и удаления элементов в стеке. Переход на использование очереди для корректного извлечения элементов. 20:23 Тестирование и корректировка Тестирование усреднённых значений с 40 выборками. Обнаружение некорректных расчётов и необходимость корректировки средних значений. 21:32 Обработка стрелки и полосы Сопоставление значения стрелки с кратковременными углами наклона. Расчёт размера полосы на основе мгновенных углов наклона. 22:01 Заключение Призыв к участию в Discord для дальнейшего обсуждения и разработки. Подчёркивание важности наличия информации о звуке и громкости. Обещание продолжить работу над графиком и функциональностью приложения.,
Похожее видео