Browse Source

Expose compressor gain and register separate radio VAD limit

master
evgeny 1 day ago
parent
commit
389fca1de0
  1. 3
      lib/audio_compressor.c
  2. 2
      lib/audio_compressor.h
  3. 7
      src/chat/chat_setting.c

3
lib/audio_compressor.c

@ -248,3 +248,6 @@ const int16_t* audio_compressor_output(const struct audio_compressor* ac) { retu
size_t audio_compressor_output_size(const struct audio_compressor* ac) { return ac ? ac->output_size : 0; }
void audio_compressor_clear_output(struct audio_compressor* ac) { if (ac) ac->output_size = 0; }
uint32_t audio_compressor_clip_count(const struct audio_compressor* ac) { return ac ? ac->clip_count : 0; }
float audio_compressor_gain_db(const struct audio_compressor* ac) {
return ac && ac->configured && ac->enabled ? 20.0f * log10f(ac->gain_smoothed) : 0.0f;
}

2
lib/audio_compressor.h

@ -47,6 +47,8 @@ void audio_compressor_clear_output(struct audio_compressor* ac);
/* Число сэмплов, обрезанных по потолку int16 (клиппинг) с момента create/reset. */
uint32_t audio_compressor_clip_count(const struct audio_compressor* ac);
/* Текущее фактическое усиление в дБ; выключенный compressor возвращает 0. */
float audio_compressor_gain_db(const struct audio_compressor* ac);
#ifdef __cplusplus
}

7
src/chat/chat_setting.c

@ -38,11 +38,12 @@ static const struct chat_setting_def g_setting_defs[] = {
{"radio_opus_bitrate", CHAT_SETTING_INT, 32, 16, 128},
{"radio_capture_stereo", CHAT_SETTING_INT, 0, 0, 1},
{"compressor_enabled", CHAT_SETTING_BOOL, 1, 0, 1},
{"compressor_max_gain_db", CHAT_SETTING_INT, 15, 1, 100},
{"compressor_max_gain_db", CHAT_SETTING_INT, 15, 1, 60},
{"compressor_rise_rate", CHAT_SETTING_INT, 2, 1, 100},
{"radio_compressor_enabled", CHAT_SETTING_BOOL, 1, 0, 1},
{"radio_compressor_max_gain_db",CHAT_SETTING_INT, 15, 1, 100},
{"radio_compressor_max_gain_db",CHAT_SETTING_INT, 15, 1, 60},
{"radio_vad_enabled", CHAT_SETTING_BOOL, 0, 0, 1},
{"radio_vad_compressor_max_gain_db", CHAT_SETTING_INT, 15, 1, 60},
{"radio_vad_threshold", CHAT_SETTING_INT, 50, 10, 95}, /* порог вероятности речи, % */
{"radio_vad_hangover_ms", CHAT_SETTING_INT, 200, 50, 2000},/* тишина до авто-отбоя */
{"media_download_max_peers", CHAT_SETTING_INT, 3, 1, 16},
@ -60,7 +61,7 @@ static const struct chat_setting_def g_setting_defs[] = {
{"aec_enabled", CHAT_SETTING_BOOL, 1, 0, 1}, /* AEC (SpeexDSP) в звонке, desktop GUI */
{"call_jitter_max_reserve_ms", CHAT_SETTING_INT, 1000, 500, 2000},
{"call_compressor_enabled", CHAT_SETTING_BOOL, 1, 0, 1},
{"call_compressor_max_gain_db",CHAT_SETTING_INT, 15, 1, 100},
{"call_compressor_max_gain_db",CHAT_SETTING_INT, 15, 1, 60},
};
#define CHAT_SETTING_COUNT (sizeof(g_setting_defs) / sizeof(g_setting_defs[0]))

Loading…
Cancel
Save