- •1 Технология воспроизведения звуковых файлов
- •1.1 Способы кодирования и воспроизведения звука, формат звукового файла wav.
- •1.2 Реализация возможностей воспроизведения звука в среде программирования matlab
- •2 Разработка алгоритма информационных технологий
- •2.1 Составление функциональной схемы программы
- •2.2 Разработка интерфейса
- •2.3 Апробация работы программы
- •Приложение а
- •Приложение в
1.2 Реализация возможностей воспроизведения звука в среде программирования matlab
При разработки данного плеера был задействован компонент Matlab GUI(Graphical user interface). GUI - это разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее и исполнены в виде графических изображений. В отличие от интерфейса командной строки, в графическом интерфейсе пользователь имеет произвольный доступ ко всем видимым экранным объектам (элементам интерфейса) и осуществляет непосредственное манипулирование ими. Чаще всего элементы интерфейса в графический интерфейс реализованы на основе метафор и отображают их назначение и свойства, что облегчает понимание и освоение программ неподготовленными пользователями[5].
Преобразование аналогового сигнала в цифровой и обратно – это процессы, которые выполняются аппаратными средствами. Matlab же, будучи программным пакетом, может лишь взаимодействовать с соответствующим оборудованием. Кроме того, в Matlab предусмотрены средства для воспроизведения и записи звука, а также для работы со звуковыми файлами формата WAV.
Для считывания WAV-файлов в Matlab имеется функция waveread.
y = wavread (‘filename’); где filename – имя звукового файла (расширение .wav указывать необязательно).В результате выполнения функции в переменную y будет перемещено всё содержимое указанного файла. Строки матрицу y соответствуют отсчётам сигнала, столбцы – каналам, которых в WAV-файле может быть несколько. В звуковом файле отсчёты сигнала представлены целыми числами, лежащими в диапазоне -128..+127 (8 бит на отсчёт), либо-32768…+32767 (16 бит на отсчёт). Управлять нормировкой считываемых отсчётов можно с помощью дополнительного строкового параметра ‘fmt’, добавляемого в конце списка входных параметров функции waveread. При принятом по умолчанию варианте ‘double’ значения отсчётов приводятся в диапазоне -1..+1, а при значении ‘native’ функция возвращает целые числа в том виде, в котором они хранятся в WAV-файле[4].
Помимо собственно отсчётов, в WAV-файле хранится служебная информация о частоте дискретизации, количество бит на отсчёт и т.п. Узнать частоту дискретизации и количество бит на отсчёт можно, используя при вызове функции дополнительные выходные параметры:
[y,Fs, N] = wavread (‘filename’);
Для того что-бы записать вектор (или матрицу) на диск в виде WAV-файла, используется функция wavwrite:
wavwrite (y,Fs,N,‘filename’);
Здесь:
y – записываемые данные (вектор для монофонической записи, двухстолбцовая матрица – для создания стереофайла);
Fs – частота дискретизации в герцах; . Типичные значения поддерживаются большинством звуковых карт являются 8000, 11025, 22050, 44100, 48000 и 96000 Гц.
N – число бит на отсчёт (8 или 16); Биты в образце. Укажите только тогда, когда сигнал Y представляет значения с плавающей точкой.Допустимые значения зависят от оборудования, установленного аудио: 8 , 16 или 24 .По умолчанию: 16
‘filename’ – имя создаваемого файла.
Выходных параметров у данной функции нет. Параметры N и Fs можно опускать, при этом используются значения по умолчанию – N=16 и Fs=8000.
Начиная с версии Matlab 5.0, в системе несколько расширены средства для работы со звуком. Ниже приведено описание основных команд для воспроизведения звуковых сигналов:
sound(y,Fs) — воспроизводит сигнал из вектора y с частотой дискретизации Fs с помощью колонок, подключенных к звуковой карте компьютера. Компоненты y могут принимать значения в следующих пределах -1.0 ≤ у ≤ 1.0. Для воспроизведения стереозвука на допускающих это компьютерных платформах y должен быть матрицей размера М x 2;
Оператор sound хотя и воспроизводят звук, но не подходят, так как в плеере понадобится ставить воспроизведение на паузу и затем воспроизводить вновь с того же места. Для того что-бы ставить файл на паузу и воспроизводить с того же места, надо объявить переменную типом audioplayer предварительно считав в ней *.wav файл. player =audioplayer(y,Fs,nBits) при этом создается объект типа аудиоплеер из сигнала y с частотой дискретизации Fs и числом бит на отсчёт nBits .
Для управлением аудиоплеером существуют стандартные команды.
isplaying(y)- Если в момент запроса файл воспроизведение то команда выдаст 1, если нет 0.
pause(y)- ставит воспроизведение файла на паузу.
playblocking(y)-файл начинает воспроизводиться, но блокируется управление плеером до конца воспроизведение.
resume(y)- продолжает воспроизводить файл с паузы.
stop(y)- остановка воспроизведение.[8]
Из данного теоритического раздела важно усвоить, что запись звук в электронном виде хранится в виде последовательности коротких дискретных значений амплитуд звукового сигнала, а среда программирования Matlab располагает широкими возможностями для работы со звуком.
