Search
Write a publication
Pull to refresh
-13
0

Инженер

Send message

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Reading time9 min
Views69K

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

Мы попытались учесть все эти пункты и представить комьюнити свое открытое некоммерческое решение, удовлетворяющее этим критериям. По причине его публичности мы не заостряем внимание на архитектуре и не фокусируемся на каких-то cherry picked примерах — вы можете оценить все сами, пройдя по ссылке.

Open Source синтез речи SOVA

Reading time9 min
Views24K

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



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

Как мы проверили качество распознавания речи у Яндекса, Гугла, Тинькофф, Amazon и др

Reading time8 min
Views13K

Всем привет! Я руковожу «Наносемантикой», сегодня хотел бы поделиться с вами результатами нашего сравнения сервисов распознавания речи (ASR). Мы собрали и разметили тестовый датасет на русском языке, прогнали через сервисы ASR, проанализировали результаты работы разных вендоров, собрали основные выводы.

Получилось интересно, подробности в статье.

Читать далее

Разбираемся, как подавить шум в речи с помощью глубокого обучения и OpenVINO

Reading time10 min
Views18K

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

Читать далее

Классификация звуков с помощью TensorFlow

Reading time7 min
Views25K


Игорь Пантелеев, Software Developer, DataArt

Для распознавания человеческой речи придумано множество сервисов — достаточно вспомнить Pocketsphinx или Google Speech API. Они способны довольно качественно преобразовать в печатный текст фразы, записанные в виде звукового файла. Но ни одно из этих приложений не может сортировать разные звуки, захваченные микрофоном. Что именно было записано: человеческая речь, крики животных или музыка? Мы столкнулись с необходимостью ответить на этот вопрос. И решили создать пробные проекты для классификации звуков с помощью алгоритмов машинного обучения. В статье описано, какие инструменты мы выбрали, с какими проблемами столкнулись, как обучали модель для TensorFlow, и как запустить наше решение с открытым исходным кодом. Также мы можем загружать результаты распознавания на IoT-платформу DeviceHive, чтобы использовать их в облачных сервисах для сторонних приложений.

Выбор инструментов и модели для классификации


Сначала нам нужно было выбрать ПО для работы с нейронными сетями. Первым решением, которое показалось нам подходящим, была библиотека Python Audio Analysis.

Основная проблема машинного обучения — хороший набор данных. Для распознавания речи и классификации музыки таких наборов очень много. С классификацией случайных звуков дела обстоят не так хорошо, но мы, пусть и не сразу, нашли набор данных с «городскими» звуками.
Читать дальше →

Рекуррентные нейронные сети — пример генерации музыки

Reading time4 min
Views8.5K


Сегодня попробуем создать простую музыку при помощи сетей LSTM.


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


  • Python3
  • BASH
  • jupyter-notebook.

Не буду одобрять комментарии, в которых есть суть только:


  • причинить досаду автору, примерно про опечатки(я не являюсь носителем русского языка).
  • несущественные замечания и комментарии.
  • все что не касается сути стати.
Читать дальше →

SFTP под root-ом в WinSCP для удаленной отладки(PyCharm)

Reading time3 min
Views5.7K

Этот пост предназначен в первую очередь для новичков в разработке, впервые столкнувшихся с необходимостью запуска скриптов из-под root-а, взаимодействующих с ресурсами/устройствами, доступ до которых возможен только с сервера приложений, находящимся за NAT-ом. Частая ситуация в телекоме.

Читать далее

Как самостоятельно выучиться на дата-саентиста — адаптированная подборка

Level of difficultyEasy
Reading time6 min
Views32K

"Cтоит ли тратить деньги на тот или иной дорогой курс с codename «Стань DS за два месяца» или все же выучиться на дата-саентиста самостоятельно и бесплатно, и в таком случае, с чего начать?" такие вопросы я получаю от аудитории своего блога. Меня зовут Айра, я делаю проекты в DS&ML, продюсирую курсы по созданию ML-проектов и веду блог по теме.

