Спектрограмма аудио - это визуальное представление спектра звукового сигнала в зависимости от времени. Это полезный инструмент для анализа и визуализации аудио данных.
В JavaScript существует несколько библиотек, которые позволяют генерировать спектрограммы аудио. Одной из таких библиотек является "audio-visualizer", которая предоставляет удобные средства для создания визуализации звуковых данных в реальном времени.
Для начала работы с "audio-visualizer" необходимо подключить библиотеку к проекту. Это можно сделать с помощью тега "script" в HTML.
<script src="path/to/audio-visualizer.js"></script>
После подключения библиотеки, можно использовать ее методы для создания спектрограммы аудио. Ниже приведен пример кода, который демонстрирует основные шаги для создания спектрограммы.
// Создание аудио контекста const audioContext = new (window.AudioContext || window.webkitAudioContext)(); // Загрузка аудио файла const audioElement = document.getElementById('audio'); const audioSource = audioContext.createMediaElementSource(audioElement); // Создание анализатора const analyzer = audioContext.createAnalyser(); // Подключение анализатора к аудио источнику audioSource.connect(analyzer); analyzer.connect(audioContext.destination); // Установка параметров анализатора analyzer.fftSize = 2048; const bufferLength = analyzer.frequencyBinCount; const dataArray = new Uint8Array(bufferLength); // Создание канвас элемента для отрисовки спектрограммы const canvas = document.getElementById('canvas'); const canvasContext = canvas.getContext('2d'); // Рендеринг спектрограммы function draw() { requestAnimationFrame(draw); analyzer.getByteFrequencyData(dataArray); canvasContext.fillStyle = 'rgb(0, 0, 0)'; canvasContext.fillRect(0, 0, canvas.width, canvas.height); const barWidth = canvas.width / bufferLength; let barHeight; let x = 0; for (let i = 0; i < bufferLength; i++) { barHeight = dataArray[i] * 2; canvasContext.fillStyle = 'rgb(' + (barHeight + 100) + ',50,50)'; canvasContext.fillRect(x, canvas.height - barHeight / 2, barWidth, barHeight / 2); x += barWidth + 1; } } // Начало воспроизведения аудио audioElement.play(); draw();
В этом примере, мы создаем аудиоконтекст и загружаем аудио файл. Затем мы создаем анализатор и подключаем его к аудио источнику. Устанавливаем параметры анализатора, такие как размер FFT (Fast Fourier Transform) и создаем массив для сохранения данных о частотном спектре. Затем мы создаем канвас элемент для отрисовки спектрограммы и рендерим его в функции "draw()". Наконец, мы начинаем воспроизведение аудио и вызываем функцию "draw()" с помощью "requestAnimationFrame()", чтобы обновлять спектрограмму в реальном времени.
Это всего лишь пример использования одной из библиотек JavaScript для генерации спектрограммы аудио. Существует множество других библиотек и подходов, которые могут быть использованы для анализа аудио, визуализации и взаимодействия с звуковыми данными. Более подробную информацию о различных библиотеках и API вы можете найти в сети Интернет.