feat: добавить Audio Level monitoring — RMS громкости микрофона в WebSocket

- settings.py: audio_level_enabled, audio_level_interval_ms
- satellite.py: _calculate_rms() — вычисление RMS (0.0-1.0)
- satellite.py: _send_audio_level() — фоновая задача отправки
- satellite.py: _last_mic_level, _audio_level_task атрибуты
- satellite.py: интеграция в _start() / _stop()
- satellite.py: вычисление RMS в event_from_mic() для всех классов
- __main__.py: CLI --audio-level-enabled, --audio-level-interval-ms

Событие в WebSocket (10 раз в секунду):
{type: audio-level, data: {level: 0.42}}
This commit is contained in:
2026-05-20 17:17:18 +03:00
parent 5c92eed55b
commit b28052e93e
4 changed files with 291 additions and 13 deletions
+7
View File
@@ -188,6 +188,13 @@ class EventSettings(ServiceSettings):
websocket_port: int = 8675
"""Port для WebSocket сервера."""
# Audio level monitoring
audio_level_enabled: bool = False
"""True если нужно вычислять и отправлять RMS громкость микрофона."""
audio_level_interval_ms: int = 100
"""Интервал отправки audio-level событий (миллисекунды)."""
@dataclass(frozen=True)
class TimerSettings: