Local-first English shadowing app: import your own videos and subtitles for line-by-line listening and speaking practice. 英语影子跟读。
9
stars
11
commits
Dart
primary language
Sep 5, 2026
updated
A local-first English shadowing app for listening and speaking practice with your own videos and subtitles.
使用自己的视频和字幕,通过逐句精听、重复播放和影子跟读练习英语听力与口语。
English · 中文
下载最新版 · 字幕功能说明 · 从源码运行 · 导入学习素材
| 播放与逐句精听 | 导入本地视频与字幕 |
|---|---|
![]() | ![]() |
| 点按字幕、循环难句,在视频与原句之间保持专注。 | 选择自己的媒体与字幕,确认匹配后开始学习。 |
| 点词查译与上下文 | 全文逐词阅读与播放联动 |
![]() | ![]() |
| 点按字幕单词,立即查看释义、原句上下文,并可收藏或播放发音。 | 打开全文逐词阅读器,播放进度会同步定位当前句和单词。 |
| 视频字幕点词弹窗 | |
![]() | |
| 视频正在播放时,也能直接点按画面字幕里的单词查看释义。 | |
| 三遍学习法 | 学习成长与等级 |
![]() | ![]() |
| 先理解,再精听,最后跟读。 | 记录练习、积累经验,清楚看到下一步。 |
| 单词本 | 短语复习 |
![]() | ![]() |
| 将查过的重点单词留在语境中继续复习。 | 收藏值得反复开口练习的表达。 |
| 字幕、翻译与播放设置 | |
![]() | |
| 按自己的学习方式配置字幕与辅助能力。 |
Shadowing English 是一个 English shadowing app:你导入自己有权使用的本地视频和字幕,用真实场景完成听懂、重复、模仿和开口表达。项目不提供任何影视、课程或字幕资源;学习素材保留在你的设备上。
影子跟读不是只跟着念一遍台词。它把英语听力练习和英语口语练习放在同一段真实视频里:先理解内容,再辨认声音,最后模仿说话者的节奏、连读、语调和发音。
你可以把自己想看的内容变成字幕英语学习材料。单词和短语不会脱离语境,下一次也能回到原来的句子继续练。
短句循环让听觉识别和口语输出不断衔接。每次只练几句,也能逐步从“看懂字幕”走到“听懂并说出来”。
.srt 或 .vtt 字幕,按文件名和集数标记匹配视频与字幕。Shadowing English 不只是在视频上显示一句字幕,而是把字幕变成可以定位、循环、查词和跟读的学习时间轴。你可以按素材情况选择以下方式:
.srt 和 .vtt。已有质量较好的字幕时,这是最直接的方式;英文和中文字幕可以按文件名自动匹配。生成字幕会调用你选择的第三方服务,可能产生少量费用。API Key 请只填写在应用设置中,不要提交到仓库、截图或公开日志里。
本地视频
→ 在设备上提取并分段音频
→ ASR 服务识别英文和词级时间戳
→ 本地合并、检查并修复时间轴
→ 可选生成中文翻译
→ 保存到本机并随播放逐词高亮
如果素材已有英文外部字幕或可读取的内置字幕,应用会把它作为参考:保留更完整、可靠的原字幕文本,再利用语音识别结果补充或校准单词时间。参考字幕不会被静默覆盖;当识别结果或时间轴需要修复时,应用会给出提示。没有参考字幕时,则直接根据视频音频生成英文文本和时间轴。
AI 识别仍可能受到背景音乐、多人重叠说话、口音和录音质量影响。重要内容建议使用已有字幕作为参考,并在“管理 AI 字幕”中检查后再长期使用。
最新版为 v0.1.1,已提供以下安装包:
.tar.gz.zip前往 Releases 选择对应平台下载。
从 v0.1.2 起,每个版本附带 SHA256SUMS.txt,可用于校验下载文件是否完整。
桌面安装包内置了用于本地音频提取的精简版 FFmpeg,无需用户额外安装;许可证和构建信息会随应用一起发布。
需要 Flutter 3.44.4;仓库通过 FVM 固定版本。首次使用请先安装 FVM。
git clone https://github.com/MarkYuanGo/shadowing-english.git
cd shadowing-english
fvm use 3.44.4
fvm flutter pub get
fvm flutter run
在 VS Code 中安装 Flutter 与 Dart 扩展,打开项目根目录后,选择运行和调试配置 Flutter - Prod (select device),再按 F5。项目会通过 .fvm/flutter_sdk 使用固定的 Flutter 版本;请不要提交本机 SDK 路径、设备 ID 或密钥。
如果使用自己的 Flutter 环境,也可以执行:
flutter pub get
flutter run
推荐让视频与字幕使用相同的集数命名,例如:
Friends-S01E01.mp4
Friends-S01E01.en.srt
Friends-S01E01.zh.srt
英文字幕可以是同名的 Friends-S01E01.srt,也可以通过 .en、_en、english 等文件名标记识别。导入前请确认你拥有相应媒体和字幕的使用权。
更多说明见 RESOURCE_SETUP.md。仓库不附带影视内容、商业字幕或未经授权的学习资源。
欢迎提交 Issue,尤其是字幕匹配、播放器与跨平台问题。准备 Pull Request 前,建议先开 Issue 讨论;请不要提交未经授权的视频、字幕或课程资源。
Shadowing English 使用 MIT License 开源。
如果你正在寻找一个用本地视频练习英语听力、英语跟读和英语口语表达的工具,欢迎试试 Shadowing English。
8 commits
3 commits
Dart
93.5%
Kotlin
1.7%
C++
1.6%
CMake
1.1%
HTML
1.0%
Local-first English shadowing app: import your own videos and subtitles for line-by-line listening and speaking practice. 英语影子跟读。
9
stars
11
commits
Dart
primary language
Sep 5, 2026
updated
A local-first English shadowing app for listening and speaking practice with your own videos and subtitles.
使用自己的视频和字幕,通过逐句精听、重复播放和影子跟读练习英语听力与口语。
English · 中文
下载最新版 · 字幕功能说明 · 从源码运行 · 导入学习素材
| 播放与逐句精听 | 导入本地视频与字幕 |
|---|---|
![]() | ![]() |
| 点按字幕、循环难句,在视频与原句之间保持专注。 | 选择自己的媒体与字幕,确认匹配后开始学习。 |
| 点词查译与上下文 | 全文逐词阅读与播放联动 |
![]() | ![]() |
| 点按字幕单词,立即查看释义、原句上下文,并可收藏或播放发音。 | 打开全文逐词阅读器,播放进度会同步定位当前句和单词。 |
| 视频字幕点词弹窗 | |
![]() | |
| 视频正在播放时,也能直接点按画面字幕里的单词查看释义。 | |
| 三遍学习法 | 学习成长与等级 |
![]() | ![]() |
| 先理解,再精听,最后跟读。 | 记录练习、积累经验,清楚看到下一步。 |
| 单词本 | 短语复习 |
![]() | ![]() |
| 将查过的重点单词留在语境中继续复习。 | 收藏值得反复开口练习的表达。 |
| 字幕、翻译与播放设置 | |
![]() | |
| 按自己的学习方式配置字幕与辅助能力。 |
Shadowing English 是一个 English shadowing app:你导入自己有权使用的本地视频和字幕,用真实场景完成听懂、重复、模仿和开口表达。项目不提供任何影视、课程或字幕资源;学习素材保留在你的设备上。
影子跟读不是只跟着念一遍台词。它把英语听力练习和英语口语练习放在同一段真实视频里:先理解内容,再辨认声音,最后模仿说话者的节奏、连读、语调和发音。
你可以把自己想看的内容变成字幕英语学习材料。单词和短语不会脱离语境,下一次也能回到原来的句子继续练。
短句循环让听觉识别和口语输出不断衔接。每次只练几句,也能逐步从“看懂字幕”走到“听懂并说出来”。
.srt 或 .vtt 字幕,按文件名和集数标记匹配视频与字幕。Shadowing English 不只是在视频上显示一句字幕,而是把字幕变成可以定位、循环、查词和跟读的学习时间轴。你可以按素材情况选择以下方式:
.srt 和 .vtt。已有质量较好的字幕时,这是最直接的方式;英文和中文字幕可以按文件名自动匹配。生成字幕会调用你选择的第三方服务,可能产生少量费用。API Key 请只填写在应用设置中,不要提交到仓库、截图或公开日志里。
本地视频
→ 在设备上提取并分段音频
→ ASR 服务识别英文和词级时间戳
→ 本地合并、检查并修复时间轴
→ 可选生成中文翻译
→ 保存到本机并随播放逐词高亮
如果素材已有英文外部字幕或可读取的内置字幕,应用会把它作为参考:保留更完整、可靠的原字幕文本,再利用语音识别结果补充或校准单词时间。参考字幕不会被静默覆盖;当识别结果或时间轴需要修复时,应用会给出提示。没有参考字幕时,则直接根据视频音频生成英文文本和时间轴。
AI 识别仍可能受到背景音乐、多人重叠说话、口音和录音质量影响。重要内容建议使用已有字幕作为参考,并在“管理 AI 字幕”中检查后再长期使用。
最新版为 v0.1.1,已提供以下安装包:
.tar.gz.zip前往 Releases 选择对应平台下载。
从 v0.1.2 起,每个版本附带 SHA256SUMS.txt,可用于校验下载文件是否完整。
桌面安装包内置了用于本地音频提取的精简版 FFmpeg,无需用户额外安装;许可证和构建信息会随应用一起发布。
需要 Flutter 3.44.4;仓库通过 FVM 固定版本。首次使用请先安装 FVM。
git clone https://github.com/MarkYuanGo/shadowing-english.git
cd shadowing-english
fvm use 3.44.4
fvm flutter pub get
fvm flutter run
在 VS Code 中安装 Flutter 与 Dart 扩展,打开项目根目录后,选择运行和调试配置 Flutter - Prod (select device),再按 F5。项目会通过 .fvm/flutter_sdk 使用固定的 Flutter 版本;请不要提交本机 SDK 路径、设备 ID 或密钥。
如果使用自己的 Flutter 环境,也可以执行:
flutter pub get
flutter run
推荐让视频与字幕使用相同的集数命名,例如:
Friends-S01E01.mp4
Friends-S01E01.en.srt
Friends-S01E01.zh.srt
英文字幕可以是同名的 Friends-S01E01.srt,也可以通过 .en、_en、english 等文件名标记识别。导入前请确认你拥有相应媒体和字幕的使用权。
更多说明见 RESOURCE_SETUP.md。仓库不附带影视内容、商业字幕或未经授权的学习资源。
欢迎提交 Issue,尤其是字幕匹配、播放器与跨平台问题。准备 Pull Request 前,建议先开 Issue 讨论;请不要提交未经授权的视频、字幕或课程资源。
Shadowing English 使用 MIT License 开源。
如果你正在寻找一个用本地视频练习英语听力、英语跟读和英语口语表达的工具,欢迎试试 Shadowing English。
8 commits
3 commits
Dart
93.5%
Kotlin
1.7%
C++
1.6%
CMake
1.1%
HTML
1.0%