Главная              Рефераты - Информатика

Система обработки аудиоинформации Подсистема фильтрации и обработки сигнала - дипломная работа

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«ИЖЕВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Факультет «Информатика и вычислительная техника»

Кафедра «Программное обеспечение»

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к дипломной работе на тему:

«Система обработки аудиоинформации.

Подсистема фильтрации и обработки сигнала»

Дипломник

студент группы 10-19-1…………………………………Суханов М.А.

Руководитель

д.т.н, профессор...……………………………………….Мурынов А.И.

Консультант по экономической части к.э.н., доцент…..Радыгина И.И.

Консультант по безопасности и экологичности проекта ….Якименко Г.Ф.

Нормоконтроль………………………………………… Соболева В.П.

Рецензент

зав.кафедрой «Мультимедиа и Интернет-технологии» УдГУ.Широков В.А.

Заведующий кафедрой

«Программное обеспечение»

д.т.н., профессор……………………………………………Мурынов А.И.

ИЖЕВСК 2006


РЕФЕРАТ

Пояснительная записка к дипломной работе на тему «Система обработки аудиоинформации. Подсистема фильтрации и обработки сигнала» оформлена на 159 листах, содержит 48 рисунков, 21 таблицу.

Целью работы является разработка подсистемы фильтрации и обработки сигнала в составе системы обработки аудиоинформации для внесения необходимых изменений в исходный звуковой сигнал до начала кодирования

Работа включает в себя изучение структуры звуковых файлов различных форматов и реализация возможностей чтения этих форматов для последующей обработки, разработку алгоритмов, позволяющих преобразовывать исходный звуковой сигнал с целью изменения характеристик звучания и программную реализацию разработанных алгоритмов.

Для написания соответствующего программного обеспечения были изучены материалы и публикации в области цифровой обработки аудиоинформации, теории звука, звуковых преобразований и эффектов.

В результате проделанной работы было разработано программное обеспечение, предназначенное для изменения характеристик исходного звукового сигнала с целью изменения характеристик его звучания. Были разработаны и программно реализованы следующие алгоритмы обработки и фильтрации звукового сигнала: изменение основных параметров цифрового звука (частота дискретизации, битрейт, число каналов), редактирование структуры звукового сигнала, изменение темпа звука и уровня громкости, эффекты возрастающей и затухающей громкости, эха и реверберации

Полученный в результате работы подсистемы измененный звуковой сигнал используется в подсистеме кодирования данных.

На сегодняшний день существуют готовые программные продукты для редактирования звуковых сигналов. Однако, все эти программные продукты являются коммерческими и обладают закрытым исходным кодом.

Данная разработка обладает открытым кодом и позволяет производить редактирование структуры звукового сигнала, изменять характеристики его звучания и применять звуковые эффекты.

Разработанное программное обеспечение является исследовательским, оно направлено на изучение и анализ методов обработки аудиоинформации. С его помощью уже были получены экспериментальные данные, использованные в данной работе. Конечным программным продуктом может являться оболочка, представляющая в значительной мере автоматизированный интерфейс для проведения преобразования звуковых сигналов.


СОДЕРЖАНИЕ

ВВЕДЕНИЕ…. ………………………………………………………………...11

1. РАЗРАБОТКА СИСТЕМЫ ОБРАБОТКИ АУДИОИНФОРМАЦИИ ……14

1.1. Обоснование целесообразности разработки системы обработки аудиоинформации ………………………………………………………….14

1.1.1. Назначение системы.. 14

1.1.2. Характеристика функциональной структуры системы.. 14

1.1.3. Обоснование цели создания системы.. 15

1.1.4. Обоснование состава автоматизируемых задач. 17

1.2. Аналитический обзор ………………………………………………..…18

1.2.1. Cool Edit Pro 2.0. 18

1.2.2. Sound Forge 6.0a. 18

1.2.3. Вывод по аналитическому обзору. 19

1.3. Основные требования к системе …………………………………..…20

1.3.1. Основные цели создания системы и критерии эффективности ее функционирования. 20

1.3.2. Функциональное назначение системы.. 20

1.3.3. Особенности системы и условия ее эксплуатации. 21

1.3.4. Требования к функциональной структуре. 21

1.3.5. Требования к техническому обеспечению.. 22

1.3.6. Требования к информационному обеспечению.. 22

1.3.7. Требования к программному обеспечению.. 22

1.4. Основные технические решения проекта системы ………………....23

1.4.1. Решение по комплексу технических средств. 23

1.4.2. Описание системы программного обеспечения. 23

2. РАЗРАБОТКА ПОДСИСТЕМЫ ОБРАБОТКИ И ФИЛЬТРАЦИИ ……25

2.1. Описание постановки задачи обработки и фильтрации звукового сигнала ……………………………………………………………………….25

2.1.1. Характеристика задачи. 25

2.1.2. Входная информация. 26

2.1.3. Выходная информация. 27

2.1.4. Математическая постановка задачи. 27

2.2. Описание алгоритма создания эффекта реверберации ………..…34

2.2.1. Назначение и характеристика алгоритма создания эффекта реверберации 34

2.2.2. Используемая информация. 34

2.2.3. Результаты решения. 35

2.2.4. Математическое описание алгоритма создания эффекта реверберации 35

2.2.5. Алгоритм создания эффекта реверберации. 36

2.2.6. Требования к контрольному примеру. 37

2.2.7. Список условных обозначений. 37

2.3. Описание алгоритма создания эффекта эха ……………………..…38

2.3.1. Назначение и характеристика алгоритма создания эффекта эха. 38

2.3.2. Используемая информация. 38

2.3.3. Результаты решения. 39

2.3.4. Математическое описание алгоритма создания эффекта эха. 39

2.3.5. Алгоритм создания эффекта эха. 40

2.3.6. Требования к контрольному примеру. 41

2.3.7. Список условных обозначений. 41

2.4. Описание алгоритма изменения темпа звука ………………………..42

2.4.1. Назначение и характеристика алгоритма изменения темпа звука. ……………………………………………………………………….42

2.4.2. Используемая информация. 42

2.4.3. Результаты решения. 42

2.4.4. Математическое описание алгоритма изменения темпа звука. 43

2.4.5. Алгоритм изменения темпа звука. 43

2.4.6. Требования к контрольному примеру. 44

2.4.7. Список условных обозначений. 44

2.5. Описание алгоритма изменения громкости звука ………………....45

2.5.1. Назначение и характеристика алгоритма изменения громкости. 45

2.5.2. Используемая информация. 45

2.5.3. Результаты решения. 45

2.5.4. Математическое описание алгоритма изменения громкости звука …

2.5.5. Алгоритм изменения громкости звука. 46

2.5.6. Требования к контрольному примеру. 47

2.5.7. Список условных обозначений. 47

2.6. Описание алгоритма создания эффекта возрастающей громкости ……………………………………………………………………………...48

2.6.1. Назначение и характеристика алгоритма изменения громкости. 48

2.6.2. Используемая информация. 48

2.6.3. Результаты решения. 48

2.6.4. Математическое описание алгоритма создания эффекта возрастающей громкости 48

2.6.5. Алгоритм создания эффекта возрастающей громкости. 49

2.6.6. Требования к контрольному примеру. 50

2.6.7. Список условных обозначений. 50

2.7. Описание алгоритма создания эффекта затухающей громкости ……………………………………………………………………………..51

2.7.1. Назначение и характеристика алгоритма создания эффекта затухающей громкости 51

2.7.2. Используемая информация. 51

2.7.3. Результаты решения. 51

2.7.4. Математическое описание алгоритма создания эффекта затухающей громкости 51

2.7.5. Алгоритм создания эффекта затухающей громкости. 52

2.7.6. Требования к контрольному примеру. 53

2.7.7. Список условных обозначений. 53

2.8. Описание алгоритма обращения звукового сигнала ………………....54

2.8.1. Назначение и характеристика алгоритма создания эффекта затухающей громкости 54

2.8.2. Используемая информация. 54

2.8.3. Результаты решения. 54

2.8.4. Математическое описание алгоритма обращения сигнала. 54

2.8.5. Алгоритм обращения звукового сигнала. 55

2.8.6. Требования к контрольному примеру. 56

2.8.7. Список условных обозначений. 56

2.9. Описание подпрограммы «Reverberation» ………………………..57

2.9.1. Вводная часть. 57

2.9.2. Функциональное назначение. 57

2.9.3. Описание информации. 57

2.9.4. Используемые программы.. 59

2.9.5. Схема подпрограммы «Reverberation». 59

2.10. Описание подпрограммы «Echo» ……………………………………..61

2.10.1. Вводная часть. ……………………………………………61

2.10.2. Функциональное назначение…………………………. 61

2.10.3. Описание информации……………………………….. 61

2.10.4. Используемые подпрограммы.. ……………………….62

2.10.5. Схема подпрограммы «Echo»…………………………... 62

2.11. Описание подпрограммы «SetSpeedOfAudio» ………64

2.11.1. Вводная часть. 64

2.11.2. Функциональное назначение 64

2.11.3. Описание информации ……………………………. 64