Недавно собрала ответ на этот вопрос достаточно развернуто, чтобы поделиться им с широкой аудиторией. Не все платные курсы плохие (хотя большинство — да — из-за механизмов отбора, продаж и слабой программы), но о них напишу отдельно. Мне кажется, нужно учитывать больше персонализированных параметров для того, чтобы грамотно выбирать хороший курс за деньги.

Читать далее

Гайдлайны и бритвы компании Bungie по кодингу на C++

Reading time14 min
Views6.1K

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

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

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

В этой статье мы делаем упор на разработке игр и языке программирования C++, но даже если вы не знаете C++ и не работаете инженером, она всё равно будет для вас интересной.
Читать дальше →

Git. Коротко о главном

Reading time15 min
Views72K

Привет, Хабр!

Сегодня я хочу кратко изложить, что такое Git и с чем его едят. Данный материал предназначен для тех, кто плохо знаком с системами контроля версий и только начал делать первые шаги в этом направлении.

Читать далее

Простой цифровой радиоприемник на базе контроллера STM32G4 своими руками

Reading time44 min
Views42K

Обучающие проекты по созданию простого цифрового радиоприемника на базе микроконтроллера STM32G431KB.

Читать далее

Открытый проект файловой системы для внутренней памяти STM32H

Reading time8 min
Views9K

Зачем ставить внешнюю IC памяти или SD карту если в микроконтроллере осталось много свободной Flash памяти! 

Микроконтроллеры семейства STM32H снабжены двумя независимыми банками Flash памяти и это очень удобно. В одном банке можно расположить программный код, а в другом временные перезаписываемые данные.  

Как сделать из внутренней Flash подобие EEPROM сравнительно неплохо написано в этом апноуте от ST. Но с некоторого уровня комплексности встроенного ПО хранить данные в именованных файлах удобнее чем в жёстких структурах. Файлы упрощают реюзинг, облегчают поддержку преемственности версий, апгрейды и даунгрейды. Файлы освобождают от хлопот с планированием размещения во флэш и разруливанием конфликтов размещения, особенно если приложение модульное и модули разрабатываются отдельно. 

Читать далее

Разбор алгоритмов генерации псевдослучайных чисел

Reading time10 min
Views46K

Я работаю программистом в игровой студии IT Territory, а с недавних пор перешел на направление экспериментальных проектов, где мы проверяем на прототипах различные геймплейные гипотезы. И работая над одним из прототипов мы столкнулись с задачей генерации случайных чисел. Я хотел бы поделиться с вами полученным опытом: расскажу о псевдогенераторах случайных чисел, об альтернативе в виде хеш-функции, покажу, как её можно оптимизировать, и опишу комбинированные подходы, которые мы применяли в проекте.

Читать далее

Расширения Chrome для программистов и сочувствующих

Reading time6 min
Views34K

На Хабре уже есть посты в духе «10 браузерных расширений, которые нужны КАЖДОМУ УВАЖАЮЩЕМУ СЕБЯ РАЗРАБОТЧИКУ». Но в них меня смущает то, что там вперемешку совсем разные вещи для разных людей. От React Developer Tools до съёмки полностраничных скриншотов — и всё это просто списком через запятую.

Поэтому захотелось сделать более структурированный пост с разделением на тематические категории. По которому можно и получить представление «что вообще бывает», и найти что-то конкретно для себя.

Разумеется, в комментариях приветствуются дополнения, мне знакомо далеко не всё.

Читать далее

Ontol: самые полезные материалы про визы О-1 и грин-карты

Reading time4 min
Views21K
image

Моя позиция такая — лучше иметь больше выбора, чем иметь меньше выбора. Я хочу максимизировать вероятность своего выживания и рассматриваю решения, которые повышают эту вероятность. Мобильность — это хорошо. Семья Айзека Азимова успела «проскочить в закрывающуюся калитку» в последний момент и поэтому у нас есть произведения великого фантаста.

Предлагаю вашему вниманию подборку материалов (онтол), которые я насобирал, чтобы купировать некоторые риски, которые присутствуют в жизни активных, интеллектуальных и предприимчивых людей. (Экономлю вам 5-10 часов поиска и фильтрации.)

Если рядом с вашим домом участились молнии, разумно запастись молниеотводом.

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

Политические риски


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

