Система обработки аудиоинформации Подсистема фильтрации и обработки сигнала - дипломная работа
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
«ИЖЕВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Факультет «Информатика и вычислительная техника»
Кафедра «Программное обеспечение»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к дипломной работе на тему:
«Система обработки аудиоинформации.
Подсистема фильтрации и обработки сигнала»
Дипломник
студент группы 10-19-1…………………………………Суханов М.А.
Руководитель
д.т.н, профессор...……………………………………….Мурынов А.И.
Консультант по экономической части к.э.н., доцент…..Радыгина И.И.
Консультант по безопасности и экологичности проекта ….Якименко Г.Ф.
Нормоконтроль………………………………………… Соболева В.П.
Рецензент
зав.кафедрой «Мультимедиа и Интернет-технологии» УдГУ.Широков В.А.
Заведующий кафедрой
«Программное обеспечение»
д.т.н., профессор……………………………………………Мурынов А.И.
ИЖЕВСК 2006
РЕФЕРАТ
Пояснительная записка к дипломной работе на тему «Система обработки аудиоинформации. Подсистема фильтрации и обработки сигнала» оформлена на 159 листах, содержит 48 рисунков, 21 таблицу.
Целью работы является разработка подсистемы фильтрации и обработки сигнала в составе системы обработки аудиоинформации для внесения необходимых изменений в исходный звуковой сигнал до начала кодирования
Работа включает в себя изучение структуры звуковых файлов различных форматов и реализация возможностей чтения этих форматов для последующей обработки, разработку алгоритмов, позволяющих преобразовывать исходный звуковой сигнал с целью изменения характеристик звучания и программную реализацию разработанных алгоритмов.
Для написания соответствующего программного обеспечения были изучены материалы и публикации в области цифровой обработки аудиоинформации, теории звука, звуковых преобразований и эффектов.
В результате проделанной работы было разработано программное обеспечение, предназначенное для изменения характеристик исходного звукового сигнала с целью изменения характеристик его звучания. Были разработаны и программно реализованы следующие алгоритмы обработки и фильтрации звукового сигнала: изменение основных параметров цифрового звука (частота дискретизации, битрейт, число каналов), редактирование структуры звукового сигнала, изменение темпа звука и уровня громкости, эффекты возрастающей и затухающей громкости, эха и реверберации
Полученный в результате работы подсистемы измененный звуковой сигнал используется в подсистеме кодирования данных.
На сегодняшний день существуют готовые программные продукты для редактирования звуковых сигналов. Однако, все эти программные продукты являются коммерческими и обладают закрытым исходным кодом.
Данная разработка обладает открытым кодом и позволяет производить редактирование структуры звукового сигнала, изменять характеристики его звучания и применять звуковые эффекты.
Разработанное программное обеспечение является исследовательским, оно направлено на изучение и анализ методов обработки аудиоинформации. С его помощью уже были получены экспериментальные данные, использованные в данной работе. Конечным программным продуктом может являться оболочка, представляющая в значительной мере автоматизированный интерфейс для проведения преобразования звуковых сигналов.
Звуковая волна (звуковые колебания) – это передающиеся в пространстве механические колебания молекул вещества. Тело, создающее возмущение (колебания) воздуха, называют источником звука. Привычное для всех нас понятие «
звук» означает всего лишь воспринимаемый слуховым аппаратом человека набор звуковых колебаний.
Звуковые колебания, а также вообще все колебания, как известно из физики, характеризуются амплитудой (интенсивностью), частотой и фазой. В соответствии с теорией математика Фурье, звуковую волну можно представить в виде спектра входящих в нее частот. Частотные составляющие спектра - это синусоидальные колебания (так называемые чистые тона), каждое из которых имеет свою собственную амплитуду и частоту. Таким образом, любое, даже самое сложное по форме колебание (например, человеческий голос), можно представить суммой простейших синусоидальных колебании определенных частот и амплитуд. И наоборот, сгенерировав различные колебания и наложив их друг на друга (смикшировав, смешав), можно получить различные звуки.
«Обычный» аналоговый звук представляется в аналоговой аппаратуре непрерывным электрическим сигналом. Компьютер оперирует с данными в цифровом виде. Это означает, что и звук в компьютере представляется в цифровом виде.
Цифровой звук – это способ представления электрического сигнала посредством дискретных численных значений его амплитуды. Оцифровка сигнала включает в себя два процесса - процесс дискретизации (осуществление выборки) и процесс квантования. Процесс дискретизации - это процесс получения значений величин преобразуемого сигнала в определенные промежутки времени. Квантование - процесс замены реальных значений сигнала приближенными с определенной точностью. Таким образом, оцифровка – это фиксация амплитуды сигнала через определенные промежутки времени и регистрация полученных значений амплитуды в виде округленных цифровых значений Записанные значения амплитуды сигнала называются отсчетами.
Основные параметры цифрового звука:
– частота дискретизации:
определяется интервалом времени, через которое происходит измерение значения амплитуды аналогового сигнала;
– битрейт: разрядность квантования; количество бит, которым описывается одна секунда звукового сигнала;
– число каналов: число источников звука, через которые воспроизводятся звуковые сигналы.
Под обработкой звука следует понимать различные преобразования звуковой информации с целью изменения каких-то характеристик звучания. К обработке звука относятся способы создания различных звуковых эффектов, фильтрация, а также методы очистки звука от нежелательных шумов, изменения тембра и т.д. Все это огромное множество преобразований сводится, в конечном счете, к следующим основным типам: амплитудные, частотные, фазовые и временные преобразования.
Стоит привести несколько практических примеров использования указанных видов преобразований при создании реальных звуковых эффектов:
– echo (эхо). Реализация повторения звукового сигнала с помощью временных преобразований таким образом, чтобы человеческое ухо воспринимало полученный сигнал как эхо;
– reverberation (повторение, отражение): придание звучанию объемности, характерной для большого зала, где каждый звук порождает соответствующий, медленно угасающий отзвук;
– изменение темпа: замедление или ускорение скорости воспроизведения звукового сигнала;
– изменение общего уровня громкости: увеличение или уменьшение общего уровня громкости.;
– эффект возрастания громкости: плавное увеличение громкости от нулевого уровня в начале фрагмента до максимального в конце;
– эффект затухания громкости: плавное уменьшение громкости от максимального уровня в начале фрагмента до нулевого в конце.
Обработка сигнала – это сложная и, главное, ресурсоемкая процедура. Она сравнительно недавно стала проводиться в цифровых устройствах – раньше различные эффекты звучания и другие достигались путем обработки звука в аналоговых приборах. В аналоговой аппаратуре звук в виде электрических колебаний проходит через различные тракты (блоки электрических элементов), чем достигается изменение фазы, спектра и амплитуды сигнала. Однако такой способ обработки имеет массу недостатков. Возможность же использования цифровых устройств имеет неоспоримые преимущества. Качество обработки сигналов в них намного меньше зависит от качества аппаратуры. Кроме того, для различных манипуляций со звуком не требуется постоянная смена оборудования. И, самое главное, поскольку обработка ведется программным путем, для нее открываются просто невероятные возможности, которые ограничены лишь мощностью компьютеров (а она увеличивается с каждым днем) и фантазией человека.
Система обработки аудиоинформации реализует обработку звуковых сигналов. Система предназначена для обработки звуковых сигналов, записанных в звуковых файлах различных форматов. Обработка позволяет внести необходимые изменения в исходный звуковой файл: редактирование его структуры, основных параметров, позволяет применить различные эффекты к файлу. Система также позволяет осуществить кодирование исходного файла с целью уменьшения занимаемого им размера без явной потери качества.
Функциональная схема системы приведена на рис. 1.1.
Обработка аудиофайлов состоит из следующих этапов:
1) ввод звуковых сигналов в подсистему обработки и фильтрации сигнала, результатом работы которой является измененный звуковой сигнал, записанный в файле и статистические данные, полученные при анализе звукового сигнала;
2) ввод отредактированного звукового сигнала в подсистему кодирования данных, результатом которой является файл со сжатым звуковым сигналом.
Результатом работы системы является измененный и/или сжатый звуковой файл.
Функциональная схема системы обработки аудиоинформации
Обработка сигнала – это сложная и, главное, ресурсоемкая процедура. Она сравнительно недавно стала проводиться в цифровых устройствах – раньше различные эффекты звучания и другие достигались путем обработки звука в аналоговых приборах. В аналоговой аппаратуре звук в виде электрических колебаний проходит через различные тракты (блоки электрических элементов), чем достигается изменение фазы, спектра и амплитуды сигнала. Однако такой способ обработки имеет массу недостатков. Во-первых, страдает качество обработки, ведь каждый аналоговый элемент имеет свою погрешность, а несколько десятков элементов могут критически повлиять на точность и качество желаемого результата. А во-вторых, и это, пожалуй, самое главное, почти каждый отдельный эффект достигается путем использования отдельного устройства, когда каждое такое устройство может стоить очень дорого. Возможность же использования цифровых устройств имеет неоспоримые преимущества. Качество обработки сигналов в них намного меньше зависит от качества аппаратуры, главное – это качественно оцифровать звук и иметь возможность качественно его воспроизводить, и тогда качество обработки ложится уже только на программный механизм. Кроме того, для различных манипуляций со звуком не требуется постоянная смена оборудования. И, самое главное, поскольку обработка ведется программным путем, для нее открываются просто невероятные возможности, которые ограничены лишь мощностью компьютеров (а она увеличивается с каждым днем) и фантазией человека.
К преобразованию звука прибегают в основном с целью изменения каких-то характеристик звука.
Принципиально, целью обработки звука является придание существующему звуку каких-то новых качеств или устранение нежелательных. Звуковые эффекты относятся к тем преобразованиям звука, которые придают звучанию новые формы или полностью изменяют звуковую информацию. Аппаратную реализацию звуковые эффекты находят в цифровых сигнальных процессорах (DSP). Любой более или менее приличный MIDI-синтезатор имеет встроенный эффект-процессор той или иной сложности (эффект-процессор представляет собой один или несколько DSP). Сложные эффект-процессоры "умеют" накладывать на звуковой сигнал сразу несколько различных эффектов, причем, отдельно для каждого канала, позволяя регулировать параметры эффектов в режиме реального времени. Однако стоимость таких эффект-процессоров чрезвычайно высока (как и стоимость любого другого высокопроизводительного микропроцессора), поэтому профессиональные DSP устанавливаются только на качественной музыкальной аппаратуре. На более или менее дешевых звуковых платах часто устанавливается DSP с упрощенным набором возможностей: наложение одного или нескольких эффектов на все каналы одновременно. Аппаратный эффект-процессор - это, безусловно, хорошо, но обработать звук на высоком уровне можно и программным способом.
Оцифрованный аудио сигнал «в чистом виде» (например, в форме одной из рассмотренных выше вариаций ИКМ) является достаточно точной, но не самой компактной формой записи исходного аналогового сигнала. объем памяти, требуемый для ее хранения в исходном цифровом виде, оказывается очень внушительным. Поэтому хранение относительно больших объемов аудио данных, гарантирующее достаточно хорошее качество звучания, требует применения разных «ухищрений», позволяющих уплотнить данные.
Реализация системы обработки аудиоинформации позволит интегрировать в едином интерфейсе все этапы обработки аудиоинформации:
1) редактирование структуры звукового файла;
2) изменение параметров цифрового звука (частота дискретизации, битрейт, число каналов);
3) редактирование темпа звука;
4) изменение общего уровня громкости;
5) эффекты возрастающей и затухающей громкости, эха и реверберации;
6) кодирование (сжатие) аудиоданных.
Редактирование структуры файла необходимо для изменения отдельных частей файла, это позволит удалять, копировать и вставлять части звукового сигнала. Изменение параметров цифрового звука необходимо, например, для уменьшения размера звукового файла, когда не так важно качество звучания. Редактирование темпа позволит замедлить и ускорить скорость воспроизведения звукового сигнала. Применение эффектов позволит придать звуку необходимые характеристики звучания.
Тема программного обеспечения очень широка, поэтому здесь мы только вкратце обсудим основные представители программ для обработки звука.
Основные возможности таких программ это, как минимум, обеспечение возможности записи (оцифровки) аудио и сохранение на диск. Развитые представители такого рода программ позволяют намного больше: запись, многоканальное сведение аудио на нескольких виртуальных дорожках, обработка специальными эффектами (как встроенными, так и подключаемыми извне – об этом позже), очистка от шумов, имеют развитую навигацию и инструментарий в виде спектроскопа и прочих виртуальных приборов, управление/управляемость внешними устройствами, преобразование аудио из формата в формат, генерация сигналов, запись на компакт диски и многое другое. Некоторые из таких программ: Cool Edit Pro (Syntrillium), Sound Forge (Sonic Foundry), Nuendo (Steinberg), Samplitude Producer (Magix), Wavelab (Steinberg).
Редактирование и сведение аудио на 128 дорожках, 45 встроенных DSP-эффектов, включая инструменты для мастеринга, анализа и реставрации аудио, 32-битная обработка, поддержка аудио с параметрами 24 бит / 192 КГц, мощный инструментарии для работы с петлями (loops), поддержка DirectX, а также управление SMPTE/MTC, поддержка работы с видео и MIDI и прочее.
Мощные возможности не деструктивного редактирования, многозадачная фоновая обработка заданий, поддержка файлов с параметрами до 32 бит / 192 КГц, менеджер предустановок, поддержка файлов более 4 Гб, работа с видео, большой набор эффектов обработки, восстановление после зависаний, предпрослушивание примененных эффектов, спектральный анализатор и прочее.
В наборе программ пользователя, занимающегося обработкой звука, имеется множество разных инструментов, так было раньше и так будет впредь – универсальных комбайнов для работы со звуком не бывает. Однако, не смотря на все разнообразие ПО, в программах часто используются схожие механизмы для обработки звука (например, процессоры эффектов и прочие). На каком-то этапе разработки аудио ПО, производители поняли, что удобнее сделать в своих программах возможность подключения внешних инструментов, чем каждый раз создавать заново инструменты для каждой отдельной программы. Так что многие программы, относящиеся к той или иной группе ПО, позволяют подключать так называемые «плагины» - внешние подключаемые модули, расширяющие возможности обработки звука. Это стало возможным в результате появления нескольких стандартов на интерфейс между программой и подключаемым модулем. На сегодняшний день существуют два основных стандарта на интерфейс: DX и VST. Существование стандартов позволяет подключать один и тот же плагин к совершенно разным программам, не заботясь о возникновении конфликтов и неполадок. Говоря о самих плагинах, надо сказать, что это просто огромное семейство программ. Обычно, один плагин является механизмом, реализующим какой-то конкретный эффект, например, реверберацию или низкочастотный фильтр. Но все вышеперечисленные средства для редактирования аудиоданных имеют закрытый исходный код.
Создание системы обработки аудиоинформации позволит получить преобразованный звуковой сигнал с заданными характеристиками звучания, а также сжатие измененного звукового файла для уменьшения занимаемого им размера без значительной потери качества звучания.
Для оценки эффективности работы системы обработки аудиоинформации можно использовать качество получаемых на выходе звуковых сигналов. Для определения качества кодирования звуковых данных можно использовать оценку размера полученных закодированных звуковых файлов и исходных.
Автоматизация процесса обработки аудиоинформации подразумевает реализацию в системе определенных средств и функций. Следует выделить функциональных особенности, которыми должна обладать система:
1) возможность открытия и анализа файлов форматов Microsoft Wave, MP3 и Electronic Music;
2) отображение структуры звукового сигнала, записанного в файле, в графическом виде с возможностью изменения масштаба;
3) обеспечение возможности основных операций редактирования: выделение части сигнала, ее удаление, копирование и вставку. Обеспечение возможности вставки звукового сигнала из другого файла;
4) возможность изменения основных параметров цифрового звука: частоты дискретизации, битрейта, числа каналов;
5) изменение темпа(скорости) звукового сигнала, уровня громкости;
6) применение звуковых эффектов к сигналу, с указанием необходимых для них параметров (для эффекта эха: количество откликов, время между откликами, громкость отклика относительно предыдущего; для эффекта реверберации: количество отражений, задержка отраженного сигнала, громкость отражения относительно предыдущего; для эффектов возрастающей и затухающей громкости: громкость относительно текущей);
7) сжатие полученного сигнала для более компактного хранения с возможностью последующего извлечения.
Система обработки аудиоинформации предназначена для работы с цифровыми звуковыми сигналами, записанными в файлах одного из следующих форматов: Microsoft Wave, MP3, Electronic Music. Объем информации, обрабатываемой системой, достаточно велик и может достигать нескольких десятков мегабайт. Эти особенности накладывают ограничения на использование непроизводительных и медленных алгоритмов.
Построение системы обработки аудиоинформации предполагает модульную структуру. Система включает в себя 2 подсистемы: подсистему обработки и фильтрации сигнала, подсистему кодирования данных. Общий интерфейс и возможность доступа ко всем модулям в составе каждой подсистемы должна обеспечивать оболочка. Таким образом, существует две оболочки. Первая реализует интерфейс для редактирования звукового сигнала, его параметров, применение к нему различных эффектов. Вторая реализует интерфейс для кодирования(сжатия) отредактированного звукового сигнала. Обмен между подсистемами происходит через звуковые файлы.
Задача обработки звуковых сигналов в системе обработки аудиоинформации связана с автоматическим анализом больших массивов аудио информации. Преобразования, проводимые в системе, должны проводиться в процессе интерактивного взаимодействия с пользователем, поэтому паузы на обработку не должны превышать нескольких минут. Исходя из этого, сформулированы требования к техническим характеристикам персонального компьютера, на котором будет функционировать система. Требования сведены в табл. 1.1.
Таблица 1.1
Технические характеристики персонального компьютера
Система обработки аудиоинформации предназначена для обработки звуковых сигналов, записанных в звуковых файлах. Файлы должны быть одного из следующих форматов: Microsoft Wave (*.wav), MP3, Electronic music (*.em1)
Основным видом информации, обрабатываемом в системе, является звуковая информация в цифровом представлении. Такой вид данных воспринимается человеком непосредственно, поэтому необходимо обеспечить возможность прослушивания преобразованных сигналов на различных этапах обработки, а также их графическую визуализацию.
Систему обработки аудиоинформации целесообразно разрабатывать для функционирования под управлением операционной системой семейства Windows, так как ОС данного класса наиболее широко распространены в современном мире. Платформами для разработки выбраны среды для разработки приложений Borland Delphi 7 (подсистема обработки и филбтрации сигнала) и Microsoft Visual C++ 2003 (подсистема кодирования данных). Эта среда поддерживают алгоритмические языки Pascal и C++ соответственно и обладают при этом возможностями быстрой разработки и проектирования визуальных интерфейсов.
Для реализации и функционирования проекта необходимо общесистемное программное обеспечение ОС Windows XP, в основе которой лежит ядро, характеризуемое 32-разрядной вычислительной архитектурой и полностью защищенной моделью памяти, что обеспечивает надежную вычислительную среду.
Разработка системы обработки аудиоинформации и ее подсистем будет вестись с использованием сред для разработки приложений Borland Delphi 7 и Microsoft Visual C++ 2003. Эти среды разработки включают в себя высокопроизводительный 32-битный компилятор, что позволяет оптимизировать создаваемый код, а также обширный набор средств, которые повышают производительность труда программистов и сокращают продолжительность цикла разработки. Многофункциональные интегрированные среды разработки включают компилятор, удовлетворяющий стандарта ANSI/ISO, встроенный дизайнер форм, богатый набор средств для работы с компонентами, менеджер проектов и отладчик. Удобство разработки и эффективность созданных в данных средах разработки программ делают их оптимальным выбором для построения исследовательской системы, какой является система обработки аудиоинформации.
При разработке подсистемы обработки и фильтрации звукового сигнала требуется выполнить следующие задачи:
1) изучение структуры звуковых файлов различных форматов и реализация возможностей чтения этих форматов для последующей обработки;
2) разработка алгоритмов, позволяющих преобразовывать исходный звуковой сигнал с целью изменения характеристик звучания;
3) программная реализация алгоритмов, позволяющих преобразовывать исходный звуковой сигнал с целью изменения характеристик звучания.
Автоматизация процесса обработки и фильтрации звукового сигнала подразумевает реализацию в подсистеме определенных средств и функций. Следует выделить функциональных особенностей, которыми должна обладать подсистема:
1) возможность открытия и анализа файлов форматов Microsoft Wave, MP3 и Electronic Music;
2) отображение структуры звукового сигнала, записанного в файле, в графическом виде с возможностью изменения масштаба;
3) обеспечение возможности основных операций редактирования: выделение части сигнала, ее удаление, копирование и вставку. Обеспечение возможности вставки звукового сигнала из другого файла;
4) возможность изменения основных параметров цифрового звука: частоты дискретизации, битрейта, числа каналов;
5) изменение темпа (скорости) звукового сигнала, уровня громкости, обращение звукового сигнала;
6) применение звуковых эффектов к сигналу с указанием необходимых для них параметров.
Перечислим реализуемые звуковые эффекты с указанием их параметров:
– эффект эха: реализация повторения звукового сигнала с помощью временных преобразований таким образом, чтобы человеческое ухо воспринимало полученный сигнал как эхо (параметры: количество откликов, время между откликами, громкость отклика относительно предыдущего);
– эффект реверберации: придание звучанию объемности, характерной для большого зала, где каждый звук порождает соответствующий, медленно угасающий отзвук; отличается тем, что на входной сигнал накладывается задержанный во времени выходной сигнал, а не задержанная копия входного (параметры: количество отражений, задержка отраженного сигнала, громкость отражения относительно предыдущего);
– эффекты возрастающей и затухающей громкости: плавное увеличение громкости от нулевого уровня в начале фрагмента до максимального в конце и наоборот соответственно (параметр: величина громкости в процентах от текущей).
Полученный измененный звуковой сигнал поступает в подсистему кодирования данных для уменьшения занимаемого им размера.
Входной информацией для подсистемы является цифровой звуковой сигнал, записанный в звуковом файле определенного формата. Формат входного звукового файла представлен в табл.2.1.
Файл этого формата содержит заголовок, описывающий общие параметры файла, и один или более фрагментов, каждый из которых представляет собой волновую форму или вспомогательную информацию.
Таблица 2.1
Структура звукового файла формата Microsoft RIFF/WAVE
СМЕЩЕНИЕ ОТ НАЧАЛА ФАЙЛА
ДЛИНА
ОПИСАНИЕ
0
4
ИДЕНТИФИКАТОР ФОРМАТА ( 'RIFF ')
4
4
ДЛИНА БЛОКА ДАННЫХ ( ДЛИНА ФАЙЛА БЕЗ ЭТОГО ЗАГОЛОВКА)
8
4
ИДЕНТИФИКАТОР БЛОКА ЗВУКОВЫХ ДАННЫХ ( 'WAVE‘ )
12
4
ИДЕНТИФИКАТОР ПОДБЛОКА ЗАГОЛОВКА (‘fmt_‘)
16
4
ДЛИНА ПОДБЛОКА ЗАГОЛОВКА
20
2
ТИП ФОРМАТА ПРЕДСТАВЛЕНИЯ ДАННЫХ
22
2
ЧИСЛО КАНАЛОВ ( 1 - МОНО, 2 – СТЕРЕО )
24
2/4
ЧАСТОТА ДИСКРЕТИЗАЦИИ, ГЦ
26/28
2/4
СКОРОСТЬ ПЕРЕДАЧИ ДАННЫХ, БАЙТ/С
(ЧИСЛО КАНАЛОВ х ЧАСТОТА ДИСКРЕТИЗАЦИИ х РАЗРЯДНОСТЬ В БАЙТАХ)
28/32
2
ВЫРАВНИВАНИЕ БЛОКА ДАННЫХ (ЧИСЛО КАНАЛОВ х РАЗРЯДНОСТЬ)
30/34
2
РАЗРЯДНОСТЬ - ЧИСЛО БИТ НА ОДИН ОТСЧЕТ ( 8, 16 )
32/36
4
ИДЕНТИФИКАТОР ПОДБЛОКА ДАННЫХ ( ‘DATA')
36/40
4
ДЛИНА ЗВУКОВЫХ ДАННЫХ
40/44
ЗВУКОВЫЕ ДАННЫЕ (0..255 ПРИ 8 БИТ И -32768..32767 ПРИ 16 БИТ)
Спектр – один из важнейших инструментов анализа и обработки звука. Французский математик Фурье (1768-1830) и его последователи доказали, что любую, обязательно периодическую функцию, в случае ее соответствия некоторым математическим условиям можно разложить в тригонометричес-кий ряд Фурье:
,
(1)
где ai
, bi
– это так называемые коэффициенты Фурье
, рассчитывающиеся по некоторой формуле.
На рис. 2.1 представлена цифровая форма представления звука.
Цифровая форма представления звукового сигнала
Рис. 2.1
Основные параметры цифрового звука:
– частота дискретизации: определяется интервалом времени, через кото-рое происходит измерение значения амплитуды аналогового сигнала;
– битрейт: разрядность квантования; количество бит, которым описывает-ся одна секунда звукового сигнала;
– число каналов: число источников звука, через которые воспроизводятся звуковые сигналы.
Звуковые сигналы поступают на вход системы в цифровом виде – в виде звуковых файлов, структура которых описана в п.2.1.2.
Задача обработки и фильтрации заключается в извлечении и обработки необходимых данных из файла.
С помощью заголовка звукового файла можно прочитать и изменить описанные основные параметры звукового сигнала, записанного в файле.
Для изменения звукового сигнала и применения к нему эффектов необходимо прочитать и отредактировать звуковые данные из основной части файла.
Математическое представление звуковых эффектов и их параметров:
Эффект реверберации.
На рис. 2.2 представлен исходный звуковой сигнал, а на рис. 2.3 применение к исходному сигналу эффекта реверберации с указанием параметров На оси абцисс откладывается время, а по оси ординат значение амплитуды (громкости) звукового сигнала в определенный момент времени.
Исходный сигнал
Рис.2.2
Эффект реверберации
T – время между отражениями;
h1 – громкость исходного звукового сигнала;
h2 – громкость отраженного сигнала.
Рис. 2.3
В данном случае h1=h2, то есть громкость отраженного сигнала равна громкости исходного сигнала.
Количество отражений в данном случае равно 1.
Эффект эха.
На рис. 2.4 представлен исходный звуковой сигнал, а на рис. 2.5 применение к исходному сигналу эффекта эха с указанием параметров На оси абцисс откладывается время, а по оси ординат значение амплитуды (громкости) звукового сигнала в определенный момент времени.
Исходный сигнал
Рис. 2.4
Эффект эха
T – время между откликами;
h1 – громкость исходного звукового сигнала;
h2 – громкость отклика.
Рис.2.5.
В данном случае h2=h1/2, то есть громкость отклика в два раза меньше громкости исходного сигнала .
Количество откликов в данном случае равно 1.
Изменение темпа.
На рис. 2.6 представлен исходный звуковой сигнал. На рис. 2.7 представлен измененный звуковой сигнал с уменьшенным в два раза темпом, на рис. 2.8 – с увеличенным в два раза темпом. На оси абцисс откладывается время, а по оси ординат значение амплитуды (громкости) звукового сигнала в определенный момент времени.
Исходный сигнал Увеличение темпа
Рис. 2.6 Рис. 2.7
Уменьшение темпа
Рис. 2.8
Изменение общего уровня громкости
На рис. 2.9 представлен исходный звуковой сигнал. На рис. 2.10 представлен измененный звуковой сигнал с уменьшенной в два раза громкостью, на рис. 2.11 – с увеличенной в два раза громкостью. На оси абцисс откладывается время, а по оси ординат значение амплитуды (громкости) звукового сигнала в определенный момент времени.
Исходный сигнал Уменьшение громкости
Рис. 2.9 Рис. 2.10
Увеличение громкости
Рис. 2.11
Эффекты возрастающей и затухающей громкости.
На рис. 2.12 представлен исходный звуковой сигнал, а на рис. 2.13 и рис. 2.14 применение к исходному сигналу эффекта возрастающей и затухающей громкости соответственно. На оси абцисс откладывается время, а по оси ординат значение амплитуды (громкости) звукового сигнала в определенный момент времени.
Исходный сигнал Возрастание громкости
Рис. 2.12 Рис.2.13
Затухание громкости
Рис. 2.14
Обращение звукового сигнала.
На рис. 2.15 представлен исходный звуковой сигнал, а на рис. 2.16 – обращенный.
Данный алгоритм применяется к исходному звуковому сигналу для создания эффекта реверберации: придание звучанию объемности, характерной для большого зала, где каждый звук порождает соответствующий, медленно угасающий отзвук. Получается путем добавления к исходному сигналу затухающей серии его задержанных во времени копий. Это имитирует затухание звука в помещении, когда за счет многократных отражений от стен, потолка и прочих поверхностей звук приобретает полноту и гулкость, а после прекращения звучания источника затухает не сразу, а постепенно. При этом время между последовательными отзвуками ассоциируется с величиной помещения, а их интенсивность – с его гулкостью.
При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов.
В результате реализации алгоритма формируются новые массивы амплитуд и значений времени A’ и T’. Структура выходного файла при этом соответствует описанной в п.2.1.2.
Для получения выходных массивов A’ и T’ необходимо предварительно получить Кол пар дополнительных массивов А(А1,А2,…,Акол) и Т(Т1,Т2,…,Ткол) с отражениями, а затем совместить их:
m – размерности получаемых массивов A’ и T’
m = n + n*Кол;
T1i
= Ti
+ 1*То;
T2i
= Ti
+ 2*То;
…
ТКолi
= Ti
+ Кол*То;
A1i
= Гр/100*Ai
;
A2i
= Гр/100*A1i
;
…
Aкол = Гр/100*A[кол-1]i
Описание используемых обозначений приведено в п.2.2.2.
Затем все полученные массивы амплитуд и времен объединяются в один общий массив (A’ и T’ соответственно).
Данный алгоритм применяется к исходному звуковому сигналу для создания эффекта эха: реализация повторения звукового сигнала с помощью временных преобразований таким образом, чтобы человеческое ухо воспринимало полученный сигнал как эхо. При этом слух перестает субъективно воспринимать отражения, как призвуки основного сигнала, и начинает воспринимать их как повторения. Эхо обычно реализуется так же, как и естественное - с затуханием повторяющихся копий.
При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).
В результате реализации алгоритма формируются новые массивы амплитуд и значений времени A’ и T’. Структура выходного файла при этом соответствует описанной в п.2.1.2.
Для получения выходных массивов A’ и T’ необходимо предварительно получить Кол пар дополнительных массивов А(А1,А2,…,Акол) и Т(Т1,Т2,…,Ткол) с откликами, а затем совместить их:
m – размерности получаемых массивов A’ и T’;
m = n + n*Кол + То;
T1i
= Tn
+ Ti
+ То;
T2i
= 2*Tn
+ Ti
+ 2*То;
…
ТКолi
=Кол*Тn
+ Ti
+ Кол*То;
A1i
= Гр/100*Ai
;
A2i
= Гр/100*A1i
;
…
Aколi
= Гр/100*A[кол-1]i
Описание используемых обозначений приведено в п.2.3.2.
Затем все полученные массивы амплитуд и времен объединяются в один общий массив (A’ и T’ соответственно).
При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).
T = {T1
,T2
,…,Tn
} – массив со значениями времени, где n зависит от частоты дискретизации (ЧД), битрейта (Б) и размера файла;
Ti
– Ti-1
определяется частотой дискретизации.
При реализации алгоритма учитываются следующие параметры, которые подаются в качестве параметров на вход алгоритма: величина новой скорости воспроизведения в процентах от текущей (Ск).
В результате реализации алгоритма формируется новый массив значений времени T’, массив с амлитудами A остается неизменным. Структура выходного файла при этом соответствует описанной в п.2.1.2.
При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).
T = {T1
,T2
,…,Tn
} – массив со значениями времени, где n зависит от частоты дискретизации (ЧД), битрейта (Б) и размера файла;
Ti
– Ti-1
определяется частотой дискретизации.
При реализации алгоритма учитываются следующие параметры, которые подаются в качестве параметров на вход алгоритма: величина новой громкости звукового сигнала в процентах от текущей (Гр).
В результате реализации алгоритма формируется новый массив значений амплитуд A’, массив с временем T остается неизменным. Структура выходного файла при этом соответствует описанной в п.2.1.2.
При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).
В результате реализации алгоритма формируется новый массив значений амплитуд A’, массив с временем T остается неизменным. Структура выходного файла при этом соответствует описанной в п.2.1.2.
При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).
В результате реализации алгоритма формируется новый массив значений амплитуд A’, массив с временем T остается неизменным. Структура выходного файла при этом соответствует описанной в п.2.1.2.
При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).
В результате реализации алгоритма формируются новые массивы значений амплитуд A’ и времени T’. Структура выходного файла при этом соответствует описанной в п.2.1.2.
Подпрограмма Reverberation служит для применения эффекта реверберации к указанному фрагменту звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.
Подпрограмма Echo служит для применения эффекта эха к указанному фрагменту звукового сигнала, записанного в файле. Текст программы приведен в приложении 1.
Подпрограмма SetSpeedOfAudio служит для измения темпа (скорости) указанного фрагмента звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.
TempAudio: TAudioData; – получаемая совокупность значений амплитуд и времен. . Описание используемых в подпрограмме переменных представлено в табл.2.6.
Таблица 2.6
Переменные, используемые в подпрограмме «SetSpeedOfAudio»
Имена переменных
Тип
Описание
i, j, k, n, NewCount
integer
Переменные-счетчики
Buf
Int64
Выравнивание (число каналов х разрядность)
Interval
Real
Интервал времени между двумя значениями амплитуд
Smp1, Smp2
Integer
Значения амплитуд
Channel
Byte
Количество каналов
Описание входных данных подпрограммы представлено в табл.2.7.
Таблица 2.7
Входные данные подпрограммы «SetSpeedOfAudio»
Имена переменных
Тип
Описание
AudioData
TAudioData
Передаваемая исходная совокупность значений амплитуд и времен
Start
Cardinal
Стартовая позиция, с которой необходимо начать обработку
Count
Cardinal
Количество позиций, которые необходимо обработать относительно стартовой
Speed
Real
Новая скорость звуко-вого сигнала
Выходные данные подпрограммы:
AudioData – измененная совокупность значений амплитуд и времен с измененным темпом.
Подпрограмма SetVolumeOfAudio служит для измения уровня громкости указанного фрагмента звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.
TempAudio: TAudioData; – получаемая совокупность значений амплитуд и времен. . Описание используемых в подпрограмме переменных представлено в табл.2.8.
Таблица 2.8
Переменные, используемые в подпрограмме «SetVolumeOfAudio»
Имена переменных
Тип
Описание
i
integer
Переменная-счетчик
MaxValue
Cardinal
Макс. значение ампли-туды в обрабатываемом фрагменте
Value
Cardinal
Текущее значение амплитуды
Channel
Word
Количество каналов
Описание входных данных подпрограммы представлено в табл.2.9.
Таблица 2.9
Входные данные подпрограммы «SetVolumeOfAudio»
Имена переменных
Тип
Описание
AudioData
TAudioData
Передаваемая исходная совокупность значений амплитуд и времен
Start
Cardinal
Стартовая позиция, с которой необходимо начать обработку
Count
Cardinal
Количество позиций, которые необходимо обработать относительно стартовой
Volume
Real
Новая громкость звуко-вого сигнала
Выходные данные подпрограммы:
AudioData – измененная совокупность значений амплитуд и времен с измененным уровнем громкости.
Подпрограмма ReChangeVolumeOfAudio служит для применения эффекта возрастающей громкости к указанному фрагменту звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.
Подпрограмма ChangeVolumeOfAudio служит для применения эффекта затухающей громкости к указанному фрагменту звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.
TempAudio: TAudioData; – получаемая совокупность значений амплитуд и времен. . Описание используемых в подпрограмме переменных представлено в табл.2.12.
Таблица 2.12
Переменные, используемые в подпрограмме «ChangeVolumeOfAudio»
Имена переменных
Тип
Описание
i
integer
Переменная-счетчик
MaxValue
Cardinal
Макс. значение ампли-туды в обрабатываемом фрагменте
Value
Cardinal
Текущее значение амплитуды
Channel
Word
Количество каналов
FinalVolume
Real
Значение амплитуды в начале обрабатываемого фрагмента
Описание входных данных подпрограммы представлено в табл.2.13.
Таблица 2.13
Входные данные подпрограммы «ChangeVolumeOfAudio»
Имена переменных
Тип
Описание
AudioData
TAudioData
Передаваемая исходная совокупность значений амплитуд и времен
Start
Cardinal
Стартовая позиция, с которой необходимо начать обработку
Count
Cardinal
Количество позиций, которые необходимо обработать относительно стартовой
Выходные данные подпрограммы:
AudioData – измененная совокупность значений амплитуд и времен с примененным эффектом затухающей громкости.
Подпрограмма ReverseAudio служит для применения обращения указанного фрагмента звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.
TempAudio: TAudioData; – получаемая совокупность значений амплитуд и времен. . Описание используемых в подпрограмме переменных представлено в табл.2.14.
Таблица 2.14
Переменные, используемые в подпрограмме «ReverseAudio»
Имена переменных
Тип
Описание
i
integer
Переменная-счетчик
Buf
Int64
Текущее значение амплитуды
AbsStart
Cardinal
Абсолютная позиция начала обработки
AbsCount
Cardinal
Абсолютное количество позиций для обработки
AbsFinish
Cardinal
Абсолютная позиция конца обработки
Описание входных данных подпрограммы представлено в табл.2.15.
Таблица 2.15
Входные данные подпрограммы «ReverseAudio»
Имена переменных
Тип
Описание
AudioData
TAudioData
Передаваемая исходная совокупность значений амплитуд и времен
Start
Cardinal
Стартовая позиция, с которой необходимо начать обработку
Count
Cardinal
Количество позиций, которые необходимо обработать относительно стартовой
Выходные данные подпрограммы:
AudioData – измененная совокупность значений амплитуд и времен с обращенным звуковым сигналом.
Основной целью работы программы является изменение параметров звуковых сигналов, их структуры и применение различных звуковых эффектов для получения необходимых характеристик звучания. Результатом работы программы является измененный звуковой сигнал, записанный в файле. Контрольный пример должен содержать исходный звуковой сигнала, записанный в файле одного из следующих форматов: Microsoft RIFF/WAVE (файлы с расширением wav), MP3 (файлы с расширением mp3), Electronic music (файлы с расширением em1).
На рис. 2.24 и рис. 2.25 приведены изображения исходных звуковых сигналов. К первому предполагается применить звуковые эффекты (реверберация, эхо), изменить параметры (частота дискретизации, битрейт, число каналов, общий уровень громкости, темп) и отредактировать структуру (удаление, копирование, обращение части сигнала). Ко второму предполагается применить эффекты возрастающей и затухающей громкости. Данные звуковые сигналы получены путем записи их через микрофон. Файлы сохранены в формате Microsoft RIFF/WAVE, поэтому пригодны для тестирования.