← Назад в блог

Что такое голосовой отпечаток браузера и как список голосов SpeechSynthesis выдаёт вашу среду

Главное: голосовой отпечаток показывает, какие синтезированные голоса установлены на устройстве. Это перечень настроек, который следует за операционной системой, и ни смена прокси, ни очистка Cookie его не меняют. При проверке согласованности сигналов в мультиаккаунтинге его легко пропустить после Canvas и AudioContext.

«Прокси сменил, Cookie почистил, почему проверка среды всё равно не сходится?» Разбирая аккаунты, вы часто находите ответ в параметрах уровня устройства, и голоса относятся к самым незаметным из них. Сайт не запрашивает доступ к микрофону и не воспроизводит ни звука: одного вызова интерфейса достаточно, чтобы получить перечень, привязанный к настройкам системы.

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

Что такое голосовой отпечаток и чем он отличается от распознавания по голосу?

Голосовой отпечаток строится на настройках синтеза речи, а не на записи с микрофона.

Сначала разделим три понятия. Синтез речи означает способность браузера превращать текст в звук; именно она стоит за озвучиванием страниц. Список голосов задаёт, какие варианты доступны этой функции в текущей среде. Согласно документации MDN, вызов getVoices() возвращает список голосовых объектов, доступных на устройстве. Голосовым отпечатком называют практику, когда сайт берёт признаки из этого списка как ещё один сигнал для опознания среды. Каждое следующее понятие уже предыдущего.

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

Как SpeechSynthesis отдаёт список голосов сайту?

Сайт читает данные через speechSynthesis.getVoices(): одного вызова хватает для полного перечня.

У каждого голосового объекта пять полей, они показаны в таблице:

ПолеЗначениеПримеры значений
nameНазвание голосаMicrosoft David, Samantha
langЯзыковой тегen-US, zh-CN
localServiceЛокальный или облачный синтезtrue локально, false через сеть
defaultГолос по умолчаниюНе более одного на язык
voiceURIАдрес сервиса озвучиванияМожет содержать системные ID

В названии обычно скрыто просто имя человека, а вот voiceURI несёт информацию нижнего уровня. В Firefox на macOS значения выглядят как urn:moz-tts:osx: плюс системный идентификатор. Приватные регистрационные данные голосов уходят наружу через публичный интерфейс.

Есть и деталь, влияющая на результат. В Chrome, Edge и Firefox первый вызов часто возвращает пустой массив, а список заполняется лишь после события voiceschanged. Само время загрузки тоже сигнал: одни браузеры срабатывают сразу, другие с задержкой, а третьи при уже загруженном списке вовсе не срабатывают. В спецификации Web Speech API этот интерфейс до сих пор имеет статус черновика, поэтому детали поведения определяет реализация конкретного браузера.

Какие четыре группы признаков среды выдаёт список голосов?

Отдельное название голоса не говорит ни о чём; различительную силу даёт сочетание позиций списка.

Первая группа: операционная система и устройство. Голоса предоставляет системный сервис озвучивания. На Windows встречаются имена вроде Microsoft David и Zira, на macOS это Samantha и Daniel. Телефоны на Android несут набор от Google. Если на Linux-десктопе сервис озвучивания не установлен, список часто оказывается пустым.

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

Третья группа: различия реализаций браузера. Chrome добавляет облачные голоса Google поверх системных. Поле localService позволяет отделить локальный синтез от сетевого сервиса. На одной машине Chrome и Firefox могут вернуть списки разного состава.

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

Схема четырёх групп признаков среды, которые сайт читает из списка голосов

Чем голосовой отпечаток отличается от отпечатков AudioContext и Canvas?

Все три часто упоминаются рядом, но объекты наблюдения совершенно разные. Взгляните на сравнение:

Метод детектаОбъект наблюденияОсобенность процесса
Голосовой отпечаток SpeechSynthesisСписок доступных голосов и поляЧтение перечня, полная тишина
Отпечаток AudioContextРезультат аудиообработкиВычисления и сравнение вывода
Отпечаток CanvasПризнаки графического выводаРендеринг и сравнение пикселей
Отпечаток шрифтовУстановленные шрифты и рендерингПроверка доступности шрифтов

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

Как проверить, какие голосовые данные видит сайт?

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

  1. Откройте Console в инструментах разработчика, введите speechSynthesis.getVoices() и нажмите Enter, чтобы увидеть результат.
  2. Разверните голосовые объекты и запишите значения name, lang, localService и voiceURI.
  3. Обновите страницу и сразу повторите запрос, сравнив первый вызов с пустым массивом, чтобы убедиться в асинхронной загрузке.
  4. Повторите шаги на другом компьютере или в другой системе и посмотрите, откуда разница: из системного сервиса озвучивания или из реализации браузера.
  5. Подключите прокси и проверьте снова. Список обычно не меняется, что подтверждает: сигнал относится к уровню устройства.

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

Как MostMate управляет голосовыми признаками среды?

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

В MostMate при создании или редактировании среды откройте раздел «Настройки отпечатка» (指纹设置). Там есть отдельный параметр SpeechVoices рядом с Canvas, AudioContext, ClientRects и изображениями WebGL. Режима два: Real и Noise, где Noise означает режим шума.

После выбора Noise в строке SpeechVoices на панели предпросмотра справа появится значение с шестизначным кодом. У Canvas и AudioContext свои коды, они не взаимозаменяемы. Код лишь обозначает шумовую конфигурацию, а реально отдаваемый хеш видно на странице детекта после запуска среды.

Параметр SpeechVoices в настройках отпечатка MostMate

Голосовые параметры не настраивают в отрыве. Операционная система, язык и часовой пояс среды определяют, как должен выглядеть список голосов. Среда Windows с набором голосов macOS выглядит очевидным противоречием. Надёжный порядок такой: сначала зафиксировать систему и прокси, затем сверить параметры уровня устройства, включая голоса. Это надёжнее беспорядочных проб.

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

Частые вопросы

Записывает ли голосовой отпечаток мой голос?

Нет. Процесс не касается микрофона и не воспроизводит звук.

Почему списки голосов на двух компьютерах разные?

Голоса определяются операционной системой, языковыми пакетами и сервисом озвучивания. В Windows и macOS разные встроенные голоса, наборы языковых пакетов не совпадают, и облачные голоса поверх добавляет каждый браузер по-своему. Списки закономерно не сходятся.

Список голосов пуст. Значит, отпечатка нет?

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

Голосовой отпечаток совпадает с отпечатком AudioContext?

Нет, это разные вещи. Голосовой отпечаток читает статический перечень настроек, AudioContext вычисляет динамический результат обработки звука. Пути детекта разные, при проверке среды сверяйте их отдельно.

Может ли MostMate изменить список голосов SpeechSynthesis отдельно?

В продукте это параметр SpeechVoices в настройках отпечатка с режимами Real и Noise. Доступная гранулярность зависит от интерфейса клиента. После настройки откройте страницу детекта в среде и сверьте реально отдаваемый список.

Заключение

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

Со стороны продукта MostMate помещает SpeechVoices в настройки отпечатка вместе с Canvas и AudioContext; режимов два, Real и Noise. С остальными возможностями удобнее всего ознакомиться на сайте MostMate.

Хотите увидеть, что отдаёт ваша среда прямо сейчас: пройдите по шагам из пятого раздела и проверьте список голосов, а затем скачайте MostMate и соберите среду для сравнения.

MOSTMATE

Безопасное управление аккаунтами — это просто

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

  • Независимые профили. Согласованные цифровые идентичности.
  • ИИ-автоматизация · Состояние аккаунтов · Командная работа
Скачать MostMate