2.11.4. Используемые программы.. …………………………….65

2.11.5. Схема подпрограммы «SetSpeedOfAudio». ………..65

2.12. Описание подпрограммы «SetVolumeOfAudio»…………… …………..67

2.12.1. Вводная часть. ……………………………………..67

2.12.2. Функциональное назначение……………………………………...67

2.12.3. Описание информации ……………………………….. …67

2.12.4. Используемые программы.. ……………………………68

2.12.5. Схема подпрограммы «SetVolumeOfAudio». ………..68

2.13. Описание подпрограммы «ReChangeVolumeOfAudio» …………..70

2.13.1. Вводная часть. ……………………………………………70

2.13.2. Функциональное назначение. ………………………………70

2.13.3. Описание информации………………………………... 70

2.13.4. Используемые программы.. ………………………………71

2.13.5. Схема подпрограммы «ReChangeVolumeOfAudio». ……71

2.14. Описание подпрограммы «ChangeVolumeOfAudio» ………………....73

2.14.1. Вводная часть. ……………………………………………73

2.14.2. Функциональное назначение. ………………………………73

2.14.3. Описание информации. ……………………………………..73

2.14.4. Используемые программы.. ………………………………74

2.14.5. Схема подпрограммы «ChangeVolumeOfAudio». ……74

2.15. Описание подпрограммы «ReverseAudio» ………………………..76

2.15.1. Вводная часть. ……………………………………………76

2.15.2. Функциональное назначение. ………………………………76

2.15.3. Описание информации. …………………………………….76

2.15.4. Используемые программы.. ………………………………77

2.15.5. Схема подпрограммы «ReverseAudio». …………………77

2.16. Описание контрольного примера ……………………………………..79

2.16.1. Назначение. …………………………………………………..79

2.16.2. Исходные данные. …………………………………….79

2.16.3. Контрольный пример. ……………………………………80

2.16.4. Результаты тестирования работы подсистемы обработки и фильтрации звукового сигнала. 84

3. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКАЯ ЧАСТЬ …………………85

3.1 Обоснование необходимости разработки подсистемы обработки и фильтрации сигнала ………………………………………………………….85

3.2 Расчет затрат на разработку подсистемы обработки и фильтрации сигнала ………………………………………………………………………85

4. ЭКОЛОГИЧНОСТЬ И БЕЗОПАСНОСТЬ ПРОЕКТА ………………....91

4.1. Анализ опасных и вредных факторов, возникающих при эксплуатации компьютера ………………………………………………………………...91

4.1.1. Выявление источников шума и вибрации. 92

4.1.2. Выявление источников излучения…………………………………….....91

4.2. Электробезопасность при работе с компьютером ………………………..94

4.3. Организация рабочего места инженера-программиста …………………95

4.4. Требования к параметрам микроклимата помещения. …………………98

4.5. Требования к освещению рабочих мест. …………………………….100

4.6. Пожарная безопасность …………………………………………………106

ЗАКЛЮЧЕНИЕ ………………………………………………………………109

СПИСОК ЛИТЕРАТУРЫ …………………………………………………110

ПРИЛОЖЕНИЕ 1 ТЕКСТ ПРОГРАММЫ …………………………….113

ПРИЛОЖЕНИЕ 2 РУКОВОДСТВО ПРОГРАММИСТА ……………….202

ПРИЛОЖЕНИЕ 3 РУКОВОДСТВО ОПЕРАТОРА ……………………..206


ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ

ПО – программное обеспечение.

ОС – операционная система.

ЭВМ – электронно-вычислительная машина.

ПК – персональный компьютер.


ВВЕДЕНИЕ

Звуковая волна (звуковые колебания) – это передающиеся в пространстве механические колебания молекул вещества. Тело, создающее возмущение (колебания) воздуха, называют источником звука. Привычное для всех нас понятие « звук» означает всего лишь воспринимаемый слуховым аппаратом человека набор звуковых колебаний.

Звуковые колебания, а также вообще все колебания, как известно из физики, характеризуются амплитудой (интенсивностью), частотой и фазой. В соответствии с теорией математика Фурье, звуковую волну можно представить в виде спектра входящих в нее частот. Частотные составляющие спектра - это синусоидальные колебания (так называемые чистые тона), каждое из которых имеет свою собственную амплитуду и частоту. Таким образом, любое, даже самое сложное по форме колебание (например, человеческий голос), можно представить суммой простейших синусоидальных колебании определенных частот и амплитуд. И наоборот, сгенерировав различные колебания и наложив их друг на друга (смикшировав, смешав), можно получить различные звуки.

«Обычный» аналоговый звук представляется в аналоговой аппаратуре непрерывным электрическим сигналом. Компьютер оперирует с данными в цифровом виде. Это означает, что и звук в компьютере представляется в цифровом виде.

Цифровой звук – это способ представления электрического сигнала посредством дискретных численных значений его амплитуды. Оцифровка сигнала включает в себя два процесса - процесс дискретизации (осуществление выборки) и процесс квантования. Процесс дискретизации - это процесс получения значений величин преобразуемого сигнала в определенные промежутки времени. Квантование - процесс замены реальных значений сигнала приближенными с определенной точностью. Таким образом, оцифровка – это фиксация амплитуды сигнала через определенные промежутки времени и регистрация полученных значений амплитуды в виде округленных цифровых значений Записанные значения амплитуды сигнала называются отсчетами.

Основные параметры цифрового звука:

– частота дискретизации: определяется интервалом времени, через которое происходит измерение значения амплитуды аналогового сигнала;

– битрейт: разрядность квантования; количество бит, которым описывается одна секунда звукового сигнала;

– число каналов: число источников звука, через которые воспроизводятся звуковые сигналы.

Под обработкой звука следует понимать различные преобразования звуковой информации с целью изменения каких-то характеристик звучания. К обработке звука относятся способы создания различных звуковых эффектов, фильтрация, а также методы очистки звука от нежелательных шумов, изменения тембра и т.д. Все это огромное множество преобразований сводится, в конечном счете, к следующим основным типам: амплитудные, частотные, фазовые и временные преобразования.

Стоит привести несколько практических примеров использования указанных видов преобразований при создании реальных звуковых эффектов:

– echo (эхо). Реализация повторения звукового сигнала с помощью временных преобразований таким образом, чтобы человеческое ухо воспринимало полученный сигнал как эхо;

– reverberation (повторение, отражение): придание звучанию объемности, характерной для большого зала, где каждый звук порождает соответствующий, медленно угасающий отзвук;

– изменение темпа: замедление или ускорение скорости воспроизведения звукового сигнала;

– изменение общего уровня громкости: увеличение или уменьшение общего уровня громкости.;

– эффект возрастания громкости: плавное увеличение громкости от нулевого уровня в начале фрагмента до максимального в конце;

– эффект затухания громкости: плавное уменьшение громкости от максимального уровня в начале фрагмента до нулевого в конце.

Обработка сигнала – это сложная и, главное, ресурсоемкая процедура. Она сравнительно недавно стала проводиться в цифровых устройствах – раньше различные эффекты звучания и другие достигались путем обработки звука в аналоговых приборах. В аналоговой аппаратуре звук в виде электрических колебаний проходит через различные тракты (блоки электрических элементов), чем достигается изменение фазы, спектра и амплитуды сигнала. Однако такой способ обработки имеет массу недостатков. Возможность же использования цифровых устройств имеет неоспоримые преимущества. Качество обработки сигналов в них намного меньше зависит от качества аппаратуры. Кроме того, для различных манипуляций со звуком не требуется постоянная смена оборудования. И, самое главное, поскольку обработка ведется программным путем, для нее открываются просто невероятные возможности, которые ограничены лишь мощностью компьютеров (а она увеличивается с каждым днем) и фантазией человека.


1. РАЗРАБОТКА СИСТЕМЫ ОБРАБОТКИ АУДИОИНФОРМАЦИИ

1.1. Обоснование целесообразности разработки системы обработки аудиоинформации

1.1.1. Назначение системы

Система обработки аудиоинформации реализует обработку звуковых сигналов. Система предназначена для обработки звуковых сигналов, записанных в звуковых файлах различных форматов. Обработка позволяет внести необходимые изменения в исходный звуковой файл: редактирование его структуры, основных параметров, позволяет применить различные эффекты к файлу. Система также позволяет осуществить кодирование исходного файла с целью уменьшения занимаемого им размера без явной потери качества.

1.1.2. Характеристика функциональной структуры системы

Функциональная схема системы приведена на рис. 1.1.

Обработка аудиофайлов состоит из следующих этапов:

1) ввод звуковых сигналов в подсистему обработки и фильтрации сигнала, результатом работы которой является измененный звуковой сигнал, записанный в файле и статистические данные, полученные при анализе звукового сигнала;

2) ввод отредактированного звукового сигнала в подсистему кодирования данных, результатом которой является файл со сжатым звуковым сигналом.

Результатом работы системы является измененный и/или сжатый звуковой файл.


Функциональная схема системы обработки аудиоинформации

Рис. 1.1

1.1.3. Обоснование цели создания системы

