Баз данных с голосами и именами их владельцев сотни. По специальным характеристикам голоса человека можно определить и другие голоса. Машинное обучение хоть и кажется “новым” трендом, но среди стран Западной Европы и США использование ML и составления баз данных из голосов разных людей – норма и входит в классическое биометрическое досье. Соответственно данные о голосе как-никак доступны широкому числу организаций, которые могут их собирать параллельно органам.
Отсутствие конфиденциальности в этом случае позволяет снизить риск деанонимизации. В последнем году TikTok внес изменения в свою политику конфиденциальности, разрешив сбор отпечатков голоса у пользователей в США, наряду с другими биометрическими данными, включая сканирование лица. Также наблюдается распространение практики использования искусственного интеллекта в колл-центрах для анализа поведения и эмоций людей во время телефонных разговоров.
Сегодня голос раскладывают по спектрограмме и вносят в базу с заявленной личностью. Когда нужно провести деанон – сравнивают характеристики нужного голоса со спектрограммы и голоса из базы данных. Но зачем бороться с этим крупным компаниям?
Давайте разберемся, как сегодня распознают людей по голосу даже в “сложных” аудиозаписях с искажениями и почему за конфиденциальность данных борются компании.
Почему “анонимизация” голоса не бесполезна?
Зачастую Россию ругают за непомерное количество штрафов и обогащение засчет мониторинга ФАС нечистоплотных ИП и ООО, отмывающих деньги. И это не говоря об некачественных аудитах, недавно введенных правилах маркировки рекламы, а также “соблюдения” безопасности. Но такая практика помогает, как-никак, контролировать не только поступление налогов, но и качество “продуктов”, организаций или помещений/жилых объектов и т.д.
Конфиденциальность данных – критерий качества любой компании.
Конфиденциальность данных представляет собой неотъемлемый аспект прав и свобод личности, а также ключевой элемент доверия между организациями и их клиентами, сотрудниками и другими заинтересованными сторонами. Эта важность проистекает из нескольких причин.
Соблюдение конфиденциальности данных необходимо для поддержания доверия между организациями и их клиентами или партнерами. Когда люди уверены в том, что их информация хранится и обрабатывается с уважением и безопасностью, они готовы сотрудничать с этими организациями и делиться своими данными.
Законодательство о защите персональных данных, такое как GDPR в Европейском Союзе, ставит перед организациями юридические обязательства по соблюдению конфиденциальности данных. Нарушение этих законов может привести к серьезным штрафам и репутационному ущербу для организации. Кроме того, конфиденциальность данных помогает предотвратить злоупотребление и мошенничество, связанные с неправомерным доступом к личной информации.
Кибермошенники могут использовать голосовые команды или аудиосигналы для обмана систем голосового управления: системы распознавания голоса или виртуальные помощники. Добавим, что иногда голос может использоваться для несанкционированного входа.
Сколько стоит ваш голос? Зачастую в современном мире уже не удивишь мрачным гугл-переводчиков, поэтому многие из «хакеров» и «скамеров» используют голосовые связки незнакомых людей. Так можно поднять лояльность аудитории и, например, заниматься эффективно УБТ, иначе арбитражем графика, выкладывая по 1000 видео с голосом незнакомца и получая 50 баксов за перелив аудитории в другую соцсеть. Но в этом случае никто не пострадает, т.к ваш голос вероятно даже не запомнится зрителям из-за скоростного и клипового формата Shorts.
Другие варианты — имитация личности для вымогательства. Взламывают аккаунт, пишут «другу» или родственнику, добавляют голосовое и просят в долг 30 тысяч кровных. После определенного этапа развития нейронок, их действительно стали использовать и во вредоносных целях. ИИ Ninjta противодействует другому ИИ.
С другой стороны стоят корпоративные данные и кошелек компаний. В Европе общий регламент по защите данных (GDPR) привел к значительным штрафам с момента его введения в 2018 году. Например, рекордный штраф наложили в феврале 2023 года на 2.7 миллиарда евро, а в соответствии с GDPR выписано больше 1400 штрафов.
С момента его введения в 2018 году голосовые данные признаются персональными данными в соответствии с GDPR. Организации, занимающиеся сбором, обработкой или хранением голосовых данных, обязаны соблюдать нормативные требования. Все компании должны получить соответствующее согласие от субъектов данных, внедрить необходимые меры безопасности и обеспечить прозрачность своей деятельности по обработке данных.
Компания анонимизирует голос с использованием технологии новейшего искусственного интеллекта, причем оперативно и гарантирует конфиденциальность. Впоследствии, такой голос сохраняет тональность, «участливость» и эмоции, как бы странно это звучало.
Вот только, как мы знаем, любая инфраструктура предполагает уязвимости. Зачастую компаниям легче выкупать данные в даркнете, нежели зашивать дыры в собственной экосистеме. И все бы было хорошо если не денежные взыскания.
C другой стороны фирмам выгодно иметь свои базы данных “анонимных”, легальных голосов под обучение рекомендательных систем, аналитики отделов продаж и т.д.
Конечно, для идентификации сегодня уже никто не использует эвристические методы по типу определения тона, диалекта голоса – сегодня мы говорим о частотах и паттернах звуковой аберрации на спектрограмме. Давайте просто посмотрим, как это работает.
Новейший метод распознавания личности по голосу и борьбы с ним
Идентификация голоса с использованием коэффициентов мел-частотных кепстральных коэффициентов (MFCC). Сигнал анализируется с помощью алгоритмов обработки, чтобы извлечь характеристики, описывающие спектральные особенности голоса. Затем эти характеристики используются для идентификации или аутентификации личности.
- Сначала голосовой сигнал делится на небольшие временные фрагменты, называемые фреймами. Так как голосовые характеристики могут изменяться в течение времени, и работа с маленькими фрагментами позволяет более точно анализировать эти изменения.
- Каждый фрейм голосового сигнала затем преобразуется в спектрограмму. Спектрограмма — это график, который показывает, какая частота присутствует в сигнале в зависимости от времени. Это позволяет увидеть, какие частоты наиболее активны в определенный момент времени.
Как перевести фрейм голосового сигнала в спектрограмму?
Этот процесс основан на преобразовании Фурье, который позволяет разложить сложный сигнал на его составляющие частоты.
Когда мы имеем аудиосигнал, например, запись голоса, его можно представить как функцию, которая показывает амплитуду звука в зависимости от времени. Преобразование Фурье позволяет нам разложить этот сигнал на сумму синусоидальных волн разных частот, составляющих его спектр.
Спектрограмма представляет собой визуальное представление этого процесса. Она состоит из двух осей: ось времени и ось частоты. Вдоль оси времени мы видим изменения во времени, а вдоль оси частоты — различные частоты, представленные цветом или яркостью.
Преобразование Фурье применяется к каждому временному фрейму аудиосигнала, который обычно состоит из нескольких миллисекунд звука. Затем для каждого фрейма мы получаем набор амплитуд для различных частот, который может быть представлен в виде спектрограммы.
Спектрограмма помогает нам понять, какие частоты присутствуют в аудиосигнале в определенный момент времени и как эти частоты меняются с течением времени. Это важно для анализа голоса, потому что различные аспекты голоса, такие как высота тона и интонация, связаны с определенными частотами.
- Затем для каждого фрейма вычисляются коэффициенты мел-частотных кепстральных коэффициентов (MFCC). Эти коэффициенты описывают формы спектра голосового сигнала в частотной области. Они получаются путем преобразования спектра в мел-шкалу, которая более соответствует восприятию звука человеческим ухом.
На основе извлеченных MFCC строится модель идентификации. Эта модель может быть обучена распознавать голоса конкретных людей. После того как модель идентификации готова, она может быть использована для сравнения MFCC голоса с эталонами в базе данных. На основе сходства MFCC голоса с эталонами модель определяет, чей голос был записан.
Поэтому для анонимизации голоса важным фактором становится искажение спектрограммы голоса.
Как создать подобный стартап на микроуровне?
Примером такой техники может быть использование автокодировщиков (autoencoders) в глубоком обучении. Автокодировщики состоят из двух частей: энкодера и декодера. Энкодер преобразует входные данные (например, голосовые записи) в компактное представление (latent space), а декодер восстанавливает исходные данные из этого представления. При обучении автокодировщика он учится сжимать и восстанавливать данные, минимизируя потери информации.
Для анонимизации голоса можно использовать модифицированный автокодировщик, который учится представлять голосовые данные в латентном пространстве таким образом, что изменения в этом пространстве несущественны для смысла голоса, но делают его неразличимым для идентификации личности. Например, вместо использования стандартного автокодировщика можно добавить шум к голосовым данным или изменить их частотные характеристики.
Пример кода на Python может выглядеть примерно так:
import numpy as np import tensorflow as tf from tensorflow.keras import layers, models # Сюда загружаем наши голосовые данные voice_data = np.load('voice_data.npy') # Вводим автокодировщик input_shape = voice_data.shape[1:] latent_dim = 64 encoder_inputs = layers.Input(shape=input_shape, name='encoder_input') x = layers.Conv2D(32, 3, activation='relu', strides=2, padding='same')(encoder_inputs) x = layers.Conv2D(64, 3, activation='relu', strides=2, padding='same')(x) x = layers.Flatten()(x) latent_space = layers.Dense(latent_dim, name='latent_space')(x) encoder = models.Model(encoder_inputs, latent_space, name='encoder') decoder_inputs = layers.Input(shape=(latent_dim,), name='decoder_input') x = layers.Dense(64 * 16 * 16, activation='relu')(decoder_inputs) x = layers.Reshape((16, 16, 64))(x) x = layers.Conv2DTranspose(64, 3, activation='relu', strides=2, padding='same')(x) x = layers.Conv2DTranspose(32, 3, activation='relu', strides=2, padding='same')(x) decoder_outputs = layers.Conv2DTranspose(1, 3, activation='sigmoid', padding='same')(x) decoder = models.Model(decoder_inputs, decoder_outputs, name='decoder') autoencoder = models.Model(encoder_inputs, decoder(encoder(encoder_inputs)), name='autoencoder') autoencoder.compile(optimizer='adam', loss='mse') # Обучаем autoencoder.fit(voice_data, voice_data, epochs=10, batch_size=32) |
Для анонимизации голоса с использованием обученного автокодировщика вы можете использовать его энкодер и декодер. Сначала примените энкодер к голосовым данным, чтобы преобразовать их в латентное пространство. Это можно сделать с помощью метода predict модели энкодера.
Обратное преобразование в голосовые данные: Затем примените декодер к полученным из латентного пространства данным, чтобы получить анонимизированные голосовые данные. Это можно сделать аналогично с помощью метода predict модели декодера.
Пример:
# Преобразование в латентное пространство latent_representation = encoder.predict(voice_data) # Обратное преобразование в голосовые данные anon_voice_data = decoder.predict(latent_representation) |
В результате выполнения этого кода переменная anon_voice_data будет содержать анонимизированные голосовые данные. Эти данные можно использовать для обучения моделей без раскрытия личной идентифицирующей информации о голосе.