[TF2] VoiceControl

[TF2] VoiceControl 1.0.0

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

Расширение полностью написано ИИ, так что в основном для ознакомления.


Команды:
sm_vc - открывает меню прямой установки громкости микрофона игрокам.

VoiceControl: основные переменные

C-подобный:
vc_enabled 1
Главный переключатель расширения. Если 0, VoiceControl не обрабатывает голос, автогромкость, DSP и proximity отключены.

C-подобный:
vc_debug 0
Включает debug-лог обработки звука: входная/выходная громкость, AGC, gate, clipping и т.д. Использовать только для проверки, на live лучше держать 0.

C-подобный:
vc_debug_recipients 0
Включает debug-лог получателей голоса: кому отправлен пакет, кто отфильтрован, дистанция proximity, ошибки отправки. Полезно для настройки vc_proximity_enabled.

Автогромкость / AGC

C-подобный:
vc_agc_enabled 1
Включает автоматическую регулировку громкости микрофона. Тихие микрофоны усиливаются, слишком громкие уменьшаются.

C-подобный:
vc_agc_target_rms 0.12
Целевая средняя громкость голоса. Больше значение — голос будет громче, меньше — тише.

C-подобный:
vc_agc_noise_floor_rms 0.0015
Порог шума. Всё, что ниже этого уровня, считается фоном/шумом и не должно сильно усиливаться.

C-подобный:
vc_agc_max_boost_db 18
Максимальное усиление тихого микрофона в децибелах. Если у игроков усиливается шум, уменьшить это значение.

C-подобный:
vc_agc_max_cut_db -12
Максимальное понижение слишком громкого микрофона. Значение должно быть отрицательным.

C-подобный:
vc_limiter_ceiling 0.95
Потолок громкости после обработки. Защищает от перегруза и клиппинга.

DSP / очистка голоса

C-подобный:
vc_dsp_enabled 1
Включает лёгкую обработку голоса: high-pass, noise gate, softclip.

C-подобный:
vc_highpass_enabled 1
Включает фильтр низких частот. Убирает гул, низкий шум и часть вибраций микрофона.

C-подобный:
vc_highpass_cutoff_hz 100
Частота среза high-pass фильтра. Обычно 80-120 Hz нормально для голоса.

C-подобный:
vc_noise_gate_enabled 1
Включает noise gate. Когда игрок молчит, тихий фон приглушается.

C-подобный:
vc_noise_gate_threshold_rms 0.002
Порог открытия noise gate. Если голос/звук ниже этого уровня, он считается тишиной или шумом.

C-подобный:
vc_noise_gate_hysteresis_rms 0.001
Гистерезис noise gate. Помогает gate не дёргаться туда-сюда на границе порога.

C-подобный:
vc_noise_gate_atten_db -8
Насколько сильно приглушать звук, когда gate закрыт. Чем ниже значение, тем сильнее приглушение.

C-подобный:
vc_noise_gate_attack_ms 5
Скорость открытия gate в миллисекундах. Меньше — быстрее пропускает начало речи.

C-подобный:
vc_noise_gate_release_ms 120
Скорость закрытия gate в миллисекундах. Больше — мягче закрывается после окончания речи.

C-подобный:
vc_softclip_enabled 1
Включает мягкое ограничение пиков. Помогает убрать резкий перегруз без жёсткого clipping.

C-подобный:
vc_softclip_threshold 0.85
Порог softclip. Чем ниже значение, тем раньше начинается мягкое ограничение громких пиков.

Кому отправлять голос

C-подобный:
vc_respect_hearing 1
Учитывать стандартные правила слышимости движка/SourceMod: mute, team voice, deadtalk и прочее. Если 0, расширение меньше полагается на engine hearing rules.

C-подобный:
vc_include_sourcetv 0
Отправлять ли обработанный голос SourceTV/Replay. Обычно лучше держать 0, если не нужно писать голос в трансляцию/демо.

C-подобный:
vc_send_via_netchannel 0
Выбор способа отправки обработанного voice packet.

  • 0 — отправка через IClient::SendNetMsg.
  • 1 — отправка через INetChannel::SendNetMsg с флагом voice-пакета.

Если при 0 есть проблемы со слышимостью, можно использовать 1.

Proximity voice

C-подобный:
vc_proximity_enabled 0
Включает серверный proximity voice. Расстояние считается самим расширением, engine proximity flag не используется.

C-подобный:
vc_proximity_max_distance 1200
Максимальная дистанция слышимости между живыми игроками в Hammer units. Дальше этой дистанции живой listener не получает голос живого speaker.

C-подобный:
vc_proximity_falloff_enabled 1
Включает плавное затухание громкости по расстоянию. Если 0, будет только отсечка по дистанции.

C-подобный:
vc_proximity_full_volume_distance 300
Дистанция, до которой голос остаётся на полной громкости. После неё начинается затухание.

C-подобный:
vc_proximity_min_gain_db -24
Минимальная громкость на границе vc_proximity_max_distance. Например -24 означает сильное, но не полное приглушение. За пределами max distance пакет вообще не отправляется.

Важное поведение proximity

  • Пакет всегда отправляется с m_bProximity = false.
  • Дистанцию и громкость контролирует VoiceControl, а не клиентский/engine proximity voice.
  • Proximity применяется только к паре живой speaker -> живой listener.
  • Мёртвые игроки, observer, SourceTV и Replay не считаются обычными spatial listeners.
  • Если speaker мёртвый или observer, proximity для его голоса отключается и голос идёт как в обычном режиме.
  • Если listener мёртвый или observer, он bypass-ит distance cutoff/falloff, но всё ещё может зависеть от vc_respect_hearing.

Рекомендуемый базовый конфиг

C-подобный:
vc_enabled 1

vc_agc_enabled 1
vc_agc_target_rms 0.12
vc_agc_noise_floor_rms 0.0015
vc_agc_max_boost_db 18
vc_agc_max_cut_db -12
vc_limiter_ceiling 0.95

vc_dsp_enabled 1
vc_highpass_enabled 1
vc_highpass_cutoff_hz 100
vc_noise_gate_enabled 1
vc_noise_gate_threshold_rms 0.002
vc_noise_gate_hysteresis_rms 0.001
vc_noise_gate_atten_db -8
vc_noise_gate_attack_ms 5
vc_noise_gate_release_ms 120
vc_softclip_enabled 1
vc_softclip_threshold 0.85

vc_respect_hearing 1
vc_include_sourcetv 0
vc_send_via_netchannel 1

vc_proximity_enabled 0
vc_proximity_max_distance 1200
vc_proximity_falloff_enabled 1
vc_proximity_full_volume_distance 300
vc_proximity_min_gain_db -24

vc_debug 0
vc_debug_recipients 0

Тест proximity

C-подобный:
vc_proximity_enabled 1
vc_proximity_max_distance 1200
vc_debug_recipients 1
vc_send_via_netchannel 1

Если всё работает, в debug должно быть видно recipients > 0, msg_proximity=0, send_ok > 0.
Требования
TF2
Linux
glibc >= 2.39
Установка
Скачать сборку, раскидать по таким же папкам на сервере.
  • Мне нравится
Реакции: 7pElllHuK и Jugheadbomb
Автор
Mr_panica
Скачивания
7
Просмотры
108
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Mr_panica

Сверху Снизу