Архитектура KWS от Яндекса: как колонка с Алисой выбирает, куда слушать
Исследователи из Яндекса представят на конференции Interspeech 2025 в Роттердаме статью Multichannel Keyword Spotting for Noisy Conditions. Мы поговорили с авторами и узнали, как устроена нейросетевая архитектура KWS (keyword spotting), объединяющая два подхода: мультиканальный вход и attention-механизм для более точного распознавания голосовых команд в шумных помещениях.
Задача: распознавать команды в шуме
В колонках есть задача голосовой активации — нужно, чтобы устройство услышало команду даже когда работает телевизор, пылесос или кто-то говорит фоном. Для улучшения работы в таких условиях можно использовать алгоритмы шумоподавления, как, например, в Zoom. Однако даже если такие модели улучшают звук для пользователей, они могут заметно ухудшать качество для моделей. Скорее всего, это происходит из-за того, что модели шумоподавления обучаются на синтетических данных, а модели голосовой активации — на реальных данных и учатся очищать шумы во внутреннем представлении сигнала.
Решение: несколько микрофонов
Получая информацию с нескольких микрофонов, можно сделать модель шумоподавления ощутимо лучше. Микрофоны расположены в разных точках устройства, и звук доходит до каждого с небольшой задержкой — за счёт этого можно понимать, откуда он пришёл, и подавлять сигнал конкретного направления.
В статье предлагается считать, что основной сигнал в каждый момент времени — это шум. И мы можем всегда очищать это направление. А чтобы услышать активационную фразу пользователя — «Алиса» — для очистки использовать направления сигнала секунду назад. Такой подход помогает убрать шумы, не затрагивая голосовую команду.
Но тогда возникает риск подавить голос пользователя, если он говорил до этого. Поэтому канал после шумоподавления не используется отдельно, а подаётся вместе с обычным. Чтобы модель могла выбрать между ними, добавили модуль attention. Он получает оба сигнала, вычисляет веса для частот каждого канала и складывает их с этими весами. В итоге на вход основной модели поступает комбинированный сигнал.
Архитектура: SVDF E2E + Attention + ANC
В основе модели — SVDF E2E. Это базовая архитектура, которая уже используется в проде Алисы. Добавляются механизм внимания и блок адаптивного шумоподавления Adaptive Noise Cancellation (ANC).
В статье эту архитектуру сравнивают с другими подходами. Приходят к выводу, что, например, Beamforming хоть и усиливает голос с нужного направления, но в целом работает хуже. Ещё пробовали вариант с двумя отдельными моделями, где каждая обрабатывает свой канал, а активация срабатывает, если сработала хотя бы одна модель. Такой способ даёт худшее качество и требует больше параметров. Удивительнее всего было увидеть, что Ensemble дает качество хуже, чем агрегация с помощью attention. Модель не просто выбирает звуковой сигнал, который нужно слушать, а некоторую комбинацию из звуковых каналов.
Полученные результаты: FRR — 5,5% при FA/h = 0,1. FRR отвечает за отзывчивость, а fah — за ложные срабатывания, и в обоих случаях — чем меньше, тем лучше. Этот результат превосходит Beamforming (6,7%) и Ensemble (6,4%). При этом модель остаётся компактной и не требует дополнительных ресурсов.
Обучение на двух датасетах
Модель обучалась и тестировалась на двух датасетах. Лабораторный — содержит 900 симулированных шумовых сцен (улица, кухня, пылесос и прочее) с разными голосами и уровнями шума. Полевой — это 10 млн анонимизированных примеров команд.
Технология, описанная в статье, проверена временем: она в проде с 2022 года и сейчас используется во всех современных колонках с Алисой. Архитектура хорошо масштабируется на edge-устройства — смарт-колонки и другие бытовые ИИ. В перспективе тот же механизм можно использовать, чтобы выбирать наилучший звуковой канал для передачи в облако.
Speech Info
Исследователи из Яндекса представят на конференции Interspeech 2025 в Роттердаме статью Multichannel Keyword Spotting for Noisy Conditions. Мы поговорили с авторами и узнали, как устроена нейросетевая архитектура KWS (keyword spotting), объединяющая два подхода: мультиканальный вход и attention-механизм для более точного распознавания голосовых команд в шумных помещениях.
Задача: распознавать команды в шуме
В колонках есть задача голосовой активации — нужно, чтобы устройство услышало команду даже когда работает телевизор, пылесос или кто-то говорит фоном. Для улучшения работы в таких условиях можно использовать алгоритмы шумоподавления, как, например, в Zoom. Однако даже если такие модели улучшают звук для пользователей, они могут заметно ухудшать качество для моделей. Скорее всего, это происходит из-за того, что модели шумоподавления обучаются на синтетических данных, а модели голосовой активации — на реальных данных и учатся очищать шумы во внутреннем представлении сигнала.
Решение: несколько микрофонов
Получая информацию с нескольких микрофонов, можно сделать модель шумоподавления ощутимо лучше. Микрофоны расположены в разных точках устройства, и звук доходит до каждого с небольшой задержкой — за счёт этого можно понимать, откуда он пришёл, и подавлять сигнал конкретного направления.
В статье предлагается считать, что основной сигнал в каждый момент времени — это шум. И мы можем всегда очищать это направление. А чтобы услышать активационную фразу пользователя — «Алиса» — для очистки использовать направления сигнала секунду назад. Такой подход помогает убрать шумы, не затрагивая голосовую команду.
Но тогда возникает риск подавить голос пользователя, если он говорил до этого. Поэтому канал после шумоподавления не используется отдельно, а подаётся вместе с обычным. Чтобы модель могла выбрать между ними, добавили модуль attention. Он получает оба сигнала, вычисляет веса для частот каждого канала и складывает их с этими весами. В итоге на вход основной модели поступает комбинированный сигнал.
Архитектура: SVDF E2E + Attention + ANC
В основе модели — SVDF E2E. Это базовая архитектура, которая уже используется в проде Алисы. Добавляются механизм внимания и блок адаптивного шумоподавления Adaptive Noise Cancellation (ANC).
В статье эту архитектуру сравнивают с другими подходами. Приходят к выводу, что, например, Beamforming хоть и усиливает голос с нужного направления, но в целом работает хуже. Ещё пробовали вариант с двумя отдельными моделями, где каждая обрабатывает свой канал, а активация срабатывает, если сработала хотя бы одна модель. Такой способ даёт худшее качество и требует больше параметров. Удивительнее всего было увидеть, что Ensemble дает качество хуже, чем агрегация с помощью attention. Модель не просто выбирает звуковой сигнал, который нужно слушать, а некоторую комбинацию из звуковых каналов.
Полученные результаты: FRR — 5,5% при FA/h = 0,1. FRR отвечает за отзывчивость, а fah — за ложные срабатывания, и в обоих случаях — чем меньше, тем лучше. Этот результат превосходит Beamforming (6,7%) и Ensemble (6,4%). При этом модель остаётся компактной и не требует дополнительных ресурсов.
Обучение на двух датасетах
Модель обучалась и тестировалась на двух датасетах. Лабораторный — содержит 900 симулированных шумовых сцен (улица, кухня, пылесос и прочее) с разными голосами и уровнями шума. Полевой — это 10 млн анонимизированных примеров команд.
Технология, описанная в статье, проверена временем: она в проде с 2022 года и сейчас используется во всех современных колонках с Алисой. Архитектура хорошо масштабируется на edge-устройства — смарт-колонки и другие бытовые ИИ. В перспективе тот же механизм можно использовать, чтобы выбирать наилучший звуковой канал для передачи в облако.
Speech Info
🔥18❤6👍6
Обзор статей с ICASSP 25. Часть 4: другие интересные статьи
В заключительной части — три статьи: оценка качества аудио с помощью self-supervised-моделей, сравнение претрейнов для speaker recognition и новый подход к мультиспикерной ASR с учётом информации о говорящем. Предыдущие части: 1, 2, 3.
Distillation and Pruning for Scalable Self-Supervised Representation-Based Speech Quality Assessment
Авторы предлагают модель оценки качества речи на базе XLS-R. Сначала они обучают большую модель (XLS-R-SQA) на разных датасетах, включая Zoom-звонки, синтетические и музыкальные данные. Чтобы учесть различия между датасетами, в архитектуру добавляют обучаемые scale и shift для каждого из них. На инференсе используется общий вариант модели, который, судя по результатам, хорошо работает на разных типах данных. Но полученная модель слишком большая, чтобы использовать её для оценки качества шумоподавления.
Чтобы её уменьшить используют два способа: дистиллируют в меньшую (DistillMOS) и обрезку параметров (PruneMOS). Обе версии показывают стабильное качество на звонках, синтетических и музыкальных датасетах.
Авторы сравнивают полученные модели с DNSMOS — популярной системой оценки качества для шумоподавления, обученной на данных DNS Challenge. Показывают, что DNSMOS хорошо работает на звонках, но хуже обобщается на другие домены данных.
Основной вывод: DistillMOS и PruneMOS достигают сопоставимого качества при меньшем размере и лучше обобщаются за пределами звонковых сетов. Однако использовать предполагается именно DistillMOS, потому что прунинг работает лучше при достаточно в большом количестве параметров.
In Search of Optimal Pretraining Strategy for Robust Speaker Recognition
Статья от российских авторов, которые изучают, как выбор претрейна влияет на устойчивость speaker verification моделей. Они используют TDNN-архитектуру поверх разных замороженных энкодеров: HuBERT, W2V, ASR-TDNN, и оценивают её на нескольких открытых датасетах.
На VOiCES и VoxCeleb1 системы на self-supervised фичах показывают сопоставимые или немного лучшие результаты по сравнению с бейзлайнами вроде ECAPA-TDNN и CAM++. Однако основное внимание в статье уделено обобщающей способности. На SRE'16, '19 и '21 (модели не обучались на этих датасетах) наименьший EER достигается при использовании ASR-претрейна и его фьюжена с другими энкодерами. Например, на SRE’19 CAM++ даёт 13.88, ASR-TDNN — 16.42, а их фьюжен — 9.66.
Авторы также анализируют влияние масштаба энкодера на переносимость. Эксперименты показывают, что более крупные энкодеры (например, обученные на LibriSpeech и VoxCeleb) помогают лучше обобщаться, даже если downstream TDNN остаётся компактным.
META-CAT: Speaker-Informed Speech Embeddings via Meta Information Concatenation for Multi-talker ASR
Авторы исследуют задачу мультиспикерной ASR: модель должна распознавать речь сразу нескольких говорящих и приписывать реплики каждому из них. Решение основано на использовании speaker-aware эмбеддингов, собранных через элементное перемножение двух компонентов: ASR-эмбеддингов и вероятностей принадлежности каждого временного кадра конкретному спикеру.
Модель состоит из замороженного энкодера для диаризации и обучаемых компонентов — ASR-энкодера, speaker encoding слоя и RNNT-декодера. На вход модель получает аудио с несколькими спикерами и (опционально) короткий «query»-пример нужного говорящего. Выходом становится либо полная транскрипция с разметкой по спикерам (MS-ASR), либо только текст нужного говорящего (TS-ASR).
Ключевая часть архитектуры — блок speaker encoding. Он принимает ASR-эмбеддинги и вероятности по спикерам (из диаризации) и формирует многомерное представление, в котором каждый из каналов отвечает за конкретного спикера. Это представление затем поступает в декодер.
Авторы отдельно отмечают, что модель можно использовать и в сценарии, где нужно отслеживать только одного говорящего. В будущей работе авторы обещают поддержку стриминга.
Алексей Рак❣ Специально для Speech Info
В заключительной части — три статьи: оценка качества аудио с помощью self-supervised-моделей, сравнение претрейнов для speaker recognition и новый подход к мультиспикерной ASR с учётом информации о говорящем. Предыдущие части: 1, 2, 3.
Distillation and Pruning for Scalable Self-Supervised Representation-Based Speech Quality Assessment
Авторы предлагают модель оценки качества речи на базе XLS-R. Сначала они обучают большую модель (XLS-R-SQA) на разных датасетах, включая Zoom-звонки, синтетические и музыкальные данные. Чтобы учесть различия между датасетами, в архитектуру добавляют обучаемые scale и shift для каждого из них. На инференсе используется общий вариант модели, который, судя по результатам, хорошо работает на разных типах данных. Но полученная модель слишком большая, чтобы использовать её для оценки качества шумоподавления.
Чтобы её уменьшить используют два способа: дистиллируют в меньшую (DistillMOS) и обрезку параметров (PruneMOS). Обе версии показывают стабильное качество на звонках, синтетических и музыкальных датасетах.
Авторы сравнивают полученные модели с DNSMOS — популярной системой оценки качества для шумоподавления, обученной на данных DNS Challenge. Показывают, что DNSMOS хорошо работает на звонках, но хуже обобщается на другие домены данных.
Основной вывод: DistillMOS и PruneMOS достигают сопоставимого качества при меньшем размере и лучше обобщаются за пределами звонковых сетов. Однако использовать предполагается именно DistillMOS, потому что прунинг работает лучше при достаточно в большом количестве параметров.
In Search of Optimal Pretraining Strategy for Robust Speaker Recognition
Статья от российских авторов, которые изучают, как выбор претрейна влияет на устойчивость speaker verification моделей. Они используют TDNN-архитектуру поверх разных замороженных энкодеров: HuBERT, W2V, ASR-TDNN, и оценивают её на нескольких открытых датасетах.
На VOiCES и VoxCeleb1 системы на self-supervised фичах показывают сопоставимые или немного лучшие результаты по сравнению с бейзлайнами вроде ECAPA-TDNN и CAM++. Однако основное внимание в статье уделено обобщающей способности. На SRE'16, '19 и '21 (модели не обучались на этих датасетах) наименьший EER достигается при использовании ASR-претрейна и его фьюжена с другими энкодерами. Например, на SRE’19 CAM++ даёт 13.88, ASR-TDNN — 16.42, а их фьюжен — 9.66.
Авторы также анализируют влияние масштаба энкодера на переносимость. Эксперименты показывают, что более крупные энкодеры (например, обученные на LibriSpeech и VoxCeleb) помогают лучше обобщаться, даже если downstream TDNN остаётся компактным.
META-CAT: Speaker-Informed Speech Embeddings via Meta Information Concatenation for Multi-talker ASR
Авторы исследуют задачу мультиспикерной ASR: модель должна распознавать речь сразу нескольких говорящих и приписывать реплики каждому из них. Решение основано на использовании speaker-aware эмбеддингов, собранных через элементное перемножение двух компонентов: ASR-эмбеддингов и вероятностей принадлежности каждого временного кадра конкретному спикеру.
Модель состоит из замороженного энкодера для диаризации и обучаемых компонентов — ASR-энкодера, speaker encoding слоя и RNNT-декодера. На вход модель получает аудио с несколькими спикерами и (опционально) короткий «query»-пример нужного говорящего. Выходом становится либо полная транскрипция с разметкой по спикерам (MS-ASR), либо только текст нужного говорящего (TS-ASR).
Ключевая часть архитектуры — блок speaker encoding. Он принимает ASR-эмбеддинги и вероятности по спикерам (из диаризации) и формирует многомерное представление, в котором каждый из каналов отвечает за конкретного спикера. Это представление затем поступает в декодер.
Авторы отдельно отмечают, что модель можно использовать и в сценарии, где нужно отслеживать только одного говорящего. В будущей работе авторы обещают поддержку стриминга.
Алексей Рак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5🔥2
Voxtral
Сегодня разбираем статью об опенсорсной модели Voxtral от Mistral AI. Ключевая идея решения в том, чтобы к уже обученной текстовой LLM «прикрутить» аудио. Для этого используют готовый ASR-энкодер (Whisper) и адаптер, после чего ответы генерирует языковой декодер. Аудио режут на фрагменты по 30 секунд, обрабатывают их энкодером, склеивают эмбеддинги и прореживают в четыре раза в адаптере, уменьшая длину последовательности. На вход декодеру можно подать и текстовые токены, например вопрос или инструкцию.
Есть две версии модели. В составе Mini-версии — аудиоэнкодер на 640 млн параметров, адаптер на 25 млн, текстовые эмбеддинги на 400 млн и декодер на ~3,6 млрд (всего ~4,7 млрд); в Small — аналогичный аудиоэнкодер и адаптер на 52 млн, но уже 670 млн в эмбеддингах и 22,9 млрд в декодере (всего ~24,3 млрд). Контекст аудиоветки — до 32 тысяч токенов, что соответствует примерно 40 минутам звука.
Для предобучения длинное аудио сначала размечают (VAD → транскрипция → диаризация), затем разбивают на пары (Aₙ, Tₙ) и учат на двух паттернах: repetition, где по аудио восстанавливают его транскрипцию, и continuation, где по аудио восстанавливают следующий текст. На первом проходе замораживают аудиоэнкодер и языковой декодер, обучая только адаптер — это заметно помогает в задачах понимания речи, тогда как на чистом ASR почти не сказывается.
Стадия SFT нужна, чтобы модель умела больше, чем просто распознавание речи. Датасет SFT состоит из синтетических примеров. В случае, когда инструкция передается текстом для длинных аудио, транскрипцию из ASR обрабатывает LLM, генерируя пары «вопрос-ответ». Если же инструкция задана в аудио формате, то авторы адаптируют текстовые SFT-датасеты с помощью озвучки инструкций через предобученную TTS-модель.
Есть и стадия RL/DPO-подобного обучения по парам ответов, которая даёт выигрыш в основном на маленькой модели. При этом для задачи ASR на большой модели данный этап даже снижал качество, поэтому в релиз он не вошёл.
Авторы отдельно показывают, что обучение только на interleaved-паттерне портит ASR, а только на ASR-паттерне — не даёт навыков понимания. Смешение двух задач примерно 50/50 даёт хороший баланс распознавания и понимания.
В бенчмарках Voxtral улучшает Whisper (взятый за энкодер) и показывает SOTA среди открытых моделей на части тестов по ASR. В переводе речи и аудиопонимании результаты конкурентны открытым моделям, а по синтетическим мультимодальным тестам на озвученных TTS данных местами уступают проприетарным системам уровня GPT-4o и Gemini. При этом текстовые навыки LLM после добавления аудио практически не страдают.
Влад Батаев❣ Специально для Speech Info
Сегодня разбираем статью об опенсорсной модели Voxtral от Mistral AI. Ключевая идея решения в том, чтобы к уже обученной текстовой LLM «прикрутить» аудио. Для этого используют готовый ASR-энкодер (Whisper) и адаптер, после чего ответы генерирует языковой декодер. Аудио режут на фрагменты по 30 секунд, обрабатывают их энкодером, склеивают эмбеддинги и прореживают в четыре раза в адаптере, уменьшая длину последовательности. На вход декодеру можно подать и текстовые токены, например вопрос или инструкцию.
Есть две версии модели. В составе Mini-версии — аудиоэнкодер на 640 млн параметров, адаптер на 25 млн, текстовые эмбеддинги на 400 млн и декодер на ~3,6 млрд (всего ~4,7 млрд); в Small — аналогичный аудиоэнкодер и адаптер на 52 млн, но уже 670 млн в эмбеддингах и 22,9 млрд в декодере (всего ~24,3 млрд). Контекст аудиоветки — до 32 тысяч токенов, что соответствует примерно 40 минутам звука.
Для предобучения длинное аудио сначала размечают (VAD → транскрипция → диаризация), затем разбивают на пары (Aₙ, Tₙ) и учат на двух паттернах: repetition, где по аудио восстанавливают его транскрипцию, и continuation, где по аудио восстанавливают следующий текст. На первом проходе замораживают аудиоэнкодер и языковой декодер, обучая только адаптер — это заметно помогает в задачах понимания речи, тогда как на чистом ASR почти не сказывается.
Стадия SFT нужна, чтобы модель умела больше, чем просто распознавание речи. Датасет SFT состоит из синтетических примеров. В случае, когда инструкция передается текстом для длинных аудио, транскрипцию из ASR обрабатывает LLM, генерируя пары «вопрос-ответ». Если же инструкция задана в аудио формате, то авторы адаптируют текстовые SFT-датасеты с помощью озвучки инструкций через предобученную TTS-модель.
Есть и стадия RL/DPO-подобного обучения по парам ответов, которая даёт выигрыш в основном на маленькой модели. При этом для задачи ASR на большой модели данный этап даже снижал качество, поэтому в релиз он не вошёл.
Авторы отдельно показывают, что обучение только на interleaved-паттерне портит ASR, а только на ASR-паттерне — не даёт навыков понимания. Смешение двух задач примерно 50/50 даёт хороший баланс распознавания и понимания.
В бенчмарках Voxtral улучшает Whisper (взятый за энкодер) и показывает SOTA среди открытых моделей на части тестов по ASR. В переводе речи и аудиопонимании результаты конкурентны открытым моделям, а по синтетическим мультимодальным тестам на озвученных TTS данных местами уступают проприетарным системам уровня GPT-4o и Gemini. При этом текстовые навыки LLM после добавления аудио практически не страдают.
Влад Батаев
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤6👍4🤩1👀1
Интересные статьи на Interspeech 2025
В Роттердаме проходит Interspeech 2025, крупнейшая мировая конференция по речевым технологиям. Тема этого года — Fair and Inclusive Speech Science and Technology. Спешим поделиться двумя интересными статьями от Alibaba Group (создателей Cosy Voice, около-SOTA TTS-модели).
Long-Context Speech Synthesis with Context-Aware Memory
Для сохранения контекста и натуральности синтеза длинных предложений авторы предлагают механизм памяти — раздельно для текста и звука, — который авторегрессионно обновляется. При обучении история поддерживается на уровне параграфа.
Differentiable Reward Optimization for LLM based TTS system
В работе предложили метод вычисления reward-функции напрямую из токенов аудиокодека с помощью Multi-Task Reward. Модель одновременно оценивает несколько аспектов синтеза: точность произношения (через задачу ASR), эмоциональную окраску (SER), качество звучания (SQA), а также характеристики говорящего — пол и возраст. Для дифференцируемости используют Gumbel-Softmax. Главные результаты: SOTA на SEED-TTS, а также возможность контролировать в TTS-системе эмоции, пол, возраст и MOS (Mean Opinion Score).
Работы отобрал❣ Дмитрий Попов
Speech Info
В Роттердаме проходит Interspeech 2025, крупнейшая мировая конференция по речевым технологиям. Тема этого года — Fair and Inclusive Speech Science and Technology. Спешим поделиться двумя интересными статьями от Alibaba Group (создателей Cosy Voice, около-SOTA TTS-модели).
Long-Context Speech Synthesis with Context-Aware Memory
Для сохранения контекста и натуральности синтеза длинных предложений авторы предлагают механизм памяти — раздельно для текста и звука, — который авторегрессионно обновляется. При обучении история поддерживается на уровне параграфа.
Differentiable Reward Optimization for LLM based TTS system
В работе предложили метод вычисления reward-функции напрямую из токенов аудиокодека с помощью Multi-Task Reward. Модель одновременно оценивает несколько аспектов синтеза: точность произношения (через задачу ASR), эмоциональную окраску (SER), качество звучания (SQA), а также характеристики говорящего — пол и возраст. Для дифференцируемости используют Gumbel-Softmax. Главные результаты: SOTA на SEED-TTS, а также возможность контролировать в TTS-системе эмоции, пол, возраст и MOS (Mean Opinion Score).
Работы отобрал
Speech Info
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤7❤🔥3
В этом году Яндекс привёз на Interspeech статью Multichannel Keyword Spotting for Noisy Conditions о нейросетевой архитектуре KWS.
Решение объединяет мультиканальный вход и attention-механизм для более точного распознавания голосовых команд в шумных помещениях.
Подробнее о работе рассказывали здесь, а теперь делимся маленьким фоторепортажем с постера!
Speech Info
Решение объединяет мультиканальный вход и attention-механизм для более точного распознавания голосовых команд в шумных помещениях.
Подробнее о работе рассказывали здесь, а теперь делимся маленьким фоторепортажем с постера!
Speech Info
❤18🔥10👏7👍2
Сегодня завершается Interspeech 2025
Под занавес конференции делимся несколькими атмосферными фото и видео:
— Фрагмент Show&Tell-сессии с физической моделью голосового тракта. Редкий случай, когда на конференции показывают не абстрактные алгоритмы, а реальную говорящую машину.
— Команда Яндекса — как обычно, в эпицентре идей и технологий.
— Анонс Interspeech 2026: в следующем году встречаемся в Сиднее!
Speech Info
Под занавес конференции делимся несколькими атмосферными фото и видео:
— Фрагмент Show&Tell-сессии с физической моделью голосового тракта. Редкий случай, когда на конференции показывают не абстрактные алгоритмы, а реальную говорящую машину.
— Команда Яндекса — как обычно, в эпицентре идей и технологий.
— Анонс Interspeech 2026: в следующем году встречаемся в Сиднее!
Speech Info
👍9🔥5😁3🙏1
Streaming Sortformer: Speaker Cache-Based Online Speaker Diarization with Arrival-Time Ordering
Сегодня разбираем статью с Interspeech 2025 от NVIDIA, посвящённую стриминговой end-to-end-диаризации спикеров с использованием Arrival-Time Ordering Cache. Основное применение — интеграция в multi-talker ASR. На конференции статью представлял основной автор, исследователь NVIDIA, Иван Меденников.
В работе представляют улучшение предыдущей модели Sortformer, в которой были предложены архитектура с Sort Loss и метод выравнивания сегментов диаризации с токенами ASR. Ключевой новинкой стал Arrival-Order Speaker Cache (AOSC) — кэш эмбеддингов спикеров, упорядоченных по времени появления. Модель работает в скользящем окне: в кэш добавляются фреймы с наивысшими оценками уверенности для каждого спикера, с динамическим распределением (минимум K фреймов на спикера и silence embeddings для переходов).
Интересные аспекты:
— Sort Loss (сортирует спикеров по времени появления, в отличие от attractor-based EEND) не заменяет полностью PIL, но их комбинация работает лучше, так как Sort Loss выполяет функцию регуляризации.
— Стриминговая версия превосходит офлайн-версию на длинных записях, устраняя train-inference mismatch (обучение на 90-секундных сегментах vs произвольная длина теста).
— Инициализация от предобученного офлайн Sortformer полезна, но fine-tuning с AOSC обязателен, так как фреймы в кэше могут быть непоследовательными.
— Обучение проводилось на 5150 часах симулированных смесей и 2030 часах реальных данных. С синтетикой нужно быть осторожными: модель склонна к оверфиту на background noise.
Эксперименты показывают SOTA для E2E-онлайн-диаризации с достаточно низкой latency.
Ограничения модели следующие: фиксированное максимальное число спикеров (4 в работе), масштабирование требует данных с большим числом дикторов и растёт вычислительная сложность PIL (O(N!) для перестановок).
Дмитрий Попов❣ Специально для Speech Info
Сегодня разбираем статью с Interspeech 2025 от NVIDIA, посвящённую стриминговой end-to-end-диаризации спикеров с использованием Arrival-Time Ordering Cache. Основное применение — интеграция в multi-talker ASR. На конференции статью представлял основной автор, исследователь NVIDIA, Иван Меденников.
В работе представляют улучшение предыдущей модели Sortformer, в которой были предложены архитектура с Sort Loss и метод выравнивания сегментов диаризации с токенами ASR. Ключевой новинкой стал Arrival-Order Speaker Cache (AOSC) — кэш эмбеддингов спикеров, упорядоченных по времени появления. Модель работает в скользящем окне: в кэш добавляются фреймы с наивысшими оценками уверенности для каждого спикера, с динамическим распределением (минимум K фреймов на спикера и silence embeddings для переходов).
Интересные аспекты:
— Sort Loss (сортирует спикеров по времени появления, в отличие от attractor-based EEND) не заменяет полностью PIL, но их комбинация работает лучше, так как Sort Loss выполяет функцию регуляризации.
— Стриминговая версия превосходит офлайн-версию на длинных записях, устраняя train-inference mismatch (обучение на 90-секундных сегментах vs произвольная длина теста).
— Инициализация от предобученного офлайн Sortformer полезна, но fine-tuning с AOSC обязателен, так как фреймы в кэше могут быть непоследовательными.
— Обучение проводилось на 5150 часах симулированных смесей и 2030 часах реальных данных. С синтетикой нужно быть осторожными: модель склонна к оверфиту на background noise.
Эксперименты показывают SOTA для E2E-онлайн-диаризации с достаточно низкой latency.
Ограничения модели следующие: фиксированное максимальное число спикеров (4 в работе), масштабирование требует данных с большим числом дикторов и растёт вычислительная сложность PIL (O(N!) для перестановок).
Дмитрий Попов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7🔥6👀1
Audio Flamingo 3
Сегодня разбираем статью о модели Audio Flamingo 3, в которой авторы предлагают новый энкодер AF-Whisper. Одно из его ключевых отличий — умение обрабатывать все три типа аудио: речь, звуки и музыку. По словам авторов, большинство аудио-LLM используют три отдельных энкодера для этих задач.
Основной вклад работы, который отмечают в статье: новый аудиоэнкодер, использование chain-of-thought, поддержка multi-turn-диалогов, понимание длинных записей и voice-to-voice-диалоги. Кроме этого, модель полностью в открытом доступе, включая код обучения и использованные датасеты.
Что касается бенчмарков, авторы сравнились как с опенсорсными, так и с проприетарными решениями — модель везде показала лучшие результаты. Наиболее близкой они считают GPT-4 Audio, но при этом отмечают её закрытость.
Архитектура
AF-Whisper построен на базе Whisper, который дообучили вместе с LLM. Есть недостаток — модель не стриминговая: работает с 30-секундными фрагментами звука, обрабатывая соседние куски без маскировки, а затем собирает аудио произвольной длины. Whisper разморозили, добавили адаптер с кросс-аттеншеном (как в Audio Flamingo 2) и сгенерировали синтетические описания готовых аудио с помощью GPT-4.1.
Этапы обучения
Сначала обучают только адаптер, чтобы не повредить энкодер и LLM. Затем идёт совместное обучение энкодера и адаптера, после чего следуют дополнительные стадии: 1) SFT — разморожена вся сеть; 2) расширение контекста и reasoning — разморожена только LLM; 3) для добавления диалогов снова разморожена вся сеть.
Данные
Основная часть статьи посвящена описанию данных. Первая и вторая стадии используют пост-опенсорсные датасеты, конвертированные в единый формат: например, в задачах ASR модель явно просили выполнить транскрибацию. Далее идёт стадия Audio Skills XL с добавлением пар «вопрос-ответ».
Авторы отмечают, что одного ASR и классификации аудио по открытым датасетам недостаточно для появления reasoning, поэтому они генерируют дополнительные данные:
— берут 30-секундные аудиофрагменты;
— создают датасет из 4,5 млн новых вопросов-ответов, в основном multi-choice;
— источники — YouTube8M, Music4All, Million Song Dataset;
— на основе метаданных и аудио GPT-4.1 генерирует промпты и ответы.
Для описания звуковых событий применяют аналогичный подход, используя также Audio Flamingo 2, который умеет давать базовые описания.
Reasoning
Отдельный датасет сделали для длинных аудио с задачами на рассуждение. Разметку reasoning добавляли в небольшое число сэмплов и прямо на уровне промпта просили модель объяснить ход рассуждений. Ответы — до 40 слов. Префиксы для reasoning генерировали в Gemini, так как он давал меньше галлюцинаций.
Примеры решаемых задач: определение сарказма и эмоционального состояния, извлечение информации из длинного аудио, определение порядка событий, суммаризация,
отслеживание смены темы разговора.
Multi-turn-диалоги
Последним этапом авторы добавили данные для естественных многошаговых диалогов — 75 тысяч примеров, сгенерированных GPT.
Инфраструктура
Обучение проводили на кластере из 128 A100. Авторы отмечают, что ключ к качественной модели — чистый датасет. В экспериментах вариант с reasoning давал заметный прирост качества.
Всеволод Ковшов❣ Специально для Speech Info
Сегодня разбираем статью о модели Audio Flamingo 3, в которой авторы предлагают новый энкодер AF-Whisper. Одно из его ключевых отличий — умение обрабатывать все три типа аудио: речь, звуки и музыку. По словам авторов, большинство аудио-LLM используют три отдельных энкодера для этих задач.
Основной вклад работы, который отмечают в статье: новый аудиоэнкодер, использование chain-of-thought, поддержка multi-turn-диалогов, понимание длинных записей и voice-to-voice-диалоги. Кроме этого, модель полностью в открытом доступе, включая код обучения и использованные датасеты.
Что касается бенчмарков, авторы сравнились как с опенсорсными, так и с проприетарными решениями — модель везде показала лучшие результаты. Наиболее близкой они считают GPT-4 Audio, но при этом отмечают её закрытость.
Архитектура
AF-Whisper построен на базе Whisper, который дообучили вместе с LLM. Есть недостаток — модель не стриминговая: работает с 30-секундными фрагментами звука, обрабатывая соседние куски без маскировки, а затем собирает аудио произвольной длины. Whisper разморозили, добавили адаптер с кросс-аттеншеном (как в Audio Flamingo 2) и сгенерировали синтетические описания готовых аудио с помощью GPT-4.1.
Этапы обучения
Сначала обучают только адаптер, чтобы не повредить энкодер и LLM. Затем идёт совместное обучение энкодера и адаптера, после чего следуют дополнительные стадии: 1) SFT — разморожена вся сеть; 2) расширение контекста и reasoning — разморожена только LLM; 3) для добавления диалогов снова разморожена вся сеть.
Данные
Основная часть статьи посвящена описанию данных. Первая и вторая стадии используют пост-опенсорсные датасеты, конвертированные в единый формат: например, в задачах ASR модель явно просили выполнить транскрибацию. Далее идёт стадия Audio Skills XL с добавлением пар «вопрос-ответ».
Авторы отмечают, что одного ASR и классификации аудио по открытым датасетам недостаточно для появления reasoning, поэтому они генерируют дополнительные данные:
— берут 30-секундные аудиофрагменты;
— создают датасет из 4,5 млн новых вопросов-ответов, в основном multi-choice;
— источники — YouTube8M, Music4All, Million Song Dataset;
— на основе метаданных и аудио GPT-4.1 генерирует промпты и ответы.
Для описания звуковых событий применяют аналогичный подход, используя также Audio Flamingo 2, который умеет давать базовые описания.
Reasoning
Отдельный датасет сделали для длинных аудио с задачами на рассуждение. Разметку reasoning добавляли в небольшое число сэмплов и прямо на уровне промпта просили модель объяснить ход рассуждений. Ответы — до 40 слов. Префиксы для reasoning генерировали в Gemini, так как он давал меньше галлюцинаций.
Примеры решаемых задач: определение сарказма и эмоционального состояния, извлечение информации из длинного аудио, определение порядка событий, суммаризация,
отслеживание смены темы разговора.
Multi-turn-диалоги
Последним этапом авторы добавили данные для естественных многошаговых диалогов — 75 тысяч примеров, сгенерированных GPT.
Инфраструктура
Обучение проводили на кластере из 128 A100. Авторы отмечают, что ключ к качественной модели — чистый датасет. В экспериментах вариант с reasoning давал заметный прирост качества.
Всеволод Ковшов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤7👍5
Интересные статьи на Speech Synthesis Workshop 1/2
Speech Synthesis Workshop — это воркшоп, который проходит при конференции Interspeech. В этом году разработчик службы синтеза речи Дарья Дятлова побывала на мероприятии и поделилась интересными статьями.
Analyzing and Improving Speaker Similarity Assessment for Speech Synthesis
Авторы сравнивают схожесть оригинального голоса спикера и синтезированного моделью с помощью автоматической метрики. Выдеяют четыре тезиса-предпосылки.
1. Обычно для такого сравнения используют косинусную близость двух векторов, полученных из эмбедов модели для верификации спикеров (SV). Лучшая SV-модель — не всегда лучший экстрактор фичей для метрики схожести спикеров.
2. Характеристики голоса спикера можно разделить на две группы. Первые — спектральные — статичны и не меняются от записи. По ним легко отделить одного спикера от другого. Вторые — темп, длительность, громкость речи — динамичны и могут меняться от записи к записи. Эмбеддинги большинства моделей для SV не содержат информации о динамических характеристиках аудио.
3. Эмбединги моделей SV содержат информацию о чистоте сигнала и длительности аудио — это не прямая характеристика голоса спикера, а определенный баес датасета или TTS-модели. При конструировании метрики на основе этих эмбедингов стоит иметь это ввиду и применять определённые фильтры, которые помогают сгладить эффект.
4. Грубым способом оценки ритма может быть оценка темпа речи спикера. Однако такой способ — сравнение средних величин количества слогов на секунду аудио — признак с плохой разделительной способностью.
Что предложили
В статье предложили метрику U3D (Unit Duration Distribution Distance), которая оценивает одну из динамических характеристик речи спикера — её ритм. Метрика основана на сравнении распределений длительности групп фонем. Это не фонемы в буквальном смысле (они извлекаются в unsupervised-сетапе путём кластеризации эмбеддингов HuBERT), но дальше для простоты буду называть их фонемами.
Каждому элементу в последовательности из спич-юнитов присваивается индекс ближайшей к нему фонемы, после чего последовательность разделяется на сегменты идущих друг за другом фонем. Для каждой фонемы считается длительность в количестве спич-юнитов для каждой записи спикера. Затем тестовая и контрольная выборки распределений сравниваются через метрику Вассерштейна. В результате авторы показали, что метрика обладает высокой разделительной способностью и робастна к сравнению схожих спикеров.
Почему это круто
Большая часть статьи посвящена не самой метрике, а подводке к тому, зачем вообще она нужна и почему не всегда достаточно просто считать косинусную близость между эмбедами какой-то модели верификации спикеров и называть это speaker-similarity.
Пайплайн unsupervised-разметки легко адаптируется и хорошо ложится не только на задачу ритма и не только для подсчёта метрики.
Продолжение следует.
Дарья Дятлова❣ Специально для Speech Info
Speech Synthesis Workshop — это воркшоп, который проходит при конференции Interspeech. В этом году разработчик службы синтеза речи Дарья Дятлова побывала на мероприятии и поделилась интересными статьями.
Analyzing and Improving Speaker Similarity Assessment for Speech Synthesis
Авторы сравнивают схожесть оригинального голоса спикера и синтезированного моделью с помощью автоматической метрики. Выдеяют четыре тезиса-предпосылки.
1. Обычно для такого сравнения используют косинусную близость двух векторов, полученных из эмбедов модели для верификации спикеров (SV). Лучшая SV-модель — не всегда лучший экстрактор фичей для метрики схожести спикеров.
2. Характеристики голоса спикера можно разделить на две группы. Первые — спектральные — статичны и не меняются от записи. По ним легко отделить одного спикера от другого. Вторые — темп, длительность, громкость речи — динамичны и могут меняться от записи к записи. Эмбеддинги большинства моделей для SV не содержат информации о динамических характеристиках аудио.
3. Эмбединги моделей SV содержат информацию о чистоте сигнала и длительности аудио — это не прямая характеристика голоса спикера, а определенный баес датасета или TTS-модели. При конструировании метрики на основе этих эмбедингов стоит иметь это ввиду и применять определённые фильтры, которые помогают сгладить эффект.
4. Грубым способом оценки ритма может быть оценка темпа речи спикера. Однако такой способ — сравнение средних величин количества слогов на секунду аудио — признак с плохой разделительной способностью.
Что предложили
В статье предложили метрику U3D (Unit Duration Distribution Distance), которая оценивает одну из динамических характеристик речи спикера — её ритм. Метрика основана на сравнении распределений длительности групп фонем. Это не фонемы в буквальном смысле (они извлекаются в unsupervised-сетапе путём кластеризации эмбеддингов HuBERT), но дальше для простоты буду называть их фонемами.
Каждому элементу в последовательности из спич-юнитов присваивается индекс ближайшей к нему фонемы, после чего последовательность разделяется на сегменты идущих друг за другом фонем. Для каждой фонемы считается длительность в количестве спич-юнитов для каждой записи спикера. Затем тестовая и контрольная выборки распределений сравниваются через метрику Вассерштейна. В результате авторы показали, что метрика обладает высокой разделительной способностью и робастна к сравнению схожих спикеров.
Почему это круто
Большая часть статьи посвящена не самой метрике, а подводке к тому, зачем вообще она нужна и почему не всегда достаточно просто считать косинусную близость между эмбедами какой-то модели верификации спикеров и называть это speaker-similarity.
Пайплайн unsupervised-разметки легко адаптируется и хорошо ложится не только на задачу ритма и не только для подсчёта метрики.
Продолжение следует.
Дарья Дятлова
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤6🔥4
Интересные статьи на Speech Synthesis Workshop 2/2
Разберём ещё две любопытные работы с Speech Synthesis Workshop. Одна посвящена управлению стилем на уровне слов, другая — синтезу речи с невербальными характеристиками.
Lina-Style: Word-Level Style Control in TTS via Interleaved Synthetic Data
Авторы предложили, как из небольшой выборки с разметкой стиля и большого неразмеченного корпуса построить полностью синтетический датасет с локальными (на уровне слова) метками стиля и его интенсивностью, а затем дообучить модель, чтобы она кондишенилась на метки. Для этого они использовали свою предыдущую работу, модель Lina-Speech. Архитектурно это текстовый энкодер и аудиодекодер с Gated Linear Attention (GLA). GLA, кстати, позволяет легко использовать prefix free prompting через initial state-tuning. Этим и воспользовались авторы.
Сначала они взяли претрейн Lina-Speech на неэмоциональной речи. Дотюнили его через initial state-tuning на несколько стилей (neutral, happy, confused, enunciated). Затем синтезировали несколько вариантов одной и той же реплики в разных стилях. Во время синтеза также использовали classifier‑free guidance (CFG), случайно сэмплировали альфа, поэтому насинтезированные аудио получились в разных стилях и с разной их интенсивностью.
Для каждого аудио построили соответствие текста аудиотокенам. Для этого извлекли матрицы soft-алайнмента текста и аудио и превратили их в матрицы hard-алайнмента с помощью Monotonic Alignment Search (MAS). Таким образом получили соответствие токенов аудио отдельным словам. Склеили слова из разных стилей в одно предложение и получили синтетический интерливинг-датасет с word-level-разметкой на стиль.
Осталось затюнить итоговую модель. На этом этапе дообучили базовый претрейн, добавив новые параметры: эмбеддинги стилей, интенсивностей и linear для их комбинации.
Почему это круто
Потому что это — пример сбора синтетического датасета с локальными метками стиля с нуля. В изначальном датасете сэмплов с word-level-разметкой не было. Ну и успешное обучение на синте подтвердило, что метод рабочий. Позалипать на сэмплы можно тут.
NonverbalTTS: A Public English Corpus of Text-Aligned Nonverbal Vocalizations with Emotion Annotations for Text-to-Speech
Янднекс тоже привёз свою статью, написанную совместно с коллегами из VK Lab. В ней предложили датасет для синтеза речи с невербальными характеристиками на английском языке и рассказали о пайплайне его сбора. Невербальные характеристики — это смех, вздох, кашель и другие звуки, которые мы издаём в речи и которые не являются словами.
В реальной жизни таких невербальных характеристик много, но разметки для них часто нет. Авторы взяли два опенсорсных датасета — Expresso и VoxCeleb — и сначала с помощью опенсорсных моделей получили грубую разметку по невербальным характеристикам и эмоциям. Затем уточнили результаты с помощью ручной разметки и отфильтровалы шумные сэмплы (например, аудио со смехом, который оказался закадровым). После этого зафьюзили варианты правильных транскрипций от нескольких разметчиков и получили итоговый датасет: 13 часов аудио с 10 типами невербальных характеристик.
Затюнили на своём датасете CosyVocie и сравнились с CosyVoice2, который обучался на проприетарном датасете, нестатзначимо проиграли в SbS. В статье раскрыли детали пайплайна разметки, а датасет выложили на Hugging Face. Там немного, но это честная работа.
Почему это круто
Синтез с невербальными характеристиками нужен для синтеза спонтанного и разговорного стилей речи. NVTTS может быть использован для файнтьюна, а также как стартовая точка для скейла и unsupervised-разметки датасета большего размера.
Дарья Дятлова❣ Специально для Speech Info
Разберём ещё две любопытные работы с Speech Synthesis Workshop. Одна посвящена управлению стилем на уровне слов, другая — синтезу речи с невербальными характеристиками.
Lina-Style: Word-Level Style Control in TTS via Interleaved Synthetic Data
Авторы предложили, как из небольшой выборки с разметкой стиля и большого неразмеченного корпуса построить полностью синтетический датасет с локальными (на уровне слова) метками стиля и его интенсивностью, а затем дообучить модель, чтобы она кондишенилась на метки. Для этого они использовали свою предыдущую работу, модель Lina-Speech. Архитектурно это текстовый энкодер и аудиодекодер с Gated Linear Attention (GLA). GLA, кстати, позволяет легко использовать prefix free prompting через initial state-tuning. Этим и воспользовались авторы.
Сначала они взяли претрейн Lina-Speech на неэмоциональной речи. Дотюнили его через initial state-tuning на несколько стилей (neutral, happy, confused, enunciated). Затем синтезировали несколько вариантов одной и той же реплики в разных стилях. Во время синтеза также использовали classifier‑free guidance (CFG), случайно сэмплировали альфа, поэтому насинтезированные аудио получились в разных стилях и с разной их интенсивностью.
Для каждого аудио построили соответствие текста аудиотокенам. Для этого извлекли матрицы soft-алайнмента текста и аудио и превратили их в матрицы hard-алайнмента с помощью Monotonic Alignment Search (MAS). Таким образом получили соответствие токенов аудио отдельным словам. Склеили слова из разных стилей в одно предложение и получили синтетический интерливинг-датасет с word-level-разметкой на стиль.
Осталось затюнить итоговую модель. На этом этапе дообучили базовый претрейн, добавив новые параметры: эмбеддинги стилей, интенсивностей и linear для их комбинации.
Почему это круто
Потому что это — пример сбора синтетического датасета с локальными метками стиля с нуля. В изначальном датасете сэмплов с word-level-разметкой не было. Ну и успешное обучение на синте подтвердило, что метод рабочий. Позалипать на сэмплы можно тут.
NonverbalTTS: A Public English Corpus of Text-Aligned Nonverbal Vocalizations with Emotion Annotations for Text-to-Speech
Янднекс тоже привёз свою статью, написанную совместно с коллегами из VK Lab. В ней предложили датасет для синтеза речи с невербальными характеристиками на английском языке и рассказали о пайплайне его сбора. Невербальные характеристики — это смех, вздох, кашель и другие звуки, которые мы издаём в речи и которые не являются словами.
В реальной жизни таких невербальных характеристик много, но разметки для них часто нет. Авторы взяли два опенсорсных датасета — Expresso и VoxCeleb — и сначала с помощью опенсорсных моделей получили грубую разметку по невербальным характеристикам и эмоциям. Затем уточнили результаты с помощью ручной разметки и отфильтровалы шумные сэмплы (например, аудио со смехом, который оказался закадровым). После этого зафьюзили варианты правильных транскрипций от нескольких разметчиков и получили итоговый датасет: 13 часов аудио с 10 типами невербальных характеристик.
Затюнили на своём датасете CosyVocie и сравнились с CosyVoice2, который обучался на проприетарном датасете, нестатзначимо проиграли в SbS. В статье раскрыли детали пайплайна разметки, а датасет выложили на Hugging Face. Там немного, но это честная работа.
Почему это круто
Синтез с невербальными характеристиками нужен для синтеза спонтанного и разговорного стилей речи. NVTTS может быть использован для файнтьюна, а также как стартовая точка для скейла и unsupervised-разметки датасета большего размера.
Дарья Дятлова
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5🔥3
Interspeech 2025: впечатления инженеров Яндекса
Мы по традиции попросили инженеров Яндекса подвести личные итоги конференции — на этот раз Interspeech 2025 — и рассказать, чем она запомнилась. В карточках собрали заметки, впечатления и самые интересные работы.
Статьи, которые упоминаются в посте:
— Low-Bitrate and Speaker-Decoupled Discrete Speech Codec;
— Fine-Tuning Text-to-Speech Diffusion Models Using Reinforcement Learning with Human Feedback;
— В статье Improving Noise Robustness of LLM-based Zero-shot TTS via Discrete Acoustic Token Denoising;
— Adaptive Knowledge Distillation for Device-Directed Speech Detection.
Speech Info
* Компания Meta признана экстремистской; её деятельность в России запрещена.
Мы по традиции попросили инженеров Яндекса подвести личные итоги конференции — на этот раз Interspeech 2025 — и рассказать, чем она запомнилась. В карточках собрали заметки, впечатления и самые интересные работы.
Статьи, которые упоминаются в посте:
— Low-Bitrate and Speaker-Decoupled Discrete Speech Codec;
— Fine-Tuning Text-to-Speech Diffusion Models Using Reinforcement Learning with Human Feedback;
— В статье Improving Noise Robustness of LLM-based Zero-shot TTS via Discrete Acoustic Token Denoising;
— Adaptive Knowledge Distillation for Device-Directed Speech Detection.
Speech Info
* Компания Meta признана экстремистской; её деятельность в России запрещена.
❤10👍6🔥6