Обработка сигнала – это сложная и, главное, ресурсоемкая процедура. Она сравнительно недавно стала проводиться в цифровых устройствах – раньше различные эффекты звучания и другие достигались путем обработки звука в аналоговых приборах. В аналоговой аппаратуре звук в виде электрических колебаний проходит через различные тракты (блоки электрических элементов), чем достигается изменение фазы, спектра и амплитуды сигнала. Однако такой способ обработки имеет массу недостатков. Во-первых, страдает качество обработки, ведь каждый аналоговый элемент имеет свою погрешность, а несколько десятков элементов могут критически повлиять на точность и качество желаемого результата. А во-вторых, и это, пожалуй, самое главное, почти каждый отдельный эффект достигается путем использования отдельного устройства, когда каждое такое устройство может стоить очень дорого. Возможность же использования цифровых устройств имеет неоспоримые преимущества. Качество обработки сигналов в них намного меньше зависит от качества аппаратуры, главное – это качественно оцифровать звук и иметь возможность качественно его воспроизводить, и тогда качество обработки ложится уже только на программный механизм. Кроме того, для различных манипуляций со звуком не требуется постоянная смена оборудования. И, самое главное, поскольку обработка ведется программным путем, для нее открываются просто невероятные возможности, которые ограничены лишь мощностью компьютеров (а она увеличивается с каждым днем) и фантазией человека.

К преобразованию звука прибегают в основном с целью изменения каких-то характеристик звука.

Принципиально, целью обработки звука является придание существующему звуку каких-то новых качеств или устранение нежелательных. Звуковые эффекты относятся к тем преобразованиям звука, которые придают звучанию новые формы или полностью изменяют звуковую информацию. Аппаратную реализацию звуковые эффекты находят в цифровых сигнальных процессорах (DSP). Любой более или менее приличный MIDI-синтезатор имеет встроенный эффект-процессор той или иной сложности (эффект-процессор представляет собой один или несколько DSP). Сложные эффект-процессоры "умеют" накладывать на звуковой сигнал сразу несколько различных эффектов, причем, отдельно для каждого канала, позволяя регулировать параметры эффектов в режиме реального времени. Однако стоимость таких эффект-процессоров чрезвычайно высока (как и стоимость любого другого высокопроизводительного микропроцессора), поэтому профессиональные DSP устанавливаются только на качественной музыкальной аппаратуре. На более или менее дешевых звуковых платах часто устанавливается DSP с упрощенным набором возможностей: наложение одного или нескольких эффектов на все каналы одновременно. Аппаратный эффект-процессор - это, безусловно, хорошо, но обработать звук на высоком уровне можно и программным способом.

Оцифрованный аудио сигнал «в чистом виде» (например, в форме одной из рассмотренных выше вариаций ИКМ) является достаточно точной, но не самой компактной формой записи исходного аналогового сигнала. объем памяти, требуемый для ее хранения в исходном цифровом виде, оказывается очень внушительным. Поэтому хранение относительно больших объемов аудио данных, гарантирующее достаточно хорошее качество звучания, требует применения разных «ухищрений», позволяющих уплотнить данные.

1.1.4. Обоснование состава автоматизируемых задач

Реализация системы обработки аудиоинформации позволит интегрировать в едином интерфейсе все этапы обработки аудиоинформации:

1) редактирование структуры звукового файла;

2) изменение параметров цифрового звука (частота дискретизации, битрейт, число каналов);

3) редактирование темпа звука;

4) изменение общего уровня громкости;

5) эффекты возрастающей и затухающей громкости, эха и реверберации;

6) кодирование (сжатие) аудиоданных.

Редактирование структуры файла необходимо для изменения отдельных частей файла, это позволит удалять, копировать и вставлять части звукового сигнала. Изменение параметров цифрового звука необходимо, например, для уменьшения размера звукового файла, когда не так важно качество звучания. Редактирование темпа позволит замедлить и ускорить скорость воспроизведения звукового сигнала. Применение эффектов позволит придать звуку необходимые характеристики звучания.

1.2. Аналитический обзор

Тема программного обеспечения очень широка, поэтому здесь мы только вкратце обсудим основные представители программ для обработки звука.

Основные возможности таких программ это, как минимум, обеспечение возможности записи (оцифровки) аудио и сохранение на диск. Развитые представители такого рода программ позволяют намного больше: запись, многоканальное сведение аудио на нескольких виртуальных дорожках, обработка специальными эффектами (как встроенными, так и подключаемыми извне – об этом позже), очистка от шумов, имеют развитую навигацию и инструментарий в виде спектроскопа и прочих виртуальных приборов, управление/управляемость внешними устройствами, преобразование аудио из формата в формат, генерация сигналов, запись на компакт диски и многое другое. Некоторые из таких программ: Cool Edit Pro (Syntrillium), Sound Forge (Sonic Foundry), Nuendo (Steinberg), Samplitude Producer (Magix), Wavelab (Steinberg).

1.2.1. Cool Edit Pro 2.0

Редактирование и сведение аудио на 128 дорожках, 45 встроенных DSP-эффектов, включая инструменты для мастеринга, анализа и реставрации аудио, 32-битная обработка, поддержка аудио с параметрами 24 бит / 192 КГц, мощный инструментарии для работы с петлями (loops), поддержка DirectX, а также управление SMPTE/MTC, поддержка работы с видео и MIDI и прочее.

1.2.2. Sound Forge 6.0a

Мощные возможности не деструктивного редактирования, многозадачная фоновая обработка заданий, поддержка файлов с параметрами до 32 бит / 192 КГц, менеджер предустановок, поддержка файлов более 4 Гб, работа с видео, большой набор эффектов обработки, восстановление после зависаний, предпрослушивание примененных эффектов, спектральный анализатор и прочее.

1.2.3. Вывод по аналитическому обзору

В наборе программ пользователя, занимающегося обработкой звука, имеется множество разных инструментов, так было раньше и так будет впредь – универсальных комбайнов для работы со звуком не бывает. Однако, не смотря на все разнообразие ПО, в программах часто используются схожие механизмы для обработки звука (например, процессоры эффектов и прочие). На каком-то этапе разработки аудио ПО, производители поняли, что удобнее сделать в своих программах возможность подключения внешних инструментов, чем каждый раз создавать заново инструменты для каждой отдельной программы. Так что многие программы, относящиеся к той или иной группе ПО, позволяют подключать так называемые «плагины» - внешние подключаемые модули, расширяющие возможности обработки звука. Это стало возможным в результате появления нескольких стандартов на интерфейс между программой и подключаемым модулем. На сегодняшний день существуют два основных стандарта на интерфейс: DX и VST. Существование стандартов позволяет подключать один и тот же плагин к совершенно разным программам, не заботясь о возникновении конфликтов и неполадок. Говоря о самих плагинах, надо сказать, что это просто огромное семейство программ. Обычно, один плагин является механизмом, реализующим какой-то конкретный эффект, например, реверберацию или низкочастотный фильтр. Но все вышеперечисленные средства для редактирования аудиоданных имеют закрытый исходный код.

1.3. Основные требования к системе

1.3.1. Основные цели создания системы и критерии эффективности ее функционирования

Создание системы обработки аудиоинформации позволит получить преобразованный звуковой сигнал с заданными характеристиками звучания, а также сжатие измененного звукового файла для уменьшения занимаемого им размера без значительной потери качества звучания.

Для оценки эффективности работы системы обработки аудиоинформации можно использовать качество получаемых на выходе звуковых сигналов. Для определения качества кодирования звуковых данных можно использовать оценку размера полученных закодированных звуковых файлов и исходных.

1.3.2. Функциональное назначение системы

Автоматизация процесса обработки аудиоинформации подразумевает реализацию в системе определенных средств и функций. Следует выделить функциональных особенности, которыми должна обладать система:

1) возможность открытия и анализа файлов форматов Microsoft Wave, MP3 и Electronic Music;

2) отображение структуры звукового сигнала, записанного в файле, в графическом виде с возможностью изменения масштаба;

3) обеспечение возможности основных операций редактирования: выделение части сигнала, ее удаление, копирование и вставку. Обеспечение возможности вставки звукового сигнала из другого файла;

4) возможность изменения основных параметров цифрового звука: частоты дискретизации, битрейта, числа каналов;

5) изменение темпа(скорости) звукового сигнала, уровня громкости;

6) применение звуковых эффектов к сигналу, с указанием необходимых для них параметров (для эффекта эха: количество откликов, время между откликами, громкость отклика относительно предыдущего; для эффекта реверберации: количество отражений, задержка отраженного сигнала, громкость отражения относительно предыдущего; для эффектов возрастающей и затухающей громкости: громкость относительно текущей);

7) сжатие полученного сигнала для более компактного хранения с возможностью последующего извлечения.

1.3.3. Особенности системы и условия ее эксплуатации

Система обработки аудиоинформации предназначена для работы с цифровыми звуковыми сигналами, записанными в файлах одного из следующих форматов: Microsoft Wave, MP3, Electronic Music. Объем информации, обрабатываемой системой, достаточно велик и может достигать нескольких десятков мегабайт. Эти особенности накладывают ограничения на использование непроизводительных и медленных алгоритмов.

