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

    лично я пока балуюсь методами Монте-Карло, ну и конечно распределением Гауса, и результаты (промежуточные) вначале были такие же. Моё отношение к ним -не тот результат, который я хотел бы получить в итоге. Вы пробовали восстановить исходный сигнал из сглаженного спектра? Совпадает он с исходным? и наконец я пытаюсь работать с сигналом, в котором и полезный сигнал то едва различим. Но раз человек его различает, то и машина его должна различать. и если этого добиться - это и будет тот результат, который мне интересен.
      Цитата olegfamus @
      Моё отношение к ним -не тот результат, который я хотел бы получить в итоге.

      Вот и у меня так же. Пэтому я пока отложил потом вернусь перепроверю.

      Цитата olegfamus @
      Вы пробовали восстановить исходный сигнал из сглаженного спектра?

      После вычитания это уже не обратимый процесс. Однако на слух я разницы не заметил. Хотя по идеи должна. И плюс спектры ведут себя странно.
        Цитата Pavia @
        Можно сделать локальную бинаризацию. Берём окно 25 мс удаляет постоянную составляющую, затем переводим в частоты находим среднее и используем в качестве порога: всё что выше среднего 1 всё что ниже 0

        1. попробовал этот вариант, только со своими входными данными: входной сигнал выложен выше, окно 2,5 мс, 45 дискретных частот (хотелось бы уложиться в 32, иначе придётся перестраивать всю архитектуру вычислений (шутка), может 45 это предел?), ну и несколько иной от среднего порог (подобрал по чёткости на выходе)

        получил собранный выходной сигнал:
        Прикреплённый файлПрикреплённый файл20x600_pavia.rar (9,45 Кбайт, скачиваний: 816)

        2. тот же сигнал на входе, тот же алгоритм разложения по частотам и тд (символ в символ), кроме "Во временной области рассчитываете среднее и вычитаете из сигнала." вместо этого применил несколько другой способ избавиться от постоянной составляющей, но тоже из математики 5 или 6 класса (пока не буду писать какое, тайны никакой нет все его прекрасно знают, сначала нужно проанализировать, может этот эффект только с моими входными данными)

        второй собранный вариант (естественно и второй и первый без последующей обработки, кроме порога о котором писалось выше и который в обоих случаях одинаков)
        Прикреплённый файлПрикреплённый файл20x600_olegfamus.rar (6,34 Кбайт, скачиваний: 826)

        что касаемо распознавания собранных сигналов, тут вы совершенно правы, если не обращать внимание на некоторые траблы, то с моей точки зрения вероятность распознавания очень высокая, несмотря на примитивность алгоритма)

        Добавлено
        Цитата olegfamus @
        И плюс спектры ведут себя странно

        если вы о том что набор и амплитуды в этих двух спектрах совершенно не однозначные?
        В соседней теме Mikle писал:" строгий однополосный спектр имеет только бесконечная синусоида, если взять её кусок, то он уже имеет непрерывный спектр, чем короче кусок - тем меньше в спектре исходной частоты"-полностью согласен кроме последней фразы (вернее её несомненно будет всё меньше, но её энергия будет всегда больше остальных составляющих). С моей точки зрения если взять из бесконечного спектра с высокой долей вероятности значимую часть и сделать обратное преобразование, то с весьма высокой вероятностью на выходе мы получим ту самую синусоиду (по крайней мере на практике именно так и выходит)
        sorry)) понятно если в куске только 2 или 1 значение результат будет равен 0, но уже при 3 значениях (хотя решений и бесконечное множество), ответ однозначный)
        Сообщение отредактировано: olegfamus -
          Цитата Pavia @
          получаем пик/горку вблизи 0 частот. Вот его надо убрать. Вычитание среднего отлично с этим справляется.
          Собственно частота 0 это и есть среднее. Правда можно не обрабатывать сигнал перед DFT, а подчистить нижнее частоты уже в результате DFT.

          Добавлено
          Цитата Pavia @
          осле вычитания это уже не обратимый процесс. Однако на слух я разницы не заметил. Хотя по идеи должна. И плюс спектры ведут себя странно.
          Человеческое ухо начинает воспринимать звук только на частотах порядка 15 Гц. Всё, что ниже, воспринимается кожей как вибрация. На частоту 6-7 Гц приходится резонанс колебаний внутренних органов в теле.
          В реальности звуки с частотами ниже 100 Гц в природе почти не возникают или имеют слишком низкую мощность.
            Цитата olegfamus @
            В реальности звуки с частотами ниже 100 Гц в природе почти не возникают или имеют слишком низкую мощность

            Не совсем понял что вы имеете в виду под "в реальности", но если сделать частотный анализ выложенного мной выше сигнала 20х600, то увидите что там присутствуют частоты и 99 и значительно ниже, и даже менее 1Гц. Мало этого, на долю частот менее 100 приходиться под 80% и более мощности всего сигнала)

            Добавлено
            Правда в этих 80% нет полезного сигнала, но это уже другая тема)
            Сообщение отредактировано: olegfamus -
              Неправильно выразился. У уха на нижних частотах довольно существенно падает чувствительность. Кроме того, ухо чувствительно не к мощности звука, а к звуковому давлению. Хотя давление пропорционально мощности.
              Снижение чувствительности вызывается несколькими факторами, вот пара из них:
              Внутреннему уху не хватает размера, чтобы обеспечить нужный резонанс на низких частотах, получается, как говорят в радиотехнике, плохое согласование приёмника.
              На низких частотах звуковое давление достигает перепонки не только через слуховой канал, но и через носоглотку (там есть ещё один канал, ведущий на внутреннюю сторону перепонки).
              Из-за этого естественным звукам даже мощным, их мощности не хватает, чтобы обеспечить сравнимый со средними частотами отклик. В результате получается, что для уха названные 80% мощности превращаются в жалкие 20% (а то и меньше). В наушниках, кстати, низкие частоты слышны лучше, чем из колонок, часто даже капли-вкладыши умудряются выдать в ухо басы, несмотря на ужасное рассогласование на этот раз уже излучателей.
                Цитата olegfamus @
                При обратном преобразовании с различной величиной окна наилучшими в части разборчивости оказался диапазон от 20 до 40

                Боюсь что это слишком скоропалительные и ничем не обоснованные выводы с моей стороны, поскольку, как мне кажется, противоречат и физике и математике), скорее всего человеческий фактор накладывает свой неповторимый отпечаток), попытаюсь с этим разобраться
                Сообщение отредактировано: olegfamus -
                  Цитата olegfamus @
                  Боюсь что это слишком скоропалительные и ничем не обоснованные выводы

                  Для тех кому интересны альтернативные речевые технологии готов поделиться своими исследованиями)
                  Стояла задача: определиться с оптимальной шириной выборки (окна) с точки зрения цена-качество (производительность-наилучшая точность выходного сигнала, по отношению к входному)… при условии непрерывного потока и естественно непрерывного анализа на лету без потери данных.
                  Основные входные данные: изменение ширины входного окна - от 3 значений до 100, изменение выходного окна - от 3 значений до 100 (у меня это от 0,000375с до 0,0125с).
                  Результаты различных вариаций:
                  1. При слишком малых значениях входного окна:
                  а. точность обратного преобразования наиболее высокая. Это относится исключительно к моему способу определения спектра, возможно у других соскобов преобразования будут другие результаты (требует проверки), но...
                  б. с уменьшением окна пропадает часть данных находящихся между окнами (естественно окна без зазоров), приводить факты не буду, думаю многие поймут о чём я говорю. Решить эту проблему возможно при помощи перекрытия окон (много литературы по этому способу). Затратил какое то время на проверку и быстро успокоился - вроде есть эффект, но значительно усложняет код и производительность падает в геометрической последовательности (не мой вариант поэтому быстро забыл о нём))
                  в. с уменьшением окна частота окон начинает совпадать с частотами несущими основную информацию о сигнале, результат - появление в выходном сигнале огромного количества помех (а у меня их в полевых испытаниях и так выше крыши), которые значительно снижают вероятность слухового распознавания (возможно с точки зрения распознавания в коде это и не будет иметь какого либо значения, не знаю, но думаю наше идеальное устройство работает по тем же законам математики, физики, акустики и тд и следовательно если мы не сможем опознать, то и машина (моё субъективное мнение дилетанта, потому как есть достаточно много и обратных примеров))
                  2. При слишком больших значениях входного окна:
                  а. в выбору начинают попадать значения уже не 1, а 2 и более сигналов (особенно если в слове много рядом стоящих согласных), что при обратном преобразовании приводит к бубнящему сигналу (доказательства выложу позже)
                  б. Приводит к значительному удорожанию анализа. Например при выборке в 100 значений производительность по отношению к 20 значениям падает ВДВОЕ!!!! (возможно это только при моём способе, возможно это связано с организацией структуры буферизации данных - надо проверять)
                  3. При слишком малых значения выходного окна
                  а. как я ни старался подогнать код и получить хоть сколько приличный сигнал на выходе получить не удалось. Моё субъективное мнение дилетанта в анатомических возможностях человека - на таких высоких частотах наш мозг не воспринимает полезную информацию, хотя возможно я просто не верно прописал код в части вывода звука)
                  4. При слишком больших значениях выходного окна: такие же проблемы как и со входным окном

                  Наиболее оптимальными результатами оказались окна (и вх и вых) в диапазоне 20-40 значений, как и писалось выше. Лично я отдаю предпочтение 20 значениям, что соответствует 0,0025с (подтверждение предположения выложу позже)
                    Хотелось бы ещё добавить что на качество частотного анализа дополнительно влияет сам код вычисления (искажения порядка 1-2%) связанных с особенностями работы машин с вещественными числами (а в анализе почти 100% вещественные данные), результатом которых является подъём одних частот и понижением других. По цифрам или по графикам это весьма трудно определить (лично я предпочитаю работать с цифрами), но на слух различие в сигналах если в коде на одни данные ссылаются разные переменные могут хорошо прослушиваться.
                    С таким поведением столкнулся впервые, но после http://www.delphikingdom.com/asp/viewitem....=374&mode=print всё стало понятно)
                    Сообщение отредактировано: olegfamus -
                      Цитата olegfamus @
                      Хотелось бы ещё добавить что на качество частотного анализа дополнительно влияет сам код вычисления (искажения порядка 1-2%) связанных с особенностями работы машин с вещественными числами

                      :no: 1-3% это эффект Гиббса, связанный с тем что для Фурье анализа нужен бесконечный сигнал, а в компьютере он у нас усечённый, т.е окно всегда имеет некоторый размер.
                      http://www.dsplib.ru/content/filters/firwin/firwin.html

                      А вот числах то что точность чисел тоже ограничено влияет, но не на 1-2%, а на 0,001-0,1%.
                        Цитата Pavia @
                        бесконечный сигнал

                        Если я вас правильно понял - бесконечная размерность мгновенного значения?
                          Цитата Pavia @
                          а в компьютере он у нас усечённый

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

                          что касается величины окон) как и обещал выкладываю наглядный кусочек спектра с цифрами той фразы 20х600 (кто не прослушивал, вряд ли поймёт о чём идёт речь :o )
                          Прикреплённый файлПрикреплённый файл_______________________________________20__600.png (42,03 Кбайт, скачиваний: 1113)
                          Сообщение отредактировано: olegfamus -
                            Главное в анализе речевых данных – это выделить признаки, которые можно считать основными для идентификации лингвистического содержания. Все шумы и признаки которые отвечают за окраску можно отбросить. Принято использовать частотные или временные признаки отдельно или совместно. Считаю возможным использовать безразмерную величину как скважность, один из классификационных признаков импульсных систем, определяющий отношение периода следования (повторения) импульсов к длительности импульса.
                            Речевой сигнал на выходе компаратора получится прямоугольным, с импульсами с различной длительности и периодов. Смысловое содержание при прослушивании сохраняется. Чем выше частота тем ближе звук к оригиналу. В теории ни бум-бум НО проверял на практике.
                            Речь диктора можно прокрутить быстрее или тише значит изменятся и частотные и временные характеристики. Не изменится лишь скважность. Остается найти алгоритмы нахождения участков со скважностью присущих различным комбинациям звуков.

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


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0546 ]   [ 19 queries used ]   [ Generated: 15.07.24, 11:42 GMT ]