На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD, nsh
Страницы: (15) « Первая ... 12 13 [14] 15  все  ( Перейти к последнему сообщению )  
> Фонемное распознавание речи
    формант вроде как 4 всего.
      Цитата MedEx @
      формант вроде как 4 всего.

      Получается, форманты это пики 4х первых гормоник?
        Ребята, вы мне вот что скажите. Я генерирую шум - случайные числа с гауссовским распределением.
        Потом проигрываю этот шум с повторением. Если длина повторяющегося куска шума меньше или равна где-то 1 секунда,
        на слух воспринимается постукивание или биение - неужели мозг успевает определить, что участок звука
        тот же самый? А на частоте дискретизации 44кгц и 2-секундный участок удаётся различить, более длинные - нет.
        Это как-то связано с тем, как мы распознаём звуки?

        Вот на Джаве полный сорс, если кто проверить захочет...

        ExpandedWrap disabled
          package audio.cords;
           
          import java.io.ByteArrayOutputStream;
          import java.io.DataOutputStream;
          import java.util.Random;
          import javax.sound.sampled.AudioFormat;
          import javax.sound.sampled.AudioSystem;
          import javax.sound.sampled.SourceDataLine;
           
          public class RepeatNoise {
            public static void main(String[] args) throws Exception{
                int sampleRate = 11025*4;
                SourceDataLine line =
                        AudioSystem.getSourceDataLine(new AudioFormat(sampleRate,16,1,true,true));
                line.open();
                line.start();
                Noise noise=new Noise();
           
                for( ;; ){
                    ByteArrayOutputStream ba = new ByteArrayOutputStream();
                    DataOutputStream dos = new DataOutputStream(ba);
                    for( int i=0; i<1000; i++ ){
                         dos.writeShort(noise.next());
                    }
                    line.write(ba.toByteArray(), 0, ba.size());
           
                }
            }
           
            static class Noise{
                short[] buf = new short[11025*4*4/5];
                int idx=-1;
                Noise(){
                    Random rnd = new Random(System.nanoTime());
                    for( int i=0; i<buf.length; i++ ){
          //              double s = 0;
          //              for( int j=0; j<12; j++ ){
          //                  s+=Math.random();
          //              }
          //              buf[i] = (short)(s/12*25000);
                        buf[i] = (short)(rnd.nextGaussian()*25000);
                    }
                }
                short next(){
                   idx = (idx+1)%buf.length;
                   return buf[idx];
                }
            }
          }
          Цитата andrden @
          неужели мозг успевает определить, что участок звука
          тот же самый? А на частоте дискретизации 44кгц и 2-секундный участок удаётся различить, более длинные - нет.
          Это как-то связано с тем, как мы распознаём звуки?

          Ну на свой вопрос вы сами ответили. Вы же слышите эти биения. Значит мозг распознает. Если вы хотите избавится от биений. То попробуйте записать буфер до середины а потом записать его тем же содержимым зеркально. Щелчки пропадут. Но мозг думаю все равно будет слышать что сигнал периодический.

          Добавлено
          Задайте поконкретней вопрос, что вам нужно.
            Цитата grisania @
            Также есть алгоритмы, которые определяют начало основного тона. Если основной меняетя, то говорят, что произошла разладка случайного процесса.

            Подскажите пожалуйста какие есть алгоритмы, которые свидетельствуют о разладке случайного процесса? :scratch:
              Цитата MoTaJiKa @
              Подскажите пожалуйста какие есть алгоритмы, которые свидетельствуют о разладке случайного процесса?
              мне известен алгоритм change detection, основанный на изменении BIC в подокнах относительно их объединения. Разладка - понятие туманное и зависит от критерия и стат.модели.
              Алгоритм предназначен для автоматический разметки речи на однородные элементы, включает в себя простое вычисление критерия и сложный процес многократного устранения возможных ошибок.
              Вычисление критерия:
              - вычисляется диагональная матрица дисперсий на некотором окне
              - окно разбивается на две половины, для каждой половины тоже вычисляется матрица
              - затем применяется BIC (google), идея заключается в том, что если произошло изменение, "объем" эллипсоида дисперсии всего окна больше суммы "объемов" половин. "Объем" нормирован на число отсчетов. С порогом беда, его следует искать.

              Насколько я понимаю, это общий метод детекции разладки - вычисляем некий критерий (информационный, соответствия модели, что-нибудь еще) на целом окне и половинках, затем смотрим как все изменилось и по детектируем по порогу. Сложный этап интегрирует многократные прогоны детекции на разных длинах окна и т.п.
              Сообщение отредактировано: neurofish -
                Спасибо, neurofish. пока наткнулась на 3ри критерия
                1. полагается, что сегмент описывается моделью АР при этом для обнаружения скачка в параметрах модели проверяются гипотезы, при этом статистика критерия базируется на ООП-обобщенном отношении правдоподобия.
                2.критерий кумулятивных сумм (пока не вникала)
                3. импульсный - касается только звонких сегментов (тоже нужно разбираться)
                  Здравствуйте. Какие параметры нужно высчитывать, чтобы классифицировать фонемы? Например для согласных, глухие они или звонкие? Шумовые или нет? Что нужно рассчитать для глассных? Как установить границы между фонемами?
                    Здравствуйте. У меня тот же вопрос, что и у vilin4ik'а, но с небольшими уточнениями. Фонемы представлены кусками звукового сигнала(пофонемная сегментация выполнена). Система должна распознавать слитную речь. Хотел использовать MFCC и Кохонена, но после прочтения Нейронная сеть Кохонена После MFCC просто руки опустились. :'( Сам в этой области новичок и большую часть материала не могу понять или понимаю с великим трудом. Посему хотелось бы увидеть название метода/методов или ссылку на них, а не направление читать литературу.
                      Цитата
                      Посему хотелось бы увидеть название метода/методов или ссылку на них, а не направление читать литературу.


                      Скрытые марковские модели
                      http://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D1%80%D1%8B%D1%82%D0%B0%D1%8F_%D0%BC%D0%B0%D1%80%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C
                        Цитата
                        Скрытые марковские модели


                        Ага. Спасибо. Могу я расчитывать на некоторые пояснения от Вас касательно этих моделей, если Вас не затруднит?
                          Цитата
                          Могу я расчитывать на некоторые пояснения от Вас касательно этих моделей, если Вас не затруднит?


                          Можете
                            Источник цитаты

                            Цитата
                            Для лучшего понимания рассмотрим все вышесказанное на примере системы, предназначенной для распознавания речи. Для каждого слова из словаря W мы спроектируем СММ с N состояниями. Каждое слово в частности мы представим как последовательность спектральных векторов. Обучение мы будем считать завершенным, когда модель с выской точностью будет воспроизводить ту самую последовательность спектральных векторов, которая использовалась для обучения модели. Таким образом каждая отдельная СММ будет обучаться воспроизводить какое-либо одно слово, но обучать эту модель следует на нескольких вариантах произнесения этого слова; то есть например три человека (каждый по-своему) проговаривают слово «собака», а затем каждое сказанное слово конвертируется в упорядоченный по времени набор спектральных векторов, и модель обучается на основе этих трех наборов. Для каждого отдельного слова проектируются соответствующие модели. Сперва решается 3-я задача СММ: каждая модель настраивается на «произнесение» определенного слова из словаря W, согласно заданной точности. Для того чтобы интепретировать каждое состояние спроектированных моделей мы решаем 2-ую задачу, а затем выделяем те свойства спектральных векторов, которые имеют наибольший вес для определенного состояния. Это момент тонкой настройки модели. А уже после того, как набор моделей будет спроектирован, оптимизирован и обучен, следует оценить модель на предмет ее способности распознавать слова в реальной жизни. Здесь мы уже решаем 1-ую задачу СММ. Нам дается тестовое слово, представленное, разумеется, в виде наблюдаемой последовательности спектральных векторов. Далее мы вычисляем функцию соответствия этого тестового слова для каждой модели. Модель, для которой эта функция будет иметь наибольшее значение, будет считаться моделью названного слова.


                            Проблема состоит в том, что на этапе распознавания фонем моя программа не имеет словаря и не должна его иметь. Таково ограничение указанное в задании. Я должен распознать фонему по куску звукового потока, содержащего только ее и ничего больше. Возможно ли использовать в качестве элементов словаря сами фонемы, а не слова? И что делать в таком случае с количеством состояний N, сколько состояний брать? И еще одна вещь. Источником образцов будут дети 4-7 лет. Имеет ли это значение при создании таких моделей?
                              Цитата
                              Возможно ли использовать в качестве элементов словаря сами фонемы, а не слова?


                              Да

                              Цитата
                              И что делать в таком случае с количеством состояний N, сколько состояний брать?


                              Изолированные звуки в окружении тишины - 5. Вырезанные из потока - 3.

                              Цитата
                              Источником образцов будут дети 4-7 лет. Имеет ли это значение при создании таких моделей?


                              Нет
                                Большое спасибо. Буду пробовать. Постараюсь вернуться с результатами в течение недели.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0479 ]   [ 16 queries used ]   [ Generated: 25.04.24, 16:38 GMT ]