Компьютерная обработка звука Загуменнов Александр
Сначала аналоговый сигнал преобразуется в последовательность аналоговых же выборок, полученных через равные промежутки времени. Квантование аналогового сигнала представляет собой выбор конечного числа уровней, которые, как правило, равномерно распределены в диапазоне от – U до +U шкалы входного сигнала аналого-цифрового преобразователя (АЦП). Количество уровней квантования почти однозначно связывается с выходным цифровым сигналом посредством кодирования. Наиболее распространенным является прямое двоичное кодирование.
Если спектр преобразуемого аналогового сигнала располагается в полосе частот от 0 до F, то частота выборки (или частота дискретизации) не должна быть менее 2F. Таким образом, если реальный аналоговый сигнал содержит частотные компоненты от 0 Гц до 20 кГц, то частота дискретизации такого сигнала должна быть выбрана не меньше 40 кГц.
На этот счет существует теорема Шеннона-Котельникова и частота Найквиста (F) как следствие из данной теоремы. Однако теорема не содержит утверждения о точном восстановлении аналогового сигнала при указанном условии (> 2F). На самом деле восстановленный сигнал имеет произвольные амплитуду и фазу (в конкретных пределах). Статистически достоверное восстановление исходного аналогового сигнала имеет место при частоте выборки не менее 5F.
Отношение сигнал/шум на выходе N-разрядного АЦП в идеальном случае равно (6N-6) дБ, поскольку существует неустранимая погрешность квантования (так называемый шум квантования) равная половине разности между соседними уровнями квантования, что эквивалентно потере 6 дБ в отношении сигнал/шум. Повышение частоты преобразования существенно снижает интермодуляционные искажения, обусловленные наложением спектров – aliasing (совмещение, алиазинг), – и повышает достоверность восстановления аналогового сигнала. Реальный музыкальный сигнал далек от белого шума (близок к розовому – шуму дождя, прибоя, ветра – то есть шуму, плотность которого спадает с ростом частоты), но шум квантования не зависит от сигнала, если число уровней квантования неизменно и распределение их равномерно. Другое дело – погрешность преобразования, которая действительно зависит от амплитуды и частоты входного сигнала и выражается в реальных нелинейных и интермодуляционных искажениях, то есть паразитных спектральных составляющих.
На слух такие ошибки воспринимаются как «зернистость» во фрагментах записи с низким уровнем сигнала. При этом возникает ощущение «грязного» звука. Оно же появляется при изменении разрядности записи, например когда 20-разрядную запись приводят к 16-разрядной или последнюю – к 8-разрядной.
В таких случаях для уменьшения ошибок квантования в цифровых записях применяется дизеринг. Дизеринг (dithering – размывание) представляет собой подмешивание в исходный сигнал (в цифровой форме) псевдослучайного шума со специально подобранным спектром. В результате наиболее заметные (для человеческого слуха) паразитные спектральные составляющие перемещаются из среднечастотной (3–5 кГц) в высокочастотную область (15–17 кГц).
Другими словами, метод дизеринга заключается в добавлении при крайне низком уровне сигнала специального вида шума, обычно высокочастотного. Это приводит к независимости шумов квантования и сигнала, однако общий уровень шумов немного возрастает. Действительно, добавленный шум может восприниматься на слух как постоянное шипение. Однако это едва ощутимо и намного «приятнее» на слух, чем искажения, появляющиеся при отбрасывании младших разрядов.
В результате обработки сигнала с применением дизеринга к нему добавляется шум квантования. Его спектр равномерен и занимает полосу от 0 Гц до половины частоты дискретизации. Равномерность по частоте и некоррелированность шума с сигналом достигается благодаря дизерингу, а также правилу квантования, согласно которому амплитуда в отсчете округляется до ближайшей опорной величины. Применение более сложных правил округления позволяет получить другие (неравномерные) спектральные характеристики шумов округления при сохранении полной мощности шумов неизменной. Учитывая, что слух человека имеет спад чувствительности на высоких и на очень низких частотах, можно, используя специальные правила округления при квантовании, получить спектр шумов округления, большей частью сосредоточенный в области наименее заметных на слух частот. Следовательно, можно значительно увеличить отношение сигнал/шум в диапазоне слышимых частот в цифровом сигнале, не увеличивая количество битов на один отсчет.
Для этого формируется спектр шумов квантования, имеющий форму, обратную кривой чувствительности слухового аппарата человека. То есть там, где наш слух наиболее чувствителен к шумам, кривая спектра мощности шумов будет иметь минимум, и наоборот, там, где наш слух менее чувствителен к шуму, будет сосредоточен максимум шумов. Подобный метод называется нойс-шейпингом (noise-shaping – формирование шума).
Применяя такие методы обработки сигнала, можно достичь субъективно лучшего восприятия звука, хотя объективные измерения отношения сигнал/шум во всем частотном диапазоне могут показать ухудшение этого параметра за счет увеличения мощности высокочастотных шумов.
Простейшее редактирование
Операции редактирования можно условно разделить на четыре группы:
• простейшее редактирование;
• звуковые процессы;
• звуковые эффекты;
• дополнительные инструменты.
К группе простейшего редактирования относят операции, которые не затрагивают внутренней структуры звука, то есть не изменяют его акустических, частотных характеристик и пр.
Большинство из них используют буфер обмена, который представляет собой временную область для хранения. Буфер обмена может применяться также для перемещения данных из одного окна в другое.
Чаще всего используются операции, перечисленные ниже.
Cut (Отрезать). Выделенная часть данных удаляется из звуковой волны и копируется в буфер обмена.
Clear/Delete (Очистить/Удалить). Выделенный фрагмент данных удаляется без копирования в буфер обмена.
Trim/Crop (Вырезать/Обрезать). Удаляются все данные из окна, за исключением выделенного фрагмента.
Copy (Копировать). Копируется выделенный фрагмент данных в буфер обмена.
Paste (Вставить). Вставляется содержимое буфера обмена в окно данных, начиная с текущей позиции курсора, или заменяется выделение.
Mix (Смешать). Смешивается содержимое буфера обмена с данными в окне, начиная с текущей позиции курсора или с начала выделения.
Crossfade (Плавно заместить). Данные в окне плавно замещаются содержимым буфера обмена, начиная с позиции курсора (громкость одного сигнала плавно затухает, а другого нарастает).
Технология выполнения описываемых операций в программе Samplitude 2496 несколько отличается. Для временного хранения используется не отвлеченный буфер обмена, а две конкретные области: Clip для аудиоданных из Wave Projects (Волновые проекты) и VirtClip для Virtual Projects (Виртуальные проекты).
Clip – это область памяти для хранения выборок из Wave projects, которые копируются из окна волнового проекта и могут быть вставлены в тот же самый или в другой волновой проект. Кроме того, содержимое Clip может также быть смешано с содержимым окна другого волнового проекта. Clip всегда создается с атрибутами из проекта (разрядность в битах, частота дискретизации, моно/стерео режим, левый/правый канал) и представлен на экране окном, которое содержит слово «Clip» в своем названии и вид которого продемонстрирован на рис. 1.8. Другими словами, Clip выглядит как любой другой проект, который можно воспроизвести, редактировать и сохранить с любым именем.
Рис. 1.8. Окно Clip со скопированными аудиоданными в программе Samplitude 2496
В то время как Clip служит для пересылки звукового материала между окнами волновых проектов, VirtClip делает то же самое с данными из виртуальных проектов. На рис. 1.9 показано окно VirtClip со скопированными аудиоданными.
Рис. 1.9. Окно VirtClip со скопированными в него аудиоданными
При этом фактически VirtClip не содержит аудиоинформации, а хранит только ссылки на аудиофайлы, и в нем присутствует столько каналов, сколько их содержит скопированный фрагмент.
Использование обзорных окон при редактировании
Для быстрой ориентации в графиках звуковых данных вне зависимости от их масштаба в программах обработки звука используются разного вида обзорные окна. В них всегда видна волновая форма всего файла, сжатая до размеров окна. По ним также легко определить местоположение редактируемого в основном окне фрагмента.
При выделении фрагментов и перемещении по звуковому файлу вы, вероятно, заметили изменения в полосе обзора (узкое окно чуть ниже названия окна данных), которая показана на рис. 1.10.
Рис. 1.10. Полоса обзора в программе Sound Forge
Полоса обзора представляет длину всего звукового файла так, словно выбран наименьший масштаб. По ней вы можете определить, какая именно часть звукового файла отображается в окне, где сделано выделение и где расположен курсор.
Полоса обзора в программе WaveLab имеет вид, показанный на рис. 1.11.
Рис. 1.11. Полоса обзора в программе WaveLab
Как видим, в этой программе добавлена шкала, полоса прокрутки и регуляторы масштабирования.
При открытии выбранный звуковой файл грузится не только в основное окно, но и в окно Full View (Полный вид), показанное на рис. 1.12. В нем всегда видна волновая форма всего файла, сжатая до размеров окна. Для стереофайла оба канала суммируются и отображаются как монофайл.
Рис. 1.12. Обзорное окно Full View в программе SAW Plus 32
Если щелкнуть правой кнопкой мыши в любом месте окна Full View, начнется воспроизведение звукового файла от текущей позиции курсора. Повторный щелчок правой кнопкой приостановит воспроизведение. Щелчок левой кнопкой мыши перемещает позицию курсора. Щелчок левой кнопкой в этом окне во время воспроизведения перемещает курсор к точке нажатия, и воспроизведение продолжается уже с этой точки.
Щелкнув левой кнопкой мыши в полосе обзора вне области в скобках, вы перестанете видеть курсор на изображении волны. Однако двойной щелчок в полосе обзора перемещает курсор в центр окна данных, а волна будет изображаться относительно этой позиции в звуковом файле.
Можно воспроизвести звуковой файл, начиная с текущей позиции курсора, если щелкнуть правой кнопкой в любом месте полосы обзора. Повторный щелчок правой кнопкой приостановит воспроизведение. Щелчок левой кнопкой мыши в полосе обзора перемещает позицию курсора. Обратите внимание: щелчок левой кнопкой в полосе обзора во время воспроизведения перемещает курсор к точке нажатия и воспроизведение продолжается уже с этой точки. При помощи таких средств передвижения очень легко найти нужные фрагменты в больших файлах.
Например, в записи речи вы хотите переместить курсор в начало фразы. Щелкните правой кнопкой в полосе обзора, чтобы начать воспроизведение, а затем щелкайте левой кнопкой в различных позициях внутри полосы обзора, пока не найдете точную отметку начала. Как только вы ее нашли, можно нажать кнопку Stop, чтобы прекратить воспроизведение. Курсор теперь находится в той позиции, где вы щелкнули в последний раз. Выберите команду Center Cursor (Отцентрировать курсор) из меню Special, и можно приступать к редактированию.
Если, удерживая нажатой левую кнопку мыши, сдвинуть курсор в полосе обзора, начнется циклическое воспроизведение маленьких частей, располагающихся возле позиции курсора. Эта функция называется Audio Event Locator (Локатор, или Устройство улавливания звуковых событий). С ее помощью пользователь может прослушивать короткие фрагменты звукового материала, чтобы быстро поймать точку вставки. Длительность цикла звукового фрагмента можно скорректировать в диалоговом окне Preferences.
Копирование
Копирование звуковых данных в простейшем случае выполняется в два приема, примерно одинаковым способом как в Sound Forge и WaveLab, так и в SAW Plus 32 и Samplitude 2496.
Copy (Копировать). Выделив фрагмент, выполните команду Copy из меню Edit. При этом выделенные данные копируются в буфер обмена. На экране не происходит никаких изменений, так как команда Copy не изменяет данные, а только копирует их в буфер обмена.
В SAW Plus 32 команда называется Copy Marked (SoundFile) и копирует не сами аудиоданные, а только указатели, поэтому не требуется больших объемов свободной памяти.
В программе Samplitude 2496 данные из волнового проекта копируются в Clip, а из виртуального проекта – в VirtClip, при этом прежнее содержимое Clip или VirtClip, как и прежнее содержимое буфера обмена в других рассматриваемых здесь программах, не сохраняется. Все атрибуты проекта также копируются в Clip или VirtClip. Кроме команды Copy, в Samplitude 2496 есть еще две команды копирования: Copy and Clear (Копировать и очистить) и Copy Track(s) (Копировать каналы). По команде Copy and Clear содержимое выделенного фрагмента копируется из виртуального проекта в VirtClip, а сам фрагмент очищается от данных. По команде Copy Track(s) из меню Edit Edit Tracks все выделенные каналы виртуального проекта копируются в VirtClip.
Paste (Вставить). В программах Sound Forge и WaveLab содержимое буфера обмена вставляется в окно данных, начиная с текущей позиции курсора. Если был выделен фрагмент, он заменяется содержимым буфера обмена.
В SAW Plus 32 эта команда называется Paste Clipboard To Current SoundFile (Вставить содержимое буфера обмена в текущий звуковой файл). Содержимое буфера обмена добавляется к файлу в окне SoundFile View, начиная с позиции курсора.
В программе Samplitude 2496 команда того же назначения называется Paste/Insert Clip. Содержимое Clip вставляется в текущий проект, начиная с позиции курсора или с начала выделенного фрагмента. Данные или объекты, которые размещены запозицией вставки, сдвигаются, чтобы освободить место для содержимого Clip. Семплы или звуковые каналы (в зависимости от того, где происходит вставка) станут длиннее. Clip не изменяется. Если Clip пуст, появляется сообщение об ошибке.
После вставки программа выделяет фрагмент вставленной области. Если сразу выбрать в меню Edit команду Delete, то вставленный фрагмент будет удален, и проект вернется к первоначальному состоянию.
В виртуальных проектах программа использует начальную позицию выделенного диапазона и его положение относительно каналов как точку вставки для содержимого Clip или VirtClip.
Если Clip имеет режим моно, а проект – режим стерео, то в каждый канал стереопроекта вставляется содержимое Clip. Если, наоборот, Clip имеет режим стерео, а проект – моно, то в проект вставляется содержимое левого канала Clip.
Если требуется заменить выделенный фрагмент содержимым Clip, выполняется команда Overwrite with Clip. При этом общая длительность записи остается неизменной.
В Sound Forge или WaveLab сделайте открытое окно со звуковыми данными активным. Для этого щелкните мышью на его титульной строке. Если в окне нет выделенного фрагмента, выделите его. Из меню Edit выберите команду Copy. При этом выделенные звуковые данные копируются в буфер обмена.
Теперь сделайте активным вновь созданное пустое окно. Если титульная строка этого окна закрыта другими окнами, воспользуйтесь меню Window. Выберите команду Paste из меню Edit, и фрагмент появится в новом окне. Для прослушивания нажмите кнопку Play, после чего зазвучит уже новый файл.
Если выделенный фрагмент записи перетащить с помощью мыши в пустую часть рабочей области Sound Forge или WaveLab, будет автоматически создано новое окно со скопированным в него фрагментом.
В SAW Plus 32 эта операция выполняется при помощи команды Paste Clipboard To New SoundFile (Вставить содержимое буфера обмена в новый звуковой файл). Содержимое буфера обмена записывается в новый файл. При этом будет запрошено его имя.
В Samplitude 2496 эта операция выполняется при помощи команды Copy As. Копируется выделенный фрагмент волнового проекта.
При копировании данных из одного окна в другое может обнаружиться, что частота дискретизации одной записи не соответствует другой. Тогда программа выдает предупреждение о том, что звук скопированного фрагмента будет воспроизводиться с другой скоростью. Обычно это нежелательно (если только не используется как спецэффект). Чтобы избежать такого несоответствия операций, следует перед копированием привести частоту дискретизации одного из файлов к частоте дискретизации другого файла. Не делайте только подобных преобразований слишком часто, так как многократное конвертирование может ухудшить качество записи из-за операций округления или различий в применяемых для разных программ алгоритмах.
Перемещение
Перемещением звуковых данных называют копирование фрагмента в новое место и удаление его со старого.
Иногда необходимо сдвинуть выделение (не звуковые данные, а область), сохраняя его протяженность. Это можно выполнить одним из двух способов.
Первый состоит в следующем. Нажмите и удерживайте клавишу Shift, а мышью захватите край выделения. Теперь, когда вы перемещаете мышь влево или вправо, все выделение будет двигаться целиком, как блок, длина выделения при этом сохраняется.
Второй способ скорее математический. При использовании ACID Looping Tools (Инструментальные средства создания цикла для программы ACID) можно также сдвигать выделение на величину его длины. Это весьма полезно, когда выделен такт или нота (по длительности), а вы хотите перейти к следующему такту или ноте. Выберите команду Shift Selection Left (Сдвинуть область выделения влево) или Shift Selection Right (Сдвинуть область выделения вправо) из ACID Looping Tools в меню Special, и вся область выделения целиком перейдет влево или вправо на величину своей длины.
Ухватите мышью выделенный фрагмент записи, нажмите и удерживайте клавишу Alt (или Shift) и перетащите фрагмент в новую позицию в текущем или другом окне. Когда курсор оказывается в допустимой для перемещения области, он принимает символическую форму звуковой волны. В строке состояния отображается точная позиция, в которую будет вставлен фрагмент.
Чтобы отменить перемещение между окнами, надо сначала выполнить в окне-адресате команду Undo Paste (Отменить вставку) из меню Edit, а затем в исходном окне – Undo Cut (Отменить вырезку) из того же меню.
Вставка
Paste (Вставить). В программах Sound Forge и WaveLab содержимое буфера обмена вставляется в окно данных, начиная с текущей позиции курсора, или, если был выделен фрагмент, он заменяется содержимым буфера обмена.
В SAW Plus 32 эта команда называется Paste Clipboard To Current Sound-File (Вставить содержимое буфера обмена в текущий звуковой файл). Содержимое буфера обмена добавляется к файлу в окне SoundFile View начиная с позиции курсора.
В программе Samplitude 2496 та же команда называется Paste/Insert Clip. Содержимое Clip вставляется в текущий проект с позиции курсора или с начала выделенного фрагмента. Данные или объекты, которые размещены за позицией вставки, сдвигаются, чтобы освободить место для содержимого Clip. Семплы или звуковые каналы (в зависимости от того, где происходит вставка) станут длиннее. Clip не изменяется. Если Clip пуст, появляется сообщение об ошибке.
После вставки программа выделяет фрагмент вставленной области. Если сразу выбрать в меню Edit команду Delete, вставленный фрагмент будет удален, и проект вернется к первоначальному состоянию.
В виртуальных проектах программа использует начальную позицию выделенного диапазона и его положение относительно каналов как точку вставки для содержимого Clip или VirtClip.
Если Clip имеет режим моно, а проект – режим стерео, то в каждый канал стереопроекта вставляется содержимое Clip. Если, наоборот, Clip имеет режим стерео, а проект – моно, то в проект вставляется содержимое левого канала Clip.
Если требуется заменить выделенный фрагмент содержимым Clip, выполняется команда Overwrite with Clip. При этом общая длительность записи остается неизменной.
Выделите весь исходный файл и перетаскивайте выделение мышью в другое окно. Нажмите и удерживайте клавишу Alt,