尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Echo Loop 跟读AI评测是如何工作的:离线ASR、LCS对齐与词形还原评分全链路拆解

发布时间:2026/9/26 22:41:28

资讯中心
01
ARTICLE

Echo Loop 跟读AI评测是如何工作的:离线ASR、LCS对齐与词形还原评分全链路拆解

Echo Loop 跟读AI评测是如何工作的:离线ASR、LCS对齐与词形还原评分全链路拆解
Echo Loop 跟读AI评测是如何工作的离线ASR、LCS对齐与词形还原评分全链路拆解【免费下载链接】Echo-LoopEcho Loop 是一款科学、高效的 AI 英语听说训练 App通过精听、跟读、盲听、复述和间隔复习自动驱动学习者把每一段音频真正练懂、练熟、练到会说。项目地址: https://gitcode.com/echo-loop/Echo-LoopEcho Loop是一款 AI 英语听说训练 App通过精听、跟读、盲听、复述和间隔复习帮你把音频练懂、练熟、练到会说。本文完整拆解其中最硬核的一环跟读Shadowing阶段的 AI 评测链路——从你按下停止录音到屏幕上打出匹配分数、把说对的词高亮出来中间经历了离线 ASR 识别sherpa-onnx Whisper、词形还原、LCS 动态规划对齐三步关键计算。全程不依赖云端识别与打分都在手机本地完成 一、评测全链路停止录音后发生了什么跟读阶段的会话由 listen_and_repeat_controller.dart 驱动它负责播放原句、管理录音状态机并在你停止录音后把音频送入评测流程。整条链路可以概括为四步录音落盘麦克风采集生成临时音频文件录音过程由 speech_recording_controller.dart 管理离线 ASR 识别本地引擎把语音转成英文文本Whisper / Moonshine 模型sherpa-onnx 推理文本对齐对识别文本和原句做分词、词形还原再用 LCS 算法找出共同词序评分与高亮按「命中词数 ÷ 目标词数」算出 0~1 的分数并生成高亮片段渲染到界面。下面逐层拆解。二、第一步离线 ASR 识别sherpa-onnx Whisper为什么选离线识别跟读评测对时延和隐私都很敏感每次录音都要即时打分且不想把朗读音频上传到云端。Echo Loop 选择sherpa-onnx这个跨平台 ONNX 推理库把 Whisper 系列模型int8 量化版直接跑在手机 CPU 上。模型目录维护在 asr_model_catalog.dart 中提供三档英文模型可选模型体积特点whisper-tiny-en-int8~62 MB最快适合入门体验whisper-base-en-int8~95 MB速度与精度的平衡点whisper-small-en-int8~228 MB精度最高此外还有一个共享的 Silero VAD 语音活动检测模型~0.5 MB用于识别前自动裁掉静音段。所有模型带 SHA256 校验下载与安装由 ASR 专属归档安装器负责入口 Provider 定义在 asr_engine_provider.dart。后台 Isolate 推理不卡界面核心实现在 sherpa_onnx_engine.dart。引擎初始化时会在一个**常驻后台 IsolateWorker 隔离区**里加载 Recognizer主线程只通过消息传递SendPort/ReceivePort发送转录请求并等待结果推理全程不阻塞 UI 线程 转录时的实际流程见 sherpa_onnx_engine.dart#L558-L684VAD 裁静音用 Silero VAD 以 16kHz 采样率扫描音频只在静音 ≥ 0.8 秒处切段短停顿不会被切碎合并小段相邻语音段累积合并为 ≤ 30 秒的 chunkWhisper 的硬上限减少模型调用次数逐段解码每个 chunk 送入 Whisper 推理最后拼接各段文本作为最终转录结果崩溃防护进入 native 推理前先写一个 pending 文件若进程在推理中被杀native abort下次启动可据此定位「崩在 ASR 推理」。引擎的统一接口定义在 offline_asr_engine.dartAsrModelConfig还会根据设备 CPU 核心数自动推荐推理线程数8 核以上用 6 线程其余 2~4 线程不占满 CPU给界面留余量。三、第二步分词、小写化与词形还原Lemmatization拿到识别文本后直接逐词对比会误伤——你读的是 Iwentto the park而 ASR 可能输出 Iwentto parks大小写、单复数、时态差异都会让朴素比对失准。比对逻辑集中在 speech_practice_matcher.dart每个词会经过三层归一化只保留英文词用正则[A-Za-z](?:[A-Za-z])?提取单词标点、数字、中文全部忽略全部小写消除大小写差异词形还原Lemmatize调用lemmatizerx包把词还原到词根形态例如 went → go、running → run、studied → study。这样时态、单复数、动词形态的差异就不会扣分了。 词形还原是这套评分「宽松但可信」的关键它惩罚的是真正说错的词而不是语法变体。四、第三步LCS 对齐与评分归一化之后就是核心的LCS最长公共子序列Longest Common Subsequence计算实现见 speech_practice_matcher.dart#L127-L172。LCS 在这里解决什么问题不是要求识别文本与原句逐字相同而是找出两条序列中保持原始词序的最长公共词子序列用户多说的、少说的、语序小调整的词会被自然跳过只统计真正命中且词序一致的目标词算法用经典的动态规划填表原文词数 × 识别词数的二维表再回溯得到每一对命中的索引。分数怎么算evaluate()方法speech_practice_matcher.dart#L46-L98的判定规则非常直白分数 命中的目标词数 ÷ 原句总词数范围 0~1分数 ≥ 0.5状态为passed通过✅分数 0.5状态为belowThreshold低于阈值提示再练一遍未识别到任何英文状态为noEnglishDetected提示检查麦克风或重新朗读。这套状态机定义在 speech_practice_models.dart 中。评分完成后SpeechMatchResult还会携带两组高亮片段transcriptSegments/referenceSegments把命中的词和未命中的词按原文位置切分界面就能把你的朗读文本和原句逐词标色——说对了高亮漏掉/说错的留白一眼看出差距。五、彩蛋LCS 结果还驱动了「自动停止录音」同一套 LCS 匹配结果在录音过程中还有第二个用途——判断你是否已经读完从而自动停止录音。speech_completion_detector.dart 实现了 5 条规则取最激进最短等待的一条规则逻辑效果A 尾部连续匹配原句结尾有连续词被命中且该片段唯一大概率已读完 → 1 秒后停B 全句匹配率100% → 1s≥95% → 2s≥90% → 3s匹配越高停得越快C 末尾词命中数原句最后 5 词命中 5/4/3/2/≤1 个对应 1/2/3/4/5 秒D 剩余词数估算定位当前进度按剩余词数估算等待说得越多停得越快E 近完成匹配率 ≥90% 且末尾 5 词命中 ≥4高置信快速收尾规则全部未触发时还有基于「有声时长 ÷ 原句时长 × 语速补偿系数」的动态兜底speech_completion_detector.dart#L394-L413说得多的人不会被固定的长等待卡住。这套机制不只服务于跟读——复述Retell功能也复用同一个SpeechTranscriptMatcher做段落级评测见 retell_recording_controller_provider.dart。六、源码路径速查想深入阅读的读者可以从这几个文件切入离线 ASR 引擎实现lib/services/asr/sherpa_onnx_engine.dartASR 统一接口与模型配置lib/services/asr/offline_asr_engine.dart模型目录CDN 路径/校验和lib/services/asr/asr_model_catalog.dart文本比对器分词/词形还原/LCS/评分lib/services/speech_practice_matcher.dart自动停止检测规则lib/services/speech_completion_detector.dart评测数据模型lib/models/speech_practice_models.dart跟读会话控制器lib/providers/listen_and_repeat/listen_and_repeat_controller.dart相关单元测试test/ 目录下搜索speech_practice_matcher与speech_completion_detector即可找到对应测试用例七、小结Echo Loop 的跟读 AI 评测本质是一条完全本地化的评分流水线sherpa-onnx 让 Whisper 模型在手机上离线跑起来词形还原抹掉语法变体的噪音LCS 动态规划保留词序地衡量「你真正说对了多少」最后以 50% 覆盖率作为通过线并用逐词高亮告诉你差在哪里。没有云端依赖、没有黑盒打分——每一步规则都写在源码里欢迎对照阅读 【免费下载链接】Echo-LoopEcho Loop 是一款科学、高效的 AI 英语听说训练 App通过精听、跟读、盲听、复述和间隔复习自动驱动学习者把每一段音频真正练懂、练熟、练到会说。项目地址: https://gitcode.com/echo-loop/Echo-Loop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。