1.3.4. Требования к функциональной структуре

Построение системы обработки аудиоинформации предполагает модульную структуру. Система включает в себя 2 подсистемы: подсистему обработки и фильтрации сигнала, подсистему кодирования данных. Общий интерфейс и возможность доступа ко всем модулям в составе каждой подсистемы должна обеспечивать оболочка. Таким образом, существует две оболочки. Первая реализует интерфейс для редактирования звукового сигнала, его параметров, применение к нему различных эффектов. Вторая реализует интерфейс для кодирования(сжатия) отредактированного звукового сигнала. Обмен между подсистемами происходит через звуковые файлы.

1.3.5. Требования к техническому обеспечению

Задача обработки звуковых сигналов в системе обработки аудиоинформации связана с автоматическим анализом больших массивов аудио информации. Преобразования, проводимые в системе, должны проводиться в процессе интерактивного взаимодействия с пользователем, поэтому паузы на обработку не должны превышать нескольких минут. Исходя из этого, сформулированы требования к техническим характеристикам персонального компьютера, на котором будет функционировать система. Требования сведены в табл. 1.1.

Таблица 1.1

Технические характеристики персонального компьютера

Наименование

Значение

Частота процессора, МГц

от 900

Объем оперативной памяти, Мб

от 128

Разрешение экрана монитора

не менее 1024x768

1.3.6. Требования к информационному обеспечению

Система обработки аудиоинформации предназначена для обработки звуковых сигналов, записанных в звуковых файлах. Файлы должны быть одного из следующих форматов: Microsoft Wave (*.wav), MP3, Electronic music (*.em1)

Основным видом информации, обрабатываемом в системе, является звуковая информация в цифровом представлении. Такой вид данных воспринимается человеком непосредственно, поэтому необходимо обеспечить возможность прослушивания преобразованных сигналов на различных этапах обработки, а также их графическую визуализацию.

1.3.7. Требования к программному обеспечению

Систему обработки аудиоинформации целесообразно разрабатывать для функционирования под управлением операционной системой семейства Windows, так как ОС данного класса наиболее широко распространены в современном мире. Платформами для разработки выбраны среды для разработки приложений Borland Delphi 7 (подсистема обработки и филбтрации сигнала) и Microsoft Visual C++ 2003 (подсистема кодирования данных). Эта среда поддерживают алгоритмические языки Pascal и C++ соответственно и обладают при этом возможностями быстрой разработки и проектирования визуальных интерфейсов.

1.4. Основные технические решения проекта системы

1.4.1. Решение по комплексу технических средств

Как уже отмечалось в п.п. 1.3.5, для достижения удобного пользователю режима функционирования системы необходимо следующая минимальная конфигурация персонального компьютера: частота процессора 900 МГц, объем оперативной памяти 128 Мб, монитор, поддерживающий разрешение 1024 x768 точек. Также желательно наличие следующих периферийных технических средств: микрофон или другое записывающее устройство для получения исходных звуковых сигналов для их последующей обработки в системе, а также устройства вывода звуковых сигналов (колонки) для прослушивания полученных звуковых сигналов и оценки результатов работы системы.

1.4.2. Описание системы программного обеспечения

Для реализации и функционирования проекта необходимо общесистемное программное обеспечение ОС Windows XP, в основе которой лежит ядро, характеризуемое 32-разрядной вычислительной архитектурой и полностью защищенной моделью памяти, что обеспечивает надежную вычислительную среду.

Разработка системы обработки аудиоинформации и ее подсистем будет вестись с использованием сред для разработки приложений Borland Delphi 7 и Microsoft Visual C++ 2003. Эти среды разработки включают в себя высокопроизводительный 32-битный компилятор, что позволяет оптимизировать создаваемый код, а также обширный набор средств, которые повышают производительность труда программистов и сокращают продолжительность цикла разработки. Многофункциональные интегрированные среды разработки включают компилятор, удовлетворяющий стандарта ANSI/ISO, встроенный дизайнер форм, богатый набор средств для работы с компонентами, менеджер проектов и отладчик. Удобство разработки и эффективность созданных в данных средах разработки программ делают их оптимальным выбором для построения исследовательской системы, какой является система обработки аудиоинформации.


2. РАЗРАБОТКА ПОДСИСТЕМЫ ОБРАБОТКИ И ФИЛЬТРАЦИИ СИГНАЛА

2.1. Описание постановки задачи обработки и фильтрации звукового сигнала

2.1.1. Характеристика задачи

При разработке подсистемы обработки и фильтрации звукового сигнала требуется выполнить следующие задачи:

1) изучение структуры звуковых файлов различных форматов и реализация возможностей чтения этих форматов для последующей обработки;

2) разработка алгоритмов, позволяющих преобразовывать исходный звуковой сигнал с целью изменения характеристик звучания;

3) программная реализация алгоритмов, позволяющих преобразовывать исходный звуковой сигнал с целью изменения характеристик звучания.

Автоматизация процесса обработки и фильтрации звукового сигнала подразумевает реализацию в подсистеме определенных средств и функций. Следует выделить функциональных особенностей, которыми должна обладать подсистема:

1) возможность открытия и анализа файлов форматов Microsoft Wave, MP3 и Electronic Music;

2) отображение структуры звукового сигнала, записанного в файле, в графическом виде с возможностью изменения масштаба;

3) обеспечение возможности основных операций редактирования: выделение части сигнала, ее удаление, копирование и вставку. Обеспечение возможности вставки звукового сигнала из другого файла;

4) возможность изменения основных параметров цифрового звука: частоты дискретизации, битрейта, числа каналов;

5) изменение темпа (скорости) звукового сигнала, уровня громкости, обращение звукового сигнала;

6) применение звуковых эффектов к сигналу с указанием необходимых для них параметров.

Перечислим реализуемые звуковые эффекты с указанием их параметров:

– эффект эха: реализация повторения звукового сигнала с помощью временных преобразований таким образом, чтобы человеческое ухо воспринимало полученный сигнал как эхо (параметры: количество откликов, время между откликами, громкость отклика относительно предыдущего);

– эффект реверберации: придание звучанию объемности, характерной для большого зала, где каждый звук порождает соответствующий, медленно угасающий отзвук; отличается тем, что на входной сигнал накладывается задержанный во времени выходной сигнал, а не задержанная копия входного (параметры: количество отражений, задержка отраженного сигнала, громкость отражения относительно предыдущего);

– эффекты возрастающей и затухающей громкости: плавное увеличение громкости от нулевого уровня в начале фрагмента до максимального в конце и наоборот соответственно (параметр: величина громкости в процентах от текущей).

Полученный измененный звуковой сигнал поступает в подсистему кодирования данных для уменьшения занимаемого им размера.

2.1.2. Вхоная информация

Входной информацией для подсистемы является цифровой звуковой сигнал, записанный в звуковом файле определенного формата. Формат входного звукового файла представлен в табл.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 БИТ)

2.1.3. Выходная информация

Выходной информацией для данной задачи является измененный звуковой сигнал, записанный в файле, структура которого аналогична описанной в п.2.1.2.

2.1.4. Математическая постановка задачи

Спектр – один из важнейших инструментов анализа и обработки звука. Французский математик Фурье (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 – обращенный.

Исходный сигнал Обращенный сигнал

Рис. 2.15 Рис. 2.16

2.2. Описание алгоритма создания эффекта реверберации

2.2.1. Назначение и характеристика алгоритма создания эффекта реверберации

Данный алгоритм применяется к исходному звуковому сигналу для создания эффекта реверберации: придание звучанию объемности, характерной для большого зала, где каждый звук порождает соответствующий, медленно угасающий отзвук. Получается путем добавления к исходному сигналу затухающей серии его задержанных во времени копий. Это имитирует затухание звука в помещении, когда за счет многократных отражений от стен, потолка и прочих поверхностей звук приобретает полноту и гулкость, а после прекращения звучания источника затухает не сразу, а постепенно. При этом время между последовательными отзвуками ассоциируется с величиной помещения, а их интенсивность – с его гулкостью.

2.2.2. Используемая информация

При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов.

A = {A1 ,A2 ,…,An } – массив амплитуд звукового сигнала.

T = {T1 ,T2 ,…,Tn } – массив со значениями времени, где n зависит от частоты дискретизации, битрейта и размера файла.

Ti – Ti -1 определяется частотой дискретизации.

При реализации алгоритма учитываются следующие параметры эффекта реверберации, которые подаются в качестве параметров на вход алгоритма:

To – время между отражениями;

Гр – громкость отражения относительно предыдущего в процентах;

Kол – количество отражений.

2.2.3. Результаты решения

В результате реализации алгоритма формируются новые массивы амплитуд и значений времени A’ и T’. Структура выходного файла при этом соответствует описанной в п.2.1.2.

2.2.4. Математическое описание алгоритма создания эффекта реверберации

Для получения выходных массивов 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’ соответственно).

2.2.5. Алгоритм создания эффекта реверберации

1. i::=1;

2. MaxValue::=MaxValue*256;

