Пространственный звук в конференциях и групповых звонках

Автор: Николай СапуновОбновлено: август 202622 мин чтения
Содержание статьи +

Кратко

Пространственный звук в видеозвонке размещает голос каждого участника там, где на экране стоит его плитка: говорящий слева слышится слева, говорящий справа – справа. Это не украшение: когда несколько человек говорят одновременно, мозг использует угол между голосами, чтобы выделить один из них – эффект под названием пространственное освобождение от маскировки, – поэтому пространственный звонок ощутимо менее утомителен, чем плоский. Сложность в том, что выигрыш появляется только на стерео-наушниках или стерео-колонках, исчезает на моно-динамике телефона и сегодня не работает через обычный Bluetooth в Microsoft Teams, поэтому функция отключается сама чаще, чем ожидают продуктовые команды. Стройте её на Web Audio API с шагом позиционирования для каждого голоса, если у вас сервис на WebRTC, и следите за новым кодеком 3GPP IVAS, который понесёт позиционированные голоса прямо в телефонном звонке, как только их поддержат операторы и устройства.

Почему это важно

Если вы развиваете продукт для видеоконференций, телемедицину, виртуальный класс или приложение для контакт-центра, ваши пользователи часами слушают несколько голосов, сведённых в один плоский канал, и устают быстрее, чем принято признавать. Пространственный звук – один из немногих апгрейдов аудио, который улучшает понимание, а не просто верность звучания: он облегчает разбор пересекающейся речи и делает очевидным, «кто это только что сказал». Эта статья – для продакт-менеджера, основателя или операционного руководителя, который решает, стоит ли это строить, и для инженера, которому это придётся собирать. К концу вы будете знать, что именно вычисляет пространственный звук, почему он окупается только при определённых условиях прослушивания, как его реализуют Teams, Zoom, Google Meet, FaceTime и LiveKit, и три ошибки, превращающие функцию в тикет поддержки вместо аргумента для продажи.

Что значит «пространственный звук в звонке»

Начнём с обычного случая, потому что апгрейд имеет смысл только на его фоне. В обычном групповом звонке голос каждого участника – моно, один канал, и приложение проигрывает этот единственный канал в оба уха на одинаковом уровне. Технически это head-locked, или центрированный микс: каждый голос сидит ровно в центре головы, поверх всех остальных. У мозга нет пространственной подсказки для их разделения, поэтому, когда говорят двое сразу, слова накладываются и теряются оба.

Пространственный звук меняет одно: он даёт каждому голосу позицию. Приложение решает, где должен сидеть каждый говорящий относительно вас – обычно совпадая с местом, где появляется его видео-плитка, – и затем обрабатывает его моно-голос в стерео-пару (сигнал для левого уха и сигнал для правого), которую мозг читает как «звучит вон оттуда». Microsoft описывает свою реализацию ровно так: когда кто-то говорит, «вы услышите его голос из соответствующей позиции на экране встречи», поэтому человек в дальнем левом углу экрана звучит у вас слева, а сосед рядом – чуть ближе к центру.

Простейший способ это сделать – панорамирование: сделать голос слева громче в левом ухе и тише в правом. Уже это даёт пригодный разброс слева направо. Более убедительный метод использует head-related transfer function – измерение того, как ваши собственные голова и уши меняют звук в зависимости от направления, откуда он пришёл. Эту передаточную функцию головы – почти всегда пишут HRTF – мы подробно разобрали в статье амбисоника, HRTF и бинауральный рендеринг; здесь нужен только результат: применение HRTF к голосу заставляет плоскую пару наушников звучать так, будто голос действительно находится в комнате – выше, ниже или позади вас, а не просто слева или справа.

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

Почему это важно мозгу: пространственное освобождение от маскировки

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

У конкретного выигрыша есть название: пространственное освобождение от маскировки. «Маскировка» – это когда один звук заглушает другой. Когда целевой голос и конкурирующий приходят из одного направления, конкурент сильно маскирует цель, и за ней приходится тянуться. Разведите их по углу – и разборчивость растёт; это и есть «освобождение». Исследователи даже определяют минимальное угловое разнесение – наименьший угол между целью и конкурирующими голосами, нужный, чтобы улучшить разборчивость речи на двадцать процентов. Ниже этого угла голоса сливаются; выше – расходятся.

