0

Face2face программа

В современном мире все больший интерес проявляется к биометрическим технологиям и биометрическим системам идентификации личности, и этот интерес вполне понятен.

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

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

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

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

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


Рис. 1 – Распознавание диктора

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


Рис. 2 – Строение речевого тракта человека

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

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


Рис. 3 – Взаимодействие человека с системой

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

Существует ряд факторов, которые могут способствовать возникновению ошибок верификации и идентификации, например:

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

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

Процесс верификации личности по голосу состоит из 5 этапов: прием речевого сигнала, параметризация, или выделение отличительных признаков голоса, сравнение полученного образца голоса с ранее установленным эталоном, принятие решения «допуск/отказ», обучение, или обновление эталонной модели. Схема верификации представлена на рисунке 4.


Рис. 4 – Схема верификации

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

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

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

Наконец, система принимает решение допустить или отказать пользователю в допуске в зависимости от совпадения или несовпадения его голоса с установленным эталоном. Если система неверно сопоставила предъявленный ей голос с эталоном, то возникает ошибка «ложный допуск» (FA). Если же система не опознала биометрический признак, который соответствует имеющемуся в ней эталону, то говорят об ошибке «ложный отказ» (FR). Ошибка ложного допуска создает брешь в системе безопасности, а ошибка ложного отказа приводит к уменьшению удобства пользования системой, которая иногда не распознаёт человека с первого раза. Попытка снизить вероятность возникновения одной ошибки приводит к более частому возникновению другой, поэтому в зависимости от требований к системе выбирается определённый компромисс, т.е. устанавливается порог принятия решения.

Заключение

Методы голосовой идентификации применяют и на практике. Технология идентификации по голосу Voice Key компании «Речевые Технологии» позволяет организовать регламентированный доступ пользователей по заданной парольной фразе к ресурсам предприятия, телефонным и WEB-сервисам. Использование технологии Voice Key позволяет существенно повысить защищенность систем и, в то же время, упростить процесс идентификации пользователя. Технология Voice Key обеспечит высокую надежность и стабильность работы системы, а также поможет повысить качество обслуживания клиентов.

Все материалы, размещенные на даннном сайте, разрешены к публикации и печати на других ресурсах и печатных издания только при наличии письменного разрешения компании ООО «Речевые Технологии»

Приложение Facebook, как и большинство подобных приложений, представленных на рынке, позволяет использовать одновременно только один аккаунт. Они не думают о людях, у которых есть второй фейковый аккаунт, чтобы лайкать свои же записи? Теперь эти пользователи смогут без труда подпитать самооценку без постоянного выхода из системы и входа в систему. Решение проблемы – приложение 2Face — Multi Accounts, разработанное авторами знаменитого CleanMaster. Также его можно использовать с другими приложениями, например, для входа в два разных аккаунта Gmail, но это уже не так весело.

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

Как работает приложение?

Нужно всего лишь открыть 2Face и выбрать для клонирования одно из рекомендованных приложений или собственных программ, нажав на кнопку «+». Откроется большой список приложений, которые могут быть установлены на вашем телефоне. 2Face самостоятельно создаст клон нужного приложения, так что лично вам ничего больше делать не нужно.

Копия появится в меню «Cloned Applications» (Клонированные приложения) и на экране. Иконка второго приложения будет обведена бирюзовой рамкой, а название будет отображаться с пометкой «2nd» (второе), чтобы знать, какая из иконок копия. Запускать клонированное приложение можно и из списка, и с экрана.

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


Здравствуй, дорогой читатель!

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

Запись звука

