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

    Точно не сжатие
    Цель пока заключается в следующем: допустим есть какой то алгоритм частотного анализа какой либо фразы (например мама мыла раму), допустим в определённом интервале времени (в данном случае длина фразы) в каждой выборке частотный анализ имеет чёткий дискретный набор частот, качество этого набора я и хочу оценить.
    Как мне это представляется возможным: проще всего на слух, возможно можно было бы попробовать как вариант через зрительные образы через разработанной вами Круговой визуализатор спектра, я уже даже представляю как это можно было бы сделать, но к сожалению в этих образах слишком много информации для анализа их человеком, хотя для эвм возможно это не составит большого труда(производительности) главное чтобы каждая буква соответствовала одному образу, или звуку, или части звука... дальше деление приводит к такому огромному количеству разновидностей, что говорить об использовании символьного метода организации структуры мозга просто нет необходимости (объёмы просто колоссальные))
    На этом я исчерпал методы оценки качества анализа) Возможно кто нибудь предложит и другие методы, я был бы очень рад. Но хотелось бы не просто рассуждать а с чего нибудь начать)
      olegfamus
      Анализ это все стороннее изучение. Так что сравнивать не получится, так как он направлен на разные.

      Цель ваша не понятна. Возьмите Спектрограмму если она избыточна, то найдите 3 максимальных частоты в столбце и их выведете остальное отфильтруйте. Получится 3 полосочки.
      Одна буква соответствует одной комбинации.
        Цитата Mikle @
        Добротность контура - очень важная величина, она определяет ширину полосы пропускания фильтра так, чтобы фильтры пересекались на уровне 0.5.
        Не только это. С повышением добротности и уменьшением полосы пропускания фильтр начинает медленнее реагировать на изменения во входном сигнале. То есть короткий импульс может просто не вызвать сколько-нибудь заметного отклика в слишком высокодобротном фильтре.

        Для целей анализа некоторых сигналов, к примеру речи, иногда можно расширить полосы пропускания фильтров, чтобы по уровню мощности 0.5 перекрывались не соседние фильтры в линейке, а отстоящие через один, два или даже больше. Такие фильтры будут быстрее реагироать на сигналы, но придётся компенсировать повышенную корреляцию откликов соседних фильтров.
        Сообщение отредактировано: amk -
          olegfamus
          То есть цель - распознавание речи?

          Цитата Pavia @
          Возьмите Спектрограмму если она избыточна, то найдите 3 максимальных частоты в столбце и их выведете остальное отфильтруйте. Получится 3 полосочки.
          Одна буква соответствует одной комбинации.

          Сильно сомневаюсь, что всё так просто. Одну и ту же букву можно произнести в разной тональности, когда человек поёт, он так и делает. Можно наоборот, произнести в одной тональности разными голосами - баритоном и тенором, например.

          Цитата amk @
          С повышением добротности и уменьшением полосы пропускания фильтр начинает медленнее реагировать на изменения во входном сигнале.

          Всё верно. Но расширением полосы мы не добьёмся ускорения реакции на конкретной частоте, точнее не сможем отфильтровать паразитное влияние соседей, дело не в методе резонаторов, а в законах физики, даже не физики, математики - строгий однополосный спектр имеет только бесконечная синусоида, если взять её кусок, то он уже имеет непрерывный спектр, чем короче кусок - тем меньше в спектре исходной частоты. То есть постепенное "раскачивание" резонатора - это отражение реальной ситуации, что в сигнале присутствует такой-то спектр частот. Новая частота в спектре не может появиться мгновенно по определению.
          Сообщение отредактировано: Mikle -
            Цитата Mikle @
            Сильно сомневаюсь, что всё так просто.

            В кодеках для сжатия речи применяют кепсеклы берут два основных тона и их сжимают, я расширил до 3-х. То что произнести можно по разному я не сомневаюсь. Но речь шла о том что-бы сузить количество информацию.
            Так вот 2-х тоновое кодирование даёт разборчивую речь. Разборчивость оценивается записью кодирование и декодирование на слух оператором. Я бы воспользовался ГОСТом для проверки разборчивости. Может не самый хороший метод, но зато его можно практически повторить.

            Что касается качества метода. Согласен тут не всё так однозначно. В речи полно звуков которые не кодируются 2 тонами. Скорее всего человек восстанавливает недостаток по контексту или по словарю частоты встречи слогов. И недостающие буквы тем самым можно восстановить.
              Цитата Mikle @
              То есть цель - распознавание речи?

              Именно так и надо понимать!
              Цитата Mikle @
              Сильно сомневаюсь, что всё так просто. Одну и ту же букву можно произнести в разной тональности, когда человек поёт, он так и делает. Можно наоборот, произнести в одной тональности разными голосами - баритоном и тенором, например

              Совершенно (не буду говорить верно, скажу) с вами согласен.
              Цитата Mikle @
              Но расширением полосы мы не добьёмся ускорения реакции на конкретной частоте, точнее не сможем отфильтровать паразитное влияние соседей

              Опять с вами согласен
              Цитата Mikle @
              если взять её кусок, то он уже имеет непрерывный спектр

              Вообще отлично
              Цитата Mikle @
              То есть постепенное "раскачивание" резонатора - это отражение реальной ситуации, что в сигнале присутствует такой-то спектр частот. Новая частота в спектре не может появиться мгновенно по определению

              Это оценить не могу, поскольку применяю совершенно другой подход к получению спектра
              Цитата Pavia @
              В кодеках для сжатия речи применяют кепсеклы

              Здесь я вообще ничего не понял (с некоторыми терминами я вообще не знаком), интуитивно чувствую что сжатие не вписывается в вопросы этой темы
              Цитата Pavia @
              Разборчивость оценивается записью кодирование и декодирование на слух оператором. Я бы воспользовался ГОСТом для проверки разборчивости. Может не самый хороший метод, но зато его можно практически повторить

              СУПЕР!!! дайте мне пожалуйста прослушать, что же получается у вас вашими способами, возможно каким то образом вы улучшаете качество анализа при помощи сжатия. Если это так - начну изучать конкретно эту тему.
              Цитата Pavia @
              Скорее всего человек восстанавливает недостаток по контексту или по словарю частоты встречи слогов. И недостающие буквы тем самым можно восстановить.

              Тоже СУПЕР! но это уже отдельная тема приблизительно под таким заголовком "Алгоритм имитации работы естественного человеческого мозга и его механизмов психики", потому как у животных хотя и нет речевых способностей, но то что они различаются принципом работы ещё никто не доказал)
              Цитата Mikle @
              чем короче кусок - тем меньше в спектре исходной частоты

              Здесь совершенно не согласен. во первых - куда она могла пропасть, правильнее было бы сказать - её намного сложнее выделить потому как, чем короче строка, тем больше вариантов для решения уравнения. Выводы напрашиваются сами собой. Моё субъективное мнение: лично для меня цель стоит уложиться в 32 бита, пока этого не достиг, но могу сказать и 40 частотами (дискретными, без полос и без добротности) удалось добиться кое каких результатов - сравнить не с чем). И наконец совершенно не согласен, что собака зарыта именно на основных тонах))
              Сообщение отредактировано: olegfamus -
                Цитата olegfamus @
                Это оценить не могу, поскольку применяю совершенно другой подход к получению спектра

                Речь не о методе ПОЛУЧЕНИЯ спектра, а о самом факте его НАЛИЧИЯ в сигнале.
                Цитата olegfamus @
                Здесь совершенно не согласен. во первых - куда она могла пропасть

                Она пропала туда же, куда пропали фрагменты до и после фрагмента, которые мы обрезали.

                Смысл обоих вопросов раскроет гугленье по запросу "спектр непериодического сигнала".
                  Цитата Mikle @
                  Она пропала туда же, куда пропали фрагменты до и после фрагмента, которые мы обрезали.

                  Не могу ни опровергнуть ни согласиться, для того чтобы это сделать необходимо детально изучит ваш алгоритм.
                  Цитата Mikle @
                  Речь не о методе ПОЛУЧЕНИЯ спектра, а о самом факте его НАЛИЧИЯ в сигнале.

                  Разве в настоящее время есть необходимость в этом сомневаться)
                  Вот в этой статье http://pblog.ru/?p=658 автор пишет, цитирую: "Фурье также сделал попытку доказать возможность разложения в тригонометрический ряд любой произвольной функции и, хоть его попытка оказалась неудачна, она фактически стала основой современной цифровой обработки сигналов" я не историк и не математик. Но к чему пришёл я, практически, я повторюсь практически, слово спектр при анализе можно вообще не использовать. Помните мультик про удава мартышку и попугая? Так вот по мне так можно не только любую функцию разбить на тригонометрический ряд, но это можно сделать и любой размерностью, в том числе и случайной (или условно случайной.
                  Помните Штирлица?
                  Возьмите например фразу 3-4 секунды сигнала в котором присутствует фраза мама мыла раму, разложите её в матрицу (неважно какую) я например использую строку 20мс, потому как считаю это размер достаточным, для того чтобы утверждать что в этом кусочке будет содержаться хотя бы 1 звук (пока бездоказательно и ориентировочно, поскольку с моей ничтожной точки зрения увеличение интервала будет приводить уже к сочетанию звуков, а уменьшение к дублированию, что не целесообразно)
                  теперь выведите эту матрицу на экран, или распечатайте...ничего не напоминает?, может пора изучать криптографию раз традиционными методами нет результата?
                  не знаю я не знаток криптографии, но то что я совершенно спокойно могу мама мыла раму разобрать на случайные параметры и потом их собрать и восстановит сигнал это точно. Но самое главное - не важно каким способом разбирать и собирать, самое важное чтобы после разборки каждому звуку соответствовало бы единственно возможное сочетание цифр (строка, её то и будем запоминать, или набор строк, чтобы в сумме все варианты уместились в 16 бит, только тогда имеет смысл как то ими оперировать). Согласитесь ничего нового.
                  зы собирать же я собираюсь (извините за тавтологию) только для оценки разборки, не более, согласитесь, если вы на этапе анализа уже обрежете слишком много информации или наоборот внесёте в оригинал несуществующие данные, что же вы получите на выходе?
                  Сообщение отредактировано: olegfamus -
                    olegfamus
                    Вы неправильно используете слово "анализ". Анализ в переводи на русский изучение.
                    Цитата olegfamus @
                    если вы на этапе анализа уже обрежете слишком много информации или наоборот внесёте в оригинал несуществующие данные, что же вы получите на выходе?

                    Поэтому на этапе анализа ничего не обрезается.

                    Так как вы говорите про распознавание звука, то наверно это стадия называется разметка. И соответственно разметка не на звуки, а но фонемы. Так как звуки понятие слишком широкое сюда же и шумы подходят и музыка и тп.


                    Цитата olegfamus @
                    Помните мультик про удава мартышку и попугая? Так вот по мне так можно не только любую функцию разбить на тригонометрический ряд, но это можно сделать и любой размерностью, в том числе и случайной (или условно случайной.
                    Помните Штирлица?
                    Возьмите например фразу 3-4 секунды сигнала в котором присутствует фраза мама мыла раму, разложите её в матрицу (неважно какую) я например использую строку 20мс, потому как считаю это размер достаточным, для того чтобы утверждать что в этом кусочке будет содержаться хотя бы 1 звук (пока бездоказательно и ориентировочно, поскольку с моей ничтожной точки зрения увеличение интервала будет приводить уже к сочетанию звуков, а уменьшение к дублированию, что не целесообразно)
                    теперь выведите эту матрицу на экран, или распечатайте...ничего не напоминает?, может пора изучать криптографию раз традиционными методами нет результата?

                    Да это известно называется вейвлет-анализ. Что-бы собрать обратно функция должна быть обратимой, а для этого требуется однозначность отображения.
                      Цитата Pavia @
                      Что-бы собрать обратно функция должна быть обратимой

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

                      Добавлено
                      почему то вся эта тема о помощи в виде реальных данных превращается в обсуждение целесообразности этой помощи)
                      я не сомневаюсь что все кто читал о чём идёт речь, прекрасно представляют что мне было бы интересно узнать)
                      есть микрофон
                      есть waveInOpen
                      получили результат АЦП в виде матрицы АхБ
                      раздраконили его каким угодно способом для определения частотного спектра
                      получили матрицу спектра СхБ
                      обратна функция (преобразование фурье?)
                      получили копию АхБ (только это уже ДхБ)
                      выложили сюда и АхБ и ДхБ (только чтобы правила не нарушать))
                      я слушаю и АхБ и ДхБ и сравниваю с моими результатами
                      делаю выводы толи у меня г-о, либо 50 на 50
                      в случае г-о выкладывать мои достижения нет смысла
                      начинаю всё сначала)
                        Вот держи можешь экспериментировать.
                        Только вместо 'Мама мыла раму' 'Hockey Game' лежит в папке Data. Выходной файл там же.

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

                        Скачать программу и данные
                        Прикреплённый файлПрикреплённый файлWaveAnaliz.zip (935,12 Кбайт, скачиваний: 647)

                        user posted image
                          Цитата Pavia @
                          Вот держи

                          Огромное спасибо!
                          Какое то время буду изучать
                            olegfamus
                            У меня там ошибочка небольшая забыл указать индекс канала в результате первый канал попадает во второй
                            ExpandedWrap disabled
                                // Вычисляем спектр
                                 CopyInRe(z1,Data[0]);


                            Надо заменить на
                            ExpandedWrap disabled
                                // Вычисляем спектр
                                 CopyInRe(z1,Data[j]);
                              Цитата Pavia @
                              У меня там ошибочка небольшая забыл указать индекс канала в результате первый канал попадает во второй

                              ошибка не важно если не разберусь задам вопрос, главное чтобы вирусов не было) а то в прошлом году скачал на форуме один примерчик, так долго с начальником системы безопасности пришлось объясняться и пока от ативирусовщиков не пришёл отрицательный ответ, сидел сложа руки)
                                Алгоритмов обработки сигналов великое множество. У каждого есть свои достоинства и недостатки. В распознавании звуковых сигналов приоритет отдан цифровой обработке сигналов где все построено на расчете изменений тока во времени. На заре развития электросвязи для измерения частоты использовались резонансные фильтры. Для объяснения работы органов слуха использовали резонансную теорию которая имеет много сторонников и до сих пор считается классической. Если допустить что при распознавании звуков главным является не определение спектра частот то появится возможность найти «философский камень» — алгоритмы распознавания звуковых сигналов не используя производных от времени которые бы однозначно классифицировали звуковую волну. Если считать что слуховой образ — не сумма тональностей а соотношение тональностей то не потребуется определять все частоты звуковом сигнале как делается в существующих программах распознавания звуковых сигналов. В системах распознавания речи, содержащих слова, распознавание происходит путем сравнения между входным словом и различными словами в словаре. Мы не будем делать этого.
                                Мы можем узнать мелодию сыгранную на любом инструменте. Мы можем узнать слово «мама», и неважно, сказано это слово мужским голосом или женским. Мы можем узнать слово прокрутив его быстрее или тише с большей или меньшей громкостью. Единственное что остается неизменным это соотношения соседних частот а не сумма частот. Частоты определяются с помощью фильтров или разложением в ряд Фурье а так же подсчитыванием количества импульсов за единицу времени как в цифровых частотомерах. Измеряют таким способом лишь периодические сигналы без резких изменений частоты. Считается что для измерения речевых сигналов такой способ не подходит. Для музыкальных звуков такой способ можно применить. Предлагаю обсудить следующий алгоритм измерения частоты периодических звуковых сигналов без нахождения и вычисления частоты сигнала в заданном промежутке времени а сравнением количества периодов(импульсов) соседних участков звука.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) 1 [2] 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1079 ]   [ 18 queries used ]   [ Generated: 18.04.24, 01:22 GMT ]