ToothpasteLake commited on
Commit
3ce50b8
·
verified ·
1 Parent(s): b1c576e

update README.md

Browse files
Files changed (1) hide show
  1. README.md +33 -13
README.md CHANGED
@@ -6,17 +6,17 @@ colorTo: yellow
6
  sdk: static
7
  pinned: false
8
  license: mit
9
- short_description: 100% offline ASR for meetings — local, no upload
10
  ---
11
 
12
  # 录匣 Offlisten
13
 
14
  100% 离线的会议 / 课堂转写。没有账号,没有云端,拔掉网线它还在写。
15
 
16
- 这个 Space 是**静态证据页**:五个语种的实测输出、RTF 分布、演示视频。
17
- 不放可交互 demo 的原因很实际——转写要在服务端跑 229 MiB 的模型,
18
- 而 Hugging Face 免费账号不能运行 CPU 上的 Gradio 容器(`cpu-basic` 返回配额错误,
19
- `zero-a10g` 返回 402,官方文档写明 Gradio/Docker Space 需要付费计划)。
20
 
21
  ## 目录里有什么
22
 
@@ -26,18 +26,19 @@ short_description: 100% offline ASR for meetings — local, no upload
26
  | `demo.mp4` | 42 秒演示:五段音频真跑,听完才落字;`tools/record-demo.py` 生成 |
27
  | `demo.mp4.json` | 那次录制的实测记录:每段文本、耗时、音频 sha256 |
28
  | `use-with-browser-ai.mp4` | 46 秒,无音轨:本地文本页 + Page Assist + Ollama 的闭环实录 |
 
29
  | `README.md` | 本文件,Space 卡片元数据 |
30
- | `app.py`、`requirements.txt` | **Gradio 版**,本地已跑通;当前 `sdk: static` 不执行它。升级 PRO 后把 frontmatter 改回 `sdk: gradio` 即可切换 |
31
 
32
  ## 演示是怎么录的
33
 
34
- 不是手工录屏。`tools/record-demo.py` 做三件事,所以视频和上表不可能对不上:
35
 
36
  1. 用同一份权重、同样 2 线程,真跑五段 `test_wavs`,拿到文本与耗时
37
- 2. 起本地 `web_live` 服务与无头 Edge,把每段结果按真实时钟推给页面,逐帧截图
38
  3. 按同一时钟把五段音频混成音轨,ffmpeg 合成 H.264 + AAC
39
 
40
- 因此视频里“字幕出现的时刻”就是产品里“一段话说完的时刻”,音画不会漂。
41
 
42
  ## 接本地的 AI
43
 
@@ -45,12 +46,23 @@ short_description: 100% offline ASR for meetings — local, no upload
45
 
46
  本机 SenseVoice → 127.0.0.1 上的文本页 → 浏览器扩展 Page Assist 读当前页 → Ollama 上的 qwen2.5:0.5b 作答
47
 
48
- 三个部件都在同一台机器上,链路里没有一处需要出网。这不是外挂,是产品页里写好的出口——
49
- 本地文本页有一行提示:「要交给 AI 处理,就复制全文,或让你浏览器里已有的 AI 插件读取本页。」
 
 
 
 
50
 
51
- 视频去掉音轨、裁掉录屏工具条后转码:源素材 14.8 MB → 1.2 MB,1440×746。
52
- 去掉声音是因为它要证明的是数据不出本机,不是听感。
53
 
 
 
 
 
 
 
 
54
 
55
  ## 模型与音频
56
 
@@ -58,3 +70,11 @@ short_description: 100% offline ASR for meetings — local, no upload
58
  6 个文件 229.07 MiB,逐文件 sha256 对应发行清单。
59
  表里那五段音频在同一个仓库的 `test_wavs/` 下,点语种名可以直接听,也可以下载后自己复跑。
60
 
 
 
 
 
 
 
 
 
 
6
  sdk: static
7
  pinned: false
8
  license: mit
9
+ short_description: 100% offline ASR for meetings, local, no upload
10
  ---
11
 
12
  # 录匣 Offlisten
13
 
14
  100% 离线的会议 / 课堂转写。没有账号,没有云端,拔掉网线它还在写。
15
 