3. i::=i+1;

4. Если i≤(AudioData.nBlockAlign/AudioData.nChannels),то переход к п.2 иначе к п.5;

5. MaxValue::=MaxValue/2 – 1;

6. TempAudio.nChannels ::= AudioData.nChannels;

7. TempAudio.nSamplesPerSec := AudioData.nSamplesPerSec;

8. TempAudio.nBitsPerSample := AudioData.nBitsPerSample;

9. DelaySmp := Round(Delay*AudioData.nSamplesPerSec/1000);

10. Channel :: =0;

11. Если Channel > (AudioData.nChannels-1),то переход к п. 38 иначе к п.12

12. i :: = Start;

13. Если i > (Start+Count-1), то переход к п. 37 иначе к п.14;

14. j :: = Number;

15. Если j < 0, то переход к п.21 иначе к п.16;

16. Если (i - Start) < (DelaySmp*j), то переход к п.17 иначе к п.18;

17. Smp ::= 0;

18. Прочитать из файла значение Smp;

19. SmpBuf [j] ::= Smp;

20. j ::= j+1; переход к п.15;

21. Mult ::= Volume;

22. j::=1;

23. Если j>Number, то переход к п.30 иначе к п.24;

24. k::=1;

25. Если k>Number, то переход к п.28 иначе к п.26;

26. SmpBuf[k-1] := SmpBuf[k-1] + Round(SmpBuf[k]*Mult);

27. k::=k+1; переход к п.25;

28. Mult ::= Mult*Volume;

29. j::=j+1; переход к п.23;

30. Smp := Round(SmpBuf[0]/(Number+1));

31. Если |Smp|>MaxValue, то переход к п.32 иначе к п.35;

32. Если Smp<0, то переход к п.33 иначе к п.34;

33. Smp::= - MaxValue;

34. Smp::=MaxValue;

35. Запись Smp в TempAudio;

36. i::=i+1; переход к п.13;

37. Сhannel ::= Channel+1; переход к п.11;

38. AudioData ::= TempAudio;

39. Конец.

2.2.6. Требования к контрольному примеру

Контрольный пример должен содержать примеры применения эффекта реверберации с различными параметрами.

2.2.7. Список условных обозначений

AudioData – совокупность значений амплитуд и времен;

Start – указатель на место в массиве данных,с которого начинать обработку;

Count – количество элементов массивов, которые необходимо обработать;

Number – количество отражений;

Delay – время между отражениями;

Volume – громкость отклика относительно предыдущего;

TempAudio – получаемая совокупность значений амплитуд и времен;

SmpBuf – хранит выборку аудиоданных;

Mult – коэффициент для получения значения амплитуды отражения;

Smp – текущая амплитуда;

Channel – количество каналов;

MaxValue – макс. значение амплитуды в обрабатываемом фрагменте;

DelaySmp = Ti – Ti -1 .

2.3. Описание алгоритма создания эффекта эха

2.3.1. Назначение и характеристика алгоритма создания эффекта эха

Данный алгоритм применяется к исходному звуковому сигналу для создания эффекта эха: реализация повторения звукового сигнала с помощью временных преобразований таким образом, чтобы человеческое ухо воспринимало полученный сигнал как эхо. При этом слух перестает субъективно воспринимать отражения, как призвуки основного сигнала, и начинает воспринимать их как повторения. Эхо обычно реализуется так же, как и естественное - с затуханием повторяющихся копий.

2.3.2. Используемая информация

При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).

A = {A1 ,A2 ,…,An } – массив амплитуд звукового сигнала;

T = {T1 ,T2 ,…,Tn } – массив со значениями времени;

n зависит от частоты дискретизации (ЧД), битрейта (Б) и размера файла;

Ti – Ti -1 определяется частотой дискретизации;

При реализации алгоритма учитываются следующие параметры эффекта эха, которые подаются в качестве параметров на вход алгоритма:

To – время между откликами;

Гр – громкость отклика относительно предыдущего в процентах;

Kол – количество откликов.

2.3.3. Результаты решения

В результате реализации алгоритма формируются новые массивы амплитуд и значений времени A’ и T’. Структура выходного файла при этом соответствует описанной в п.2.1.2.

2.3.4. Математическое описание алгоритма создания эффекта эха

Для получения выходных массивов 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’ соответственно).

2.3.5. Алгоритм создания эффекта эха

1. i::=1;

2. MaxValue::=MaxValue*256;

3. i::=i+1;

4. Если i≤(AudioData.nBlockAlign/AudioData.nChannels),то переход к п.2 иначе к п.5;

5. MaxValue::=MaxValue/2 – 1;

6. TempAudio.nChannels ::= AudioData.nChannels;

7. TempAudio.nSamplesPerSec := AudioData.nSamplesPerSec;

8. TempAudio.nBitsPerSample := AudioData.nBitsPerSample;

9. DelaySmp := Round(Delay*AudioData.nSamplesPerSec/1000);

10. Channel :: =0;

11. Если Channel > (AudioData.nChannels-1),то переход к п.31 иначе к п.12;

12. i ::= Start;

13. Если i > (Start+Count-1), то переход к п.30 иначе к п.14;

14. Прочитать Smp;

15. SummSmp ::= Smp; Mult::=Volume;

16. j ::= 1;

17. Если j > Number, то переход к п.23 иначе к п.18;

18. Если (i – Start) < (DelaySmp*j), то переход к п.19 иначе к п.20;

19. Smp ::= 0;

20. Прочитать Smp;

21. SummSmp ::= SummSmp + Mult*Smp; Mult ::= Mult*Volume;

22. j ::= j+1; переход к 17;

23. Smp ::= SummSmp/(Number + 1);

24. Если |Smp|>MaxValue, то переход к п.25 иначе к п.28;

25. Если Smp<0, то переход к п.26 иначе к п.27;

26. Smp ::= -MaxValue;

27. Smp ::= MaxValue;

28. Запись Smp в TempAudio;

29. i ::= i+1; переход к п.13;

30. Сhannel :: = Channel+1; переход к п.11;

31. AudioData ::= TempAudio;

32. Конец.

2.3.6. Требования к контрольному примеру

Контрольный пример должен содержать примеры применения эффекта реверберации с различными параметрами.

2.3.7. Список условных обозначений

AudioData – совокупность значений амплитуд и времен;

Start – указатель на место в массиве данных,с которого начинать обработку;

Count – количество элементов массивов, которые необходимо обработать;

Number – количество отражений;

Delay – время между отражениями;

Volume – громкость отклика относительно предыдущего;

TempAudio – получаемая совокупность значений амплитуд и времен;

SmpBuf – хранит выборку аудиоданных;

Mult – коэффициент для получения значения амплитуды отражения;

Smp – текущая амплитуда;

Channel – количество каналов;

MaxValue – макс. значение амплитуды в обрабатываемом фрагменте;

DelaySmp = Ti – Ti -1 .

2.4. Описание алгоритма изменения темпа звука

2.4.1. Назначение и характеристика алгоритма изменения темпа звука

Данный алгоритм применяется для замедления или ускорения скорости воспроизведения звукового сигнала.

2.4.2. Используемая информация

При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).

A = {A1 ,A2 ,…,An } – массив амплитуд звукового сигнала;

T = {T1 ,T2 ,…,Tn } – массив со значениями времени, где n зависит от частоты дискретизации (ЧД), битрейта (Б) и размера файла;

Ti – Ti -1 определяется частотой дискретизации.

При реализации алгоритма учитываются следующие параметры, которые подаются в качестве параметров на вход алгоритма: величина новой скорости воспроизведения в процентах от текущей (Ск).

2.4.3. Результаты решения

В результате реализации алгоритма формируется новый массив значений времени T’, массив с амлитудами A остается неизменным. Структура выходного файла при этом соответствует описанной в п.2.1.2.

2.4.4. Математическое описание алгоритма изменения темпа звука

Для получения выходного массива T’ используются следующие формулы:

T’1 = T1 * Ск/100;

T’2 = T2 * Ск/100;

T’n = Tn * Ск/100.

Описание используемых обозначений приведено в п.2.4.2.

2.4.5. Алгоритм изменения темпа звука

1. Если (Speed=1)или(Speed=0), то переход к п.31 иначе к п.2;

2. TempAudio.nChannels := AudioData.nChannels;

3. TempAudio.nSamplesPerSec := AudioData.nSamplesPerSec;

4. TempAudio.nBitsPerSample := AudioData.nBitsPerSample;

5. TempAudio.nBlockAlign := AudioData.nBlockAlign;

6. NewCount := Round(Count/Speed);

7. Если Speed > 1 , то переход к п.8 иначе к п.14;

8. i ::= NewCount; Interval ::= Speed;

9. AudioData.Data.Position ::= Start*AudioData.nBlockAlign;

10. Если i <> 0 , то переход к п.11 иначе к п.14;

11. Прочитать Buf из AudioData; Записать Buf в TempAudio;

