• Использование краткосрочных характеристик в обработке речи

      Ниже дан вольный перевод записи с сайта Sakshat Virtual Labs
      Need for Short Term Processing of Speech
      В статье содержится информация об одном из методов сбора характеристик речевого сигнала и о трех основных характеристиках, которые лежат в основе многих алгоритмов обработки звуковых сигналов и речи.

      Большинство средств обработки сигналов работают в стационарных системах, т.е. подразумевают стационарный сигнал. Речь воспроизводится системой речевого тракта и потому она по своей природе нестационарна. Следовательно, обычные средства, которые применяются для обработки сигналов не подходят для обработки речи. Использование их напрямую нарушает лежащие в их основе предположения. И даже если слепо использовать их, результат все равно не будет иметь практического значения. Например, средство вычисление общей энергии фундаментальное в области обработки сигналов:
      Предположим, что можно использовать эту формулу для вычисления энергии речи. Несомненно, это даст нам энергию, присутствующую в речевом сигнале. Однако, полученное значение ничего нам не даст. Причина в природе речи — мы знаем что она имеет меняющуюся во времени амплитуду и энергию, потому необходим инструмент, который предоставил бы информацию об изменениях энергии во времени.

      Было предложено решение для обработки речи, которое заключалось в использовании уже известных методов из области обработки сигналов с их небольшой модификацией. То-есть используемые средства обработки все так же предполагали стационарный сигнал. Стационарным речевой сигнал получается, когда рассматривается небольшими блоками по 10-30мс. Следовательно, для обработки речи разными средствами обработки сигналов, она рассматривается в блоках по 10-30мс (дальше такой участок будем называть речевым сигналом). Такая обработка называется Краткосрочной Обработкой (Short Term Processing (STP)).
      Читать дальше →
      • +24
      • 7.8k
      • 5
    • Простой, но эффективный Voice Activity Detection алгоритм реального времени

        Ниже дан перевод статьи
        A SIMPLE BUT EFFICIENT REAL-TIME VOICE ACTIVITY DETECTION ALGORITHM
        М.H. Moattar and M.M. Homayonpour
        Laboratory for Intelligent Sound and Speech Processing (LISSP), Computer Engineering and Information Technology Dept., Amirkabir University of Technology, Tehran, Iran
        Оригинал по ссылке

        РЕЗЮМЕ

        Алгоритм обнаружения активности голоса (Voice Activity Detection, далее VAD) очень важный метод в приложениях обработки речи и аудио. Эффективность большинства, если не всех методов обработки речи/аудио сильно зависит от эффективности применяемого алгоритма VAD. Идеальный детектор активности голоса должен быть независимым от области применения приложения, от уровня шума и быть наименее зависимым от максимума параметров приложения, в котором его используют. В этой статье предлагается близкий к идеальному алгоритм VAD, который одновременно легок в реализации и устойчив к шуму. Предложенный метод использует такие кратковременные характеристики как Spectral Flatness (SF) (спектральная плоскостность, ровность) и Short-term Energy, что делает метод целесообразным для применения в реальном времени. Этот метод был проверен на нескольких записях с разным уровнем шума и сравнивался с недавно преложенными методами. Эксперименты показали удовлетворительные результаты при разных уровнях шума.
        Читать дальше →
      • Пишем ORM для Delphi

        Всем привет!
        Сегодня я расcкажу вам о своем опыте написания ORM для Delphi с использованием RTTI под влиянием практик работы с Doctrine и Java EE.

        Зачем?


        Под мою власть недавно попал старый проект на Delphi7 в котором ведется активная работа с базой данных под Interbase 2009. Код в этом проекте радовал, но ровно до тех пор, пока речь не заходила о самом взаимодействии с бд. Выборка данных, обновление, внесение новых записей, удаление — все это занимало немало строк в логике приложения, отчего разобраться в коде порой становилось довольно сложно (спасение в добросовестном разработчике, который круглосуточно отвечал на мои глупые вопросы). В мои руки проект был передан с целью устранения старых бед и добавления в него нового модуля, задача которого — покрыть новые таблицы БД.

        Мне нравится MVC подход и очень хотелось разделить код логики с кодом модели. Да и если уж на чистоту — я не захотел для каждой новой таблицы переписывать по новой все get/set методы. Пару лет назад я познакомился с понятием ORM и мне это понравилось. Мне понравился принцип и я был в восторге, применяя его в своей работе.
        В тот же момент я ринулся искать в Delphi7 хоть что-нибудь похожее на Doctrine или может генераторы Entity/Facade классов для таблиц… Ни того ни другого. Зато в поисковой выдаче нашлось несколько готовых решений. Например DORM. В целом, отличная штука и, по сути, то что нужно!
        Читать дальше →