Из 100% уголовных дел против бизнеса :

  • 43% — личный интерес сотрудников правоохранительных органов или органов власти
  • 32% — ваш конкурент нашел силовиков и органы власти и «заказал» уголовное дело
  • 7% — действительно нарушение закона

(из доклада 2017 года Бориса Титова, уполномоченного при Президенте России по защите прав предпринимателей, пруф)

Недавний (пару недель назад) опрос 2423 ИТишников (50% Senior, 30% Middle, 10% Junior):

  • 23% в ближайшие 5 лет точно уеду (563)
  • 18% уже уехал (443)
  • 37% колеблюсь (900)
  • 21% не собираюсь уезжать в принципе (517)


Под катом подборка личных историй получения визы О-1 и грин-карты, а также полезные каналы. (За дополнения буду признателен, присылайте самые полезные материалы про США и другие страны.)
Читать дальше →

Порараз бирацца: как мы учились писать автотесты на Python и что у нас получилось

Reading time9 min
Views12K

Привет, Хабр! Меня зовут Артем Иванюта, в «Магните» я занимаюсь тестированием информационных систем закупок. В статье я расскажу, как наша команда запускала автотесты web-интерфейсов силами одного сотрудника, как мы вписали их в CI/CD-процесс и с чем столкнулись, решая задачу. Кстати, вы наверняка уже догадались, но все-таки скажу — да, я и есть тот самый «один сотрудник». Так что никакого кликбейта.

Читать далее

Сжатие данных LZW

Reading time6 min
Views26K

Если бы вы взглянули почти на любой файл данных в компьютере, просматривая символ за символом, то наверняка обратили бы внимание на множество повторяющихся элементов. LZW — это метод сжатия данных, который воспользовался этим повторением. Оригинальная версия метода была создана Лемпелем и Зивом в 1978 году (LZ78) и доработана Уэлчем в 1984 году, отсюда и аббревиатура LZW (Lempel, Ziv and Welch). Как и в любом адаптивном/динамическом методе сжатия, идея заключается в том, чтобы (1) начать с исходной модели, (2) читать данные по частям, (3) обновлять модель и кодировать данные по мере продвижения. LZW — алгоритм сжатия на основе "словаря".

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

Читать далее

Lambda-выражения в Java

Reading time6 min
Views106K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Java Lambda Expressions» автора www.programiz.com.

Введение


В этой статье, с помощью примеров, мы изучим lambda-выражения в Java, их использование с функциональными интерфейсами, параметризированными функциональными интерфейсами и Stream API.

Лямбда выражения были добавлены в Java 8. Их основная цель – повысить читабельность и уменьшить количество кода.

Но, прежде чем перейти к лямбдам, нам необходимо понимать функциональные интерфейсы.
Читать дальше →

JavaScript: разрабатываем приложение для записи звука

Reading time12 min
Views14K


Привет, друзья!


В этом небольшом "туториале" я хочу показать вам, как разработать приложение для записи и воспроизведения аудио-файлов.


Функционал нашего приложения будет следующим:


  • запись аудио
  • отображение записи с возможностью ее предварительного прослушивания и последующего сохранения или удаления
  • хранение аудио-файлов на сервере
  • извлечение аудио-файлов, хранящихся на сервере, и их отображение в браузере

Основная технология, которую мы будем использовать, это MediaDevices. Данная технология входит в состав глобального объекта Navigator. Основным методом, предоставляемым указанным интерфейсом является getUserMedia(). Запись данных (в простых случаях вроде нашего) выполняется с помощью интерфейса MediaRecorder.


Интерфейс MediaDevices на сегодняшний день поддерживается всеми современными браузерами.


Для небольшой стилизации нашего приложения мы будем использовать Sass.


Выглядеть приложение примерно так:





Исходный код приложения.


Основным источником вдохновения для меня послужила эта замечательная статья.


Обратите внимание: данная статья рассчитана, преимущественно, на начинающих разработчиков, хотя, смею надеяться, что и опытные найдут в ней что-нибудь интересное.


Вы готовы? Тогда вперед!

Читать дальше →

Information

Rating
5,993-rd
Location
Санкт-Петербург и область, Россия
Registered
Activity