Аллофонизация гласной фонемы «О» в стороннем окружении ЛОК и МОМЬ

Автор работы: Пользователь скрыл имя, 13 Октября 2013 в 14:02, курсовая работа

Описание работы

Для современного человека эта способность является совершенно обыденной, обычный человек даже не задумываемся как и почему он слышит то, что слышит. А в действительности проходит огромная работа для анализа чей-то речи или звуков - аналоговым потоком аудиоинформацией, с которым, непрерывно работает наше ухо. Звуки, излучаемые в воздушную среду, обнаруживаются ухом и затем осмысливаются в мозгу. С такой задачейможет справится большинство ЭВМ, но на данный момент нет способа проанализировать получаемую звуковую информацию на уровне человеческого мозга, так же как и приёмника сравнимого с человеческим ухом.
В данной работе рассматривается задача изучения аллофонизации фонем на примере фонемы «О» в стороннем окружении «Лок» и «Момь». Под аллофонизацией понимают изменение участков формантных треков, указывающих на предыдущую и последующую фонемы.

Содержание работы

Перечень условных обозначений и сокращений 5
ВВЕДЕНИЕ 6
1. Основная часть 7
1.1. Обоснование актуальности задачи 7
1.2. Блок-схема алгоритма обработки сигнала 8
1.3. Сегментация речевого сигнала 9
1.4. Синхронизация периода основного тона 10
1.5. Преобразование амплитуддно-временной формы сигнала в спектрально-временную. 12
1.6. Построение сонограммы 13
1.7. Анализ формантных треков аллофонизированной гласной фонемы 14
ЗАКЛЮЧЕНИЕ 16
Список литературы 17
Приложение 1 - Исходные тексты программ 18

Файлы: 1 файл

Курсовая работа по предварительной обработке аудио и видиео.docx

— 2.65 Мб (Скачать файл)

Фонема «О» - гласная, поэтому она образована тоном. Фонемы «М», «МЬ» и «Л» являются сонорными согласными и также образуются тоном. А фонема «К» является смычковой согласной. Таким образом, для первого случая рабочей областью будут только первые две фонемы триады, а для второго случая вся триада.

    1. Синхронизация периода основного тона

Речь это линейная свёртка  с функции возбуждения с откликами  линейных фильтров, которая может быть возбуждена как тоном так и шумом, В случае возбуждения тоном изменения частоты колеблются в пределах 90 – 300 Гц.

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

Рисунок 4. Синхронизация периода основного тона триад «Лок» и «Момь».

После составления массива  точек, была использована функция оптимизации  для увеличения точности выбранных  значений (приближения начала периода к нулю по оси амплитуд)(Рис. 5).

Рисунок 5. Синхронизация  периода основного тона триад  «Лок» и «Момь», после оптимизации.

 

Функция оптимизации подразумевает  под собой сравнение нескольких ближайших к данной точке амплитуд с целью поиска близости их к нулю.

Рисунок 6. Работа оптимизационной  функции

Результат работы оптимизационной  функции можно проследить по небольшим улучшениям графика изменения частоты основного тона (Рис. 6).

 

 

 

 

 

 

    1. Преобразование амплитуддно-временной формы сигнала в спектрально-временную.

После, синхронизации с периодом основного тона, для дальнейшего анализа сигнала нужно преобразовать сигнал в спектрально-временной вид. Для этого используется преобразование Фурье.

 

   

(1)


 

Используя финитные свойства преобразования Фурье, получаем аналитические спектры с требуемым частотным разрешением.

В приведённой формуле (1) (преобразование Фурье)   даёт распределение частот части оригинального сигнала  в окрестности времени.

Но из-за того, что ЭВМ не может обрабатывать аналоговые сигналы, данные триады являются дискретными. Следовательно, для них не может быть применено преобразование описываемое формулой (1), поэтому в данном случае необходимо использовать ДПФ.

   

(2)




 

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

 

    1. Построение сонограммы

Сонограмма (или спектрограмма) является графиком, показывающим зависимость частоты сигнала от времени с интенсивностью по амплитуде (Рис. 7 и 8).

Используя полученные  ДПФ для периодов основного тона, вычисляем преобразование Фурье для каждого из участков сигнала. Таким образом будет расчитана сонограмма с посощью оконного преобразования Фурье.

