На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD, nsh
Страницы: (23) « Первая ... 4 5 [6] 7 8 ...  22 23  ( Перейти к последнему сообщению )  
> Работа с CMU Sphinx , Работа с CMU Sphinx 4.0
    смотреть на цитату
    в цитате три строчки:
    1-я оригинальная
    2-я распознанная
    3-я оценка результата распознования

    в 3-й строчке
    Error = 125.00% Accuracy = -25.00%

    меня смущает Error > 100% и Accuracy < 0%
    Здесь нет никакой ошибки на ваш взгляд?
      Цитата zamir @
      Здесь нет никакой ошибки на ваш взгляд?


      Ошибки нет, все по формулам.
        Народ кто копал глубоко Сфинксы как там реализовано распознавание после MFCC признаков, я так понимаю они на НММ кидаются. Но если после нейронной сети уже мы имеем начальную классификацию разбиение на фонемы какая в текущие миллисекунды проявляется, а НММ после нейронной сети просто обопщает и возвращает основные состояния, вычисляет основную вероятнойть той или иной фонемы и соответственно какое слово из этих фонем получается. То как в Сфинксах это сделано только на НММ?
          Есть несколько типов моделей
          CONT
          SEMI
          PTM
          у меня частенько возникали мысли попробовать то о чём вы говорите
          немного смущает то что в вариации использования HMM я всегда наблюдал DCT
          на этот вопрос наверника Николай сможет ответить, но мне думается что более точный ответ сможет дать экспемент
          ввиду того что в cmu sphinx есть параметр нормализации вектров с большой долей вероятности выходы из нейронной сети в диапазонах -1:1 можно будет подать в HMM

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

            Да подать то запросто можно что угодно на НММ вопрос что подавать, диапазон коэфициентов я думаю роли не играет, ведь что в нейронной сети что в НММ все от коэффициентов зависит на них все умножается суммируется сравнивается, просто будут выходные данные такого же диапазона. Тут главное инвариантность обеспечить.

            У меня своя программно-аппаратная платформа. Все алгоритмы написаны с 0 никакими библиотеками не пользуюсь и в микроконтроллере и на ПК разные программы обработки поступающих данных. Я за 4года после работы когда есть вермя эксперементирую и уже не помню сколько всего перепробовал, но это все от простого к сложному пришло. И собственные алгоритмы типа НММ, когда по спектру вычисляется огибающая и вид каждой огибающей маркируется и потом вычисляется вторым алгоритмом сравнения схожесть развития спектра т.е. формы огибающей с отпечатком голос команды. На перцептронах просто спектр подавал и тренировал сеть на образ спектра команды, диапазон значений в этом случае не имеет значения, потому что суммируется сигнал какое слово набрало больше очков то и произнесено. Со скрытыми слояими перцептрон по кадрам таймслотам работал все как у всех.

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

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

            Уже и экспандеры накручиваю и левеллеры и логарифмирование и визуализацию постоянно смотрю спектра и DCT спектра. Вот так маюсь.
            Сообщение отредактировано: TViT -
              при распознавании HMM следующий принцип:
              фонема представляется состояниями
              состояния - это точки характеризующие переход одного звука в другой при произнесении фонемы
              состояния HMM группируютя - получается одно суперсостояние - какая-нибудь конкретная фонема
              далее если мы пытаемся найти слово - на базе фонемной транскрипции собирается модель из суперсостояний (а в конечном счёте из последовательности состояний). Вместо слова может быть группа слова. Затем эта модель сравнивается с потоком фитч и строиться вероятность. В результате некого ограниченного перебора находится самая вероятная последовательность состояний представленных словами - которые и выводятся как результат.
              Для сокращения перебора используется языковая модель которая описывает вероятные последовательности слов + дополнительные алгоритмы отсечения.

              Ваш механизм маркировки возможно будет полезен как раз для выделения сигнала и удаления шума

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

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

              Если я вас правильно понял то у вас нет результата распознавания фонем при помощи нейронной сети. жаль...
                То есть группировка в суперсостояния это и есть аналог нейронной сети. Это НММ делает одним проходом в одном алгоритме или разбито на виды НММ обученные соответственно один вид НММ на нахождение суперсостояний, а другая НММ обучена на собирание модели и суперсостояний ?

                У меня задача распознать 2-3 слова но максимально точно. Слова максимально различны по спектральному образу. Чтобы система не реагировала на похожие спектры от окружающей обстановки или шума.
                Поэтому слово независимо по длительности делиться всегда на одиноковое кол-во временных щелей - тамслотов. Поэтому размерность данных на сеть одинаковая например 20х20 20значений от фильтров и 20 тамслотов. И на сеть они подаются все 400, можно через DCT пропустить и подать 20х13. Причем они центруются чтобы попасть в поле распощнавания или кадр сети целиком всегда при разном произнесении.

                В моем случае у меня нейронная сеть распознает переходы можно назвать их фонемами, но я их маркирую просто 1234. Поэтому нейросеть мне выдает в зависимости что за слово например такое 1111123333 другое слово выдаст 223333344444 и т.д. В любом случае это тоже самое фонемное распознавание. На что обучил то и распознал. Но к фонемам как таковым у меня нет привязки.
                Сообщение отредактировано: TViT -
                  Цитата
                  У меня задача распознать 2-3 слова но максимально точно.

                  создайте для каждого слова HMM модель
                  создайте модели для несколько других не похожил слов/шумов
                  затем сравнивайте эти модели с входными данными и определите пороги максимальной схожести для кадой из моделей - помоему это самый простой способ решить вашу задачу
                  вы можете даже sphinx на это натренировать - если у вас достаточно большая база

                  Цитата
                  Это НММ делает одним проходом в одном алгоритме или разбито на виды НММ обученные соответственно один вид НММ на нахождение суперсостояний, а другая НММ обучена на собирание модели и суперсостояний ?

                  одним проходом на сколько я себе это представляю (в pocketsphinx есть алгоритм с двумя проходами)
                  http://en.wikipedia.org/wiki/Viterbi_algorithm

                  Цитата
                  То есть группировка в суперсостояния это и есть аналог нейронной сети.

                  я бы так не сказал
                  моё мнение что HMM схожи с рекурсивными нейронными сетями так как они более инварианты к шкале времени - хотя возможно я не прав. рекурсивная нейронная сеть как раз учитывает время путём обратной временной связи в то время как традиционные нет...
                  нейрон во 2-м и последующих слоях решает иную задачу нежели состоние в HMM

                  Цитата
                  распознает переходы можно назвать их фонемами, но я их маркирую просто 1234

                  это классы
                  за классами у вас что-то закреплено - например частички фонем или их характеристики
                  аналог состояний в HMM
                  по совокупной последовательности классов и их схожести вы по идеи можете определить последовательность фонем
                    Цитата
                    одним проходом на сколько я себе это представляю (в pocketsphinx есть алгоритм с двумя проходами)

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

                    Цитата
                    я бы так не сказал
                    моё мнение что HMM схожи с рекурсивными нейронными сетями так как они более инварианты к шкале времени - хотя возможно я не прав. рекурсивная нейронная сеть как раз учитывает время путём обратной временной связи в то время как традиционные нет...
                    нейрон во 2-м и последующих слоях решает иную задачу нежели состоние в HMM


                    После нейросети НММ даст временную инвариантность. Вопрос делать все на НММ? Или НММ только в конце на основные состояния ставить после нейросети. Поэтому и возник вопрос как в сфинксе это учитывается. Но на мой взгляд нейросеть лучше для разбиения на фонемы.

                    Цитата
                    это классы
                    за классами у вас что-то закреплено - например частички фонем или их характеристики
                    аналог состояний в HMM
                    по совокупной последовательности классов и их схожести вы по идеи можете определить последовательность фонем


                    Конечно под 1234 закреплены определенные спектры в произношении - вашими словами частички фонем или изменяющегося спектра. Я сам это определяю анализируя спектр где что начинается и как это обозначить чтобы не пересекалось с похожими участками по спектру, но другой фонемы. Просто я под классами подразумеваю более глобальную структуру в которую могут входить и фонемы и состояния и части изменяющегося спектра фонем и другая информация, например варианты разного произношения одного и того же с шумами и т.д.
                    Сообщение отредактировано: TViT -
                      Тот путь по которому вы движетесь мне стал понятен

                      У меня нет достаточных знаний что бы я смог ответить на ваш вопрос
                      Посмотрите ещё цепи Маркова и Baum Welch алгоритм
                      http://ru.wikipedia.org/wiki/%D0%A6%D0%B5%...%BE%D0%B2%D0%B0
                      https://en.wikipedia.org/wiki/Baum%E2%80%93Welch_algorithm
                      естественно что механизм нахождения наиболее удачного состояния иттерационный - но выглядит он как "подобрать оптимальное состояние на основе статистических данных в один заход". Поиск производится сверху вниз. Ищутся слова а не фонемы.

                      Добавлено
                      Сколько у вас сейчас кстати классов и какое колличество часов материала?
                        Цитата
                        Тот путь по которому вы движетесь мне стал понятен

                        У меня нет достаточных знаний что бы я смог ответить на ваш вопрос


                        zamir Ну что же вы так принижаете себя ))) Любой ищущий, эксперементирующий пытливый ум стоит десятерых )))


                        Цитата
                        Посмотрите ещё цепи Маркова и Baum Welch алгоритм


                        Все это я смотрел но исходников почти нет нормальных простейших чтобы все это на примерах попробовать что лучше. А все алгоритмы перебирать эксперементировать времени много. Мне непонятно как обучается НММ знаю что через ЕМ модели, но пока не до этого потом буду разбираться в моем простом случае коэффициенты между графами вручную понятно как подобрать (мало данных для анализа всего 3 слова). Опять же нет исходников простых. Либо Сфинксы либо HTK tool в них еще разбираться что откуда кучу времени не для меня. У меня уже основные точки по которым идти сформировались. Все увязать в единое целое нужно.


                        Цитата
                        Сколько у вас сейчас кстати классов и какое колличество часов материала?


                        Пока фонемы определяю чтобы в основные состояния попасть. выход нейро сети около 8-10 соответственно 8-10 разных фонем может распознать. Потом буду смотреть уже на много часовых тренировках хватает или нет. Предварительные результаты порадовали. Точно определяются фонемы независимо кто как сказал. Слов 3шт записанных разными людьми до 5 человек поэтому база маленькая для тренировки. Буду привлекать знакомых потом на этапе тренировки родственников и т.д.
                          вот кстати нашёл небольшое описание интересующего вас материала

                          http://www.speech.cs.cmu.edu/sphinxman/HMM.pdf
                            Спасибо гляну. Сейчас про спайковые нейросети и нейронный газ пытаюсь что либо конкретное нарыть поиграться чем они лучше и вообще какой потенциал. Это уже не для это ветки обсуждение.
                            Сообщение отредактировано: TViT -
                              Цитата TViT @
                              Спасибо гляну. Сейчас про спайковые нейросети и нейронный газ пытаюсь

                              Прошу извинить за offtopic и вторжение!

                              Вопрос новичка:
                              есть интерес и желание "глубоко въехать" в тему ASR и
                              сделать простой распознаватель (английский, типа dialer).
                              Этот распознаватель должен стать "эталонным", чтобы можно было двигаться дальше.

                              Познакомился, установил и начал запускать HTK.
                              Встал вопрос об TIMIT или чем-то подобном для настройки и обучения HMM.
                              Стал искать в И-нет.
                              Удивился, когда обнаружил, что на этом форуме практически не обсуждают HTK,
                              но кто-то упражняется со Sphinx, а кто-то готов написать свою систему "с нуля" и на Pascal'е.

                              Наконец, вопрос: а туда ли я "загребаю"?
                              Может, HTK и HMM уже совсем неактуальный инструмент и подход и
                              надо бы обратить внимание на что-то другое?

                              С уважением,
                              dummy
                                Цитата
                                Познакомился, установил и начал запускать HTK.
                                Встал вопрос об TIMIT или чем-то подобном для настройки и обучения HMM.
                                Стал искать в И-нет.


                                Базу для обучения можно скачать на сайте http://voxforge.org

                                Цитата
                                Удивился, когда обнаружил, что на этом форуме практически не обсуждают HTK,
                                но кто-то упражняется со Sphinx, а кто-то готов написать свою систему "с нуля" и на Pascal'е.
                                Наконец, вопрос: а туда ли я "загребаю"?
                                Может, HTK и HMM уже совсем неактуальный инструмент и подход и
                                надо бы обратить внимание на что-то другое?


                                Стоит обратить внимание на CMUSphinx
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (23) « Первая ... 4 5 [6] 7 8 ...  22 23


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1108 ]   [ 16 queries used ]   [ Generated: 27.04.24, 01:40 GMT ]