翻译预算分配修复+genfail诊断:录音中1B重试预算降到1次(两次尝试~30s),给兜底留出时间窗——现场15s×3吃满45s预算致TAP-FALLBACK skipped=budget;TRANSLATE single/batch empty 诊断日志(原始输出头48字,区分模型白卷与输出被清洗成空)
This commit is contained in:
parent
290e4b205b
commit
0b731978ef
|
|
@ -2251,6 +2251,9 @@ class MainActivity : AppCompatActivity() {
|
||||||
): String? {
|
): String? {
|
||||||
var temp = 0f
|
var temp = 0f
|
||||||
var genRetry = 0
|
var genRetry = 0
|
||||||
|
// 重试预算:录音中只允许 1 次(两次尝试≈30s),给兜底留出时间窗——
|
||||||
|
// 现场:三次尝试 15s×3 吃满 45s 预算,兜底被 skipped=budget 拒之门外
|
||||||
|
val maxGenRetry = if (isRecording) 1 else 2
|
||||||
var ctx = context
|
var ctx = context
|
||||||
var lastRej = ""
|
var lastRej = ""
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|
@ -2285,7 +2288,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
Log.i(TAG, "TAP-MISS sid=$sid reason=" +
|
Log.i(TAG, "TAP-MISS sid=$sid reason=" +
|
||||||
(if (raw != null) "repeat" else "genfail") +
|
(if (raw != null) "repeat" else "genfail") +
|
||||||
" temp=$temp" + srcTag)
|
" temp=$temp" + srcTag)
|
||||||
if (genRetry >= 2) return null
|
if (genRetry >= maxGenRetry) return null
|
||||||
genRetry++; temp = if (temp == 0f) 0.3f else 0.7f
|
genRetry++; temp = if (temp == 0f) 0.3f else 0.7f
|
||||||
if (genRetry >= 2) ctx = ""
|
if (genRetry >= 2) ctx = ""
|
||||||
}
|
}
|
||||||
|
|
@ -2294,7 +2297,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
Log.i(TAG, "TAP-MISS sid=$sid reason=echo temp=$temp" + srcTag)
|
Log.i(TAG, "TAP-MISS sid=$sid reason=echo temp=$temp" + srcTag)
|
||||||
if (es == lastRej) return null // 复读成惯性,换温度无用
|
if (es == lastRej) return null // 复读成惯性,换温度无用
|
||||||
lastRej = es
|
lastRej = es
|
||||||
if (genRetry >= 2) return null
|
if (genRetry >= maxGenRetry) return null
|
||||||
genRetry++; temp = if (temp == 0f) 0.3f else 0.7f
|
genRetry++; temp = if (temp == 0f) 0.3f else 0.7f
|
||||||
if (genRetry >= 2) ctx = ""
|
if (genRetry >= 2) ctx = ""
|
||||||
}
|
}
|
||||||
|
|
@ -2488,7 +2491,13 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
val tr = cleanTrans(one, segKeys[0].second)
|
val tr = cleanTrans(one, segKeys[0].second)
|
||||||
if (!tr.isNullOrEmpty()) got[segKeys[0].first] = tr
|
if (!tr.isNullOrEmpty()) got[segKeys[0].first] = tr
|
||||||
if (got.isEmpty()) return null
|
if (got.isEmpty()) {
|
||||||
|
// 空手而归的诊断(2026-09-16):区分「模型白卷」与「输出被清洗成空
|
||||||
|
// (只有标签/残片)」——genfail 现场的两种死法原来看不出
|
||||||
|
Log.w(TAG, "TRANSLATE single empty raw=" +
|
||||||
|
(one?.take(48)?.replace("\n", " ") ?: "<null>"))
|
||||||
|
return null
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
val numbered = segKeys.mapIndexed { i, st ->
|
val numbered = segKeys.mapIndexed { i, st ->
|
||||||
(i + 1).toString() + ". " + st.second
|
(i + 1).toString() + ". " + st.second
|
||||||
|
|
@ -2544,7 +2553,11 @@ class MainActivity : AppCompatActivity() {
|
||||||
cleanTrans(one, st.second)?.let { got[st.first] = it }
|
cleanTrans(one, st.second)?.let { got[st.first] = it }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (got.isEmpty()) return null
|
if (got.isEmpty()) {
|
||||||
|
Log.w(TAG, "TRANSLATE batch empty out=" +
|
||||||
|
(out?.take(48)?.replace("\n", " ") ?: "<null>"))
|
||||||
|
return null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
val res = HashMap<String, String>()
|
val res = HashMap<String, String>()
|
||||||
for ((key, _) in items) {
|
for ((key, _) in items) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue