Перейти к публикации
  • ChekTime
    ChekTime

    Машинный слух. Как работает идентификация человека по голосу

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

    Характеристики голоса

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

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

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

    Предобработка звука

    Человеческий голос — это не одинокая волна, это сумма множества отдельных частот, создаваемых голосовыми связками, а также их гармоники. Из-за этого в обработке сырых данных волны тяжело найти закономерности голоса.

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

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

    i2UQdoXo3b4.jpg
     
    Выбрать длительность блока несложно: в среднем один слог человек произносит за 70–80 мс, а интонационно выделенный вдвое дольше — 100–150 мс. Подробнее об этом можно почитать в исследовании.

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

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

    SjkJtPfEm20.jpg
     

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

    bWv6F_D6IGI.jpg
     

    Теперь, если мы будем искать спектрограмму второго порядка, или, как она была названа, «кепстр» (анаграмма слова «спектр»), мы получим во много раз более приличную картинку, которая полностью, одним пиком, отображает нашу изначальную монотонную волну.

    YRkQfXx8JhI.jpg
     

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

    SRtQO1mCurs.jpg
     

    Эту новую величину назвали мел, и она отлично отражает способность человека распознавать разные частоты — чем выше частота звука, тем сложнее ее различить.

    1j6z_hAxKOs.jpg
     

    Теперь попробуем применить все это на практике.

    Идентификация с использованием MFCC

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

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

    eKM7k8i9y-k.jpg
     

    Вот мы и познакомились с мел-частотными кепстральными коэффициентами (MFCC). Количество признаков может быть произвольным, но чаще всего варьируется от 20 до 40.

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

    Тестирование метода

    Давай скачаем несколько записей видео с YouTube, из которых извлечем голос для наших экспериментов. Нам нужен чистый звук без шумов. Я выбрал канал TED Talks.

    Скачаем несколько видеозаписей любым удобным способом, например с помощью утилиты youtube-dl. Она доступна через pip или через официальный репозиторий Ubuntu или Debian. Я скачал три видеозаписи выступлений: двух женщин и одного мужчины.

    Затем преобразуем видео в аудио, создаем несколько кусков разной длины без музыки или аплодисментов.

    $ ffmpeg -ss 00:00:27.0 -i man1.webm -t 200 -vn man1.1.wav
    

    Теперь разберемся с программой на Python 3. Нам понадобятся библиотеки numpy для вычислений и librosa для обработки звука, которые можно установить с помощью pip. Для твоего удобства все сложные вычисления коэффициентов упаковали в одну функцию librosa.feature.mfcc. Загрузим звуковую дорожку и извлечем характеристики голоса.

    5v6DoeGPM4c.jpg
     

    Результат:

    same 0.08918786797751492

    same 0.04016324022920391

    diff 0.8353932676024817

    diff 0.5290006939899561

    diff 0.5996234966734799

    diff 0.9143384850090941

    FMO7DKLnjSM.jpg
     

    Протестируем новую программу.

    same 0.07287868313339689

    same 0.07599075249316399

    diff 1.1107063027198296

    diff 0.9556985491806391

    diff 0.9212706723328299

    diff 1.019240307344966

    Мы посчитали значения различных признаков.

    _0-Rdv7O5_E.jpg
     

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

    Теперь сравним мужской и женский голоса.

    same 0.07287868313339689

    same 0.1312549383658766

    diff 1.4336642787341562

    diff 1.5398833283440216

    diff 1.9443562070029585

    diff 1.6660100959317368

    LGbi4AH4krw.jpg
     

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

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

    Идентификация голоса с помощью нейронных сетей

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

    LA-qKlQxhvM.jpg
     
    9O6gKZtIGA0.jpg
     

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

    Тестирование метода

    Давай обучим модель и посмотрим на ее результаты.

    Epoch 1/20

    5177/5177 [====================] - loss: 0.4099 - acc: 0.8134 - val_loss: 0.2545 - val_acc: 0.8973

    ...

    Epoch 20/20

    5177/5177 [====================] - loss: 0.0360 - acc: 0.9944 - val_loss: 0.2077 - val_acc: 0.9807

    [0.18412712604838924, 0.9819283065512979]

    Отлично! 98% точности — хороший результат. Посмотрим статистику точности по каждому отдельному человеку.

    woman1: 98.4%

    woman2: 99.0% - цель

    man1: 98.4%

    Нейронная сеть справляется прекрасно, преодолевая большинство помех: шумы и ограничения по длине записи (нейронная сеть анализирует всего по одной секунде записи за раз). Такой способ идентификации человека наиболее перспективен и эффективен.

    Выводы

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




  • Схема быстрого набора платежеспособных подписчиков на YouTube канал без вложений

    Доброго времени суток! Представляю схему, которая поможет набрать живых и заинтересованных подписчиков на ваш YouTube канал без вложений. Для раскрутки подойдет любой YouTube канал, как “старый” с подписчиками, так и полностью “нулевой”. Достаточно одного видео на новом канале, элементарной шапки, логотипа и можно приступать к кампании по сбору подписчиков. Раскручивая свой канал методами описанными в этом мануале, вы можете быть уверены, что ваш канал не попадет под санкции и получит тольк

    maxaver01
    maxaver01
    Схемы заработка 1

    Карты под обнал

    Здравствуйте, по приглашению администрации форума создаю тему на площадке. Ищу активных, ответственных людей во всех регионах РФ и СНГ для обнала карт. Балансы 1000+$, карты не чекаю точных балансов не знаю, но меньше 1000 не было ни разу. В данный момент выслал карты для проверки по просьбе администрации, надеюсь потом получу статус доверенного. Со временем внесу залог, если будет работа именно на этом борде. Буду работать с людьми по рекомендации от доверенных лиц форума 50

    DropOBot
    DropOBot
    Продажа карт 97

    Бесценный материал: Как создать магазин в телеграмм через бота 2020

    Перед вами будет полное руководство как создать свой магазин в телеграм.  Так что буквально каждый сможет повторить это. Все платежи будут проходить через бота в автоматическом режиме. В материале есть все пошаговые настройки от и до. Любой из Вас сможет подключить систему оплаты прямо в ТГ. Присутствует инструкция по настройке своей реферальной программе. Разберём все настройки и что к чему. Основная сложность получить токен, потом останется везде зарегистрироваться и всё настрои

    alecxandrkote
    alecxandrkote
    Схемы заработка 1

    Делаем заливы по СНГ

    Переводы на карты банков СНГ   Ищем ответственных людей, с головой на плечах, которые хотят и могут серьезно работать.   Льем грязь на карты физиков Сбера, Альфы, ВТБ24, Райфайзена, ПриватБанка, БСБ, БелВЭБ и многих других. Суммы заливов от 60к руб до 220к руб. Минималка - 20к вносите в гарант, 60к получаете на карту. Транзакции инстант (проходят практически моментально) Что бы работать с нами у Вас должны быть карта(ы) и желание работать.   Хотите п

    Karlos
    Karlos
    Заливы на банковские карты 360

    Посылка с DARKNET | Техника

    Добро пожаловать! В нашем магазине для вас представлены: Любая техника за 40% от цены Amazon.com и Ebay.com Apple    Samsung    Sony    NVidia    Huawei    Xiaomi и т. п. IPhone | MacBook | IPad IPhone 11  Pro  Max  64гб - 550$ | 256гб - 660$ | 512гб - 750$ IPhone 11  Pro           64гб - 440$ | 256гб - 500$ | 512гб - 600$ IPhone XS max           64гб - 400$ | 256гб - 450$ | 512гб - 500$ IPhone XS                   64гб - 380$ | 256гб - 420$ | 512гб - 450

    NFS
    NFS
    Прочие товары и услуги 59

    Contactless Infusion X6

    Старт продаж - Contactless Infusion X6 Описание: Infusion X6 может считывать банковские карты, находясь на расстоянии 15 сантиметров, что на 7 сантиметров больше, чем у предыдущей версии (x5). Также устройство стало более компактным, что позволяет с легкостью прятать его под одеждой. В аппарат была добавлена система блокировки, которая позволяет зашифровать данные, содержащиеся на устройстве, если преступник будет арестован сотрудниками правоохранительных органов. Как этиv пользов

    ProSkimmerMafia
    ProSkimmerMafia
    Скиммеры 29
  • Киберугроза №1, или Как бороться с социальной инженерией.

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

    ChekTime
    ChekTime
    Социальная инжинерия 2

    Заработок на покере и правда возможен

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

    Integra
    Integra
    Легальный бизнес 4

    Машинный слух. Как работает идентификация человека по голосу

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

    ChekTime
    ChekTime
    Биллинги, веб дизайн 2

    Чем занимается «белый хакер», как им стать и сколько можно заработать

    Рассказ Link — хакера из Санкт-Петербурга, который нашёл уязвимость в PayPal и получил от компании около $70 тысяч в знак благодарности.   Меня всегда интересовала информатика, и мне всегда хотелось что-то «сломать», но при этом так, чтобы никто не пострадал, а защита и качество сервисов улучшились.  Я искал разные приложения и сайты и спрашивал у создателей, можно ли проверить их разработки на прочность. Чаще всего мне отказывали. Скорее всего, боялись, потому что так

    Rabb1tRun
    Rabb1tRun
    Библиотека кардера 2

    1000 рублей в день на пассиве 2020

    Полностью рабочий кейс как зарабатывать по 1000 рублей в день практически ничего не делая. Весь заработок идёт в пассивном режиме. Вложения на старте не нужны. Можно масштабировать схему и зарабатывать больше. Для увеличения заработка Вам понадобятся прокси. Скачать: https://yadi.sk/d/64OSlR15VBgYqA  

    alecxandrkote
    alecxandrkote
    Слив схем заработка

    Продажа дебетовых карт под обнал – форум Hackatm

    Карты с балансом под обнал: где взять?   Дебетовые карты под обнал, что это такое и с чем это едят? Обнал или по-другому обналичивание денежных средств – это весьма известная схема, когда применяются дебетовые или другие карты (может быть, и счета в банках) физических лиц. На карту переводится определенная сумма, а затем происходит обналичивание в банкоматах. В основном это делается, чтобы уклониться от уплаты налогов. Если говорить о схемах, то их существует внушительное количеств

    Integra
    Integra
    Библиотека кардера 1


×
×
  • Создать...