翻译预算分配修复+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? {
|
||||
var temp = 0f
|
||||
var genRetry = 0
|
||||
// 重试预算:录音中只允许 1 次(两次尝试≈30s),给兜底留出时间窗——
|
||||
// 现场:三次尝试 15s×3 吃满 45s 预算,兜底被 skipped=budget 拒之门外
|
||||
val maxGenRetry = if (isRecording) 1 else 2
|
||||
var ctx = context
|
||||
var lastRej = ""
|
||||
while (true) {
|
||||
|
|
@ -2285,7 +2288,7 @@ class MainActivity : AppCompatActivity() {
|
|||
Log.i(TAG, "TAP-MISS sid=$sid reason=" +
|
||||
(if (raw != null) "repeat" else "genfail") +
|
||||
" temp=$temp" + srcTag)
|
||||
if (genRetry >= 2) return null
|
||||
if (genRetry >= maxGenRetry) return null
|
||||
genRetry++; temp = if (temp == 0f) 0.3f else 0.7f
|
||||
if (genRetry >= 2) ctx = ""
|
||||
}
|
||||
|
|
@ -2294,7 +2297,7 @@ class MainActivity : AppCompatActivity() {
|
|||
Log.i(TAG, "TAP-MISS sid=$sid reason=echo temp=$temp" + srcTag)
|
||||
if (es == lastRej) return null // 复读成惯性,换温度无用
|
||||
lastRej = es
|
||||
if (genRetry >= 2) return null
|
||||
if (genRetry >= maxGenRetry) return null
|
||||
genRetry++; temp = if (temp == 0f) 0.3f else 0.7f
|
||||
if (genRetry >= 2) ctx = ""
|
||||
}
|
||||
|
|
@ -2488,7 +2491,13 @@ class MainActivity : AppCompatActivity() {
|
|||
}
|
||||
val tr = cleanTrans(one, segKeys[0].second)
|
||||
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 {
|
||||
val numbered = segKeys.mapIndexed { i, st ->
|
||||
(i + 1).toString() + ". " + st.second
|
||||
|
|
@ -2544,7 +2553,11 @@ class MainActivity : AppCompatActivity() {
|
|||
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>()
|
||||
for ((key, _) in items) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue