diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/SettingsScreen.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/SettingsScreen.kt
index 74f10747..cc851fc3 100644
--- a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/SettingsScreen.kt
+++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/SettingsScreen.kt
@@ -570,6 +570,7 @@ private fun RadioSettingsTab() {
var vadEnabled by remember { mutableStateOf(provider.getInt("radio.vad_enabled") != 0) }
var vadThreshold by remember { mutableStateOf(provider.getInt("radio.vad_threshold")) }
var vadHangover by remember { mutableStateOf(provider.getInt("radio.vad_hangover_ms")) }
+ var vadCompMaxGain by remember { mutableStateOf(provider.getInt("radio.vad_compressor_max_gain_db")) }
val vadActive by RadioAudioEngine.instance().vadActiveFlow.collectAsState()
Text(stringResource(R.string.radio_vad), style = MaterialTheme.typography.titleMedium)
Row(verticalAlignment = Alignment.CenterVertically) {
@@ -604,6 +605,15 @@ private fun RadioSettingsTab() {
RadioAudioEngine.instance().reconfigure()
}
})
+ LabeledSlider(stringResource(R.string.vad_max_gain), vadCompMaxGain.toFloat(), 1f..60f, 58, "${vadCompMaxGain} dB",
+ { vadCompMaxGain = it.toInt() }, onValueChangeFinished = {
+ scope.launch {
+ provider.setValue("radio.vad_compressor_max_gain_db", vadCompMaxGain.toString())
+ NativeLib.setChatSetting("radio_vad_compressor_max_gain_db", vadCompMaxGain.toString())
+ RadioAudioEngine.instance().reconfigure()
+ }
+ })
+ Text(stringResource(R.string.vad_compressor_hint), style = MaterialTheme.typography.bodySmall)
HorizontalDivider(Modifier.padding(vertical = 4.dp))
/* ── Volume-кнопки PTT ── */
diff --git a/tools/chatgui-android/app/src/main/res/values-ru/strings.xml b/tools/chatgui-android/app/src/main/res/values-ru/strings.xml
index 4afc902d..3dabce5f 100644
--- a/tools/chatgui-android/app/src/main/res/values-ru/strings.xml
+++ b/tools/chatgui-android/app/src/main/res/values-ru/strings.xml
@@ -210,6 +210,8 @@
"Работает 15 минут при включённом экране. При следующем включении экрана запускается автоматически."
"Порог речи:"
"Задержка после тишины:"
+ "Макс. усиление перед VAD:"
+ "Включение и остальные параметры общие с компрессором рации. Этот предел усиления влияет только на определение речи."
"%1$s мс"
"Кнопки громкости (удержание) — передача"
"PTT-кнопка поверх приложений"
diff --git a/tools/chatgui-android/app/src/main/res/values/strings.xml b/tools/chatgui-android/app/src/main/res/values/strings.xml
index 5517e926..4bb16e60 100644
--- a/tools/chatgui-android/app/src/main/res/values/strings.xml
+++ b/tools/chatgui-android/app/src/main/res/values/strings.xml
@@ -210,6 +210,8 @@
"Runs for 15 minutes while the screen is on. Starts automatically when the screen turns on again."
"Speech threshold:"
"Delay after silence:"
+ "Max gain before VAD:"
+ "Uses the radio compressor switch and other settings. This gain limit affects voice detection only."
"%1$s ms"
"Hold volume buttons to transmit"
"PTT button over other apps"