Перейти к публикации
  • 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%

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

    Выводы

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




  • Заходи сюда! кошельки, связки, карты! оптом и в розницу!

    У НАС САМЫЕ ПРИЯТНЫЕ ЦЕНЫ! НА ОПТОВЫЕ ЗАКАЗЫ ЦЕНА ВСЕГДА ОБСУЖДАЕМА! WebMoney Формальный аттестат + проверенные документы - 500 руб. Начальный аттестат на Ваши/Наши данные - 2099 т.р. Персональный аттестат - 19999 т.р. Связка вебмани начальный/формальный + Киви + Яндекс ( все на одни данные ) - 3999 т.р.   QIWI Частично идентифицированный кошелек + сканы - 300 рублей. Идентифицированный кошелек на Ваши/Наши данные - 999 рублей. (Идентификация от 10 ш

    InkognitoXXX
    InkognitoXXX
    Продажа карт 22

    Кодграббер Pandora v 2.4 - Полная версия

    Кодграббер Pandora v 2.4 - Полная версия Представляем вашему вниманию прибор Pandora 2.4 Прибор появился на рынке в средине 2017 года За счет не высокой цены и достаточно большого списка, успешно себя зарекомендовал. Упаковка: упаковочный мешочек с коробочкой (внутри сам кодкраббер + инструкция формате а4) Доставка: по Москве кладом, отправка в регионы транспортной компанией; Вы всегда можите написать нам , уточнить всё как пользоваться. Список возможностей и функций: ХА

    MoscowKent
    MoscowKent
    Прочие товары и услуги 18

    Схема по заработку на UBER от 150.000

    И это не галимые промокоды, которые уверен вам где-то впаривали. Длительность: 1 день + саппорт   Я научу как зарабатывать на брут аккаунтах Uber. Работа заключается в предоставлении заказов/поездок нужному водителю без пассажира.  Ваша прибыль это процент от заказа. Как правило 30-50%. Найдя 10 водил, вы сможете брать с каждого минимально 1000 рублей в день. Математику думаю все знают.  Взяв самый хуевый вариант - 5 водителей принесут в день вам 5 тысяч, и 150

    GentleGenry
    GentleGenry
    Схемы заработка 34

    Кардридеры и энкодеры MSR

    К продажам доступны следующие товары: Кардридер «MHT-400» =2000 ₽ ◉ Питание от USB (напрямую от 5V) ◉ Чтение трека #2 ◉ ПО NotePad Энкодер «MSR605X» =9500 ₽ ◉ Питание от USB (напрямую от 5V) ◉ Чтение и запись трека #1, #2, #3 ◉ Количество проводок 500.000 раз ◉ Стандарт Hi-Co и Lo-Co ◉ Карта с магнитной полосой - 10 шт. ◉ Карта для чистки магнитных головок - 1 шт. ◉ ПО для Windows и Mac OS в комплекте  Энкодер «MSR606» =10000 ₽ ◉ Питание от USB (напрямую от 5V) ◉ Чтен

    ProSkimmerMafia
    ProSkimmerMafia
    Скиммеры 28

    Делаем переводы (заливы) WU (western union)

    Залив Western Union Представляю свой сервис по заливам WU, Contact, MoneyGramm Условия честные, можно сказать братские - фифти\фифти (50\50) Предпочитаю работать с людьми с рекомендациями. С новичками форума сделки строго с ЗАЛОГОМ. Залог либо мне на прямую, либо гаранту. Минимальная сумма залива 800$ Перевод делается в течение часа после заключения сделки. Вы получаете код перевода и можете снять его в любом банке. Желательно каждый раз менять банк. По

    Ismailov
    Ismailov
    Заливы на банковские карты 316

    Продажа фальшивых UA, USA, RUS купюр

    Доброго времени суток. Предлагаю Вашему вниманию высококачественные купюры гривны (номинал: 100 грн. и 200 грн.) доллар США (номинал: 100$) рубли (1000, 5000) Цена: 30% от номинала. Мин. заказ  - 50 шт(любой валюты и любого номинала) Доставка: УКР. БЕЛ. РОССИЯ Первые сделки с новыми клиентами готовы проводить через гарант Купюры выполнены в высоком качестве, присутствуют водяные знаки, вклеена магнитная полоса, также купюра имеет рельефную поверхность как в оригинале. Ви

    Баранников
    Баранников
    Прочие товары и услуги 87
  • Заработок на объявлениях

    Тема, которая идеально подойдет для небольшого города и практически не будет требовать вложений, кроме времени Краткая предыстория Наверняка у вашего подъезда есть стенд с объявлениями? Наверняка на нем нахерачены друг на друга непонятные объявления. Или того хуже, рекламная площадка для вашего подъезда вообще не предусмотрена, и реклама засирает рандомное пространство возле него. Посмотрите на эти объявления - причина, по которым их клеят в том, что это работает. В наше время ещё оста

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

    Выборочное шифрование трафика в Linux.

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

    Integra
    Integra
    Социальная инжинерия 1

    Защита WHM / cPanel с помощью плагинов CSF и CXS

    В сегодняшней статье я расскажу вам про два полезных плагина для панели управления хостингом WHM/cPanel, установка и использование которых не только защитит cPanel, но и улучшит безопасность самого хостингового сервера. Я также приведу пару примеров, как с помощью этих плагинов можно отбиться от небольшой DDoS-атаки. Защита cPanel Сама по себе панель управления WHM/cPanel — достаточно надежный и довольно гибкий инструмент для администрирования хостингового сервера, к тому же набор стан

    Rabb1tRun
    Rabb1tRun
    Ботнеты, кодинг, загрузки 3

    Секс тур

    Тему реализовывали в 2017 году. Живая до сих пор, но много нюансов. Работать лучше в паре с девочкой.   С времен финансово кризиса, почему то именно Украина стала меккой, для всякого рода туристов, которым не так интересны достопримечательности. Первое, что встречает бизнесменов и туристов, приехавших в Украину, по пути из аэропорта Борисполь в Киев, — огромные билборды с рекламой стрип-клубов. Подсказка для тех, кто еще не знает или мог позабыть о том, что в нашей стране, как открыто

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

    В отделениях «Почты России» начали собирать биометрические данные россиян

    Единая биометрическая система (ЕБС) испытывает проблемы с наполняемостью, но эксперты расходятся в оценке того, помогут ли почтовые отделения исправить дело     Отделения «Почты России» стали еще одной площадкой после банков, где начал происходить сбор биометрических данных россиян (изображения лица и записи голоса). Об этом РБК рассказал руководитель дирекции

    rus_d0qstr
    rus_d0qstr
    Юридический раздел 3

    Власти Москвы начнут осуществлять видеонаблюдение через дроны

    Столичные власти объявили тендер по видеомониторингу Москвы с помощью беспилотных летательных аппаратов на сумму 60 миллионов рублей     Департамент информационных технологий (ДИТ) Москвы объявил тендер по видеомониторингу города с помощью беспилотников. В выложенном на сайте госзакупок техническом задании сообщается, что исполнитель должен обеспечить виде

    Integra
    Integra
    Новости 2
×
×
  • Создать...