16
+ 这个 Space 是静态证据页:五个语种的实测输出、两段演示视频,以及一张端侧 ASR 运行时选型矩阵。
17
+
18
+ 不放可交互 demo,原因是免费档跑不了 Gradio 容器:`cpu-basic` 返回配额错误,`zero-a10g` 返回 402,
19
+ 官方文档写明 Gradio / Docker Space 需要付费计划。转写本来也要在本地跑 229 MiB 的模型。
20
 
21
  ## 目录里有什么
22
 
 
26
  | `demo.mp4` | 42 秒演示:五段音频真跑,听完才落字;`tools/record-demo.py` 生成 |
27
  | `demo.mp4.json` | 那次录制的实测记录:每段文本、耗时、音频 sha256 |
28
  | `use-with-browser-ai.mp4` | 46 秒,无音轨:本地文本页 + Page Assist + Ollama 的闭环实录 |
29
+ | `matrix-zh.png` / `matrix-en.png` | 选型矩阵,1000×780;源文件 `docs/bench/*.svg`,改文案后重出 PNG/PDF |
30
  | `README.md` | 本文件,Space 卡片元数据 |
31
+ | `app.py`、`requirements.txt` | Gradio 版,本地跑通过;当前 `sdk: static` 不执行它 |
32
 
33
  ## 演示是怎么录的
34
 
35
+ 不是手工录屏。`tools/record-demo.py` 做三件事,所以视频和页面上那张表不可能对不上:
36
 
37
  1. 用同一份权重、同样 2 线程,真跑五段 `test_wavs`,拿到文本与耗时
38
+ 2. 起本地 `web_live` 服务与无头 Edge,按真实时钟把每段结果推给页面,逐帧截图
39
  3. 按同一时钟把五段音频混成音轨,ffmpeg 合成 H.264 + AAC
40
 
41
+ 所以字幕出现的时刻,就是产品里一段话说完的时刻,音画不会漂。
42
 
43
  ## 接本地的 AI
44
 
 
46
 
47
  本机 SenseVoice → 127.0.0.1 上的文本页 → 浏览器扩展 Page Assist 读当前页 → Ollama 上的 qwen2.5:0.5b 作答
48
 
49
+ 三个部件都在同一台机器上,链路里没有一处需要出网。本地文本页上那行提示就是为这条路留的:
50
+ 「要交给 AI 处理,就复制全文,或让你浏览器里已有的 AI 插件读取本页。」
51
+
52
+ 源素材 14.8 MB,裁掉录屏工具条、去掉音轨后是 1.2 MB,1440×746。
53
+
54
+ ## 选型矩阵
55
 
56
+ 4 个运行时 × 3 个平台,12 格里只有 2 格同时满足「CPU 能跑 · 流式 · 能装进别人的机器」。
57
+ 逐格依据分级:5 格来自官方文档或包矩阵,1 格本机实测,1 格只验过模型,5 格是推断。
58
 
59
+ 页面上的链接都可以当场点开核:
60
+
61
+ - [FunAudioLLM 论文(arXiv:2407.04051)](https://arxiv.org/abs/2407.04051)
62
+ - [sherpa-onnx 文档](https://k2-fsa.github.io/sherpa/onnx/)
63
+ - [sherpa-ncnn 的 SenseVoice 章](https://k2-fsa.github.io/sherpa/ncnn/sense-voice/)
64
+ - [Triton 后端支持矩阵](https://docs.nvidia.com/deeplearning/triton-inference-server/user-guide/docs/backend/docs/backend_platform_support_matrix.html)
65
+ - [PyPI 上 sherpa-ncnn 的 wheel 列表](https://pypi.org/project/sherpa-ncnn/#files)
66
 
67
  ## 模型与音频
68
 
 
70
  6 个文件 229.07 MiB,逐文件 sha256 对应发行清单。
71
  表里那五段音频在同一个仓库的 `test_wavs/` 下,点语种名可以直接听,也可以下载后自己复跑。
72
 
73
+ ## 更新这个 Space
74
+
75
+ 页面改动后跑一次,脚本会跳过 `_` 开头的本地临时文件,并在 `--verify` 下逐个核对线上字节数:
76
+
77
+ ```bash
78
+ python tools/push-space.py --dry-run # 只看会传什么
79
+ python tools/push-space.py --verify # 传 + 核对
80
+ ```