12. AudioData.Data.Position ::= AudioData.Data.Position - AudioData.nBlockAlign + ]Interval[*AudioData.nBlockAlign;

13. Interval := Interval-]Interval[+Speed; i ::= i – 1; переход к п.10;

14. Speed ::= 1/Speed;

15. Channel ::= 0;

16. Если Channel > (AudioData.nChannels-1), то переход к п.31 иначе к п.17;

17. i ::= 0; j ::= 0; Interval ::= Speed;

18. Если i<>Count, то переход к п.19 иначе к п.30;

19. Прочитать Smp1;

20. Если (i+1) <> Count, то переход к п.21 иначе к п.22;

21. Прочитать Smp2;

22. Smp2 ::= Smp1;

23. k ::= ]Interval[;

24. n::=0;

25. Если n > (k-1), то переход к п.28 иначе к п.26;

26. Записать в TempAudio (Smp1+(Smp2-Smp1)/k*n);

27. n ::= n+1; переход к п.25;

28. Interval ::= Interval - ]Interval[ + Speed;

29. i :: = i+1; j ::= j+k; переход к п.18;

30. переход к п.16;

31. Конец.

2.4.6. Требования к контрольному примеру

Контрольный пример должен содержать примеры изменения темпа звука: увеличение и уменьшение скорости его воспроизведения.

2.4.7. Список условных обозначений

AudioData – совокупность значений амплитуд и времен;

Start – указатель на место в массиве данных,с которого начинать обработку;

Speed – новая скорость звукового сигнала в процентах от текущей;

TempAudio – получаемая совокупность значений амплитуд и времен;

Smp1, Smp2 – переменные для хранения амплитуд;

Channel – количество каналов;

Interval – текущий обрабатываемый временной интервал;

Count – текущее количество отметок времени;

NewCount – новое количество отметок времени.

2.5. Описание алгоритма изменения громкости звука

2.5.1. Назначение и характеристика алгоритма изменения громкости звука

Данный алгоритм применяется для увеличения или уменьшения громкости (амплитуды) звукового сигнала.

2.5.2. Используемая информация

При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).

A = {A1 ,A2 ,…,An } – массив амплитуд звукового сигнала;

T = {T1 ,T2 ,…,Tn } – массив со значениями времени, где n зависит от частоты дискретизации (ЧД), битрейта (Б) и размера файла;

Ti – Ti -1 определяется частотой дискретизации.

При реализации алгоритма учитываются следующие параметры, которые подаются в качестве параметров на вход алгоритма: величина новой громкости звукового сигнала в процентах от текущей (Гр).

2.5.3. Результаты решения

В результате реализации алгоритма формируется новый массив значений амплитуд A’, массив с временем T остается неизменным. Структура выходного файла при этом соответствует описанной в п.2.1.2.

2.5.4. Математическое описание алгоритма изменения громкости звука

Для получения выходного массива A’ используются следующие формулы:

A’1 = А1 * Гр/100;

A’2 = А2 * Гр/100;

A’n = An * Гр/100.

Описание используемых обозначений приведено в п.2.5.2.

2.5.5. Алгоритм изменения громкости звука

1. MaxValue ::= 1;

2. i ::= 0;

3. Если i > (AudioData.nBlockAlign/AudioData.nChannels), то переход к п.5 иначе к п.4;

4. MaxValue ::= MaxValue * 256;

5. MaxValue ::= MaxValue/2 – 1;

6. Channel ::=0;

7. Если Channel > (AudioData.nChannels – 1), то переход к п.19 иначе к п.8;

8. Volume ::= 1; i ::= Start;

9. Если i > (Start+Count-1), то переход к п.18 иначе к п.10;

10. Прочитать Value из файла;

11. Value ::= ]Value*Volume[;

12. Если |Value|>MaxValue, то переход к п.13 иначе к п.16;

13. Если Value<0, то переход к п.14 иначе к п.15;

14. Value ::= -MaxValue; переход к п.16;

15. Value ::= MaxValue;

16. Записать Value в файл;

17. i ::= i+1; переход к п.9;

18. Channel ::= Channel+1; переход к п.7;

19. Конец.

2.5.6. Требования к контрольному примеру

Контрольный пример должен содержать примеры изменения громкости звука: увеличение и уменьшение амплитуды звукового сигнала.

2.5.7. Список условных обозначений

AudioData – совокупность значений амплитуд и времен;

Start – указатель на место в массиве данных,с которого начинать обработку;

Count – количество элементов массивов, которые необходимо обработать;

Number – количество отражений;

Delay – время между отражениями;

Volume – громкость отклика относительно предыдущего;

TempAudio – получаемая совокупность значений амплитуд и времен;

SmpBuf – хранит выборку аудиоданных;

Mult – коэффициент для получения значения амплитуды отражения;

Smp – текущая амплитуда;

Channel – количество каналов;

MaxValue – макс. значение амплитуды в обрабатываемом фрагменте;

DelaySmp = Ti – Ti -1 .

2.6. Описание алгоритма создания эффекта возрастающей громкости

2.6.1. Назначение и характеристика алгоритма изменения громкости звука

Данный алгоритм применяется для плавного увеличения громкости от нулевого уровня в начале фрагмента до максимального в конце.

2.6.2. Используемая информация

При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).

A = {A1 ,A2 ,…,An } – массив амплитуд звукового сигнала;

T = {T1 ,T2 ,…,Tn } – массив со значениями времени, где n зависит от частоты дискретизации (ЧД), битрейта (Б) и размера файла;

Ti – Ti -1 определяется частотой дискретизации.

2.6.3. Результаты решения

В результате реализации алгоритма формируется новый массив значений амплитуд A’, массив с временем T остается неизменным. Структура выходного файла при этом соответствует описанной в п.2.1.2.

2.6.4. Математическое описание алгоритма создания эффекта возрастающей громкости

Для получения выходного массива A’ используются следующие формулы:

A’1 = А1 * 1/n;

A’2 = А2 * 2/n;

A’n = An .

Описание используемых обозначений приведено в п.2.6.2.

2.6.5. Алгоритм создания эффекта возрастающей громкости

1. MaxValue ::= 1;

2. i ::= 0;

3. Если i > (AudioData.nBlockAlign/AudioData.nChannels), то переход к п.5 иначе к п.4;

4. MaxValue ::= MaxValue * 256;

5. MaxValue ::= MaxValue/2 – 1; FinalVolume ::= Volume;

6. Channel ::=0;

7. Если Channel > (AudioData.nChannels – 1), то переход к п.20 иначе к п.8;

8. Volume ::= 1; i ::= Start;

9. Если i > (Start+Count-1), то переход к п.19 иначе к п.10;

10. Прочитать Value из файла;

11. Value ::= ]Value*Volume[;

12. Если |Value|>MaxValue, то переход к п.13 иначе к п.16;

13. Если Value<0, то переход к п.14 иначе к п.15;

14. Value ::= -MaxValue; переход к п.16;

15. Value ::= MaxValue;

16. Записать Value в файл;

17. Volume ::= Volume + FinalVolume/Count;

18. i ::= i+1; переход к п.9;

19. Channel ::= Channel+1; переход к п.7;

20. Конец.

2.6.6. Требования к контрольному примеру

Контрольный пример должен содержать примеры применения эффекта возрастающей громкости к звуковому сигналу.

2.6.7. Список условных обозначений

AudioData – совокупность значений амплитуд и времен;

Start – указатель на место в массиве данных,с которого начинать обработку;

Count – количество элементов массивов, которые необходимо обработать;

Number – количество отражений;

Delay – время между отражениями;

Volume – громкость отклика относительно предыдущего;

TempAudio – получаемая совокупность значений амплитуд и времен;

SmpBuf – хранит выборку аудиоданных;

Mult – коэффициент для получения значения амплитуды отражения;

Smp – текущая амплитуда;

Channel – количество каналов;

MaxValue – макс. значение амплитуды в обрабатываемом фрагменте;

DelaySmp = Ti – Ti -1 .

2.7. Описание алгоритма создания эффекта затухающей громкости

2.7.1. Назначение и характеристика алгоритма создания эффекта затухающей громкости

Данный алгоритм применяется для плавного уменьшения громкости от максимального уровня в начале фрагмента до нулевого в конце.

2.7.2. Используемая информация

При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).

A = {A1 ,A2 ,…,An } – массив амплитуд звукового сигнала;

T = {T1 ,T2 ,…,Tn } – массив со значениями времени, где n зависит от частоты дискретизации (ЧД), битрейта (Б) и размера файла;

Ti – Ti -1 определяется частотой дискретизации.

2.7.3. Результаты решения

В результате реализации алгоритма формируется новый массив значений амплитуд A’, массив с временем T остается неизменным. Структура выходного файла при этом соответствует описанной в п.2.1.2.

2.7.4. Математическое описание алгоритма создания эффекта затухающей громкости

Для получения выходного массива A’ используются следующие формулы:

n – количество временных интервалов;

A’1 = А1 * n/n;

A’2 = А2 * (n-1)/n;

A’n-1 = An-1 * 2/n;

A’n = An * 1/n.

Описание используемых обозначений приведено в п.2.7.2.

2.7.5. Алгоритм создания эффекта затухающей громкости

1. MaxValue ::= 1;

2. i ::= 0;

