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

Генерация голоса

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

 

Текст в речь

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

С развитием программ-синтезаторов набор заранее записанных на микрофон фонем (букв) стал набором слогов, а затем и целых слов.

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

 

Звуки в речь

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

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

 

Речь в речь

Относительно новый подход полностью основан на нейронных сетях. Рекурсивная архитектура WaveNet, построенная исследователями из DeepMind, позволяет преобразовывать звук или текст в другой звук напрямую, без привлечения заранее записанных строительных блоков (научная статья).

Ключ к этой технологии — правильное использование рекурсивных нейронов Long Short-Term Memory, которые сохраняют свое состояние не только на уровне каждой отдельной клетки нейронной сети, но и на уровне всего слоя.

Схема работы WaveNet
Схема работы WaveNet

В целом эта архитектура работает с любым видом звуковой волны, вне зависимости от того, музыка это или голос человека.

INFO

На основе WaveNet есть несколько проектов.

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

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

 

Создание поддельного голоса

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

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Check Also

Фреймворки для постэксплуатации. Выбираем между Metasploit, Cobalt Strike, Merlin, Apfell, Faction C2, Koadic и другими

В этой статье мы поговорим о фреймворках, которые помогут эксплуатировать уязвимости, закр…

3 комментария

  1. Аватар

    coolmarat

    04.10.2019 at 13:11

    Подскажите, как можно адаптировать программу под русский язык?

    • Аватар

      Михаил Киреев

      14.10.2019 at 05:33

      Необходимо найти датасет русской речи, на котором будет заново натренирован кодировщик голоса (embedding), затем, на основе этого кодирования нужно будет заново обучить Tacotron 2, преобразовывающий характеристики голоса и текст в спектрограмму, и, скорее всего, потребуется дообучить WaveRNN для того, чтобы нейронная сеть могла произносить некоторые русские звуки (и чтобы у нее не было американского акцента).

      Для всего этого в программе есть все необходимые модули, которые помогут в этом процессе. Вся информация о том, как правильно запустить обучение моделей есть на странице проекта в GitHub. Однако, такая адаптация будет очень затратной по вычислениям, и мне кажется, по времени тоже. Хотя попробовать все, наверное, же стоит.

  2. Аватар

    robotobor

    16.10.2019 at 02:42

    М.б. ребята из Яндекса или Сбера форкнут репозиторий и натренируют сеть на своих рус-датасетах и своих мощностях…

Оставить мнение