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

    Использую: pocketsphinx
    ОС: Windows 7 x64
    Цель: Управление умным домом. Различные команды например:
    "дом включи фильм",
    "следующий",
    "предыдущий",
    "спасибо".

    Вопрос: "Как создать свою lm с помощью srilm?" (собрать из исходников я смогу, но что дальше и с какими параметрами вызывать...)
    А то по cmuclmtk есть инструкция, на русском, пошаговая. А про srilm не понятно, какие команды надо выполнить и что скормить, чтобы получить lm?
    Я так понимаю нужно составить какой-то файл (не знаю формата) с предложениями, его скормить и получить lm.
    Вопрос 2: "Какой формат этого файла?
    Вопрос 3: "Если у меня могут быть команды как целиком 'дом включи фильм', так и частично 'дом включи','фильм' или 'дом','включи фильм'. То как составлять перечень предложений для lm и для адаптации?"

    Спасибо!
      Цитата
      Вопрос: "Как создать свою lm с помощью srilm?" (собрать из исходников я смогу, но что дальше и с какими параметрами вызывать...)
      А то по cmuclmtk есть инструкция, на русском, пошаговая. А про srilm не понятно, какие команды надо выполнить и что скормить, чтобы получить lm?


      Документация по srilm тут:

      http://www.speech.sri.com/projects/srilm/p...p2002-srilm.pdf

      Для того, чтобы сделать модель из текстового файла можно использовать следующую команду:

      ExpandedWrap disabled
        ngram-count -text text.txt -lm text.lm


      Цитата
      Вопрос 2: "Какой формат этого файла?


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

      Цитата
      Вопрос 3: "Если у меня могут быть команды как целиком 'дом включи фильм', так и частично 'дом включи','фильм' или 'дом','включи фильм'. То как составлять перечень предложений для lm и для адаптации?


      Так и составлять. Каждое возможное предложение на новой строчке.

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

      Добавлено
      Цитата SAndrusReg @
      Exception in thread "main" java.lang.IllegalStateException: javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 16000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported.


      На данный момент Dialog не работает под Windows из-за того, что Windows не позволят использовать микрофон дважды. Если создавать только один LiveRecognizer, всё будет работать.

      Сообщения были разделены в тему "Вызов команды с помощью голоса"
        Здравствуйте.
        Прочитал всю ветку. Много полезного. "Но я старый солдат и не знаю" Си и Linux, только Delphi, посему что-то собрать и запустить для меня не реально. Зато реально разобраться во всем с нуля, с потрахов. Иду своим путем. Все что касается FFT, MFCC, DTW - это пройденый этап.
        Позвольте вопрос, уважаемый nsh.
        Вот здесь
        http://cmusphinx.sourceforge.net/wiki/tutorialconcepts
        Есть фраза:
        Then for each frame of length typically 10 milliseconds we extract 39 numbers that represent the speech.
        Какие кокретно параметры описывают кадр? Наверняка есть кепстральные коэфы, сколько их и что кроме?
        На мой взгляд от того каков специфический набор параметров многое зависит, в том числе и влияние шума.
          Цитата
          "Но я старый солдат и не знаю" Си и Linux, только Delphi,


          Pocketsphinx можно использовать из Delphi, пример можно скачать тут:

          https://www.dropbox.com/s/pmtdpvtkkcb8m24/P...Delphi.zip?dl=0

          Цитата
          Какие кокретно параметры описывают кадр? Наверняка есть кепстральные коэфы, сколько их и что кроме?


          MFCC 13 коэффициентов, 13 разностных (дельта) коэффициентов, 13 двойных разностей. Больше там ничего нет.

          http://www.dialog-21.ru/digests/dialog2007...als/html/36.htm
            Цитата nsh @
            MFCC 13 коэффициентов, 13 разностных (дельта) коэффициентов, 13 двойных разностей. Больше там ничего нет.

            Мне не понятно следующее.
            Хорошо, есть 39 параметров, которые характеризуют каждые 10 мс. речевого потока. Назовем это вектором. Есть априори полученная фонетическая модель. Что это значит? Для каждой фонемы прописано из скольки таких векторов она состоит?
            То есть первичным является вектор. Фонема состоит из нескольких векторов.
            Но как решается неоднозначность по темпу произношения? Априорная фонетическая модель создана одним диктором, или имеет варианты? Т.е одна фонема для разных дикторов содержит разный набор векторов и это записано где-то в базе?
              Цитата
              Хорошо, есть 39 параметров, которые характеризуют каждые 10 мс. речевого потока. Назовем это вектором. Есть априори полученная фонетическая модель. Что это значит? Для каждой фонемы прописано из скольки таких векторов она состоит?


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

              Цитата
              Но как решается неоднозначность по темпу произношения?


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

              Цитата
              Априорная фонетическая модель создана одним диктором, или имеет варианты?


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

              Цитата
              Т.е одна фонема для разных дикторов содержит разный набор векторов и это записано где-то в базе?


              Распределение вероятностей общее. Дисперсия, в то же время, описывается несколькими возможными слагаемыми. Эти слагаемые могут предпочитать речь разных дикторов.
                Цитата nsh @

                Спасибо, кое-что проясняется. И проект на Delphi оживает.
                Еще пару вопросов.
                В акустической модели априори необходимо определить фонему и набор векторов из которых она состоит.
                Но вот вопрос. Как это наговаривается. Врядли дикторы произносят фонемы, скорее они произносят слова.
                А как из произнесенного слова выделяют фонемы? На эту тему масса статей. Как это в сфинксе делается?
                Да и сама фонема - вещь крайне неоднозначная. Я так понимаю, чтобы сделать такую работу для русского языка это не мало потрудится надо. Есть ли способы автоматизации процесса?

                И относительно фонемы. Очевидно, что фонема это не слог. Я для русского языка говорю. В слове маЛИна и в слове уЛИца два априори известных слога, условно определяющих фонему ЛИ. Но их спектральное содержание совершенно разное из-за соседей. Можно считать их разными фонемами или одной, но с вариантами. Тогда вопрос сколько таких условных фонем содержит русская акустическая модель?
                Сообщение отредактировано: Kek -
                  Цитата
                  В акустической модели априори необходимо определить фонему и набор векторов из которых она состоит.


                  Фонема не состоит из векторов. Правильно говорить - соответствует векторам.

                  Цитата
                  А как из произнесенного слова выделяют фонемы? На эту тему масса статей. Как это в сфинксе делается?


                  Алгоритм Баума-Велха позволяет обучать модели без начального разделения на фонемы, только зная последовательность фонем.

                  http://logic.pdmi.ras.ru/~sergey/teaching/mlbayes/06-hmm.pdf

                  Цитата
                  Да и сама фонема - вещь крайне неоднозначная. Я так понимаю, чтобы сделать такую работу для русского языка это не мало потрудится надо. Есть ли способы автоматизации процесса?


                  Набор фонем русского языка широко описан в литературе.

                  https://ru.wikipedia.org/wiki/Русская_фонетика

                  Цитата
                  В слове маЛИна и в слове уЛИца два априори известных слога, условно определяющих фонему ЛИ.


                  в слоге ли две фонемы - 'л' и 'и'

                  Цитата
                  Но их спектральное содержание совершенно разное из-за соседей.


                  Для моделирования контекста используются контекстно-зависимые сеноны

                  Цитата
                  Тогда вопрос сколько таких условных фонем содержит русская акустическая модель?


                  4000
                    Цитата nsh @

                    Уважаемый, nsh!
                    Я благодарен вам за ответы. Теперь я более утвердился в том, что можно построить совершенно иную систему распознавания, основанную не на фонемах, а на слове целиком. Точнее на тех акустических параметрах, которые более приближены к человеческому восприятию. Ребенок, когда учится говорить, ничего не знает о фонемах или о частях слова. Он воспринимает энергетические всплески. По моим многочисленным наблюдениям такие всплески описываются ансамблем значений спектральной плотности окна, размер которого по времени определяется квазистационарным процессом и составляет, как принято в многочисленных публикациях от 10 до 20 миллисекунд. Сочетание пиков спектральной плотности и спектральное содержание отдельных кадров, или векторов, как принято говорить, может быть весьма информативным. Более подробно я непременно напишу, когда поэкспериментирую с реализацией Sphinx на Delphi.
                    Сообщение отредактировано: Kek -
                      Подскажите, пожалуйста, как решить такую проблему: в словаре есть слово "привет", распознается хорошо, но если произнести часть слова, например "ивет", "вет", "ет", то все-равно распознается слово "привет" :blink:
                        Режим поиска ключевых слов использовать (-keyphrase "привет") и порог срабатывания отрегулировать (-kws_threshold 1e-10). Для ключевых фраз лучше использовать слово из 4-5 слогов, "привет" слишком короткое.
                          Николай, спасибо! Видимо это самый приемлемый способ.

                          Если не затруднит, помогите с кириллицей разобраться. Такая вот ошибка:
                          ExpandedWrap disabled
                            BindingError: String has UTF-16 code units that do not fit in 8 bits
                          Сообщение отредактировано: webmax -
                            Вам нужно рассказать более подробно, когда эта ошибка возникает. Как говорится "телепаты в отпуске".
                              Я использую pocketsphinx в веб-приложении.

                              При добавлении русских слов в javascript`е, консоль выдает такую ошибку:

                              ExpandedWrap disabled
                                var wordList = [["привет", "p rr i vv je t"], ['пока', 'p a k aa']];
                                 
                                postRecognizerJob({command: 'initialize', data: [["-dict", "ru/ru.dic"], ["-hmm", "ru_ptm"], ['-jsgf', 'ru/grammar.jsgf'], ['-keyphrase', 'привет']]},
                                                function() {
                                                    if (recorder) recorder.consumers = [recognizer];
                                                    feedWords(wordList);});



                              user posted image
                              Сообщение отредактировано: webmax -

                              Прикреплённый файлПрикреплённый файлerror.png (29,85 Кбайт, скачиваний: 587)
                                Вот пример сборки Sphinx для Delphi7 с исходниками.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (23) « Первая ... 15 16 [17] 18 19 ...  22 23


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0501 ]   [ 17 queries used ]   [ Generated: 18.07.25, 17:06 GMT ]