Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Речевые Технологии > Дикторонезависимое распознавание шипящих


Автор: webcoder88 20.01.16, 08:07
Дикторонезависимое распознавание шипящих без предварительной тренировки методом расчета энерго-частотной характеристики.
Суть метода заключается в расчете энергии исходного сигнала E0, далее определяется энергия сигнала после фильтрации полосовым фильтром.
Каждое значение E(i) делится на E0, после чего строится график.
Количество фильтров и соответственно точек равно 20000/частота полосового фильтра. При ширине 500Гц, кол-во равно 40 точек.
Распознавание фонемы С. 44100, 500Гц
Русскоязычный диктор, мужской или женский голос, продолжительность фонемы не имеет значения.
Значение максимума лежит ниже уровня 0.25 График имеет 2 близко расположенных пика (Твин Пикс ;)) Отношение частот пиков лежит в диапазоне 0.65...0.88 и увелич-ся с частотой. График частного - не прямая, а задирается вверх как перевернутая экспонента. Строить лень. Я нашел примерную формулу (подгонка).
Англоязычный диктор, мужской или женский голос, продолжительность фонемы не имеет значения.
Значение максимума лежит ниже уровня 0.25. 2-ой пик слабо выражен.
s1_3sh.png (, : 520)

Добавлено
Пики Ц лежат правее пиков С (взрывной звук вначале дает много высокочастотных гармоник)

График для Ш,Щ,Ч для Елены практически совпадают и накладываются др. на друга, причем при уменьшении ширины полосового фильтра до 100Гц график не распадается на отд. пики, те энергия этих фонем сосредоточена в одной узкой полосе, а значение всегда лежит выше уровня 0.6.

Добавлено
0.45 .. 0.6

Автор: webcoder88 20.01.16, 08:17
Еще 1 график.
s_888math.png (, : 515)

Добавлено
Независимомть к положению максимума ко второму пику (инвариантность?) достигается простыми алгоритмами:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     % Поиск максимума
     
     Dmax3 = max(D3)
     
     %поиск индекса
     for(i=1:iend)
         %fprintf('D3(i)=%f',D3(i));
         if (D3(i)==Dmax3)
            Imax3=i;
      end;    
     end;
     
    ;Imax3
      
      i2=Imax3-10;
      if (i2<1)
          i2=1;
      end;  
      
      i3=Imax3+10;
      if (i3>iend)
          i3=iend;
      end;
      
          
    %  %Распознавание С
      Dmax33 = Dmax3*0.2;
      Imax33=0;
      
      for(i=i2:i3)
          if (i==Imax3)
              i=i+1; % пропустить
          end;
          
         if D3(i)>Dmax33
             Dmax33=D3(i);
             Imax33=i
         end;  
      end;
        
      Dmax33
      
     if (Imax33 >Imax3)
         Ch3=Imax3/Imax33;
     else
         Ch3=Imax33/Imax3;
     end;
     
     if (Ch3>0.63 & Ch3<0.95 & Dmax3<0.25)
     fprintf ('Фонема - С\n');
     end;


Добавлено
Метод будет работать только на предварительно размеченном звуковом файле.
Буду благодарен, если подскажете код чтения меток hts и инициализации массива меток в Матлаб.

Автор: webcoder88 22.01.16, 07:52
Несколько слов о формировании фонемы С в русском языке. Во время поизношения язык придвигается к передним зубам, поэтому в образовании общего звука участвуют 2 вида потоков. Первый основной поток образуется при движ. воздуха между передней частью нёба (и губами). Этот поток однородный и похож на хвук Ш.
Второй вид потока образован несколькими турбулентными потоками воздуха, проходящего через щели в зубах. Этот поток напоминает свист.
Поэтому на графике распр-я энергии можно видеть максимум и еще 1 или несколько потоков поменьше. Мощность второго потока зависит от неск. факторов: скорости выдыхаемого воздуха и положения языка относительно неба и передних зубов. Поток от нёба может быть сведен к минимуму.

Графики голоса cmu_us_arctic_slt имеет 1, ярко выраженный пик. Возможно, что голос синтезирован или прошел спец. обработку.
На голосе Елена теория подтверждается практикой, тк 2 пика есть в любом случае.
Elena_a001.png (, : 525)

Добавлено
После фильтрации узким полосовым фильтром в диапазоне частот от 8 до 15кГц звук С становится похож на сверчка.

Автор: webcoder88 24.01.16, 12:23
Теперь мягкий звук "сь". В отличие от звука "с", который формируется направлением струи воздуха в верхние зубы, звук "сь" появляется при направлении струи воздуха в нижние зубы.
На слух сь слышится более свистящим - нижние зубы более мелкие.
Мягкие согласные отправляются в нижнюю челюсть, а их норм. аналоги - в небо и верхнюю челюсть.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)