Рисунок 7. Сонограмма триад "Лок"

 

Рисунок 8. Сонограмма триад "Момь"

На спектрограмме видны  яркие области, это форманты триад, они представляют собой области  сосредоточения энергии.

 

 

 

 

 

    1. Анализ формантных треков аллофонизированной  гласной фонемы

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

Рисунок 9. Формантная структура триад «Лок» и «Момь».

Для упрощения воспроизведения  стилизованных формантных треков была произведена операция сглаживания (скользящим средним) с помощью функции smooth  формантных треков триад «Лок» и «Момь» (Рис. 10).

Рисунок 10. Формантная структура триад «Лок» и «Момь» после сглаживания.

Так же, были построены стилизованные формантные треки только для фонемы «О»(Рис.11), что бы понять, как изменяется фонема «О» от сочетания с другими согласными фонемами.



 

 

 

 

 


 

Рисунок 11. Стилизованные формантные треки a) для триады «Лок» б) триады «Момь»

На основе анализа изменения  траектории треков можно сделать  следующие выводы:

В случае, когда перед  фонемой «О» находится фонема «Л», первая и вторая форманты выпрямляются, третья и четвертая форманты изгибаются вниз;

В случае, когда после  фонемы «О» находится фонема «К», первая и вторая форманты выпрямляются, третья и четвертая изгибаются вниз;

В случае, когда перед  фонемой «О» находится фонема «М», первая и вторая форманты выпрямляются, третья и четвертая изгибаются вниз;

В случае, когда после  фонемы «О» находится фонема «Мь», все форманты изгибаются вниз.

Можно заметить, что триады практически идентичны, единственная разница лишь в том, что первая и вторая форманта триады «Моль» изгибается вниз и частота самой триады выше.

 

 

 

ЗАКЛЮЧЕНИЕ

В данной курсовой работе была проделана работа по исследованию на аллофонизацию фонемы «О» в стороннем окружении «Лок» и «Момь», которая включила в себя следующие этапы:

  1. Загрузка исходныхсигналов в MatLab для дальнейшей работы с ними.
  2. Сегментация загруженных сигналов.
  3. Ручное выделение и синхронизация периодов основного тона, составление массивов соответствующих им амплитудных нулей, с последующей оптимизацией.
  4. Преобразование каждого отрезка от нуля до нуля (периода) в спектрально-временной вид.
  5. Построение по полученным спектрам матрицы формант и получение из этой матрицы непосредственно формантных треков.
  6. Построение спектрограммы
  7. Анализ изменения (изгибов) формантных треков вблизи границ фонемы «О».
    1. Комплексный анализ полученых данных и построение стилизованных формантных треков.

 

Таким образом, была выявлена аллофонизация фонемы «О», т.е. рассмотрены  отклонения формантных треков гласной  фонемы в зависимости от её помещения в различное стороннее окружение «Лок» и «Момь». На основе полученных данных можно сделать выводы о том, что фонема «Л» выпрямляет первую и вторую форманты, и изгибает вниз третью и четвёртую форманты. Так же как и предыдущая фонема, фонема «К» первую и вторую форманты выпрямляет , и изгибает третью и четвёртую форманты вниз. Фонема «М» выпрямляет первую и вторую форманты, и изгибает вниз третью и четвёртую форманты, а фонема «Мь» в отличии от предыдущей, изгибает все форманты вниз.

 

 

Список  литературы

1) В. Дьяконов – Matlab 6: учебный курс – СПб.: «Питер», 2001 г.

2) Д.Л. Фланаган – Анализ, синтез и восприятие речи – М.: «Связь», 1968 г.

3) А. Лукин – Введение в цифровую обработку сигналов – М.: 2002 г.

4) Ю. Лазарев – Начала  программирования в среде MatLab – Киев: НТУУ “КПИ”, 2003г.

5) Г. Нуссбаумер – Быстрое  преобразование Фурье и алгоритмы  вычисления сверток – М.: «радио и связь», 1985г.

 

Приложение 1 - Исходные тексты программ

clc

clear

 

window=1024;

halfOfTheWindow = window/2;

 

%---Read WAV

[Y_lok, fd_lok, nbits] = wavread('lok.wav');

[Y_mom, fd_mom, nbits] = wavread('mom.wav');

 

Zer_lok(1:length(Y_lok))=0;

