Современный мир все больше и больше погружается в процесс цифровизации всех отраслей жизнедеятельности человека. Передача и обработка цифровой информации прочно занимает главенствующие места в различных передовых направлениях жизни человека, таких как медицина, телевидение и телекоммуникации, мобильная цифровая связь и много другое. В связи с этим большое внимание уделяется развитию и усовершенствованию различных методов и способов цифровой обработки сигналов.
Проводимое исследование было направлено на разработку аудиоплеера, эквалайзер которого поддерживал бы файлы с расширением «.wav». При подготовке к исследованию рассматривались два основных режима работы аудиоплеера. Первый, статический, при котором файл, выбранный для работы, заносится полностью в буфер обмена для последующей возможной обработки. И второй, потоковый режим, при котором используются части определенного аудиофайла. Потоковый режим в свою очередь позволяет работать над большим количеством файлов, следующих друг за другом. Ввиду подобной функции вышеописанный буфер также называется кольцевым [1].
Для работы с аудио чаще всего используется формат WAVE. Данный формат удобен тем, что используется на операционной системе Windows и чаще всего все аудиофайлы хранятся на компьютере именно в данном формате, в виде «цепочек». По процессу работы подобные файлы относятся к приложению формата RIFF, который напоминает форматы, используемые на компьютерах Macintosh и Amiga [3]. Также все звуки, вне зависимости от степени сжатия файла обычно хранятся в формате wav.
Несжатый файл с аудио непосредственно хранится на персональном компьютере в формате wav, при этом используется LPCM, или линейная импульсно-кодовая модуляция [2]. Данный формат способен сохранять аудиофайл в привычном размере, без сжатия, вследствие чего, пользователю очень удобно работать со всем аудиоматериалом, без потери его качества. Такими свойствами также может обладать и файлы с расширением wav.
Однако у формата wav есть и свои недостатки, например, аудиофайлы с подобным расширением имеет достаточно большой вес, что мешает свободно передавать такие файлы по сети Интернет. Несмотря на этот минус, пользователи все равно используют данный формат, чтобы хранить аудиофайлы на персональных компьютерах в высоком качестве, особенно в тех моментах, когда от размера файла не страдает производительность и остается еще место на диске. Часто формат wav используют при редактировании аудиофайлов и аудиодорожек, так как этому не предшествует процедура распаковки данных.
В процессе исследования и разработки аудиоплеера было выяснено, что наиболее удачным для разработки эквалайзера фильтром будет являться КИХ-фильтр. Данный фильтр имеет ряд преимуществ перед другими, а именно: достаточная устойчивость при работе, не требуется обратная связь, присутствует линейность [4].
Возвращаясь к кольцевому буферу, стоит отметить его удобство в использовании, заключающееся в цикличной последовательности последней части файла и следующим за ней первого элемента файла. Это служит для успешной буферизации всех данных, с которым работает пользователь.
При разработке программы использовалась среда IntelliJ IDEA, а также язык программирования Java. Для удобства работы также использовались платформа JavaFX, позволяющая разрабатывать различные приложения с большой вариативностью интерфейсов. Данная платформа также может реализовывать большое количество различного вида приложений, которые могут запускаться как с персонального компьютера, от определенной операционной системы, так и в каких-либо приложениях сети Интернет.
При разработке интерфейса использовался языки FXML и CSS, которые позволили создать значки, которые были бы удобны любому пользователю. Благодаря Java можно легко работать с потоками, что позволяет продуктивно создавать сразу несколько потоков выполнения, которые также можно запускать одновременно [2].
Таким образом, после исследования возможностей создания аудиоплеера с использованием различных сред и языков программирования, можно отметить, что эквалайзер был реализован с помощью КИХ-фильтра на языке Java. Сам графический интерфейс был создан с помощью платформы JavaFX. Кольцевой буфер, который был описан выше, был создан с помощью кода. Использовалась платформа MATLAB, которая позволила создать оптимальную функцию фильтрации. При разработки интерфейса предпочтение было отдано отображению спектров сигнала, которое также было разработано с помощью языка Java.