3. Если i > (AudioData.nBlockAlign/AudioData.nChannels), то переход к п.5 иначе к п.4;

4. MaxValue ::= MaxValue * 256;

5. MaxValue ::= MaxValue/2 – 1; FinalVolume ::= Volume;

6. Channel ::=0;

7. Если Channel > (AudioData.nChannels – 1), то переход к п.20 иначе к п.8;

8. Volume ::= 1; i ::= Start;

9. Если i > (Start+Count-1), то переход к п.19 иначе к п.10;

10. Прочитать Value из файла;

11. Value ::= ]Value*Volume[;

12. Если |Value|>MaxValue, то переход к п.13 иначе к п.16;

13. Если Value<0, то переход к п.14 иначе к п.15;

14. Value ::= -MaxValue; переход к п.16;

15. Value ::= MaxValue;

16. Записать Value в файл;

17. Volume ::= Volume + (FinalVolume-1)/Count;

18. i ::= i+1; переход к п.9;

19. Channel ::= Channel+1; переход к п.7;

20. Конец.

2.7.6. Требования к контрольному примеру

Контрольный пример должен содержать примеры применения эффекта затухающей громкости к звуковому сигналу различных форм.

2.7.7. Список условных обозначений

AudioData – совокупность значений амплитуд и времен;

Start – указатель на место в массиве данных,с которого начинать обработку;

Count – количество элементов массивов, которые необходимо обработать;

Number – количество отражений;

Delay – время между отражениями;

Volume – громкость отклика относительно предыдущего;

TempAudio – получаемая совокупность значений амплитуд и времен;

SmpBuf – хранит выборку аудиоданных;

Mult – коэффициент для получения значения амплитуды отражения;

Smp – текущая амплитуда;

Channel – количество каналов;

MaxValue – макс. значение амплитуды в обрабатываемом фрагменте;

DelaySmp = Ti – Ti -1 .

2.8. Описание алгоритма обращения звукового сигнала

2.8.1. Назначение и характеристика алгоритма создания эффекта затухающей громкости

Данный алгоритм применяется для обращения воспроизведения звукового сигнала.

2.8.2. Используемая информация

При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).

A = {A1 ,A2 ,…,An } – массив амплитуд звукового сигнала;

T = {T1 ,T2 ,…,Tn } – массив со значениями времени, где n зависит от частоты дискретизации (ЧД), битрейта (Б) и размера файла;

Ti – Ti -1 определяется частотой дискретизации.

2.8.3. Результаты решения

В результате реализации алгоритма формируются новые массивы значений амплитуд A’ и времени T’. Структура выходного файла при этом соответствует описанной в п.2.1.2.

2.8.4. Математическое описание алгоритма обращения звукового сигнала

Для получения выходных массивов A’ и Т’ используются следующие формулы:

A’1 = Аn ;

A’2 = Аn-1 ;

A’n-1 = A2 ;

A’n = A1 ;

T’1 = Аn ;

T’2 = Аn-1 ;

T’n-1 = A2 ;

T’n = A1 .

Описание используемых обозначений приведено в п.2.8.2.

2.8.5. Алгоритм обращения звукового сигнала

1. AbsStart ::= Start*AudioData.nBlockAlign;

2. AbsCount ::= Count*AudioData.nBlockAlign;

3. AbsFinish ::= AbsStart+AbsCount; i ::= AbsFinish;

4. Если (i-AbsStart)>=(MaxSizeOfBuffer), то переход к п.5 иначе к п.6;

5. BufferStart := i – MaxSizeOfBuffer; переход к п.7;

6. BufferStart := AbsStart;

7. AudioData.Data.Position := BufferStart; Прочитать знаение амплитуды в Buf;

8. Если i > BufferStart, то переход к п.9 иначе к п.11;

9. i := i - AudioData.nBlockAlign; AudioData.Data.Position := i;

10. Прочитать Buf из AudioData; Записать Buf в TempAudio; переход к п.8;

11. Если i = AbsStart, то переход к п.12 иначе к п.4;

12. AudioData.Data.Position := AbsStart; TempAudio.Data.Position := 0;

13. i ::= 1;

14. Если I > Count, то переход к п.17 иначе к п.15;

15. Прочитать Buf из TempAudio; Записать Buf в AudioData;

16. i ::= i+1; переход к п.14;

17. Конец.

2.8.6. Требования к контрольному примеру

Контрольный пример должен содержать примеры применения обращения звукового сигнала различных форм.

2.8.7. Список условных обозначений

AudioData – совокупность значений амплитуд и времен;

Start – указатель на место в массиве данных,с которого начинать обработку;

Count – количество элементов массивов, которые необходимо обработать;

Number – количество отражений;

Delay – время между отражениями;

Volume – громкость отклика относительно предыдущего;

TempAudio – получаемая совокупность значений амплитуд и времен;

SmpBuf – хранит выборку аудиоданных;

Mult – коэффициент для получения значения амплитуды отражения;

Smp – текущая амплитуда;

Channel – количество каналов;

MaxValue – макс. значение амплитуды в обрабатываемом фрагменте;

DelaySmp = Ti – Ti -1 .

2.9. Описание подпрограммы « Reverberation»

2.9.1. Вводная часть

Подпрограмма Reverberation служит для применения эффекта реверберации к указанному фрагменту звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.

2.9.2. Функциональное назначение

Подпрограмма Reverberation предназначена для реализации алгоритма создания эффекта реверберации.

2.9.3. Описание информации

Звуковой сигнал, записанный в файле, представлен следующим классом:

TAudioData = class(TObject)

public

nChannels: Word;

nSamplesPerSec: LongWord;

nBitsPerSample: Word;

nBlockAlign: Word;

Data: TFile;

constructor Create;

destructor Destroy;

procedure Calculate_nBlockAlign;

procedure ReadSample(Number, Channel: LongInt; var Value: Integer);

procedure WriteSample(Number, Channel: LongInt; Value: Integer);

private

Name: String;

end;

Описание полей класса представления звукового сигнала:

nChannels – число каналов;

nSamplesPerSecond – частота дискретизации;

nBitsPerSample – битрейт;

nBlockAlign – блок выравнивания (число каналов х разрядность);

Data – звуковые данные;

Name – имя файла.

TempAudio: TAudioData; – получаемая совокупность значений амплитуд и времен.

Описание используемых в подпрограмме переменных представлено в табл.2.2.

Таблица 2.2

Переменные, используемые в подпрограмме «Reverberation»

Имена переменных

Тип

Описание

i, j, k

integer

Переменные-счетчики

DelaySmp

Cardinal

Равно Ti – Ti-1

SmpBuf

array[0..64] of Int64

Хранит выборку аудио-данных

Mult

Real

Коэффициент для получения значения амплитуды отражения

Smp

Integer

Текущая амплитуда

Channel

Word

Количество каналов

MaxValue

Cardinal

Максимальное значение амплитуды в обрабатываемом фрагменте

Описание входных данных подпрограммы представлено в табл.2.3.

Таблица 2.3

Входные данные подпрограммы «Reverberation»

Имена переменных

Тип

Описание

AudioData

TAudioData

Передаваемая исходная совокуп-ность значений амплитуд и времен

Start

Cardinal

Стартовая позиция, с которой необходимо начать обработку

Count

Cardinal

Количество позиций, которые необходимо обработать относи-тельно стартовой

Number

Cardinal

Количество отражений

Delay

Cardinal

Время между отражениями

Volume

Real

Громкость отражения относитель-но предыдущего

Выходные данные подпрограммы:

AudioData – измененная совокупность значений амплитуд и времен с эффектом реверберации.

2.9.4. Используемые программы

В подпрограмме используются следующие подпрограммы:

1. ReadSample(Number, Channel: LongInt; var Value: Integer) – процедура чтения данных из звукового файла;

2. WriteSample(Number, Channel: LongInt; Value: Integer) – процедура записи данных в звуковой файл.

2.9.5. Схема подпрограммы «Reverberation»

Схема подпрограммы «Reverberation» приведена на рис. 2.17.


Нет

Нет

Нет

Нет

Нет

Нет

Да

Да

Да

Да

Да

Да

Да

Нет

Схема подпрограммы «Reverberation»

Рис. 2.17

2.10. Описание подпрограммы « Echo»

2.10.1. Вводная часть

Подпрограмма Echo служит для применения эффекта эха к указанному фрагменту звукового сигнала, записанного в файле. Текст программы приведен в приложении 1.

2.10.2. Функциональное назначение

Подпрограмма Echo предназначена для реализации алгоритма создания эффекта эха.

2.10.3. Описание информации

TempAudio: TAudioData; – получаемая совокупность значений амплитуд и времен. Описание используемых в подпрограмме переменных представлено в табл.2.4.

Таблица 2.4

Переменные, используемые в подпрограмме «Echo»

Имена переменных

Тип

Описание

i, j, k

integer

Переменные-счетчики

DelaySmp

Cardinal

Равно Ti – Ti -1

SmpBuf

array[0..64] of Int64

Хранит выборку аудио-данных

Mult

Real

Коэффициент для полу-чения значения амплиту-ды отражения

