liwenhao2
|
edbfbe6434
|
说话人识别+翻译模型优化
|
2026-09-16 18:34:26 +08:00 |
liwenhao2
|
064fab39e0
|
取消声纹二次识别兜底(用户拍板):精确匹配制——判定链/滚动检索两处 nearestAttribution 硬归入全部移除,不中即新(不再对'最相似的人'做二次并人);nearestAttribution/nearestMargin/rollingFallbackMin 删除;verdictFallbackMin 专职切后命名的确认无人线;VERDICT-SCORE 日志去 fallback 字段;残余同类'兜底'仅剩:残料复用(嵌入算不出时的输入兜底)与灰带收编(不强制归属)
|
2026-09-16 17:18:13 +08:00 |
liwenhao2
|
12f008a4c1
|
声纹仅留 CAM++(用户拍板:eres2net 系识别效果太差整体退役):speakerModels 单条;initFastSpeakerModel 删除;单模型单空间——fastReady=false 时全部 fast 路径自动回落准确注册表(0.5/0.42 更严),滚动/快检/权威判定共用 CAM++;deferredNaming 镜像计算门控跳过;代价=每次滚动检查换 CAM++ 推理(检查线程串行,1s 节拍下可承受);设备 eres2net 两文件已无引用可删
|
2026-09-16 17:09:41 +08:00 |
liwenhao2
|
dea9622245
|
声纹识别整体调至稳健档(用户拍板:宽松一点,不要这么灵敏):4s主轴 drop 0.35→0.30;深低 0.22→0.18;快速通道 0.32→0.28;浅低连击 2→3;开口即查同人线 0.5→0.35(专用 onsetFireGate);minWindowRms 0.012→0.015 挡低能量碎音;原则=少切宁合,原值留档 git history
|
2026-09-16 16:59:12 +08:00 |
liwenhao2
|
2725c62b14
|
切后命名方案三(用户拍板):名字不诞生于开火,只诞生于切后纯净窗:
- 开火(FASTROLL/ONSET)不再发号发注册——只切行,grayLinePending 灰行先开(未识别);switchSerial/switchPrevActive 记录本切次
- deferredNaming(T+1.5~3.5s,取切后尾1.5s纯净素材,补喂机制保证全为新说法人声音):强匹配开火前主≥0.5→撤销误切;匹配已知人→上其名;确认无人(<0.42)→发新号双空间注册(素材干净永不产幽灵);灰色带→留灰由判定链收编
- adoptSwitchLabel(灰行就地冠名/未建行走预置);undoSwitch(重开抹迹/改签并回);serial 每次落地后自增防双发
- 根治病史:16:21 S6潮(单人在2.5min被8连发开火发出S7~S21七个幽灵,源自开火窗混合素材);新日志锚 NAMING-UNDO/ADOPT/NEW/WEAK
|
2026-09-16 16:43:54 +08:00 |
liwenhao2
|
31762d4627
|
主动撤销加强度门槛(实锤:短插嘴混合窗复核0.5~0.6弱匹配误撤了sim=0.04的真实异常):复核改用 nearestRank 名字级分数,CANCEL 需 score≥0.68(同人确认实测0.70~1.00安全带)且为当前人;弱匹配走 WEAK-SAME 留痕让切换立住;三类复核日志全部带分数,下次定罪不再靠猜
|
2026-09-16 16:17:38 +08:00 |
liwenhao2
|
898c5969e3
|
主动善后(用户反馈'善后不理想'):准确复核认出同人即撤销,不再被动等句子结束(长句错标挂几十秒):
- SpeakerRegistry.removeAuto(占位号清理)
- accurateRecheckAfterSwitch 的 CANCEL-LATE 分支→主线程 revertOnsetSwitch
- revert 两形态:占位行未建立(多数)→抹迹(预置作废/重开旧底行/防在途定格补封,零断行零闪烁);已建立→就地改签+并回+换色
- 仅当在途/落地切换仍指向该占位号时撤销,连环切换交被动链
|
2026-09-16 16:08:33 +08:00 |
liwenhao2
|
d004345ec3
|
快速通道终定2s窗(用户第三次拍板C:最快档+接受闪烁+并回兜底):fastWin=32000/fastMin=24000回退;1s周期/连击2/注册表复用/销案/冷却/并回自愈全保留;窗长演化与调参阶梯写入注释留档
|
2026-09-16 15:58:02 +08:00 |
liwenhao2
|
452bfc53bc
|
快速通道定案3s窗(用户选A):fastWin=48000/fastMin=32000(≥2s);窗长演化留档(2s版三度误切风暴后弃);1s周期/0.32/连击2/注册表复用/并回自愈保留;如有零星误切先抬阈值0.36
|
2026-09-16 15:52:12 +08:00 |
liwenhao2
|
88b5e9279c
|
2秒快速通道加连续两窗闸:单窗判决在2s+base模型上分不开换声与噪声(现场5分钟20发/21假号/负余弦-0.02铁证;同时刻4s通道0.85);连续两窗低分才开火——真人换声连窗相关性强(开火2.5~3s仍快于4s通道),孤立垃圾窗被滤;注册表销案/冷却/并回自愈保留
|
2026-09-16 15:44:41 +08:00 |
liwenhao2
|
944deb40ab
|
按用户决策改回2秒快速通道(明确接受短窗误切率):fastWin=32000/fastMin=24000/fastRollDrop=0.32回归;注册表复用编号、判定链并回自愈、3s冷却三道护持保留;注释留档:v8.1教训与两份现场证据,回4s/抬阈值即唯二旋钮
|
2026-09-16 15:33:19 +08:00 |
liwenhao2
|
7ade8283c7
|
快速通道修正(踩了v8.1短窗雷:2s窗+base模型同人相似度0.05~0.7狂震,90秒7次误切S2-S7):判定窗改回4s(与主通道同源)、周期1s保留(唯一提速来源)、阈值回0.35;占号前先查注册表——认出当前人销案/认出别人复用编号/陌生才发新号
|
2026-09-16 15:26:58 +08:00 |
liwenhao2
|
70acc03ce4
|
乐观快切(用户拍板:第一次识别先切、出错由并回自愈):
- 开口即查去掉'等准确复核'挡切换:fast 偏离即切+占号,复核降级为善后
- 新增快速滚动通道:2s 尾窗/1s 周期,快模型偏离锚点 0.32 即乐观快切(无缝场景检测延迟 3~5s→1.5~2.5s 目标)
- accurateRecheckAfterSwitch 善后:认出当前人→留痕(判定链并回自愈);真新人→补写准确空间防重发号;认出别人→留痕(判定链迁回)
- 冷却/锚点自弃/滞后喂料/标签钉住全套保留;fastRollDrop 为灵敏度钮
|
2026-09-16 15:22:05 +08:00 |
liwenhao2
|
699680a347
|
无缝强切占号双空间注册:S2双号实锤(05:01 S1只写fast镜像→sid5准确判定认不出→重发S2,同人S1/S2分裂,B的行标签漂移);占号时对同一窗口补算CAM++嵌入写入准确空间,后续判定稳定命中同一编号
|
2026-09-16 15:09:54 +08:00 |
liwenhao2
|
d1441acf69
|
ONSET-CANCEL 留痕:准确复核撤销切换(同人暂停续说)时输出 fastSim/label,验证复核关工作时可见
|
2026-09-16 15:03:17 +08:00 |
liwenhao2
|
02a27085f4
|
开口即查升级两级判定:误报实锤(A暂停续说,fast 短窗 simA<0.5 判新人,A续说句变'已识别人2'首句)——一级快锚点相似度(贴近=同人免复核),二级 CAM++ 准确空间复核(注册表认得出且为当前人→撤销切换;认得出别人→切给他;认不出→才当新人占号),占号时双空间镜像写入;ONSET-SWITCH 日志改 fastSim
|
2026-09-16 15:02:59 +08:00 |
liwenhao2
|
b6d4efe3f4
|
换行标签加固:onOnsetSwitch 落锤即写 lastConfirmedLabel(S1)——预置5s过期曾致新行开在但沿用旧标签,屏幕观感=没换人(S2案预置16s丢弃实锤);此后partial无论多晚到,新行都挂新标
|
2026-09-16 14:50:14 +08:00 |
liwenhao2
|
0fbeb8c893
|
切点风暴根治:冻结-补喂完成即作废锚点(windowRefEmb/PrevEmb=null+streak清零)——锚点重置原依赖'新人首句partial→开新行',碎片音/静默期无partial时旧锚点让每个噪声窗读深低→连环强切(现场14:35:47-59四连发);SWITCH-SUSPECT 日志补窗能量rms=便于区分真人换声/噪声戳穿底噪门
|
2026-09-16 14:39:28 +08:00 |
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 |