Zer_mom(1:length(Y_mom))=0;

 

%====Synchronization period

%---massiv gor "lok"

A_lok=[954 1076 1225 1380 1532 1685 1839 1990 2142 2292 2440 2583 2733 2877 3019 3161 3300 3439 3578 3715 3852 3989 4126 4261 4398 4529 4665 4801 4937 5072 5205 5339 5473 5608 5741 5876 6010 6149 6286 6422 6561 6700 6841 6981 7122 7263 7410 7551 7704 7852 8009 8156];

A_lok_l=[954 1076 1225 1380 1532 1685 1839 1990 2142 2292 2440 2583 2733 2877 3019 3161 3300 3439];

A_lok_k=[954 1076 1225 1380 1532 1685 1839 1990 2142 2292 2440 2583 2733 2877 3019 3161 3300 3439 3578 3715 3852 3989 4126 4261 4398 4529 4665 4801 4937 5072 5205 5339 5473 5608 5741 5876 6010 6149 6286 6422 6561 6700 6841 6981 7122 7263];

%---massiv for "mom"

A_mom=[115 284 437 589 741 897 1044 1193 1341 1491 1630 1777 1919 2059 2205 2343 2491 2630 2775 2918 3057 3195 3330 3461 3607 3739 3878 4014 4148 4288 4419 4551 4691 4829 4965 5107 5248 5391 5537 5674 5823 5965 6110 6257 6413 6556 6710 6866 7030 7212 ];

A_mom_m1=[115 284 437 589 741 897 1044 1193 1341 1491 1630 1777];

A_mom_m2=[115 284 437 589 741 897 1044 1193 1341 1491 1630 1777 1919 2059 2205 2343 2491 2630 2775 2918 3057 3195 3330 3461 3607 3739 3878 4014 4148];

 

%====Synchronization with the pitch period

%---for "lok"

 

for i = 1:length(Y_lok)

   if (i<1000)

       S_lok(i)=0;

   end

   if (i>999&&i<8000)

       S_lok(i)=1;

   end

   if (i>7999&&i<9500)

        S_lok(i)=0.2;

   end

   if (i>9499 && i<10000)

        S_lok(i)=0.5;

   end

   if (i>10000 && i<13000)

        S_lok(i)=0;

   end

end;

%---for "mom"

for i = 1:length(Y_mom) 

   if (i<7499)

       S_mom(i)=1;

   end

   if (i>7500&&i<9800)

       S_mom(i)=0;

   end

end;

%==========================================================================

%---algorithm optimization

for i=2:length(A_lok)

    razn=A_lok(i)-A_lok(i-1);

    X1(i)=abs(fd_lok/razn);

end

for i=2:length(A_mom)

    razn=A_mom(i)-A_mom(i-1);

    X2(i)=abs(fd_mom/razn);

end

 

for i=1:length(A_lok)

    for j=1:10

         if (abs(Y_lok(A_lok(i)))>abs(Y_lok(A_lok(i)-j)))

             A_lok(i)=A_lok(i)-j;

         end

    end

end

for i=1:length(A_mom)

    for j=1:10

         if (abs(Y_mom(A_mom(i)))>abs(Y_mom(A_mom(i)-j)))

            A_mom(i)=A_mom(i)-j;

         end

    end

end

 

 

for i=2:length(A_lok)

    razn=A_lok(i)-A_lok(i-1);

    X3(i)=abs(fd_lok/razn);

end

for i=2:length(A_mom)

    razn=A_mom(i)-A_mom(i-1);

    X4(i)=abs(fd_mom/razn);

end

 

%---Make Fgure #0

figure(50)

subplot(2,1,1), plot(1:length(X1),X1,'r-',1:length(X3),X3,'b-')

title('Optimization function of the triad "lok"')

xlabel('Periods')

ylabel('Carrier frequency')

legend('Before','After')

subplot(2,1,2), plot(1:length(X2),X2,'r-',1:length(X4),X4,'b-')

title('Optimization function of the triad "mom"')

xlabel('Periods')

ylabel('Carrier frequency')

legend('Before','After')

%=========================================================================

 

 

%====The selection of phonemes formed tone

%---Tone "lok"

tone_lok=1000:8300;

%---Tone "mom"

tone_mom=1:7500;

 

 

figure(144);

