Анализ голоса в Matlab

Схема речеобразования у человека. Запись и считывание данных из речевого сигнала в MATLAB. Синтаксис вызова функции. Операции над звуковыми файлами. Исследование мужского и женского голосов. Спектрограммы голосов. Обработка речи в Simulink, Wavelet.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 18.04.2013
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1. Характеристики голоса

Разложим голос на составляющие, основными параметрами являются: частота, сила, длительность и тембр, которые, как величины, можно анализировать и но отдельности. В действительности, однако, подобный анализ не представляет собой реального выражения голоса, поскольку эти качества образуют единый неделимый комплекс.

Высота издаваемого звука зависит от числа колебаний голосовых складок в 1 секунду. Голосовые складки способны приходить в колебательные движения не только целиком, всей своей массой, но и отдельными участками. Только этим можно объяснить то, что одни и те же голосовые складки могут колебаться с различной частотой: примерно от 80 до 10 000 колебаний в секунду и даже больше.

Тоновый диапазон человеческого голоса представлен ппоследовательностью тонов, которые могут быть произведены голосовым аппаратом в пределах границ между самым низким и самым высоким звуками. Человеческий голос обычно включает в себя тоны от 64 до 1300 герц. В двух формах проявления человеческого голоса - пении и разговоре - качества голоса представлены несколько различно. Разговорный голос составляет лишь 110 от общего диапазона голоса. Тоновый охват певческого голоса значительно шире разговорного и зависит от вокального образования. Сила подаваемого звука определяется интенсивностью напряжения голосовых складок и величиной давления воздуха в подсвязочном пространстве. И тот и другой процесс регулируются центральной нервной системой. Контроль осуществляется с помощью слуха. Если же взаимоотношения между этими процессами нарушаются, например, при крике ужаса, то превалирование давления внутри трахеи вызывает звук, который характеризуется отсутствием чистой тональности.

Ниже представлен диапазон человеческого голоса (в Герцах):

- Бас - 75-300.

- Баритон - 100-400 - Тенор - 120-500.

- Контральто - 170-780.

- Меццо-сопрано - 200-900.

- Сопрано - 230-1000.

- Колоратурное сопрано - 260-1400.

Для сравнения приведен частотный диапазон музыкальных инструментов:

Контрабас - 40-300.

Виолончель - 65-880.

Альт - 130-1240.

Скрипка - 210-2800.

Фагот - 60-630.

Кларнет - 140-1980.

Гобой - 230-1480.

Флейта - 240-2300.

Туба - 45-320.

Тромбон - 80-500.

Валторны - 60-740.

Труба - 160-990.

Таким образом, человеческий голос имеет диапазон звучания от 75 до 110 Герц, который так или иначе перекрывает (заглушается, смешивается) с любым музыкальным инструментом (оптимальная точка - 300 Герц).

Также необходимо учитывать силу звучания (динамический диапазон) данных инструментов.

Динамический диапазон гитары составляет 15 дБ; органа - 35 дБ; рояля - 45 дБ; женский голос - 20-35 дБ; мужской голос - 20-45 дБ, эстрадного оркестра-45-55 дБ, симфонический оркестр 60-75 дБ.

Сообщение, передаваемое с помощью речевого сигнала, - дискретно, т.е. может быть представлено в виде последовательности символов из конечного их числа. Звуковые символы, из которых составлен речевой сигнал, называются фонемами.

Речь с физической точки зрения состоит из последовательности звуков с паузами между их группами. Схема речеобразования у человека представлена на рис. 1.

Рис. 1. Схема речеобразования у человека

При нормальном темпе речи паузы появляются между отрывками фраз. Как правило, слова произносятся слитно, хотя слушающий воспринимает слова но отдельности. При замедленном темпе речи, например при диктовке, паузы могут делаться между словами и даже их частями. Предлоги, союзы звучат всегда слитно с последующим словом.

Частотный диапазон речи находится в пределах 70 - 1400 Гц.

