logo
Руководство к лаб

Считывание данных из wav-файлов

Считывание данных из wav-файлов осуществляется с помощью функции:

y=wavread(‘filename.wav’);

% «;» - подавляет вывод отсчетов на экран !

% filename – имя файла

% расширение wav указывать не обязательно

Размерность массива y зависит от количества записанных каналов в wav-файле (в простейшем случае, если wav-файл содержит монозапись, то переменная y будет вектором).

В системе MatLab при считывании данных из wav-файла значения отсчетов не зависимо от количества бит на отсчет представляются в диапазоне от -1 до 1 (рис.1.16).

Рис.1.16. Диапазон представлений отсчетов в системе MatLab при считывании из wav-файла

Функция wavread позволяет также считать из wav-файла дополнительную служебную информацию:

[y, Fs] =wavread(‘filename’); % получение значения частоты дискретизации Fs

[y, Fs, bits] =wavread(‘filename’); % получение значения бит на отсчет

[y, Fs, bits] =wavread(‘filename’, 1); % считывание частоты дискретизации, без считывания звуковых данных из файла

wavesize =wavread(‘filename’, ‘size’); % получение размера файла и числа каналов

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

y =wavread(‘filename’, N); % частичное считывание данных из файла, начиная с первого отсчета

y =wavread(‘filename’, [n1 n2]); % считывание фрагмента из файла

Пример считывания данных из wav-файла с их последующим графическим отображением (рис.1.17):

y=wavread('G:\SPEAK_TEHNOLOGY\Wav-фрагменты\Izgorod_22_UM.wav');

plot(y)

Рис.1.17. Фонограмма слова «Изгородь», считанная из wav-файла

При необходимости в системе MatLab имеется возможность отображать временные сегменты по частям с помощью функции strips (рис. 1.18):

strips(y, 5000) % Функция отображения фонограммы по частям