Smp

Integer

Текущая амплитуда

Channel

Word

Количество каналов

MaxValue

Cardinal

Макс. значение ампли-туды в обрабатываемом фрагменте

Описание входных данных подпрограммы представлено в табл.2.5.

Таблица 2.5

Входные данные подпрограммы «Echo»

Имена переменных

Тип

Описание

AudioData

TAudioData

Передаваемая исходная совокупность значений амплитуд и времен

Start

Cardinal

Стартовая позиция, с которой необходимо начать обработку

Count

Cardinal

Количество позиций, которые необходимо обработать относительно стартовой

Number

Cardinal

Количество откликов

Delay

Cardinal

Время между откликами

Volume

Real

Громкость отклика отно-сительно предыду-щего

Выходные данные подпрограммы:

AudioData – измененная совокупность значений амплитуд и времен с эффектом эха.

2.10.4. Используемые п одпрограммы

В подпрограмме используются следующие подпрограммы:

1. ReadSample(Number, Channel: LongInt; var Value: Integer) – процедура чтения данных из звукового файла;

2. WriteSample(Number, Channel: LongInt; Value: Integer) – процедура записи данных в звуковой файл.

2.10.5. Схема подпрограммы «Echo»

Схема подпрограммы «Echo» приведена на рис. 2.18.


Нет

Да

Да

Нет

Нет

Нет

Нет

Да

Да

Да

Нет

Да

Схема подпрограммы «Echo»

Рис. 2.18

2.11. Описание подпрограммы « SetSpeedOfAudio»

2.11.1. Вводная часть

Подпрограмма SetSpeedOfAudio служит для измения темпа (скорости) указанного фрагмента звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.

2.11.2. Функциональное назначение

Подпрограмма SetSpeedOfAudio предназначена для реализации алгоритма изменения темпа звука.

2.11.3. Описание информации

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 – измененная совокупность значений амплитуд и времен с измененным темпом.

2.11.4. Используемые программы

В подпрограмме используются следующие подпрограммы:

1) ReadSample(Number, Channel: LongInt; var Value: Integer) – процедура чтения данных из звукового файла;

2) WriteSample(Number, Channel: LongInt; Value: Integer) – процедура записи данных в звуковой файл.

2.11.5. Схема подпрограммы «SetSpeedOfAudio»

Схема подпрограммы «SetSpeedOfAudio» приведена на рис. 2.19.


Нет

Нет

Нет

Нет

Да

Да

Да

Да

Да

Нет

Схема подпрограммы «SetSpeedOfAudio»

Рис. 2.19

2.12. Описание подпрограммы « SetVolumeOfAudio»

2.12.1. Вводная часть

Подпрограмма SetVolumeOfAudio служит для измения уровня громкости указанного фрагмента звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.

2.12.2. Функциональное назначение

Подпрограмма SetVolumeOfAudio предназначена для реализации алгоритма изменения общего уровня громкости звука.

2.12.3. Описание информации

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 – измененная совокупность значений амплитуд и времен с измененным уровнем громкости.

2.12.4. Используемые программы

В подпрограмме используются следующие подпрограммы:

1) ReadSample(Number, Channel: LongInt; var Value: Integer) – процедура чтения данных из звукового файла;

2) WriteSample(Number, Channel: LongInt; Value: Integer) – процедура записи данных в звуковой файл.

2.12.5. Схема подпрограммы «SetVolumeOfAudio»

Схема подпрограммы «SetVolumeOfAudio» приведена на рис. 2.20.


Нет

Нет

Нет

Да

Да

Да

Нет

Да

Схема подпрограммы «SetVolumeOfAudio»

Рис. 2.20

2.13. Описание подпрограммы « ReChangeVolumeOfAudio»

2.13.1. Вводная часть

Подпрограмма ReChangeVolumeOfAudio служит для применения эффекта возрастающей громкости к указанному фрагменту звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.

2.13.2. Функциональное назначение

Подпрограмма ReChangeVolumeOfAudio предназначена для реализации алгоритма создания эффекта возрастающей громкости.

2.13.3. Описание информации

TempAudio: TAudioData; – получаемая совокупность значений амплитуд и времен. Описание используемых в подпрограмме переменных представлено в табл.2.10.

Таблица 2.10

Переменные, используемые в подпрограмме «ReChangeVolumeOfAudio»

Имена переменных

Тип

Описание

i

integer

Переменная-счетчик

MaxValue

Cardinal

Макс. значение ампли-туды в обрабатываемом фрагменте

Value

Cardinal

Текущее значение амплитуды

Channel

Word

Количество каналов

FinalVolume

Real

Значение амплитуды в конце обрабатываемого фрагмента

Описание входных данных подпрограммы представлено в табл.2.11.

Таблица 2.11

Входные данные подпрограммы «ReChangeVolumeOfAudio»

Имена переменных

Тип

Описание

AudioData

TAudioData

Передаваемая исходная совокупность значений амплитуд и времен

Start

Cardinal

Стартовая позиция, с которой необходимо начать обработку

Count

Cardinal

Количество позиций, которые необходимо обработать относительно стартовой

Выходные данные подпрограммы:

AudioData – измененная совокупность значений амплитуд и времен с примененным эффектом возрастающей громкости.

2.13.4. Используемые программы

В подпрограмме используются следующие подпрограммы:

1) ReadSample(Number, Channel: LongInt; var Value: Integer) – процедура чтения данных из звукового файла;

2) WriteSample(Number, Channel: LongInt; Value: Integer) – процедура записи данных в звуковой файл.

2.13.5. Схема подпрограммы «ReChangeVolumeOfAudio»

Схема подпрограммы «ReChangeVolumeOfAudio» приведена на рис. 2.21.


Нет

Да

Да

Да

Нет

Да

Нет

Нет

Схема подпрограммы «ReChangeVolumeOfAudio»

Рис. 2.21

2.14. Описание подпрограммы « ChangeVolumeOfAudio»

2.14.1. Вводная часть

Подпрограмма ChangeVolumeOfAudio служит для применения эффекта затухающей громкости к указанному фрагменту звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.

2.14.2. Функциональное назначение

Подпрограмма ChangeVolumeOfAudio предназначена для реализации алгоритма создания эффекта затухающей громкости.

2.14.3. Описание информации

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 – измененная совокупность значений амплитуд и времен с примененным эффектом затухающей громкости.

2.14.4. Используемые программы

В подпрограмме используются следующие подпрограммы:

1) ReadSample(Number, Channel: LongInt; var Value: Integer) – процедура чтения данных из звукового файла;

2) WriteSample(Number, Channel: LongInt; Value: Integer) – процедура записи данных в звуковой файл.

2.14.5. Схема подпрограммы «ChangeVolumeOfAudio»

Схема подпрограммы «ChangeVolumeOfAudio» приведена на рис. 2.22.


Да

Да

Да

Нет

Да

Нет

Нет

Нет

Схема подпрограммы «ChangeVolumeOfAudio»

Рис. 2.22

2.15. Описание подпрограммы « ReverseAudio»

2.15.1. Вводная часть

Подпрограмма ReverseAudio служит для применения обращения указанного фрагмента звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.

2.15.2. Функциональное назначение

Подпрограмма ReverseAudio предназначена для реализации алгоритма обращения звукового сигнала.

2.15.3. Описание информации

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 – измененная совокупность значений амплитуд и времен с обращенным звуковым сигналом.

2.15.4. Используемые программы

В подпрограмме используются следующие подпрограммы:

1) ReadSample(Number, Channel: LongInt; var Value: Integer) – процедура чтения данных из звукового файла;

2) WriteSample(Number, Channel: LongInt; Value: Integer) – процедура записи данных в звуковой файл.

2.15.5. Схема подпрограммы «ReverseAudio»

Схема подпрограммы «ReverseAudio» приведена на рис. 2.23.


Нет

Да

Нет

Да

Нет

Да

Схема подпрограммы «ReverseAudio»

Рис. 2.23

2.16. Описание контрольного примера

2.16.1. Назначение

Основной целью работы программы является изменение параметров звуковых сигналов, их структуры и применение различных звуковых эффектов для получения необходимых характеристик звучания. Результатом работы программы является измененный звуковой сигнал, записанный в файле. Контрольный пример должен содержать исходный звуковой сигнала, записанный в файле одного из следующих форматов: Microsoft RIFF/WAVE (файлы с расширением wav), MP3 (файлы с расширением mp3), Electronic music (файлы с расширением em1).

2.16.2. Исходные данные

На рис. 2.24 и рис. 2.25 приведены изображения исходных звуковых сигналов. К первому предполагается применить звуковые эффекты (реверберация, эхо), изменить параметры (частота дискретизации, битрейт, число каналов, общий уровень громкости, темп) и отредактировать структуру (удаление, копирование, обращение части сигнала). Ко второму предполагается применить эффекты возрастающей и затухающей громкости. Данные звуковые сигналы получены путем записи их через микрофон. Файлы сохранены в формате Microsoft RIFF/WAVE, поэтому пригодны для тестирования.

Исходные звуковые сигналы