битрейт: разрядность квантования; количество бит, которым описывает-ся одна секунда звукового сигнала;- число каналов: число источников звука, через которые воспроизводятся звуковые сигналы.Звуковые сигналы поступают на вход системы в цифровом виде - в виде звуковых файлов, структура которых описана в п.2.1.2.Задача обработки и фильтрации заключается в извлечении и обработки необходимых данных из файла.С помощью заголовка звукового файла можно прочитать и изменить описанные основные параметры звукового сигнала, записанного в файле.Для изменения звукового сигнала и применения к нему эффектов необходимо прочитать и отредактировать звуковые данные из основной части файла.Математическое представление звуковых эффектов и их параметров:Эффект реверберации. На рис. 2.2 представлен исходный звуковой сигнал, а на рис. 2.3 применение к исходному сигналу эффекта реверберации с указанием параметров На оси абцисс откладывается время, а по оси ординат значение амплитуды (громкости) звукового сигнала в определенный момент времени.Исходный сигнал 218 Рис.2.2Эффект реверберацииT - время между отражениями;h1 - громкость исходного звукового сигнала;h2 - громкость отраженного сигнала.Рис. 2.3В данном случае h1=h2, то есть громкость отраженного сигнала равна громкости исходного сигнала.Количество отражений в данном случае равно 1.Эффект эха. На рис. 2.4 представлен исходный звуковой сигнал, а на рис. 2.5 применение к исходному сигналу эффекта эха с указанием параметров На оси абцисс откладывается время, а по оси ординат значение амплитуды (громкости) звукового сигнала в определенный момент времени.Исходный сигнал218 Рис. 2.4Эффект эхаT - время между откликами;h1 - громкость исходного звукового сигнала;h2 - громкость отклика.Рис.2.5.В данном случае h2=h1/2, то есть громкость отклика в два раза меньше громкости исходного сигнала .Количество откликов в данном случае равно 1.Изменение темпа. На рис. 2.6 представлен исходный звуковой сигнал. На рис. 2.7 представлен измененный звуковой сигнал с уменьшенным в два раза темпом, на рис. 2.8 - с увеличенным в два раза темпом. На оси абцисс откладывается время, а по оси ординат значение амплитуды (громкости) звукового сигнала в определенный момент времени. Исходный сигнал Увеличение темпа218 218 Рис. 2.6 Рис. 2.7Уменьшение темпа218 Рис. 2.8 Изменение общего уровня громкости На рис. 2.9 представлен исходный звуковой сигнал. На рис. 2.10 представлен измененный звуковой сигнал с уменьшенной в два раза громкостью, на рис. 2.11 - с увеличенной в два раза громкостью. На оси абцисс откладывается время, а по оси ординат значение амплитуды (громкости) звукового сигнала в определенный момент времени. Исходный сигнал Уменьшение громкости218 218 Рис. 2.9 Рис. 2.10Увеличение громкости218 Рис. 2.11Эффекты возрастающей и затухающей громкости. На рис. 2.12 представлен исходный звуковой сигнал, а на рис. 2.13 и рис. 2.14 применение к исходному сигналу эффекта возрастающей и затухающей громкости соответственно. На оси абцисс откладывается время, а по оси ординат значение амплитуды (громкости) звукового сигнала в определенный момент времени. Исходный сигнал Возрастание громкости218 218 Рис. 2.12 Рис.2.13 Затухание громкости218 Рис. 2.14 Обращение звукового сигнала. На рис. 2.15 представлен исходный звуковой сигнал, а на рис. 2.16 - обращенный. Исходный сигнал Обращенный сигнал218 Рис. 2.15 Рис. 2.162.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 иначе к п.1212. 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;
Страницы: 1, 2, 3, 4
|