Один и гот же звук речи разные люди произносят по-разному. Произношение звуков речи зависит от ударения, соседних звуков и т.п. Но при всем многообразии в их произношении звуки являются физическими реализациями (произнесением) ограниченного числа обобщенных звуков речи (фонем). Фонема - это то, что человек должен произнести, а звук-то, что человек фактически произносит. Фонема по отношению к звуку речи играет ту же роль, что и образцовая буква по отношению к ее рукописной форме в конкретном написании.

Звуки речи делятся на звонкие и глухие. Звонкие звуки образуются с участием голосовых связок, в этом случае находящихся в напряженном со - стоянии. Под напором воздуха, идущего из легких, они периодически раз - двигаются, в результате чего создается прерывистый ноток воздуха. Им - пульсы потока воздуха, создаваемые голосовыми связками, с достаточной точностью могут считаться периодическими. Соответствующий период повторения импульсов называют периодом основного тона голоса Т0 - а обратную величину 1/Т0 - частотой основного тона. Если связки тонкие и сильно напряжены, то период получается коротким и частота основного тона высокой; для толстых, слабо напряженных связок - низкой. Частота основного тона для всех голосов лежит в пределах 70 - 450 Гц. При произнесении речи она непрерывно изменяется в соответствии с ударением, подчеркиванием звуков и слов, а также с проявлением эмоций (вопрос, восклицание, удивление и т.д.). Изменение частоты основного тона называется интонацией. У каждого человека свой диапазон изменения основного тона (обычно он бывает немногим более октавы) и своя интонация. Последняя имеет большое значение для узнавания говорящего.

Основной тон, интонация, устный почерк и тембр голоса служат для опознавания человека, и степень достоверности такая же высокая, как по отпечаткам пальцев. Импульсы основного тона имеют пилообразную форму, и поэтому при их периодическом повторении получается дискретный спектр с большим числом гармоник (до 40), частоты которых кратны частоте основного тона. Огибающая спектра основного тона имеет спад в сторону высоких частот с крутизной около 6 дБ/окт, поэтому для мужского голоса уровень составляющих на частоте 3000 Гц ниже их уровня на час - тоте 100 Гц примерно на 30 дБ. При произнесении глухих звуков связки находятся в расслабленном состоянии, поток воздуха из легких свободно проходит в полость рта. Встречая на своем пути различные преграды в виде языка, зубов, губ, он образует завихрения, создающие шум со сплошным спектром.

Согласные по способу образования делятся на сонорные (л, ль, р, рь. м, мь, и, нь, й), щелевые (ж, з, зь, в, вь, ш, с, сь, ф, фь, х, хь), взрывные (б, бь, д, дь, г, гь, и, иь, т, ть, к, кь) и аффрикаты (ц, ч - комбинация глухих взрывных и щелевых). Гласных фонем всего шесть: а, о, у, э, и, ы (гласные е, я, ё, ю - составные из и краткого или мягкого знака и гласных э, а, о, у).

Звонкие звуки речи, особенно гласные, имеют высокий уровень интенсивности, глухие - самый низкий. Громкость речи непрерывно изменяется, особенно резко при произнесении взрывных звуков. Динамический диапазон уровней речи находится в пределах 35 - 45 дБ. Гласные звуки речи имеют в среднем длительность около 0,15 с, согласные - около 0,08 (звук и - около 30 мс).

Звуки речи неодинаково информативны. Так, гласные звуки содержат малую информацию о смысле речи, а глухие согласные наиболее информативны (например, в слове «посылка» последовательность «о, ы, а» ничего не говорит, а «п, с, лк» дает почти однозначный ответ о смысле). Поэтому разборчивость речи снижается при действии шумов, в первую очередь из-за маскировки глухих звуков [6, 7, 8].

Известно, что для передачи одного и того же сообщения по телеграфу и по речевому тракту требуется различная пропускная способность. Для телеграфного сообщения достаточна пропускная способность не более 100 бит с, а для речевого - около 100000 бит с (полоса равна 7000 Гц, динамический диапазон 42 дБ, т.е. требуется семизначный код, откуда имеем 2 * 7000 -7=98 000 бит/с), т.е. в 100 раз большая.

