Мегаобучалка Главная | О нас | Обратная связь


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



2019-12-29 171 Обсуждений (0)
Алгоритм изменения темпа звука 0.00 из 5.00 0 оценок




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. Конец.

 

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

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

 

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

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

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

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

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

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

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

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

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

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

 

 

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

 

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

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

 

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

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

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

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

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

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

 

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

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

 

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

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

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

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

A’n = An * Гр/100.

 

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

 

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

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. Конец.

 

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

DelaySmp = Ti – Ti-1.

 

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

 

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

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

 



2019-12-29 171 Обсуждений (0)
Алгоритм изменения темпа звука 0.00 из 5.00 0 оценок









Обсуждение в статье: Алгоритм изменения темпа звука

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (171)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)