Наша история начинается с записи аналогового сигнала с внешнего источника с помощью микрофона. В результате такой операции мы получим набор значений, которые соответствуют изменению амплитуды звука со временем. Такой принцип кодирования называется импульсно-кодовой модуляцией aka PCM (Pulse-code modulation). Как можно догадаться, «сырые» данные, полученные из аудио-потока, пока еще не годятся для наших целей. Первым делом нужно преобразовать непослушные биты в набор осмысленных значений — амплитуд сигнала. В качестве входных данных я буду использовать несжатый 16-битный знаковый (PCM-signed) wav-файл с частотой дискретизации 16 кГц.
double readAmplitudeValues(bool isBigEndian) { int MSB, LSB; // старший и младший байты byte buffer = ReadDataFromExternalSource(); // читаем данные откуда-нибудь double data = new double; for (int i = 0; i < buffer.length; i += 2) { if(isBigEndian) // задает порядок байтов во входном сигнале { // первым байтом будет MSB MSB = buffer; // вторым байтом будет LSB LSB = buffer; } else { // наоборот LSB = buffer; MSB = buffer; } // склеиваем два байта, чтобы получить 16-битное вещественное число // все значения делятся на максимально возможное — 2^15 data = ((MSB << 8) || LSB) / 32768; } return data; }
Освежить знания про порядок байтов можно на википедии.

Обработка звука

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

Разделяй и властвуй

Даже при работе со звуком с минимально достаточной частотой дискретизации (16 кГц) размер уникальных характеристик для секундного образца звука просто огромен — 16000 значений амплитуд. Производить сколь-нибудь сложные операции над такими объемами данных не представляется возможным. Кроме того, не совсем понятно, как сравнивать объекты с разным количеством уникальных черт.

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

На рисунке изображена «порезка» звукового сигнала на кадры длины N с половинным перекрытием. Необходимость в перекрытии вызвана искажением звука в случае, если бы кадры были расположены рядом. Хотя на практике этим приемом часто принебрегают для экономии вычислительных ресурсов. Следуя рекоммендациям , выберем длину кадра равной 128 мс, как компромисс между точностью (длинные кадры) и скоростью (короткие кадры). Остаток речи, который не занимает полный кадр, можно заполнить нулями до желаемого размера или просто отбросить.
Для устранения нежелаетльных эффектов при дальнейшей обработке кадров, умножим каждый элемент кадра на особую весовую функцию («окно»). Результатом станет выделение центральной части кадра и плавное затухание амплитуд на его краях. Это необходимо для достижения лучших результатов при прогонке преобразования Фурье, поскольку оно ориентировано на бесконечно повторяющийся сигнал. Соответственно, наш кадр должен стыковаться сам с собой и как можно более плавно. Окон существует великое множество. Мы же будем использовать окно Хэмминга.

n — порядковый номер элемента в кадре, для которого вычисляется новое значение амплитуды
N — как и ранее, длина кадра (количество значений сигнала, измеренных за период)

Дискретное преобразование Фурье

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

N — как и ранее, длина кадра (количество значений сигнала, измеренных за период)
xn — амплитуда n-го сигнала
Xk — N комплексных амплитуд синусоидальных сигналов, слагающих исходный сигнал
Кроме этого, возведем каждое значение Xk в квадрат для дальнейшего логарифмирования.

Переход к мел-шкале

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

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

m — частота в мелах
f — частота в герцах

Получение вектора признаков

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

cn — мел-кепстральный коэффициент под номером n
Sk — амплитуда k-го значения в кадре в мелах
K — наперед заданное количество мел-кепстральных коэффициэнтов
n ∈
Как правило, число K выбирают равным 20 и начинают отсчет с 1 из-за того, что коэффициент c0 несет мало информации о говорящем, так как является, по сути, усреднением амплитуд входного сигнала.

Так кто же все-таки говорил?

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

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

Кластеризация

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

Итоги

Таким образом, я рассказал о простой но эффективной системе идентификации человека по голосу. Резюмируя, процесс распознавания построен следующим образом:

  1. Собираем несколько тренировочных образцов речи, чем больше — тем лучше.
  2. Находим для каждого из них характеристический вектор признаков.
  3. Для образцов с известным автором проводим кластеризацию с одним центром (усреднение) или несколькими. Приемлемые результаты начинаются уже с использованием 4-х центров для каждого диктора.
  4. В режиме опознавания находим расстояние от пробного вектора до изученных во время тренировки центров кластеров. К какому кластеру пробная речь окажется ближе — к такому диктору и относим образец.
  5. Можно экспериментально установить даже некоторый доверительный интервал — максимальное расстояние, на котором может находиться пробный образец от центра кластера. В случае превышения этого значения — классифицировать образец как неизвестный.

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *