• Нейросетевой синтез речи своими руками

    Синтез речи на сегодняшний день применяется в самых разных областях. Это и голосовые ассистенты, и IVR-системы, и умные дома, и еще много чего. Сама по себе задача, на мой вкус, очень наглядная и понятная: написанный текст должен произноситься так, как это бы сделал человек.

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



    Я решил попробовать сделать полностью нейросетевой синтез своими руками, а заодно и поделиться с сообществом своим опытом. Что из этого получилось, можно узнать, заглянув под кат.
    Читать дальше →
  • Обходим ASLR для Linux по-новому



      Ядро Linux широко распространено во всем мире как на серверах, так и на пользовательских машинах, на мобильных платформах (ОС Android) и на различных «умных» устройствах. За время существования в ядре Linux появилось множество различных механизмов защиты от эксплуатации уязвимостей, которые могут существовать как в самом ядре, так и в приложениях пользователей. Такими механизмами является, в частности, ASLR и stack canary, противодействующие эксплуатации уязвимостей в приложениях.

      Читать дальше →
      • +50
      • 11.5k
      • 6
    • Разработка изоморфного RealWorld приложения с SSR и Progressive Enhancement. Часть 1 — Введение и выбор стека

      • Tutorial
      Весной 2017 года Eric Simons, со-основатель учебного проекта Thinkster, анонсировал проект «RealWorld»демо приложение и спецификация к нему. Проект объявил своей целью выйти за рамки привычных «todo»-демок для более прикладного сравнения и изучения возможностей различных фреймворков и технологий, а также подходов к разработке и способов решения задач.

      image
      Читать дальше →
      • +10
      • 7.9k
      • 5
    • Самый быстрый Индиан: Key/Value контейнер на базе Trie

        image

        «Может показаться, что я ничего не делаю. Но на самом деле, на клеточном уровне, я очень занят»
        Автор неизвестен

        В 21 веке построение программ все чаще напоминает конструктор Lego. Этот подход подразумевает, что многие «кубики» придуманы до нас. Собственно их элементарность обманчиво подсказывает, что ресурс улучшений за многие годы здесь практически исчерпан и нам остается использовать то, что есть. Но, как не странно, по аналогии с биологией, элементарные «клетки» порой скрывают самые сложные и продуманные алгоритмы и именно здесь заключены все самые интересные баталии. В этом смысле программисты по многогранности индустрии, чем-то напоминают медиков. Здесь есть свои терапевты, ветеринары, хирурги и есть вот те ребята, которые на несколько строк кода могут потратить несколько месяцев работы.

        «В компании Google, прямо сейчас, пока я говорю, в нашем парке серверов, 1% всех CPU занимаются вычислениями внутри хештаблиц. Пока я говорю, более 8% всей оперативной памяти серверов занимают хештаблицы. И это только то, что относится к С++, я не знаю ситуации по Java»
        Matt Kulukundis, CppCon 2017
        Читать дальше →
      • WI-FI в метро: архитектура сети и подземные камни


          Всего за пару лет поездка москвича в метро перестала быть ежедневной рутиной. Если раньше единственным развлечением в подземке были чтение книг, прессы и MP3-плеер, то теперь к ним добавились онлайн-шоппинг, просмотр сериалов, деловая переписка, даже знакомства в Tinder и квесты. А все благодаря появлению в метро бесплатной сети Wi-Fi. Порядка 80% москвичей регулярно подключаются к сети MT_FREE в метро, не задумываясь, как это работает и чьими силами это сделано. Бытует мнение, что Wi-Fi в метро “провел” сам метрополитен, но это не совсем верно. Беспроводная сеть — это проект “МаксимаТелеком”. Для компании это был первый опыт строительства высокоскоростной сети Wi-Fi с уникальными в мировой практике инженерными и техническими решениями. В этом посте мы расскажем, как организована сеть Wi-Fi в метро Москвы.
           
          Читать дальше →
        • Телевидение через Acestream на Raspberry PI. Теперь в docker контейнерах

            На хабре уже неоднократно упоминался AceStream: технология, предоставляющая пользователю доступ к видеопотокам по закрытому P2P протоколу AceStream, т.н. torrent телевидение. AceStream предоставляет доступ к распределенной сети доставки контента, т.е. просматривая телеканал пользователь передает данные другим пользователям, что позволяет кардинально снизить стоимость услуг.


            А теперь хорошая новость для обладателей медиаплеера на основе raspberry (OSMC, LibreELEC): нашлась сборка acestream под arm, что позволило установить его прямо на raspberry pi. В этой статье предлагается инструкция по установке acestream, и всего необходимого для просмотра ТВ в докер-контейнерах под raspberry. На момент написания статьи, предлагаемое решение позволяет смотреть бесплатно большое количество телеканалов, впрочем без гарантий: acestream в любой момент может перестать быть бесплатным.


            kodi live tv channels list screenshot

            Читать дальше →
          • Музыкальная теория для гиков

            • Translation
            imageКто-то считает музыку уделом избранных талантов, кто-то — набором физических закономерностей. Автор материала делает попытку объяснить знакомые каждому музыкальные термины, такие как тон, интервал, амплитуда, нота, октава, партитура, аккорд и так далее с помощью расчетов и технических обоснований. Ниже перевод оригинального текста.

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

            Все остальные правила для меня выглядят совершенно, ну просто абсолютно произвольно. Почему у нас есть 12 нот, но для их обозначения применяются только 7 букв? Откуда взялись знаки при ключе? Почему ни одну статью по музыке в Википедии просто невозможно понять, не прочитав сперва все остальные?
            Читать дальше →
          • Визуализация и работа с историческими данными: интерактивные карты и linked data базы знаний для изучения истории

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

              Если вы хотите узнать, какие есть интерактивные исторические карты, где стоит посмотреть на представление событий в форме таймлайнов и как делать сложные запросы к википедии типа «все государственные деятели, работавшие в Европе в 1725 году» — читайте дальше.
              Читать дальше →
              • +24
              • 9.7k
              • 9
            • Доказательство некорректности алгоритма сортировки Android, Java и Python

              • Translation
              Тим Петерс разработал гибридный алгоритм сортировки Timsort в 2002 году. Алгоритм представляет собой искусную комбинацию идей сортировки слиянием и сортировки вставками и заточен на эффективную работу с реальными данными. Впервые Timsort был разработан для Python, но затем Джошуа Блох (создатель коллекций Java, именно он, кстати, отметил, что большинство алгоритмов двоичного поиска содержит ошибку) портировал его на Java (методы java.util.Collections.sort и java.util.Arrays.sort). Сегодня Timsort является стандартным алгоритмом сортировки в Android SDK, Oracle JDK и OpenJDK. Учитывая популярность этих платформ, можно сделать вывод, что счёт компьютеров, облачных сервисов и мобильных устройств, использующих Timsort для сортировки, идёт на миллиарды.

              Но вернёмся в 2015-й год. После того как мы успешно верифицировали Java-реализации сортировки подсчётом и поразрядной сортировки (J. Autom. Reasoning 53(2), 129-139) нашим инструментом формальной верификации под названием KeY, мы искали новый объект для изучения. Timsort казался подходящей кандидатурой, потому что он довольно сложный и широко используется. К сожалению, мы не смогли доказать его корректность. Причина этого при детальном рассмотрении оказалась проста: в реализации Timsort есть баг. Наши теоретические исследования указали нам, где искать ошибку (любопытно, что ошибка была уже в питоновской реализации). В данной статье рассказывается, как мы этого добились.

              Статья с более полным анализом, а также несколько тестовых программ доступны на нашем сайте.
              Читать дальше →
            • Анализ алгоритмов аудиоаналитики

                Разработки Синезис не ограничиваются одной лишь видеоаналитикой. Мы занимаемся и аудиоаналитикой. Вот о ней-то мы и хотели сегодня вам рассказать. Из этой статьи вы узнаете о наиболее известных аудиоаналитических системах, а также алгоритмах и их специфике. В конце материала – традиционно – список источников и полезных ссылок, в том числе аудиобиблиотек.

                Осторожно: статья может долго грузиться — много картинок.
                Автор: Михаил Антоненко.
                Читать дальше →
              • Восстанавливаем локальные и доменные пароли из hiberfil.sys

                Утилита mimikatz, позволяющая извлекать учётные данные Windows из LSA в открытом виде, существует с 2012 года, однако помимо хорошо освещённого функционала восстановления паролей из памяти работающей ОС у неё есть ещё одна довольно интересная возможность. Далее я приведу пошаговую инструкцию, как при помощи нехитрых действий извлечь учётные данные из файла hiberfil.sys.

                Подготовка


                Для осуществления задуманного нам понадобятся следующие утилиты:
                Читать дальше →
              • Расследование Яндекса: full disclosure о вирусе на Facebook

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

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

                  СМИ сообщали, что виной всему было вредоносное расширение YouTurn для браузера Chrome, которое пользователю предлагалось установить, если он переходил по ссылке, полученной от своего зараженного друга. Но мы выяснили, что в рамках этого заражения использовалось несколько расширений. YouTurn, кстати, 16 декабря уже было удалено из ChromeStore.

                  image

                  Все они были одинаково устроены, но распространялись под разными названиями и в разное время через фишинговые ресурсы, похожие на страницу Facebook и размещённые на Amazon S3. Интересно, что помимо механизмов распространения они подгружали во все вкладки браузера рекламные баннеры с сомнительным содержимым и предоставляли доступ к аккаунту зараженного пользователя внутреннему приложению с некоторым ID, которое Facebook тоже заблокировал.

                  Итак, таким ли безобидным был этот «вирус», и что в нём было нового?
                  Читать дальше →
                • Как мы открывали магазин в ТЦ МЕГА: история ошибок

                    Интерес к рознице был заметен изначально — с самых первых статей на хабре и на других сайтах мы начали получать запросы на франшизу. Запросы шли со всей страны — Питер, Новосибирск, Краснодар, Ростов-на-Дону, Пермь, Хабаровск, Сочи и так далее. Даже страной дело не ограничилось — люди из Украины, Беларуси и Казахстана тоже хотели открыть у себя магазин Madrobots. Но франшиза — это в первую очередь отлаженные процессы. Как мы могли объяснять, как открыть магазины в других городах, если сами этого толком не умели?

                    Мы решились открыть наш магазин в большом торговом центре, и теперь готовы рассказать вам о проблемах, косяках, процессах, решениях и выводах. Заходите, под катом интересно.
                    Читать дальше →