На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD, nsh
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
> Вычисление формант , Вычисление формант
    Подскажите пожалуйста, каким образом можно вычислить форманты (как найти их частоты)? Уже просмотрел много информации в интернете, в книгах, но так чёткого представления и не сложилось об их поиске.
    Построил график зависимости амплитуды от частоты (насколько я понял это спектр). Я понял, что некоторые пики на графике будут формантами. Насколько я понял, что можно вычислять форманты с помощью LPC коэффициентов, а также с помощью кепстрального анализа. Да, нашёл я LPC коэффициенты, а дальше что нужно делать?
    Можете пожалуйста объяснить идею вычисления формант?
    Спасибо!
      И ещё: во многих источниках пишут, что для нахождения формант можно использовать LPC коэффициенты. А с какой целью их можно использовать? что нам это даст и почему именно их советуют использовать?
        вариант:
        по LPC коэфициентам получить спектр
        максимумы на спектре - будут форматнами

        вот тут ещё почитайте
        Какие из гармоник - форманты?
          Цитата
          Подскажите пожалуйста, каким образом можно вычислить форманты (как найти их частоты)? Уже просмотрел много информации в интернете, в книгах, но так чёткого представления и не сложилось об их поиске.
          Построил график зависимости амплитуды от частоты (насколько я понял это спектр).


          Простой для понимания код можно посмотреть здесь:

          http://www.mathworks.com/help/signal/ug/fo...efficients.html

          Чтобы понять, как использовать LPC (l1, l2, l3...) коэффициенты, нужно понять их смысл - это коэффициенты фильтра речевого тракта.

          ExpandedWrap disabled
                F(z) = 1 / (1 - r1)(1 - r2)(1 - r3)... = 1 / (l_1 + x * l_2 + x^2 * l^3...)

          Форманты соответствуют пикам усиления, чтобы их найти, нужно найти комплексные корни полинома с LPC коэффициентами. После преобразования углов корней (r1, r2, r3) в частоты можно получить значения формант.

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

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

          Для полного понимания LPC лучше прочесть книгу по обработке сигналов.
          Сообщение отредактировано: nsh -
            спасибо, немножко стало ясней)

            Подскажите пожалуйста, что подразумевается под prediction polynomial, можете написать эту формулу, полученную из:
            A = lpc(x1,8) Formant Estimation with LPC Coefficients.

            Можете пожалуйста объяснить, что это за формула: F(z) = 1 / (1 - r1)(1 - r2)(1 - r3)... = 1 / (l_1 + x * l_2 + x^2 * l^3...)

            Какую толковую и понятную книгу можете посоветовать для понимания связи LPC коэффициентов и нахождения формант? (уже просмотрел довольно много книг, но не нашёл иль не понял объяснений)
              Цитата
              Можете пожалуйста объяснить, что это за формула: F(z) = 1 / (1 - r1)(1 - r2)(1 - r3)... = 1 / (l_1 + x * l_2 + x^2 * l^3...)


              Формула фильтра

              Цитата
              Какую толковую и понятную книгу можете посоветовать для понимания связи LPC коэффициентов и нахождения формант?


              Цифровая обработка речевых сигналов

              Л.Р. Рабинер, Р.В. Шафер

              http://dsp-book.narod.ru/R_Sh/R_Sh.htm
                Спасибо большое за помощь, но можно пожалуйста как-то более подробней объяснять, поскольку я впервые разбираюсь с речевыми сигналами, и на каждом шагу появляются непонятные вещи.

                Цитата
                F(z) = 1 / (1 - r1)(1 - r2)(1 - r3)... = 1 / (l_1 + x * l_2 + x^2 * l^3...) Формула фильтра

                Если сможете, можно пожалуйста поподробней здесь, что это за такая формула и откуда!


                Читаю на данный момент книгу Цифровая обработка речевых сигналов Рабинер, Шафер. Хорошая книга! Там находят форманты с помощью кепстральных коэффициентов (не через LPC).
                А именно: после нахождения кепстральных коэффициентов находят кепстрально сглаженный логарифмический спектр (который каким-то образом очень сглаживает спектр), и уже максимумы этого спектра отвечают формантам. Правильно ли я понял?

                Спасибо за помощь!
                  вариант с кестралными коэфициэнтами тоже возможен, но мне кажется что у него есть два недостатка:
                  1) может проявляться основной той - который может помешать правильному нахождению формант
                  2) субъективно кажется больше вычислительной мощности понадобится
                    Цитата
                    Форманты соответствуют пикам усиления, чтобы их найти, нужно найти комплексные корни полинома с LPC коэффициентами


                    какой имеет вид полином с LPC коэффициентами?
                      LPC коэфициенты представляют собой многочлен (полином)
                      http://ru.wikipedia.org/wiki/%D0%9C%D0%BD%...%BB%D0%B5%D0%BD
                      c_0 + c_1x^1 + ... + c_nx^n=0

                      user posted image

                      c_n - сответсвуют коэфициентам LPC
                      такой многочлен зачастую имеет несколько решений
                      соответсвенно все решения - будут формантами
                        Цитата
                        LPC коэфициенты представляют собой многочлен (полином)
                        c_0 + c_1x^1 + ... + c_nx^n=0

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

                        я нашёл LPC коэффициенты и застрял на этом моменте.

                        пусть одно из решений полинома rts, угол ang = арктангенс(imag(rts)/real(rts)); частота frq = ang *(Fs/(2*pi)) - эта частота и будет формантой.
                        Но вот каким образом мы определяем полином (откуда он берётся после нахождения LPC коэффициентов)???
                          Цитата
                          почему нужно находить корни данного многочлена.

                          это ещё один вариант нахождения формант - более точный скорее всего.

                          Цитата
                          Вы написали, что решения полинома укажут на форманты.

                          это написал Николай:
                          Цитата
                          Форманты соответствуют пикам усиления, чтобы их найти, нужно найти комплексные корни полинома с LPC коэффициентами.

                          p.s. я писал можно сделать обратное преобразование Фурье от LPC коэфицинетов и на полученном спектре найти максимумы.

                          Цитата
                          А почему именно корни данного полинома???

                          к сожалению это я объяснить не смогу.
                          что ещё с полинома взять-то =)

                          Цитата
                          откуда это выводится - мне не понятно. какие факты подтверждают, что корни указывают на форманты???

                          про факты не скажу. я просто вычитал и проверил - это работает.

                          Цитата
                          Но вот каким образом мы определяем полином (откуда он берётся после нахождения LPC коэффициентов)???

                          полином - это просто многочлен.
                          для 5 LPC коэфициентов многочлен который необходимо решить будет выглядеть так:
                          LPC(0)+X*LPC(1)+X^2*LPC(2)+X^3*LPC(3)+X^4*LPC(4)=0

                          http://www.mathportal.org/calculators/solv...tion-solver.php
                          http://www.mathsisfun.com/algebra/polynomials-solving.html

                          существуют готовые функции для его решения в matlab и opencv.
                            Спасибо за помощь!!!

                            В книге Рабинера Цифровая обработка речевых сигналов есть формула:
                            [img]http://postimg.org/image/f3ovv1xt9/[/img]

                            а вот такой формулы не видал: LPC(0)+X*LPC(1)+X^2*LPC(2)+X^3*LPC(3)+X^4*LPC(4)=0, поэтому и интерсно откуда она возникла. как находить корни уже этого полинома - понятно.
                              Цитата
                              книге Рабинера Цифровая обработка речевых сигналов есть формула:
                              user posted image
                              а вот такой формулы не видал: LPC(0)+X*LPC(1)+X^2*LPC(2)+X^3*LPC(3)+X^4*LPC(4)=0


                              Мы в ответах просто хотели выразить полином в общем виде, в книжке, конечно же, форма более правильная.

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

                              ExpandedWrap disabled
                                y = A(z) * z


                              где, по Рабинеру

                              ExpandedWrap disabled
                                A(z) = 1 - \sum a_k z^(-k)


                              y - сигнал на выходе (наблюдаемый), z - возбуждающий сигнал. Чтобы понять где находится форманта, где происходит наибольшее усиление, достаточно построить график комплексного обратного полинома. В простейшем случае можно построить график |A(z)| = |1/(z - a1)(z-a2)|:

                              user posted image

                              Как видно, наибольшее усиление сигнала происходит в направлении на полюса, они же корни полинома - a1 и a2. Чем ближе к полюсу, тем больше усиление, модуль стремится к бесконечности. Это направление и соответствует формантам.
                              Сообщение отредактировано: nsh -
                                Спасибо за подробные объяснения!

                                Подскажите пожалуйста, вот нашёл комплексные корни полинома, а как сопоставить их частоте соответствующей форманты?
                                смотрел в реализации matlab, но там не ясно откуда они это берут.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) [1] 2 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0337 ]   [ 15 queries used ]   [ Generated: 7.05.24, 19:57 GMT ]