Commit Graph

40 Commits

Author SHA1 Message Date
liwenhao2 97dfa9de17 恒定滞后喂料:换人切点零串行(用户拍板,静音轮替+无缝都治):
- 音频先进 pendingBuf,识别流滞后 feedLagSamples(1.5s)喂入;分析窗口保持实时(判定时机不变)
- 开口即查/SWITCH-FORCE 判定即置 cutRequested:录制线程冻结缓冲→强制断句→补喂冻结音频给新流,旧句在切点干净收尾;旧句已结算则直接补喂开新句;Stop 前补齐缓冲防丢尾
- 效果:静音轮替渗漏1.2s→≈0;无缝插话渗漏2~4s→≈1~2s(受缓冲深度约束);代价=全局实时字幕统一晚约1.5s;日志 ONSET-HOLD/ONSET-FLUSH 对账
2026-09-16 14:32:57 +08:00
liwenhao2 cea9892426 KV污染根治(还9/14的债):JNI 每次 generate 前 llama_memory_clear——翻译慢的主因(每批重建引擎=每次尝试重载E2B 4~6s)就此免除;Kotlin 侧 translateNumbered 改引擎复用(translateEngine ?: ensure),闲置60s卸载不变;纪要流水线多块共享引擎的潜在污染同步消除;.so 已重编部署(strip 4.32MB,6导出符号) 2026-09-16 14:20:43 +08:00
liwenhao2 fe7c696589 翻译单引擎化(用户拍板):E2B 唯一引擎,两级架构下线——translateOne1B+translateFallback 合并为 translateOne(E2B+温度递进重试+全质检+逐字止损),ensureTranslateEngine 改配 E2B(ctx8192/录音4线程/空闲6),tap 模型检查与 toast 改指 E2B;gemma-3-1b 两常量删除;LlmEngine gemma3 模板分支退役(仅剩 gemma4);净+24/-96 2026-09-16 14:07:39 +08:00
liwenhao2 a39a08ae1c MiniCPM5 相关代码整体摘除(用户拍板):useMinicpm5 开关+三派生常量删除(gemma4-e2b 固定);renderMinicpmPrompt 与 minicpm 模板分支删除;think 块剥除(MiniCPM专属防御)删除(<|channel>thought 通用防御保留);prompts.md 适用模型/家族列表/PC复现示例全部改E2B;历史注释保留于退役处 2026-09-16 13:58:55 +08:00
liwenhao2 531b558c72 摘要引擎切回 E2B(用户确认):useMinicpm5=true→false——MiniCPM5 三连空模板回显(9/14 起),E2B 系 9/11 真机验证稳定引擎;翻译兜底跟随同步回 E2B;prompts.md 头部适用模型说明同步 2026-09-16 13:42:46 +08:00
liwenhao2 b14c5486ef 空概括回显探测修复:extractJson收紧空值判null后,旧'parsed!=null'式emptyEcho探测永远进不去(重试提示词误标'不是合法JSON');改原文正则探测{"概括":""},重试用准确措辞'空概括'并附强约束;现场raw(9)=空schema回显(键名正确格式合法,纯EMPTY进EMPTY出) 2026-09-16 13:39:15 +08:00
liwenhao2 caee985dcc 摘要措辞统一(笔记→概括):修复重试提示词/两条异常消息;等 UNPARSABLE 原始输出行定性P1失败(白卷 or 格式) 2026-09-16 13:36:34 +08:00
liwenhao2 98a3098172 摘要简化为单项内容概括(用户拍板:只做概括,概括+无标题要点,无时间戳):
- prompts.md+BULTIN(逐字同步,脚本复刻一致性单测验证四段全MATCH):P1=滚动重写单键schema {概括},400字内,同会议语言;P2=200~400字概括正文+3~6条「・」无标题要点,去标题/表格/出处/元信息
- EMPTY_NOTES/notesEntriesEmpty/KEY_ALIASES(概要总结摘要…→概括)/extractJson必键校验全部换schema;进度阶段名滚动笔记→内容概括(三语strings+映射)
- P2 maxNewTokens 2500→1600;resume双闸:MeetingNotesIO.load(extractJson)已拦旧schema,MainActivity再加含"概括"栅;旧notes.json→自动全量重跑
- 单测更新:goodJson新schema、别名用例、旧schema/空概括拒绝用例、MeetingNotesTest样例与占位符断言
2026-09-16 13:33:16 +08:00
liwenhao2 f77f90e1e9 翻译改直译模式(用户拍板):去掉同轮上下文(≤600字)——触发点不再拼装、两级引擎签名去掉 context、transCtxBlock 删除、重试丢上下文环节随之废除;原先疑虑的'长上下文诱发漂移'变量一并消除;指代/省略句质量代价已知情 2026-09-16 11:44:06 +08:00
liwenhao2 5dc9fdaf74 Revert "翻译兜底引擎与摘要A/B解耦:固定 gemma4-e2b(日语强项+本机已验证),不再寄生 useMinicpm5(纪要方向的开关;MiniCPM5日语未标定、本工程纪要场景日语表现差);新增 fallbackModelDirName/GgufName/ChatTemplate 三常量,translateFallback 改用;摘要管线维持原开关不动"
This reverts commit d18554d731.
2026-09-16 11:40:12 +08:00
liwenhao2 d18554d731 翻译兜底引擎与摘要A/B解耦:固定 gemma4-e2b(日语强项+本机已验证),不再寄生 useMinicpm5(纪要方向的开关;MiniCPM5日语未标定、本工程纪要场景日语表现差);新增 fallbackModelDirName/GgufName/ChatTemplate 三常量,translateFallback 改用;摘要管线维持原开关不动 2026-09-16 11:31:43 +08:00
liwenhao2 9a8391d913 白卷事故诊断:单句路径转储提示词两段长度+首尾(usr.head/tail),排除提示词层脏数据;现场梳理:空raw=两引擎同现+PERFHAL 'Translate to physical failed'+频繁自重启→头号嫌疑转向设备/模型文件层,代码侧翻译路径在好/坏构建间零差异(逐提交核对) 2026-09-16 11:22:47 +08:00
liwenhao2 206037994f 强切换行哑火根治(实机病灶):封行动作被三处早退吞掉——①强切时无进行中句(owner=-1),强制endpoint落进无句分支只有resetBuffer,永无finalize;②finalizeSentence两个早退(sentenceById缺失/重复定格)在封行代码之前。修:封行移至finalizeSentence入口(早退前);无句分支补发closeOnsetLineIfPending;预置标签加5s保鲜期防误挂;修复后链路:强切→封行→新句新行挂S1,日志ONSET-CLOSE/ONSET-LINE可查 2026-09-16 11:05:29 +08:00
liwenhao2 6239f0a37e SWITCH-FORCE 3s 冷却闸:实测强切落地链需1~2s完成,期间下一深低窗再开一枪(双发);冷却期内 suppressed(cooldown) 只记日志不再触发,去噪+防叠发;首次真机开火验证通过(deep-low 0.21 首窗即切+label=S1 防双号命中) 2026-09-16 10:59:39 +08:00
liwenhao2 0b731978ef 翻译预算分配修复+genfail诊断:录音中1B重试预算降到1次(两次尝试~30s),给兜底留出时间窗——现场15s×3吃满45s预算致TAP-FALLBACK skipped=budget;TRANSLATE single/batch empty 诊断日志(原始输出头48字,区分模型白卷与输出被清洗成空) 2026-09-16 10:54:17 +08:00
liwenhao2 290e4b205b Revert "锚点污染根治:深疑窗禁吸收(driftAbsorbMin=0.30)——日志实锤换人过渡期相邻窗2s重叠使simP天然≥0.5,渐变吸收+误断防护两链连环把新人声纹吸收进锚点,simA假性回升0.18→0.71,连续低分永远攒不满,无缝换人零触发;两处修:渐变吸收加simA≥0.30条件,误断防护回拉同理,深疑窗一律计入连击交强切判定;深低0.22一票/浅低两票机制不变"
This reverts commit 2b622b68bd.
2026-09-16 10:37:58 +08:00
liwenhao2 2b622b68bd 锚点污染根治:深疑窗禁吸收(driftAbsorbMin=0.30)——日志实锤换人过渡期相邻窗2s重叠使simP天然≥0.5,渐变吸收+误断防护两链连环把新人声纹吸收进锚点,simA假性回升0.18→0.71,连续低分永远攒不满,无缝换人零触发;两处修:渐变吸收加simA≥0.30条件,误断防护回拉同理,深疑窗一律计入连击交强切判定;深低0.22一票/浅低两票机制不变 2026-09-16 10:34:31 +08:00
liwenhao2 bcf70e40f0 langdrift 日志补尾巴:原 sample 只打前24字,曾造成"译文看着没问题为何被拒"的误导——判错常在中后段(前半译中文尾巴滑回日语);增 tail(尾16字)+len 字段,证据一次到位 2026-09-16 10:25:41 +08:00
liwenhao2 e17f8c0659 兜底内存峰值加固:translateFallback 加载大引擎前先释放 1B 引擎(刚连败无保留价值),瞬时峰值降~0.8GB;现场:langdrift(日语续写式漂移被targetLangOk拒)→兜底加载时刻 App 重启,待用户确认崩否 2026-09-16 10:10:59 +08:00
liwenhao2 a4631a0735 无缝插话提速+切行即挂名:深低分一票强切(deepLowSwitch=0.22,同人实测最低~0.39/异人窗0.14~0.19,安全带中枢),浅低维持两票;SWITCH-FORCE 改走 onOnsetSwitch 落地通道,切行同时经 pendingOnsetLabel 挂已知标签或当场占号(与开口即查共用防双号/封行/时序作废),不再等下一句结算;无缝场景 4~6s→3~4s 且标签即时 2026-09-16 10:07:23 +08:00
liwenhao2 86cea18dcb 开口即查:静音后开口1.2s立即判换人并换行(用户三选:静音后开口/一票制/立即占位编号):
- 录制循环:≥0.6s静音后的开口攒1.2s语音,快模型(base)一次判定——贴当前人(≥0.5)不动;命中注册表其他人→立即换行+已知标签;都不像→当场 nextAutoLabel 占号+fastRegistry注册,不等endpoint
- 落地链:ONSET-SWITCH→onOnsetSwitch(底行有在途句→pendingForceEndpoint强定格+onsetClosePending封行;否则直接封行)→appendNewLine消费pendingOnsetLabel(pendingOnsetLabel=新行标签+lastConfirmedLabel沿用);onsetSeq在换行/会话开始时作废在途判定
- 防双号:postSpeakerVerdict新号分配前先查fastRegistry(0.4),命中则复用开口占号并补全双空间镜像
- 换行延迟4~6s→~1.5s;无缝插话仍由SWITCH-FORCE streak兜底;onsetEnabled开关可A/B关闭
- 老机制全保留:滚动窗口/误断防护/EMA/60s空闲换行蹲;ktlint parse通过
2026-09-16 10:03:13 +08:00
liwenhao2 2bdeee2147 翻译开头 ASCII 残片清理(aby/nope/fewest 族):cleanTrans 加原文对照剥除——开头2~6位小写字母+分隔符+CJK/假名,且该片段不在原文中(原文真词或大写开头如AI/OK不误伤);四处调用点传 src(兜底/单句/编号批/逐段兜底);'aby'与'html>'同族=模型困惑态首词元落训练残片,后续译文健康时旧闸门全放行 2026-09-16 09:46:29 +08:00
liwenhao2 5bbdfa19ed 翻译开头格式残片清理:cleanTrans 新增 transNoisePrefix(围栏符/半截HTML标签/模板词元/html尾巴),与答案标签剥除交替循环直至稳定;现场'html>'=Gemma词表'</html>'尾部BPE词元,困惑态冷启动首词元落残留、后续译文正常全部质检放行导致上屏;剥空→null走重试;TAP-NOISE日志 2026-09-16 09:43:38 +08:00
liwenhao2 0997a21461 点击翻译两级架构+翻译质量治理+插话强切+CAM++声纹主选:
- 自动双语下线(requestTranslate/TransSeg封段二次译/初译批量队列/Start预热全删),改点击定稿句触发:同轮上下文≤600字、句下内联小字斜体、再点收起、精修改原文作废译文缓存;已翻译块淡琥珀背景高亮(收起即消,失败/在途不标)
- 两级翻译:1B主链(genfail/echo温度递进0→0.3→0.7末次丢上下文;langdrift一次即升档;被拒样本逐字相同立即止损)+摘要引擎兜底(临时加载用完release,文学体意译提示词,同套质检)
- 翻译质量:JNI加repeatPenalty(翻译路径1.1/摘要0不变)+种子随温度错位;cleanTrans剥「翻訳:」类标签;译文复读折叠+原文自重复忠实放行(srcHasRepetition);三语闸门sourceLangOk+targetLangOk重音拉丁档;录音中1线程+BACKGROUND+预算45/90s
- 声纹:无缝插话确证(连续低分streak≥2→SWITCH-FORCE强判endpoint,实锤日志:插话场景SUSPECT三次armed三次expired);VERDICT-SCORE校准日志;speakerModels主换CAM++ zh_en(v1.13架构无关换文件即生效,v2/base兜底,fast取末位防错位)
- strings trans_*×6三语;ktlint全量parse通过;libsummarize-llm-jni.so已重编交付(*.so不入库)
2026-09-16 09:36:02 +08:00
liwenhao2 f4501c8812 fixup: 修复补丁脚本把Kotlin换行转义展开成真实换行导致的两处断字符串(langdrift/seg-drift sample日志),编译错误1968:71 2026-09-15 11:24:11 +08:00
liwenhao2 4ce45cb4b9 langdrift取证与调优: MISS日志附被拒译文样本,ja假名阈值4%→2%+至少2假名(治汉字密集合法日语误杀),langdrift重试收敛为1次(0.7高温无益) 2026-09-15 11:21:07 +08:00
liwenhao2 8abad1eb78 漏句最后一里: 重试预算2次温度递进0.3→0.7(跳贪心死路)、MISS日志带attempt、Start预热翻译引擎消除冷加载期开头失败 2026-09-15 11:10:05 +08:00
liwenhao2 c25f40927e 翻译三语锁定: 提示词显式声明只在中/日/英间翻译(非三语输入输出空串),targetLangOk对西里尔/阿拉伯/希伯来/泰/韩等三语外文字零容忍(任何目标语直接拒收→MISS langdrift→重试) 2026-09-15 10:59:36 +08:00
liwenhao2 635a06e1c5 批次跳号与拉丁混入治理: 编号批缺失段逐一直出兜底(每段全新引擎)、拼回整句要求段段齐全(有洞宁缺不残,MISS seg-hole)、targetLangOk对日/中目标加拉丁占比>33%拒绝(拦manque类欧洲语言漂移) 2026-09-15 10:57:01 +08:00
liwenhao2 679b88bec3 语言漂移治理: 长句拆段≤140字段级编号一次生成再拼回(治简→繁→异语中途掉线)、目标语健全检查(ja须假名/zh须简体/en无CJK)、漂移带温度0.3重试一次、提示词注入目标语硬约束、MISS langdrift/seg-drift日志 2026-09-15 10:46:20 +08:00
liwenhao2 902084e175 fixup: 修复上一补丁脚本写坏的两处Kotlin字符串模板(SEG-MISS日志行),kotlinc报错定位 2026-09-15 10:30:02 +08:00
liwenhao2 6f5e004351 漏句治理第二轮: 初译逐句直出(batch=1)消灭JSON格式风险、失败自动重试一次、全链路MISS日志(genfail/empty/echo/seg-*)、isEcho日中方向阈值0.88修复错杀型漏句 2026-09-15 10:25:15 +08:00
liwenhao2 6264403b9e 首句不翻译修复: 单句批改直出模式(不套JSON)、token预算按原文长度动态化(原160/句截断长句致整批静默丢弃)、编号对容错扫描器(截断JSON也能救条目)、段末对未译句兜底补翻 2026-09-15 10:09:12 +08:00
liwenhao2 da45878c54 翻译复读治理: 初译批次4→2、逐条isEcho复读检测(归一化+二元组Jaccard)拒写抄原文、二次翻译同规则、提示词显式禁抄并允许空串 2026-09-15 09:57:08 +08:00
liwenhao2 2e1de4da48 i18n批次: LanguageUtil+en/ja三语资源、阶段总结文档、models大文件与~$临时docx排除入库 2026-09-14 18:31:46 +08:00
liwenhao2 34e9fb3578 出现未识别标签保留字幕bug修复:给兜底,与最相似声纹合并 2026-09-14 18:17:29 +08:00
liwenhao2 7892e35d2d 出现未识别标签保留字幕bug修复:给兜底,与最相似声纹合并 2026-09-11 18:23:04 +08:00
liwenhao2 236037a0b0 阶段性基线:字幕说话人命名交互+换人断句/定稿加固(v2-v8.4)、离线纪要子系统、健壮性(息屏保活/会话保留50场/死代码清理/新增单测)——待真机验证 2026-09-11 17:27:08 +08:00
liwenhao2 7e7206a8d4 新模型+说话人区分 2026-09-10 18:26:20 +08:00
liwenhao2 80d3f59ecf Initial commit: SherpaOnnx2Pass 双通道 ASR 安卓工程(含说话人区分) 2026-09-10 14:47:15 +08:00