Научно-технический вебинар “Решена ли проблема обнаружения речевых спуфинг атак?”

7 сентября 2021, 14:00 MCK

О вебинаре

  • Спикер

    Павел Коршунов, Исследовательский институт Idiap, Мартиньи, Швейцария

  • Тема

    Научно-технический вебинар “Решена ли проблема обнаружения речевых спуфинг атак?”

  • Подробнее про вебинар

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

    + материалы(с примечанием):

    P. Korshunov and S. Marcel, «Cross-database evaluation of audio-based spoofing detection systems», Interspeech 2016.

    https://infoscience.epfl.ch/record/219837?ln=en

    P. Korshunov et al. (16 co-authors), «Overview of BTAS 2016 Speaker Anti-spoofing Competition», IEEE International Conference on Biometrics Theory, Applications and Systems (BTAS), 2016.

    http://publications.idiap.ch/index.php/publications/show/3348

    P. Korshunov and S. Marcel, «Joint Operation of Voice Biometrics and Presentation Attack Detection», IEEE International Conference on Biometrics Theory, Applications and Systems (BTAS), 2016.

    https://infoscience.epfl.ch/record/223043?ln=en

    P. Korshunov and S. Marcel, «Impact of score fusion on voice biometrics and presentation attack detection in cross-database evaluations», IEEE Journal of Selected Topics in Signal Processing, Volume: 11, Issue: 4, June 2017.

    https://infoscience.epfl.ch/record/231127?ln=en

    A. Goncalves, P. Korshunov, R. Violato, F. Simoes, S. Marcel, «On the Generalization of Fused Systems in Voice Presentation Attack Detection», BIOSIG 2017.

    http://publications.idiap.ch/index.php/publications/show/3682

    H. Muckenhirn, P. Korshunov, M. Magimai.-Doss, S. Marcel, «Long Term Spectral Statistics for Voice Presentation Attack Detection», IEEE/ACM Transactions on Audio, Speech, and Language Processing, Volume: 25, Issue: 11, Nov. 2017.

    http://publications.idiap.ch/index.php/publications/show/3541

    P. Korshunov, A. Goncalves, R. Violato, F. Simoes, S. Marcel, «On the Use of Convolutional Neural Networks for Speech Presentation Attack Detection», ISBA 2018.

    http://publications.idiap.ch/index.php/publications/show/3779

    P. Korshunov and S. Marcel, «A Cross-database Study of Voice Presentation Attack Detection», Chapter in Handbook of Biometric Anti-Spoofing: Presentation Attack Detection, 2nd Edition, 2018.

    http://publications.idiap.ch/index.php/publications/show/3987

    Примечание! Гиперссылки сайта http://publications.idiap.ch/ могут работать некорректно. Попробуйте скопировать адрес сайта и вставить её в поисковую строку, не используя гиперссылку.

    Презентация: https://drive.google.com/file/d/1U7rdeJpQpYvuuL5Q5Xq_Bp1xrsoHfDog/view?usp=sharing

    Запись: https://youtu.be/Ga99jK8pRPA

    (00:00:00) (Начало записи)

    Модератор: Сегодня я представляю Павла Коршунова из Idiap, это Швейцария, с рассказом про voice anti-spoofing. Как это сказать по-русски?

    Павел Коршунов: Очень сложно.

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

    Павел Коршунов: Я погуглил. Речевые спуфинг атак.

    Модератор: Слово spoofing не удается внятно перевести на русский. Будем использовать его. Нам предлагают перевод «взлом голосовой идентификации». Перевод по смыслу правильный.

    Павел Коршунов: Да, наверно. Spoofing – это не совсем взлом. Это обман, подделка.

    Модератор: Я виртуально передаю микрофон Павлу.

    Павел Коршунов: Добрый день. Я заранее извиняюсь, у меня будут проблемы с русским языком. Не то, что не умею говорить по-русски, но я вообще не знаю терминологии русского языка. Хорошо хоть подсказали «подделка голоса». Но это малая часть того, что мне надо будет рассказывать. Я заранее извиняюсь за англицизмы, их будет очень много.

    Модератор Павел, не пугайтесь, если, что просто переходите на английский. Почти все вас поймут.

    Павел Коршунов: Надеюсь. У вас интересная программа семинаров. Еще одно отступление. Я последние несколько лет занимался несколькими вещами. Заинтересовались voice anti-spoofing (подделка голоса). Но я эту тему закончил несколько лет назад. У меня больше нет новых публикаций. Я сейчас занимаюсь вещами – дипфейками, defection of deepfake (определение дефектов) и верификация возраста по видео и аудио (multimode verification or age verification) для того, чтобы не разрешать детям смотреть плохую рекламу, порносайты или даже банальные игры, которые возрастные. Сейчас это становится модной темой, как дипфейки.

    Voice anti-spoofing как-то сошло на нет, у нас закончился проект. Я расскажу в основном, что я делал. Тут был анонс. В анонсе я дал все статьи, которые публиковали на эту тему. Последняя статья датируется 2018 годом, глава книжки и статья.

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

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

    Я еще кратенько скажу, что меня зовут Павел Коршунов. Где и что я делаю, и как я сюда попал?

    (00:05:01)

    Я закончил СПбГУ (Петербургский государственный университет) в Петербурге, факультет матмех. Там у нас кафедра информатики и кафедра системного программирования. У нас был поток computer science. Я по-русски здесь ничего не написал, потому что у меня не стояли шрифты, по-русски ничего не отображалось.

    Потом меня позвали, так нечаянно получилось, и отправили в Сингапур на стажировку в National University of Singapore. Это их главный университет. Я там постажировался. Потом они меня пригласили в аспирантуру. Я еще съездил на стажировку в одну лабораторию в Пало-Альто, в PhD отдел. Долго мучился, в итоге домучился. После того, как я домучился, наконец-то закончил (раздолбаям всегда было сложно заканчивать такие вещи), я в итоге смог найти работу postdoc в EPFL. EPFL – это университет в Лозанне (Швейцария), он второй федеральный университет после Цюриховского. Там я проработал postdoc четыре года.

    Так как я не хотел никуда уезжать, и меня не пленили ни деньги, ни профессорская стезя, я перешел работать недалеко в соседний кантон в институт исследовательский институт. Это как наши исследовательские институты в России. Студенты из университета EPFL, а работаем здесь. Я research associate, ученый, научный сотрудник, наверно, младший, хоть я уже и не младший.

    У меня всю жизнь так получается, что я всё время меняю разные темы в multimedia. Я стал больше заниматься speaker anti-spoofing, больше machine learning, определением манипуляций видео за счет синхронизации аудио и видео, что если происходит десинхронизация, то видео было манипулировано, которое перетекло в дипфейки. Сейчас параллельный проект, чтобы делать multi-model age verification. Так быстренько про себя.

    Теперь тема определения атак на систему верификации. Система верификации по пальцу (fingerprint), лицом (face recognition), глаза, вены – все эти системы верификации. Когда ты говоришь человеку, что «Я – это я, я Павел», и система говори: «Да, ты Павел», потому что я был заранее внесен в систему, мои данные донесены, я разместился в системе, и меня сверяют. Верификация – это сверка вводных данных, которые использует эта система, с теми данными, которые были зарегистрированы на предмет совпадения или не совпадения, я Павел я не Павел.

    Эти системы, верификации которые стали очень популярны, они были давно популярны, но последнее время они стали супер популярны – даже в московском метро можно торговать лицом. Они все vulnerable, они все легко подвержены разным атакам. Самые известные атаки – это spoofing attacks.

    Spoofing attacks – подделка, когда кто-то пытается притвориться быть кем-то другим. Я пытаюсь притвориться дядей Петей. Я каким-то образом пытаюсь изобразить из себя дядю Петю либо камерой, либо сенсором для пальцев. Тут показано, я взял силикон или клей, нашел его печаток пальца, смог снять отпечаток пальца наклеить на силикон, смог надеть на свой палец и притвориться дядей Петей.

    (00:10:03)

    Либо я скачал в Facebook фотографию дяди Пети, показываю в экран и говорю: «Я дядя Петя». Есть разные способы, я про них буду говорить. Сегодня мы будем рассказывать про голос. Есть системы верификации. В данном случае это автоматическая система верификации по голосу enrollment speech – это регистрационные данные, когда мы регистрируем человека в системе, test speech – во время тестирования, когда установлена система, система проверяет, тот человек, который говорит, что это он или нет.

    Есть несколько точек, где можно атаковать эту систему. Можно атаковать в микрофоне, можно атаковать после микрофона, можно взламывать, как кто-то предлагал. Взламывать – это когда ты имеешь доступ к hardware – к железу и софту этой системы, и можешь менять регистрационные данные, можешь менять тренировочную модель, poison data, всё, что угодно. Это всё не касается нас в этой ситуации. Может быть много точек. Мы касаемся первых двух А1 и А2, когда до микрофона и сразу после микрофона.

    Это два классических сценария, когда системе надо говорить что-то в микрофон, телефония. Человек звонит в банк, и его по голосу определяют, он этот человек или нет. Это достаточно популярная система верификации в банке. Банковские системы обычно боятся, что их могут обмануть.

    Вторая система – это типа Skype или Zoom, когда кто-то через устройство напрямую, не через микрофон, а уже проигрывая что-то на компьютере, напрямую в Zoom, немножко взломал систему. Не совсем взломал, просто напрямую дает сигнал без проигрывания через микрофон, идет напрямую. Как мне пишут, подменили на лету.

    А1 называется physical access, так называемые presentation attacks. Есть терминология, я говорю anti-spoofing, но так неправильно говорить. Anti-spoofing – это вульгарно. На самом деле называется presentation attacks, потому что это стандартизация. Сейчас эта область стандартизируется, стандарты пишутся сухим языком, в основном немцами, и там всё очень жестоко. На всех этих аббревиатурах можно сломать мозг. Я не могу помнить, что к чему, аббревиатуры называются из четырех-пяти букв, но я буду стараться, иногда буду срываться, говорить простыми вещами. Presentation attacks – это всякие атаки. Но в основном ты презентуешь это к устройству.

    А1 – это когда ты презентуешь к устройству, либо к видеокамере, либо в данном случае к микрофону. Второе – logical access attacks, виртуальный микрофон. Интересная ситуация с голосом, что logical access attacks легче сделать для баз данных, потому что не надо перезаписывать аудио через микрофонные устройства, и они из-за этого более популярны. Баз данных с этими атаками больше, чем с теми, которые называются physical access или replay attacks, которые перепроигрывают настоящую речь через микрофон. Ты записываешь речь с микрофона через колонки к микрофону. Там есть перезапись, поэтому добавляются искажения и шумы. Голос звучит по-другому.

    У меня есть примеры. Я тут показываю, какие есть типы. Replay – когда мы записали и проигрываем опять в системе. Есть синтезация с речью через текст, text-to-speech алгоритмы. Здесь нужно понять важную ситуацию.

    (00:14:59)

    Есть очень много способов генерировать голос из текста. WaveNet, Google Assistant, Siri, они генерируют голос из текста. Но одно дело – просто какой-то голос, a speech, а другое дело – генерировать голос, принадлежащий конкретному человеку, это гораздо сложнее. Внести в этот голос индивидуальность не так просто. Эти системы плохие. Когда человек слышит этот голос, то очень легко отличить человеческим ухом. Но машина в этой ситуации глупее. Даже нам слышится механически, а алгоритм не определяет разницу между настоящим и механическим, потому что там идет очень много фильтрации. Та презентация от этого голоса, которая в итоге попадает в модель, очень похожа на ту репрезентацию, которая используется для генерации голосов text-to-speech или voice conversion.

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

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

    У меня есть несколько примеров. Это голос оригинал. Это, когда перезаписали через лаптоп. Может быть, слышно, что там появляются дополнительные шумы. Через iPhone. Там идет фильтрация, много высоких frequencies (частоты), отрезают звук сверху и снизу. Это всякие синтезированные. Плохая синтезация, но сразу понятно. Сейчас стало лучше. Можете погуглить примеры всяких RNM сетей. Они стали лучше, не такой металлический голос, но всё равно слышно. Это голос одного человека и другого человека, конвертация.

    В чём состоит проблема атаки на систему? в нормальной ситуации без атак у нас есть два типа тестовых примеров. Это человек, который говорит: «Я Павел», и он Павел, и человек, который не то, чтобы он говорит, что он не Павел, просто другой человек, чтобы отличить того человека от Павла. Система должна сказать, что если это не Павел, но мы проверяем с регистрационными данными с Павлом, то совпадений не должно быть. А если мы при тестовом сценарии проверяем Павла с регистрационными данными Павла, то совпадение должно быть.

    В простом понимании, когда тестовый пример совпадает с тем, что зарегистрировали, число должно быть высоким, output системы должен быть высоким. А когда они совпадают, должен быть низким. У нас получается две гистограммы – синяя и красная. Синяя – это настоящий текст, где регистрационные данные совпадают с тестовыми данными, а красная, когда не совпадают.

    (00:20:04)

    Тут нет никакой специальной атаки, нет злого умысла. Когда появляется злой умысел, кто-то пытается притвориться, проигрывая примеры в системе, которые я показывал, появляется серая гистограмма. Если система не знает, что существует spoofing attack, то она воспринимает фейковые примеры как настоящие, поэтому система оценивает эти примеры так же, как настоящие. По-английски это называется zero-effort impostors – которые genuine, но регистрационные данные не совпадают с тес тестовым примером, а голубенький – genuine accesses, когда совпадает.

    Система верификации отделяет мух от котлет, отделяет одни от других. Они должны отделяться как можно дальше. Чем дальше они отделяются, тем лучше работает система. Но spoofing attack часто совпадает с genuine accesses, с настоящими людьми. В этом проблема.

    Делают другую систему, чтобы отделять плохие атаки от настоящих genuine samples, от настоящих примеров нормального доступа к системе. Стандартно есть база данных, у нас есть атаки, бинарная классификация. Мы говорим – это наши атаки, это наши настоящие примеры. Мы делаем какие-то features, манипулируем с аудио, делаем какие-то хитрые векторы, которые классифицируема, отделяем одно от другого. Мы создаем пространство, в которых genuine (реальные) аудио отличаются от фейковых аудио.

    Потом мы тестируем систему на другом массиве данных и говорим, правильно ли делаем правильно, отличаем фейковых от не фейковых. Система называется Presentation attack detection или система анти-спуфинга, которая отделяет мух от котлет. В данном случае мухи являются фейковыми примерами, а котлеты – это как раз то, что нам нужно.

    У нас появляются две системы – система верификации и система отличия фейков от не фейков. Мы их комбинируем в одну систему, много разных вариантов, но так, что в итоге график, который был изначально слева, становится графиком, как справа, где у нас после комбинации, что можем отличать фейк от не фейка и отличать людей, которые зарегистрировались в системе, определять, кто тот или иной человек, его личность. Мы в данной ситуации объединяем эти две системы – верификацию Presentation attack detection в одну, где в итоге все genuine users получаются справа, а атаки и zero-effort impostors – слева. Мы так хотим сделать, это наша цель.

    Баз данных. Они сейчас предпринимают большие усилия, чтобы продолжать, это называется ASVspoof и Challenge, который проходит каждые два года. Они представляют данные, чтобы люди пытались сделать системы, которые победили в конкурсе, кто круче отделяет мух от котлет. Их было пока четыре. Сейчас в 2021 году они организуют воркшоп, они заканчивают Challenge 2021 года, по-моему, уже закончили. Сначала у них были только text-to-speech и voice conversion, достаточно простые способы. Примеры, которые я вам играл, они примерно такие.

    Было два года, а потом в 2019 году они скооперировались со всякими Google и другими большими компаниями, которые нагенерировали много современных RNM на основе deep learning всяких аудио, в том числе, WaveNet.

    (00:25:04)

    Эти люди дали большой массив данных, и они в 2019 году стали резко очень популярны, потому что большой маркетинг и много новых данных, молодцы. В 2021 году, к сожалению, они не добавили никаких новых данных. Они разбили на три разных категории, назвав одну из них audio deepfakes.

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

    У нас отличие replay attack от обычной записи, что у нас добавляется еще одна пара микрофон-проигрыватель. До этого был только микрофон. Мы говорим в микрофон, и система получает что-то через один микрофон, то, что мы сказали в микрофон, в том числе, и шумы, которые всегда существует вокруг нас.

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

    Второй – так называемый logical access, когда мы делаем виртуально микрофон. Там мы не можем проиграть реальный. Мы можем проиграть реальный, но тогда там ничего не сделаешь. Если ты возьмешь просто украдешь и добавишь реальный звук человека, то ничего не появится.

    В 2021 году они пишут – они должны поменять тесты. Training data осталась та же. Суть logical access, что ты можешь синтезировать, делать voice conversion и пытаться симулировать. Другие шумы, которые оставляют алгоритмы, добавляют какие-то искажения в голос, и ты должен отличить это искажение. Суть определения фейковых сигналов сильно отличается от системы верификации, тем, что системе верификации требуется быть инвариантной к шумам, чтобы видеть только голос человека, суть того, что определяет человека как этого конкретного человека. Система должна отрезать и выбрасывать шумы. Поэтому, когда мы вносим в эту систему фейковый голос с другими шумами, она игнорирует эти шумы, потому что она заточена игнорировать эти шуму и поэтому она так легко обманывается.

    Так же и с лицом. Систему тренируют на лицах с искажением компрессии, abstraction, они хотят определить лицо в плохих условиях. Атака на эту систему – это одни из этих плохих условий, поэтому она инвариантна к этим условиям, она не может их видеть. Поэтому нужна другая система, которая видит конкретно такие плохие условия, которые специфичны для этих атак, а не другие, как, например, компрессия или в данном случае обычные шумы, которые относятся к первой записи, которая genuine – настоящая запись.

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

    Я поучаствовал в двух базах данных. У меня сделанf AVspoof в 2015 году, такая же система, как ASVspoof. Потом мы ее немножко расширили, проигрывая разные replay – мы фокусируемся в данной ситуации на replay attack, когда микрофон и устройство проигрывали много разных записей через разные устройства. Мы публиковали, делали Challenge в 2016 году. Но мы не стали продолжать, как те чуваки с ASVspoof.

    (00:0:20)

    Да, тут confusion – есть AVspoof, а есть ASVspoof. Мы их знаем, они нас знают, но, к сожалению, не смогли скооперироваться в одном месте, чтобы все вместе, их и так много в этой команде, которая занимается ASVspoof.

    Пример presentation attacks. Берутся настоящие записи для базы данных, для верификации, потом проигрываются разными парами устройств. Тогда не было десятых айфонов, использовали последний iPhone 6s. Проигрывали в разных местах, например, в офисе, в большой комнате, в маленькой комнате, чтобы были разные шумы.

    Есть еще база данных. Это бразильская база данных, которая на португальском, там много народа они записали, но, к сожалению, она не публична, ее нельзя скачать. У меня был к ней доступ, потому что мы писали с чуваками статью. Они это делают на продажу, данные не открыты. Они комбинировали много разных устройств, чтобы записывать. Только replay attack, больше ничего не было. Вот пример того, как это делается. Ставятся какие-то устройства и проигрывается много часов подряд, потом нарезается _____ (00:31:40).

    Приведем anti-spoofing методы. Я не буду много рассказывать. Так называемые классические – на основе спектрограммы, MFCC features, разные спектральные features, которые делаются через аудио. Это классические в том смысле, что они понятны. Многие features были сделаны, чтобы хорошо описывать голос человека, убирать из аудио всякое ненужное. Они делаются с 50-х годов, free transform и всё такое.

    Классические классификаторы в этой ситуации – это GMM, модели Гаусса, в этой ситуации использовалось 512 mixture models. Это стандартная тема, что делали пять лет назад. На удивление, она неплохо работает даже сейчас. Из их последних челленджей 2019 года, я удивился, что эта система до сих пор неплохо работает.

    Тут примеры показывают, что мы взяли разные features. Это такой же классификатор. CQCC (последняя строчка) – это было специально предложено для определения атак. Такие features, которые соотносятся, должны быть меньше по сравнению с другими. IMFCC (пятая строчка) – это как MFCC, только наоборот. Если MFCC убирает высокие частоты, потому что они не нужны для определения голоса, они дают меньше веса, то IMFCC наоборот, больше веса дают высоким частотам и меньше веса низким частотам, потому что мы хотим моделировать шумы, а шумы обычно высокочастотные или сильно низкочастотные. Мы их пытаемся моделировать, поэтому была логика, что IMFCC должны лучше работать в ситуации, когда у вас есть атаки.

    CQCC – у них тоже своя специальная система, там какие-то сложности. Почитайте про них статью. Они популярны. Из этих результатов нет особо никакой разницы. В чём суть этих результатов? Мы тренируем на базе данных (training set) и делаем evolution, тестируем на test set. В этой ситуации мы это делаем. Есть еще development set, где мы выбираем threshold – порок в оценках, которые дает система.

    (00:35:00)

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

    Мы тренируем систему на training set, а на development set или на validation set мы находим так называемый гипер параметр, один из них – это threshold, порог. Бинарная ситуация, если выше этого значения, значит, настоящий пример аудио, а если ниже этого значения, значит, это фейковое аудио. Этот threshold обычно вычисляется на development set. Потом он применяется blind (в слепую) на тестовом. В данной ситуации мы не делали такого, мы делали, когда threshold определяется на том же set, на котором и тестируется, что плохо и неправильно делать. Обычно надо тестировать в слепую.

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

    Известные атаки – это значит, что они были в training set, в том, на котором мы тренировали. Во всех наборах всё одинаковое. В этой таблице всё одинаковое, кроме features. И данные, и классификатор, все параметры одинаковые. Мы же сравниваем, что меняется, больше ничего не сравниваем.

    Unknown значит, что в тестируемом сете есть атаки, на которых система не тренировалась, она их не видела во время тренировки. EER – это equal error rate, чем меньше, тем лучше. Если оно большое, значит, плохо.

    ASVspoof 2015 года не было replay attack, а в AVspoof были, поэтому у нас есть logical access и physical access. Показывается, что тут physical access сложно определить по сравнению с logical access. Также unknown сложнее определить, чем known, те, которые система видела во время тренировки.

    Но если мы сделаем cross-database ситуацию, какой практический сценарий? Компания создает систему, тренирует на какой-то базе данных, какой – неважно, говорит, что у нас такой перфоманс, очень хорошая система, у нас ноль error rate, мы всё очень хорошо отличаем. Потом идет в другое место, продает систему в совершенно другой ситуации, где могут быть другие атаки, другое окружение, шумы, всё другое, и там система начинает работать. И она может не работать, мы же не знаем, как она работает.

    Чтобы смоделировать практический сценарий, мы тренируем на одной базе данных, находим там threshold (порог) на основе этих оценок и говорим – теперь мы тестируем на другой базе данных, полностью другой, другие атаки. Мы ее тестируем в слепую, как положено. Тогда оказывается, что у нас все значения очень сильно вырастают, часто даже непонятно, почти random. Нет generalization. Система overfit. Даже системы на основе классических достаточно быстро overfit. И в этом проблема.

    Тут показаны графики. Когда мы тренируем и тестируем на той же базе данных, этот график, чем ближе к нижнему левому углу, тем лучше. У нас есть HTER 1,87. А когда мы начинаем на другой базе данных, особенно на physical access, когда совсем другие атаки, у нас HTER становится 9,8, увеличивается, зеленая полоса становится далеко от угла.

    Тут еще очень хорошо видно overfit, HTER у голубенькой вообще ноль, а потом становится очень высокой. Проблема, что generalize poorly across database, очень плохой generalization, replay attack challenging.

    (00:40:15)

    Как комбинируются системы? Система верификации и система определения атак комбинируется параллельно через score fusion, это простая вещь. Можно еще тренировать их вместе. Простой способ – это на score, когда уже есть все числа, и делается еще один маленький классификатор и score fusion, чтобы улучшить общую систему, чтобы она могла определять geniun от zero importers и просто атак. Есть параллельно, а есть последовательно. Сначала отфильтруем одной системой, а потом другой. Тут неважно, первый идет PAD или ASV, результат один и тот же.

    Мы попробовали делать это. Тут разные системы. В статье написано гораздо больше. Но суть в том, что если мы не делаем никакой fusion, берем эту систему ASV verification на основе ISV и i-vectors (это достаточно известная, она до сих пор хорошо работает), то проблема, когда у нас есть атаки, то она у нас 94% атак или 92% считает настоящими. Это очень плохо. Нам нужно, чтобы она считала меньше.

    Если мы комбинируем систему, которая на основе MFCC и GMM вместе с системой, которая определяет атаки, можно комбинировать в разные способы классификации: Mean (среднее число), Cascade (отфильтровать одно, те тестовые примеры, которые прошли фильтрацию, попадают в следующую систему). Разные способы фильтрации, комбинация двух систем.

    Что происходит? Если смотреться первую строчку, у нас обычно ухудшается показатель, она становится хуже как система верификации, зато она становится лучше с точки зрения фильтрации неугодных атак. Это зависит от системы, от того, как комбинировали эти две системы. В этой ситуации есть сложности. Комбинация система, верификация и анти-спуфинг – тоже нетривиальная задача.

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

    Понятно, что если комбинировать мы улучшаем систему верификации с точки зрения противостояние атакам, но ухудшаем ее перформанс с точки зрения обычной системы верификации.

    Mega-fusion. Здесь можно сделать много разных систем – fusion, PAD, которые фильтруют атаки и делать их комбинацию, большую систему. Этим в основном занимаются в Challenge.

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

    Суть в том, что была бракованная база данных ASVspoof. Чуваки, которые это всё организуют, все заняты, и у них очень мало времени сделать нормальную базу, хотя они стали очень популярны. В итоге они исправили, теперь она версия два, потому что там можно было просто взять первые 20 миллисекунд аудио и в genuine sample был такой beep. Когда они записывали, они каждый раз при записи в начале вставляли эти пикалки. А потом они сделали _____ (00:44:27) noise, чтобы его убрать, чтобы не было beep, но не убрали до конца и в итоге он был.

    Если взять 20 миллисекунд, то они очень сильно отличались у genuine от атак, и там было очень просто определить. Русским повезло. Они там навертели, но они только на каких-то очень маленьких кусочках смогли, либо они это поняли, либо нечаянно, исправили систему. Но мы не знаем, кто в итоге занял места. Суть в том, что mega-fusion помогают выиграть Challenge.

    (00:44:59)

    Не знаю, насколько это полезно с точки зрения практики. Но если взять на одной базе данных и тренировать, в тестировать на другой, всё равно плохие результаты. Нет меньше 10% error rate. Мы хотим error rate хотя бы меньше 10%.

    Как насчёт neural networks? Проблема neural networks, что они быстрее делают overfit. Им надо гораздо больше данных, чтобы хорошо тренироваться. Может быть трансформеры, которые вам будут скоро рассказывать, помогут решить эту серьезную проблему.

    Проблема всех этих атак, много баз данных Google, Facebook, большие компании, которые собирают эти базы данных, которые разводят людей на личные данные и собирают данные со всего мира. Они забирают данные, чтобы определять людей, тренируют системы и базы построены таким образом, чтобы быть рядом к шумам. А тут атаки. Таких баз мало, где есть атаки, где добавляют туда маленькие странные шумы, чтобы их отличать. Большинство систем, которые популярны, моделей архитектур, построены для того, не отфильтровывать шумы, а нам надо в этой области наоборот, и не все модели подходят. Они часто overfit, _____ (00:46:45) плохо работает в этой ситуации, когда мы меняем данные, чтобы, наоборот, сделать больше variability. Но мы не можем сделать в этой ситуации, когда у нас атаки, когда надо отличать маленькие шумы.

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

    Мы сделали небольшой тест. Мы взяли маленькую CNN и побольше, простое, и сравнили, улучшится или нет, если мы увеличим глубину. Улучшается. Если сравнивать с классической и CNN, там сложно. Насколько глубокая должна быть CNN по сравнению с этими данными, и сколько данных у вас есть , чтобы найти хороший баланс. У нас не так много данных, как в этих челленджах. У них немного данных. Глубокие системы почти не работают, в этом проблема.

    В нашей ситуации у нас были большие базы данных, особенно CPqD, которая private, она очень огромная. Там 200 тыс. аудио примеров по 20 секунд, длинные аудио примеры и очень много данных. CNN достаточно хорошо тренировалась на ней.

    Но voicePA тоже достаточно большая, там 80 тыс. примеров, но там 5 сек., 10 сек. Максимум. Суть в том, что deep может быть немножко лучше, но тоже зависит. Это показываю челленджи ASVspoof. Я быстро проскочил по верхам, можете посмотреть статьи. Суть понятна. Я говорил основные тезисы.

    Что произошло? Я отношусь к этому скептично, потому что я почитал, что навертели в этих челленджах. Очень интересно, что поучаствовал WaveNet, Google, взяли RNN, современные системы для генерации голоса. Но, как показал Challenge, системы анти-спуфинга легко их определяют.

    Самая большая проблема replay attack, потому баз для replay attack мало, где проигрывается настоящая речь через разные спикеры, эти шумы гораздо сложнее отличить этим системам, а синтетические вещи легко отличить, так же, как в видео, GAN-based images легко отличить. Они там генерируют такие частоты GAN, что их легко видно, легко на них тренируются. Speech deepfakes – это WaveNet, я так понимаю. Я взял их overview прошлого года, там, где рассказывают про Challenge и топ-истемы.

    (00:50:03)

    Если взять эти строчки B (baseline) и посмотреть на hidden track, это значит те тестовые примеры, которые не были видны людям, которые участвуют в Challenge, какие-то новые атаки. Они были replay attack, потому что их было мало, но они были. Если посмотреть на equal error rate, посмотрите, топ-системы 20% ошибки и больше – это очень много на бинарной системе. Некоторые 40, считайте, random, ничего не работают. Они делают overfit. Очень маленький equal error rate, который был виден, и очень большой на том, который был не виден.

    Baseline 01 – это MFCC, GMM, который я вам показывал, который уже пять лет известен, она была на 12% лучше, чем все остальные. Никто не мог переплюнуть baseline, что ужасно. О чём это говорит? О том, что ничего не работает. Это страшно.

    Но с другой стороны, как я сказал в конце в этом пункте, мы никогда не останемся без работы, потому что проблема не решена, проблема сложная. Я не знаю, как она решится. Generalization – это сложная проблема. Мое личное мнение, мы считаем, что мы решили задачу системы лиц человека, идентификации по лицам, но мы решили эту проблему тем, что мы тренировали наши большие огромные модели на всём мире. Google с Facebook собрали миллиарды людей, и если overfit на весь мир, то ты решил проблему. Зато ты не можешь определять пришельцев с других планет, потому что тебя нет на них данных, unknown attacks. Распознавание пришельцев у них не получится.

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

    Модератор: Павел, спасибо большое за рассказ. У нас есть некоторое количество не отвеченных вопросов в чате и в QnA, давайте я их зачитаю. Иван Захаров спрашивал нас: «Эти датасеты англоязычные?».

    Павел Коршунов: Да, я сказал, они англоязычные, кроме CPqD, которые мы использовали. Но они, к сожалению, недоступны снаружи всем.

    Модератор: Алексей Свищов, видимо, находясь глубоко в этой же теме, комментирует, что в 2021 году они не меняли тренча, всевозможные канальные искажения, эффект сжатия данных, кодирование сигналов. Делать тестовые данные более адекватными относительно реальных сценариев использования.

    Павел Коршунов: Да, я знаю. Но проблема, что они делают симуляцию, дают людям так называемые physical access, чтобы тренировать модели, а тестирует на реальных. Эта табличка говорит о том, что если ты даешь hidden track, совсем другие атаки, то они у них не получатся ни у кого, все модели overfit, ломаются. Я так понимаю, в этом в этом году людям будет еще хуже.

    Модератор: Meen…

    Павел Коршунов: Я ответил, во всех моделях одинаковые.

    Модератор: Дмитрий Башкирцев спрашивает, не рассматривались ли механизмы Fingerprint.

    Павел Коршунов: Fingerprint – это очень известная тема. Это решало бы всю проблему. Так же, как с аудио, видео и аудио одинаково. Но проблема сложная технически, тебе надо делать fingerprint на каждом устройстве, которое должно где-то проходить сертификацию. Любое устройство записи – камера или микрофон должен на железе, на чипе, который записывает, делать fingerprint, что эта запись с этим микрофоном, вот паспортные данные. Когда делается фейк, этот Fingerprint искажается, его можно заметить. Так делают в Youtube. У них есть база настоящего контента певцов, они дают реальные sound track, альбомы, которые они выпускают в публичное поле.

    (00:55:09)

    Когда люди копируют mp3, перекомпрессуют, они находят этот контент в YouTube видео и блокируют YouTube видео, потому что там у них нелегальный контент, за который они не платили, copywriter контент. Как они делают? Они делают Fingerprint. Но YouTube это делает, потому что у них договор с правообладателями. А если нет договора с правообладателем, если это не правообладатель, а обычный человек, то нет Fingerprint. Поэтому проблема сделать на каждом устройстве.

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

    Артем Чирковский. Replay атаки в логичном канале не распознаваемо вообще или могут быть какие-то признаки? Replay атаки в логичном канале, когда нет микрофона, нет проигрывателя. Там только компрессия. Она и так существует, ничем не будут отличаться, поэтому их даже никто не рассматривает.

    В Пентагоне была шифровка и метаданных, watermarking. Если модифицировали изображение, они хотели знать, что оно модифицировано. Там оба. Им давали специальные телефоны со специальным приложением, которое делало это на телефоне, потому что нет интернета. Криптокомпания. Но это делала контора.

    _____ (00:57:17) в реальном бою с большой ошибкой. Современные разработки _____ (00:57:20). Да, с большой. В Tesla я бы руль крутил на всякий случай или во всех этих вещах, эти bias. Сейчас очень модная тема – bias, когда модели тренируются на определенных базах данных, и они к чему-то bias.

    Была смешная статья из Китая, долго у нас лежала, где люди тренировали на базе данных преступников и не преступников. Они с точностью почти 100% определяли преступников по фотографии. В conclusion написано «Преступники меньше улыбаются, поэтому наша модель хорошо определяет преступников от не преступников. Она поняла, что преступники меньше улыбаются».

    Конечно, у них база данных преступников – это полицейские сфоткали их в полиции на опознании, они там не улыбаются. А база данных обычных людей с Facebook какого-нибудь, где люди улыбаются. Конечно, так можно определять, преступник или не преступник. Если подход к задаче, то конечно.

    На чём ты тренируешь, так система потом и будет определять. Если в базе данных мало темнокожих людей, то она будет, как в Microsoft несколько лет назад, у них был скандал, что они выпустили определение лиц, и темнокожих людей определяли как обезьян. Понятно, потому что у них в базе данных, на которой они тренировали, были в основном белые. Это называемое bias. Сейчас много тем о том, как делать unbias, как тренировать данные, которые bias, в которых некоторые категории не репрезентативны, minority. Она так тренировал, чтобы она всё равно опознавала эту категорию. Это сложная система.

    Имеет ли _____ (00:59:17) систему, которая решает задачу за счет огромного набора данных? Я думаю, да. Этические вопросы? Конечно, этические вопросы очень сложные, особенно в странах, где этические вопросы вообще «задвигаются в тумбочку». Тут вообще проблема.

    Я поражен Московским метро. Люди с удовольствием зарегистрировались в этом метро, чтобы определяться лицами. Не то, чтобы это спасло бы их, но всё равно.

    Как вы считаете, решаются задачи авторизации или всё-таки идентификации? Авторизация и идентификация – это похожие задачи. Авторизация – при verification, подмножество идентификаций. Идентификация – много верификаций.

    (01:00:01)

    Верификационная задача – это базовый блок идентификационных задач. Verification – это пара, два – enrolled, который зарегистрирован, и тестовый, сверяется – «да/нет», «да/нет».

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

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

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

    Система верификации на телефонах, например, на iPhone решается за счет сенсорных камер. У нас есть большая программа, где используется много разных камер: infrared, тепловые камеры, несколько хороших сенсоров. Проблема решается достаточно легко, существует hardware. Когда ты покажешь экран и камеру, то infrared этот экран будет плоским, он не будет выглядеть, как человек.

    Маска силиконовая тоже, тепло не так распределено, как на настоящей человеческой коже. Ее греют феном, протирают, чтобы она нагревалась, и всё равно не такой pattern, не так выглядят, как настоящее лицо.

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

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

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

    Павел Коршунов: По нескольким секундам речи _____ (01:03:05) что угодно. Воспроизводить голос? Смотря, как. Можно. Технически для системы верификации голос можно определить уже сейчас. По несколько секунд? Минуты достаточно, чтобы голос сейчас воспроизвести. Но пока еще будет сложно сделать так, чтобы человек не догадался.

    У этих RNN есть проблемы, что генерировать deepfakes для не так просто за счет того, что у нас ухо очень чувствительно к обрывам речи, к помехам, когда не совпадает фаза. Когда фазы не совпадает в речи в каком-то месте, то человек очень хорошо чувствует. Машина – нет, потому что нарезает на куски, и каждый кусок анализа используется отдельно, в человек слушает continuously (постоянно). Когда генерируется речь, она генерируется кусками, и эти куски очень сложно связывать, чтобы идеально совпадала фаза.

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

    Можно. Deepfakes видео много, а deepfakes аудио очень мало.

    (01:05:03)

    В Challenge сейчас называют deepfakes аудио, на самом деле WaveNet. Там нет deepfakes аудио. Там есть voice conversion, но они не такие хорошие, как синтетический голос, как Google Assistant, который просто какой-то голос. Не чей-то голос, а какой-то голос. Его можно хорошо генерить. А какой-то голос не так просто генерить пока. Может быть, что-то придумают, но эта проблема гораздо сложнее, чем видеоизображения

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

    Павел Коршунов: Пожалуйста. До свидания.

    (01:06:06) (Конец записи.)