subplot(2,1,1), plot(tone_lok,Y_lok(tone_lok),'b-',tone_lok,Zer_lok(tone_lok),'g-',A_lok,Y_lok(A_lok),'ro');

title ('Workspace fonema "lok" after optimization'); xlabel('Time'); ylabel('Amplitude');

subplot(2,1,2), plot(tone_mom,Y_mom(tone_mom),'b-',tone_mom,Zer_mom(tone_mom),'g-',A_mom,Y_mom(A_mom),'ro');

title ('Workspace fonema "mom" after optimization'); xlabel('Time'); ylabel('Amplitude');

%=========================================================================

 

%---Make Fgure #1

figure(1);

subplot(3,2,1), plot(1:length(Y_lok),Y_lok,'b-',1:length(Y_lok),Zer_lok,'g-',A_lok,0,'ro');

title ('Fonema "lok"'); xlabel('Time'); ylabel('Amplitude');

subplot(3,2,2), plot(1:length(Y_mom),Y_mom,'b-',1:length(Y_mom),Zer_mom,'g-',A_mom,0,'ro');

title ('Fonema "mom"'); xlabel('Time'); ylabel('Amplitude');

subplot(3,2,3), plot(1:length(S_lok),S_lok,'r-','LineWidth',2);

title ('Segmentation'); xlabel('Time'); ylabel('');

axis([0,14000,-0.5,1.5]);

subplot(3,2,4), plot(1:length(S_mom),S_mom,'r-','LineWidth',2);

title ('Segmentation'); xlabel('Time'); ylabel('');

axis([0,10000,-0.5,1.5]);

subplot(3,2,5), plot(tone_lok,Y_lok(tone_lok),'b-',tone_lok,Zer_lok(tone_lok),'g-',A_lok,Y_lok(A_lok),'ro');

title ('Workspace fonema "lok" after optimization'); xlabel('Time'); ylabel('Amplitude');

subplot(3,2,6), plot(tone_mom,Y_mom(tone_mom),'b-',tone_mom,Zer_mom(tone_mom),'g-',A_mom,Y_mom(A_mom),'ro');

title ('Workspace fonema "mom" after optimization'); xlabel('Time'); ylabel('Amplitude');

%=========================================================================

 

%---Make Sonogram(Fgure #2)

figure(2)

[nfft]=min(1024,length(Y_lok));

subplot(2,1,1),specgram(Y_lok, 1024,10)

title('Sonogram triad "lok"'); xlabel('Time'); ylabel('Frequency'); zlabel('Frequency');

[nfft]=min(1024,length(Y_mom));

subplot(2,1,2),specgram(Y_mom, 1024,10)

title('Sonogram triad "mom"'); xlabel('Time'); ylabel('Frequency'); zlabel('Frequency');

%=========================================================================

 

for r = 1:2

    if r==1

       Y=Y_lok;

       A=A_lok;

       fd=fd_lok;

    end

    if r==2

       Y=Y_mom;

       A=A_mom;

       fd=fd_mom;

    end   

    %---select range for Fourier transform

    for j=1:length(A)-1       

        k=length(Y(A(j):A(j+1)));

        piece_new=Y(A(j):A(j+1));

        piece=zeros(window);

        for i=1:k

            piece(i)=piece_new(i);

        end 

        T=piece(1:window);

        S=fft(T);

        T_fft=S.*conj(S);

        for column=1:halfOfTheWindow

          Y_fft(j,column)=T_fft(column);

        end

    end   

%============================================================================

    %---finding highs

    for i=1:length(A)-1

        pieceBufer=Y_fft(i,1:halfOfTheWindow);

    

        n=1;

        for k=1:halfOfTheWindow-2

            if (pieceBufer(k)<pieceBufer(k+1) && pieceBufer(k+1)>pieceBufer(k+2))

                max(n)=pieceBufer(k+1);

                n=n+1;

            end

        end

        arrMax=sort(max);

        for k=1:4

            max_X(k)=arrMax(length(arrMax)-k+1);

        end

        for k=1:4

            for t=1:halfOfTheWindow

                if (max_X(k) == pieceBufer(t))

                    max_Y(k)=t;

                end

            end

            max_XY(k,i)=max_X(k);

Информация о работе Аллофонизация гласной фонемы «О» в стороннем окружении ЛОК и МОМЬ