QT — Как построить амплитуду аудио файла с C ++?

Я пытаюсь создать программу, используя Qt (c ++), которая может отображать амплитудный сигнал (график, похожий на отвагу, но динамический сигнал), когда я воспроизводю аудиофайл (.wav, .mp3), используя QAudiooutput а также QIODevice,

Что я сделал:
с QAudioouput Я могу воспроизвести любой аудиофайл, с помощью qwtplot я могу построить любой сигнал в 2D, в этом случае ось X будет временем, а ось Y будет амплитудой.

Теперь моя проблема в том, как получить амплитуду для каждой секунды (времени)?

Любая помощь будет оценена.

1

Решение

Нормальное несжатое представление звука — это просто его амплитуда как функция времени. .wav файлы, как правило, несжатые, поэтому моно .WAV Файл действительно самый простой из аудиофайлов: просто заголовок, за которым следует ряд амплитуд.

Обратите внимание, что цифровое аудио имеет частоту дискретизации. Например. частота дискретизации 32 кГц означает, что ваш WAV-файл имеет 32000 амплитуд в секунду. Если бы он был только один, вы бы не услышали его! (<20 Гц). Вы можете увидеть это в Audacity; Вы можете немного увеличить масштаб сигнала.

0

Другие решения


По вопросам рекламы [email protected]