static L> ai_misrecognitionCandidates2() { L> l = speechLogWithDates(); new L> out; for i over l: { WithTimestamp p = l.get(i); continue unless dm_isVoiceCommand(p!); int j = i-1; while ping (j >= 0 && l.get(j).timestamp >= l.get(j+1).timestamp-10*1000) { out.add(WithReasoning( format_quoteAll("* is usually a misrecognition of *", l.get(j)!, p!), format_noQuote("speech log entries * and *", l.get(j).toStringQuoted(), p.toStringQuoted()))); j--; } } ret out; }