Есть второй, связанный выигрыш, важный для долгих встреч: пространственное снижение когнитивной нагрузки. Исследование 2017 года в Journal of the Association for Research in Otolaryngology измеряло активность префронтальной коры, пока слушатели следили за целевым голосом на фоне конкурирующего, и обнаружило, что разнесение говорящих в пространстве снижает умственное усилие слушания. То же исследование добавляет важную оговорку, которую пропускают маркетинговые страницы: выигрыш был наибольшим при промежуточной разнице громкости между говорящими и уменьшался, когда один был намного громче или тише другого. Проще говоря, пространственное разнесение помогает сильнее всего, когда конкурирующие голоса примерно сопоставимы по уровню – а это ровно типичная ситуация группового звонка, где микрофоны у всех нормализованы к близкой громкости.

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

Условие, которое всё решает: устройство прослушивания

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

Это единственное требование объясняет все ограничения платформ, о которых речь дальше. Microsoft прямо пишет: пространственный звук Teams работает на проводных стерео-наушниках USB, проводных стерео-колонках или встроенных стерео-динамиках устройства – и не работает на Bluetooth-устройствах, потому что классические Bluetooth-гарнитуры переключаются на низкокачественный моно-профиль, как только активен микрофон. Microsoft отмечает, что Bluetooth-стандарт следующего поколения LE Audio, способный нести стерео при активном микрофоне, будет поддержан. Почему классический Bluetooth схлопывается в моно во время звонка, мы объясняем в статье эхоподавление на громкой связи, Bluetooth и AirPods, а почему LE Audio это меняет – в статье LC3 и LC3plus, новый стандарт Bluetooth-аудио.

Практический вывод: значительная доля пользователей – любой на обычных Bluetooth-наушниках во время звонка или на ноутбуке с крышкой под углом, когда стерео-динамики стреляют вбок, – вообще не получает пространственного эффекта. Хорошо сделанная функция распознаёт это и тихо откатывается к обычному моно-миксу, а не выдаёт сломанно звучащий стерео-образ. Teams именно так и делает, а ещё отключает пространственный звук при нехватке полосы сети или памяти устройства.

Как это делают крупные платформы в 2026

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

Microsoft Teams

Teams отображает голос каждого участника в позицию его плитки на вашем экране и рендерит результат в стерео. Это метафора переговорной: голоса разнесены слева направо по галерее. Ограничения – те самые: только проводной стерео-вывод, без Bluetooth, и функция недоступна в звонках один на один и на встречах больше 100 участников – в двух случаях, где пространственный разброс либо ничего не добавляет (один человек), либо не раскладывается чисто (сотня плиток). Включается в Настройки → Устройства.

Zoom

Zoom располагает голоса участников в стерео-поле в зависимости от их места в Gallery или Immersive View. Его текущее ограничение – обратное потребительской функции: пространственный звук привязан к Zoom Rooms и десктопному приложению Zoom Workplace, в галерее или immersive-раскладках, и тоже не поддерживает беспроводные наушники. Целевой сценарий – переговорная с нормальной стерео-панелью динамиков, а не человек в наушниках.

Google Meet и Google Beam

Обычный Google Meet двигался осторожнее: в конце 2025 года добавили стерео-звук для демонстрируемых презентаций, расширяя аудиообраз для контента с экрана, а не позиционируя каждого участника. Более амбициозная пространственная работа живёт в Google Beam, системе 3D-телеприсутствия, которая в 2026 году расширилась на групповые встречи в Zoom и Meet и привязывает каждый голос к говорящему, отрисованному в натуральную величину на экране Beam – самая сильная привязка позиции к человеку среди массовых систем, потому что «позиция на экране» здесь – настоящий 3D-рендеринг человека.

Apple FaceTime

Apple дальше всех заходит в бинауральный путь. FaceTime размещает голоса по позиции каждого человека на экране и рендерит их с HRTF и трекингом головы через AirPods, так что звуковое поле остаётся неподвижным, когда вы поворачиваете голову. Apple также предлагает персональный пространственный звук: вы сканируете голову и уши камерой iPhone, чтобы построить индивидуальный HRTF взамен универсального – для более чёткого, личного эффекта, и этот профиль синхронизируется по устройствам Apple. FaceTime сочетает это с Voice Isolation, режимом микрофона, подавляющим фоновый шум, чтобы позиционированные голоса оставались чистыми – такое шумоподавление мы разбираем в статье шумоподавление: RNNoise, Krisp, NVIDIA RTX Voice.

ПлатформаОткуда позицияРендерингТребование к выводуОгр. (2026)
Microsoft TeamsПозиция плиткиСтерео-панПровод. стерео / встр. стерео; нет BluetoothНет 1:1, нет встреч > 100
ZoomМесто в галерееСтерео-полеZoom Rooms / Workplace desktop; без беспровод.Для комнат, не наушников
Google MeetТолько звук презентацииРасш. стереоСтерео-выводНет позиции по участнику
Google BeamРеальный 3D-рендерПривязан к человекуОборудование BeamНужен экран Beam
Apple FaceTimeПозиция плиткиHRTF + трекинг головыAirPods / стереоЭкосистема Apple

Победитель в «рендеринге» зависит от сценария: HRTF + трекинг головы (FaceTime) – самый убедительный в наушниках; стерео-пан (Teams/Zoom) – самый переносимый.

Реализация своими силами: путь WebRTC

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

Движок – Web Audio API, рекомендация W3C с 17 июня 2021 года, а конкретно его PannerNode. PannerNode принимает позицию (x, y, z) для источника звука и позицию с ориентацией (x, y, z) для слушателя и вычисляет стерео-выход. У него два режима panningModel. Режим equalpower – дешёвое лево-правое панорамирование: быстро, мало памяти, достаточно для плоской галереи. Режим HRTF свёрткой накладывает на голос измеренные импульсные характеристики человеческого уха ради настоящего бинаурального образа; в наушниках звучит гораздо лучше, но требует больше памяти и CPU, что сама спецификация отмечает как проблему на слабых мобильных устройствах.

Архитектура на практике, взятая из опубликованного руководства LiveKit по WebRTC, проста. Аудио-трек каждого удалённого участника становится MediaStreamAudioSourceNode. Каждому даёте свой PannerNode. Поскольку паннер принимает только одну позицию, вы вычисляете позицию каждого удалённого голоса относительно себя одним вычитанием, а затем обновляете паннер по мере того, как люди двигаются или перераскладывается галерея. Вот ядро, сведённое к существенным вызовам:

// Превращаем один удалённый голос WebRTC в позиционированный стерео-источник.
const ctx = new AudioContext();
const source = ctx.createMediaStreamSource(remoteStream);
const panner = ctx.createPanner();

panner.panningModel = "HRTF";      // настоящий бинаурал; "equalpower" — ради экономии CPU
panner.distanceModel = "exponential";
panner.refDistance = 100;          // дистанция, на которой громкость не ослаблена
panner.maxDistance = 500;          // дальше — без дополнительного ослабления
panner.rolloffFactor = 2;          // как быстро громкость падает с дистанцией

source.connect(panner).connect(ctx.destination);

// Позиция = плитка удалённого минус моя позиция, то есть относительно меня.
const relX = remote.x - me.x;
const relY = remote.y - me.y;
panner.positionX.setTargetAtTime(relX, ctx.currentTime, 0.02); // плавность 20 мс
panner.positionZ.setTargetAtTime(relY, ctx.currentTime, 0.02); // 2D y → z

Две детали из этого фрагмента стоят слов. Во-первых, модель дистанции (exponential, с refDistance, maxDistance и rolloffFactor) позволяет дальнему участнику в виртуальной комнате звучать тише – полезно в пространственной раскладке «офис», бесполезно в фиксированной галерее, где все на одной дистанции. Во-вторых, вызов setTargetAtTime с малой постоянной времени (здесь двадцать миллисекунд) плавно ведёт позицию вместо рывка, поэтому голос, перепрыгивающий плитки, не щёлкает. Резкая смена позиции – частая причина артефактов.

Откуда берутся позиции? В галерее вы отображаете столбец каждой плитки в x между левым и правым краем. В приложении виртуального пространства – 2D-офисе, комнате в стиле игры – координаты каждого аватара подаются паннеру напрямую, а свою позицию вы отправляете участникам по data-каналу WebRTC. Где происходит микширование – в каждом клиенте или на сервере – зависит от топологии, которую мы сравниваем в статье аудио в SFU, MCU и P2P: SFU пересылает каждый голос отдельным треком, что и нужно клиентскому пространственному рендерингу, тогда как серверный микшер (MCU) должен был бы рендерить пространственный микс под каждого слушателя – намного дороже.

Разобранный пример раскладки

Допустим, галерея на четверых, и вы хотите разнести голоса по дуге 180 градусов перед слушателем. Отобразите четыре столбца в азимуты −60°, −20°, +20° и +60°. Переведите каждый угол в единичную позицию на горизонтальной окружности: x = sin(угол), z = −cos(угол). Для говорящего на +60°:

x = sin(60°)  = 0.87   (заметно вправо)
z = −cos(60°) = −0.50  (перед слушателем)

Подайте (0.87, 0, −0.50) паннеру этого участника – и его голос окажется вверху справа от центра, совпадая с плиткой в правом верхнем углу. Повторите для каждого, и лево-правая раскладка галереи станет слышимой лево-правой дугой.

Грядущая перемена: пространственный голос в самой сети

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

Этот кодек – IVAS, Immersive Voice and Audio Services – стандартизирован 3GPP в Release 18 (заморожен в июне 2023) как первый кодек, созданный для иммерсивной связи в сетях 5G. IVAS обратно совместим с речевым кодеком EVS, уже описанным в семействе речевых кодеков, и несёт моно, стерео, многоканальный звук, амбисонику и объектное аудио. Его конференц-режим, называемый Independent Streams with Metadata, передаёт каждого участника отдельным голосовым потоком с метаданными позиции, а принимающее устройство рендерит их в пространственную сцену – и может выровнять их с параллельно передаваемой видео-сценой.

Числа, которые стоит запомнить: IVAS охватывает 13,2–512 кбит/с, а в параметрическом объектном режиме несёт три-четыре свободно размещённых голоса всего при 24,4 или 32 кбит/с и восстанавливает их позиции на приёмнике. Это пространственные конференции почти при битрейтах обычного звонка. Загвоздка – развёртывание: IVAS нужна поддержка и в сети, и в устройстве, а этот процесс в начале 2026 года ещё ранний – поэтому для сервиса, который вы запускаете сегодня, рабочим остаётся подход на стороне устройства через Web Audio, а IVAS – путь, за которым стоит следить ради нативных мобильных пространственных звонков.

Когда это окупается, а когда это уловка

Пространственный звук оправдывает себя, когда верны три вещи: люди часто перебивают друг друга, слушатели в стерео-наушниках или у стерео-колонок, и встречи длятся достаточно долго, чтобы усталость имела значение. Многосторонние обсуждения, панели, классы, групповые телемед-сессии и мониторинг супервайзером в контакт-центре – всё подходит. Это уловка – затраты без пользы – в обратных случаях: звонки один на один (нет перебиваний, нечего разделять – потому Teams там и отключает функцию), большие таун-холлы, где один человек вещает молчащей аудитории, и любой контекст, где большинство пользователей на одном моно-динамике.

«Ошибка – игнорировать набор устройств. Перед стройкой замерьте, на чём ваши пользователи реально слушают. Если большая часть трафика – мобильные на одном динамике телефона или на классических Bluetooth-наушниках, пространственный звук будет выключен для большинства, и инженерные затраты купят немного. Сначала инструментируйте тип устройства вывода; стройте функцию для сегмента, который её услышит.»

Где здесь Фора Софт

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

Главное

  • Пространственный звук ставит каждый голос у его плитки, превращая плоский микс в лево-правую дугу.
  • Настоящая польза – в понятности: угловое разнесение позволяет мозгу разделять пересекающиеся голоса.
  • Работает только при двух каналах на два уха – стерео-наушники или стерео-колонки.
  • Классический Bluetooth падает в моно во время звонка, поэтому Teams и другие там отключают функцию.
  • Стройте на WebRTC через PannerNode Web Audio API, по одному на удалённый голос, позиция – относительно вас.
  • 3GPP IVAS понесёт позиционированные голоса в самом кодеке, как только их поддержат сети и устройства.

Что почитать дальше

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.