Образование звуков речи происходит путем подачи команд к мускулам артикуляционных органов речи от речевого центра мозга. Общий поток сообщений от него составляет в среднем не более 100 бит/с. Вся остальная информация в речевом сигнале называется сопутствующей.

2. Запись и считывание данных из речевого сигнала в MATLAB

В MATLAB предусмотрены средства для воспроизведения и записи звука (речи), а также для работы со звуковыми файлами формата wav.

Чтение wav-файлов. Для считывания wav-файлов в MATLAB используется функция wavread. В простейшем случае она может быть использована следующим образом:

у = wavread ('filename'), где 'filename' - имя звукового файла (расширение wav указывать не обязательно). В имя файла необходимо включить полный путь, за исключением тех случаев, когда файл находится в текущем (для MATLAB) каталоге или в одном из каталогов, входящих в список поиска MATLAB. Другой способ, не требующий указания имени файла, - полный путь, который заключается в определении местонахождения файла на жестком диске с помощью меню MATLAB.

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

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

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

[у, Fs] = wavread ('filename'),

где Fs - частота дискретизации, Гц;

- число бит на отсчет, для определения которого необходимо добавить еще один выходной параметр:

[у, Fs, bils] = wavread ('filename');

- число отсчетов и каналов записи. Для получения данной информации необходимо вызвать функцию wavread с двумя входными параметрами: именем файла и текстовой строкой 'size': wavesize = wavread ('filename*, 'size').

При вызове такой функции из wav-файла извлекается служебная ин - формация, которая возвращается в виде двухэлементного вектор-строки, первый элемент которого содержит число отсчетов, второй - число каналов;

- продолжительность звучания сигнала (в секундах), которую можно определить следующим образом:

wavesize (1) Fs, где 1 указывает на первый параметр вектора wavesize.

Имеются и возможности считывания данных из wav-файла не цели - ком, а отдельными фрагментами. Для этого используется второй входной параметр функции wavread. Если этот параметр является числом, будет считано соответствующее количество отсчетов, начиная с первого:

у = wavread ('filename', N).

Если нужный фрагмент расположен не в начале файла, придется указать его начало и конец:

у = wavread ('filename', [nl, n2]).

В результате в переменную у будут считаны отсчеты с номерами от n1 до n2 включительно (нумерация отсчетов начинается с единицы).

Чтобы узнать объем памяти (в килобайтах), требуемый в MATLAB для хранения записи, необходимо использовать следующую функцию:

prod (wavesize)*8/1024.

Для просмотра речевого (звукового) сигнала выведем его в виде графика с помощью следующей функции: plot (у).

Если необходимо вывести график по каналам стереозаписи, то применяют следующие функции:

subplot (2, 1, 1); plot (:, 1); subplot (2, 1, 2); plot (:, 2) или просто plot(y).

Если сигнал имеет большую длину, то можно использовать следующую функцию (фрагменты выводятся друг под другом): strips (х, N),

где х - вектор отсчетов сигнала (двумерный массив не допускается), N - число отсчетов в каждом фрагменте (этот параметр можно опустить, по умолчанию размер фрагмента составляет 200 отсчетов).

Запись wav-файлов. Для записи вектора (или матрицы) на диск в виде wav-файла используется функция wavwrite'.

wavwrite (у, Fs, N, 'filename'), где у - записываемые данные, Fs - частота дискретизации, Гц, N - число бит на отсчет (8 или 16), 'filename' - имя создаваемого файла. Параметры Fs и N можно опускать, при этом используются значения по умолчанию: Fs = 8 000 Гц, N= 16.

Записываемые данные должны быть вещественными и лежать в диапазоне от -1 до 1. Значения, выходящие из этого диапазона, будут обрезаны и сделаны равными.

Воспроизведение звуковых файлов. Помимо работы с wav-файлами можно воспроизводить вектор и матрицу в звуковом в виде с использованием следующих функций:

- sound, синтаксис которой записывается следующим образом:

sound (у, Fs, bits),

где у - вектор или двухстолбцовая матрица сигнала, Fs - частота дискретизации, Гц, bits - число бит на отсчет (8 или 16).

Параметры Fs и bits можно опускать, при этом их значения будут приниматься по умолчанию.

Выходных параметров у у функции нет. После вызова она передает вектор у звуковой карте для воспроизведения и сразу же, не дожидаясь окончания звука, возвращает управление MATLAB;

- wavplay, синтаксис которой имеет следующий вид:

wavplay (у, Fs, 'mode'), где параметр mode управляет режимом воспроизведения, который может принимать два значения:

- 'sync' - синхронный режим, означающий что функция вернет управление интерпретатору MATLAB только после окончание звука;

- 'async' - асинхронный режим, при котором функция передает данные для воспроизведения звуковым драйверам Windows и сразу же воз - вращает управление системе MATLAB. не дожидаясь окончания звука.

Параметры Fs и mode можно опускать, при этом их значения принимаются по умолчанию: Fs =11025 Гц и 'mode' = 'async'.

Запись звука (речи). Функция wavrecord позволяет записать звук в переменную MATLAB с помощью звуковой карты компьютера:

у = wavrecord (n, Fs, ch, 'dtype'), где n - число записываемых отсчетов, Fs - частота дискретизации, Гц. ch - число каналов записи, 'dtype' - тип записываемых данных.

Возвращаемый результату - матрица, каждый столбец которой соответствует одному каналу записи. При стереозаписи первый столбец - левый канал, второй - правый канал.

Для параметра dtype возможны следующие значения:

- 'double' - 16-битная запись, данные масштабируются к диапазону от -1 до 1 и представляются в восьмибайтовом формате с плавающей запятой;

- 'single' - 16-битная запись, данные масштабируются к диапазону -1…1 и представляются в четырехбайтовом формате с плавающей запятой;

- `untl6' - 16-битная запись, данные представляются в двухбайтовом целочисленном формате (диапазон от-32 768 до 32 767);

- 'unint8' - 8-битная запись, данные представляются в однобайтовом беззнаковом целочисленном формате (диапазон от 0 до 255, нулевому напряжению на входе соответствует значение «128»).

Входные параметры Fs, ch, dtype можно опускать, при этом их значения будут приниматься но умолчанию: Fs =11 025 Гц, ch =1, dtype = ='double'

2.1 Спектрограмма

Если спектр сигнала меняется во времени, то для оценки спектра целесообразно использовать спектрограмму сигнала. Спектрограммой (spectrogram) сигнала называется его мгновенный спектр, зависящий от времени. Для вычисления спектрограммы вектор сигнала разбивается на сегменты (в общем случае с перекрытием). Для каждого сегмента вычисляется спектр с помощью функции fft. Набор спектров всех сегментов и образует спектрограмму. Для вычисления спектрограммы служит функция spectrogram.

Синтаксис вызова функции: [S, F, T]=spectrogram (x, window, nover - lap, nfft, Fs), где x - вектор сигнала; window - вектор весовой функции (если вместо вектора используется целое число, то используется весовая функция по умолчанию - функция Хэмминга соответствующей длины); noverlap - величина перекрытия соседних сегментов сигнала; nfft - число точек преобразования Фурье; Fs - частота дискретизации. S - матрица, каждая колонка которой содержит (nfft/2+l) отсчетов спектра для данного момента времени (если nfft - нечетное число, количество отсчетов равно (nfft+l)/2). Число колонок k=nx((nx-noverlap)/(length(window) - noverlap)), где nх - длина вектора сигнала. Параметр F - вектор частот, Т - вектор моментов времени, его длина равна k.

Если выходные параметры функции не указываются (spectrogram (x, window, noverlap, nfft, Fs)), то строится трехмерный график спектральной плотности мощности в координатах: время, частота, уровень.

Обязательным входным параметром функции является вектор значений сигнала х, остальные параметры имеют значения по умолчанию, которые используются, если в качестве параметра указана пустая матрица ([]) или если несколько последних параметров при вызове опущены.

[V, fs, b]=wavread (`c:\1\female1f.wav'); spectrogram (V, 256,128, [], fs, 'yaxis');

Рис. 2. Спектрограмма файла female1f.wav

Здесь во второй строке примера для параметра nnft используется

значение по умолчанию - максимальное из двух чисел: 256 и 2k. Значение к таково, что выполняется условие 2k> window.

2.2 Операции над звуковыми файлами

Система MATLAB позволяет читать и записывать файлы формата wav. Чтение осуществляется с помощью функции wavread, а запись - с помощью функции wavwrite.

[V, f, b] = wavread ('*.wav');

Звуковая информация из файла считывается в матрицу V, состоящую из двух столбцов, в скалярную переменную f считывается значение частоты дискретизации, а в переменную b - число двоичных разрядов.

Добавим к матрице V белый шум.

[m, n] = size(V); VI = гаndn (m, n); s = 0.05; V2 = V + 5* VI;

Здесь в первой строке определяется число строк и столбцов матрицы V. Вторая строка с помощью функции randn (m, n) создает матрицу VI, которая содержит случайные числа, распределенные по закону Гаусса (по нормальному закону), и которая имеет тот же размер, что и матрица V. Матрица VI умножается на коэффициент s и складывается с матрицей V, образуя матрицу V2 зашумленного звука. Функция sound осуществляет воспроизведение звука, получая в качестве аргумента вещественный вектор или матрицу размерами N х 2 (для стереозвука), содержащие последовательности измерений громкости звука.

sound (V, f, b) sound (V2, f, b)

Значения элементов матрицы отсчетов должны быть ограничены диапазоном от -1.0 до +1.0. Вне этого диапазона значения матрицы ограничиваются (имеет место клиппированный звук). Аналогичная функция soundsc перед воспроизведением звука обеспечивает автоматическое масштабирование значений матрицы до диапазона: -1 +1 - клиппирования звука не происходит.

soundsc (V, f, b) soundsc (V2, f, b)

Чтобы сохранить результаты экспериментов со звуком в звуковом файле, следует применить функцию wavwrite. В данном случае результаты эксперимента с зашумлением сохраним в файле 'Soundl.wav':

wavwrite (V2, f, b, 'Soundl.wav');

Здесь первым аргументом является матрица (для монофонического звука - это вектор) звуковых отсчетов, вторым - частота дискретизации, третьим - разрядность отсчетов, а последним - имя файла. Если не указывать пути к файлу, то он будет записан в текущий рабочий каталог пакета МАТLAB.

3. Исследование мужского и женского голосов

Для примера возьмем два образца женского и два образца мужского голосов. В пакете MATLAB построим их спектрограммы, амплитудный и фазовый спектры.

Амплитудный спектр сроим следующим образом:

[s, fs] = wavread (c:\1\female1f.wav');

spec = abs (fft(s));

spec = spec (1:end/2);

freq = (fs/2)*(1:length(spec))/length(spec);

plot (freq, spec);

xlabel ('Frequency: Hz'); ylabel ('Amplitude spectrum');

Рис. 3 Амплитудный спектр female1f.wav

Фазовый спектр

[s, fs] = wavread (c:\1\female1f.wav');

spec = phase (fft(s));

spec = spec (1:end/2);

freq = (fs/2)*(1:length(spec))/length(spec);

plot (freq, spec);

xlabel ('Frequency: Hz'); ylabel ('Phase spectrum');

Рис. 4. Фазовый спектр female1f.wav

Аналогичные операции проделываем с остальными образцами голоса.

Рис. 5. Амплитудный спектр female2a.wav

Рис. 6. Фазовый спектр female2a.wav

Рис. 7. Амплитудный спектр male1f.wav

Рис. 8. Фазовый спектр male1f.wav

Рис. 9. Амплитудный спектр male2a.wav

Рис. 10. Фазовый спектр male2a.wav

Построим спектрограммы голосов

[V, fs, b]=wavread (`c:\1\female1f.wav'); spectrogram (V, 256,128, [], fs, 'yaxis');

Рис. 11. Спектрограмма female1f.wav

Рис. 12ю Спектрограмма female2a.wav

Рис. 13. Спектрограмма male1f.wav

Рис. 14. Спектрограмма male2a.wav

Выводы

Проанализировав данные диаграммы, можно определить, кому принадлежит речь - мужчине или женщине. У мужчин больше амплитуда голоса и более ярко выражены низкие частоты, в то время как у женщин амплитуда голоса ниже и ярче выражены высокие частоты.

Анализ и обработку речи можно осуществлять с помощью таких программ, входящих в пакет MATLAB, как Simulink, Wavelet, Signal processing.

голос matlab файл спектрограмма

Литература

1. Введение в цифровую обработку речевых сигналов: учеб. Пособие \ Х.М. Ахмад, В.Ф. Жирков; Владим. Гос. ун-т. - Владимир: Изд-во Владим. Гос. ун-та, 2007. - 192 с. - ISBN 5-89368-751-5.

2. Исследование алгоритмов обработки сигналов в системе МАТLАВ: метод, указания к лабораторным работам / Владим. гос. ун-т; сост. Е.К. Левин. - Владимир: Изд-во Владим. гос. ун-та, 2011. - 78 с.

3. Распознавание речи. Выделение человеческого голоса среди бытовых шумов: Курсовая работа \ А.В. Буторина; Моск. Гор. Псих.-Педагог. ун-т. 2007. - 43 с.

Размещено на Allbest.ru


Подобные документы

  • Процесс создания канального вокодера. Программа на языке Matlab, модель, созданная с помощью системы Matlab Simulink. Осуществление сжатия и восстановления речевого сигнала в реальном времени до уровня не более 4800 бит/с с удовлетворительным качеством.

    курсовая работа [393,7 K], добавлен 12.03.2009

  • Создание матриц специального вида в Matlab: использование функций и анализ основного синтаксиса. Проведение вычислений с элементами массивов. Логические функции, поиск в массиве. Матричные и поэлементные операции. Операции "деления" слева и справа.

    презентация [189,4 K], добавлен 24.01.2014

  • Сравнительный анализ Matlab и Mathcad при моделировании динамических систем. Подсистема Simulink пакета MATLAB. Расчёт базовой модели и проведения исследований. Описание математической модели. Векторные и матричные операторы. Нижние и верхние индексы.

    курсовая работа [338,5 K], добавлен 06.02.2014

  • Общие свойства и возможности рабочего стола. Получение справок (Getting Help). Рабочее пространство системы MATLAB. Просмотр и редактирование массивов данных при помощи редактора Array Editor. Пути доступа системы. Операции с файлами.

    учебное пособие [1021,2 K], добавлен 28.05.2007

  • Принципиальная и структурная схема системы стабилизации угловой скорости ДПТ. Критерий устойчивости Гурвица. Передаточная функция разомкнутой системы. Исследование САР в среде Simulink. Проверка расчетов с помощью моделирования системы в среде Matlab.

    курсовая работа [3,3 M], добавлен 21.08.2012

  • Анализ возможностей пакета MATLAB и его расширений. Язык программирования системы. Исследование выпрямительного устройства. Моделирование трёхфазного трансформатора. Схема принципиальная регулируемого конвертора. Возможности гибкой цифровой модели.

    презентация [5,1 M], добавлен 22.10.2013

  • Программный комплекс MATLAB как мощное средство для высокоточного цифрового моделирования системы автоматического управления. Основные особенности построения временных характеристик с помощью пакета Control System и моделирования в системе Simulink.

    контрольная работа [2,3 M], добавлен 14.11.2012

  • Исследование линейных динамических моделей в программном пакете Matlab и ознакомление с временными и частотными характеристиками систем автоматического управления. Поиск полюса и нуля передаточной функции с использованием команд pole, zero в Matlab.

    лабораторная работа [53,1 K], добавлен 11.03.2012

  • Использование расширения MATLAB - Simulink как системы математического моделирования. Электроэнергетическое направление системы - пакет Sim Power Systems, методом моделирования решающий задачи электроэнергетики. Структура и функциональные компоненты.

    курсовая работа [1,5 M], добавлен 09.10.2014

  • Модель релейной системы регулирования и идентификации структуры отдельного характерного элемента ЭКС зубца Р в системе MatLab. Анализ линейных звеньев с применением Control System Toolbox и Simulink. Методы построения переходных и частотных характеристик.

    дипломная работа [1,1 M], добавлен 28.01.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.