Spaces:
Running
Running
update README.md
Browse files
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
|
| 10 |
---
|
| 11 |
|
| 12 |
# 录匣 Offlisten
|
| 13 |
|
| 14 |
100% 离线的会议 / 课堂转写。没有账号,没有云端,拔掉网线它还在写。
|
| 15 |
|
| 16 |
-
这个 Space 是
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 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` |
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
|
| 51 |
-
|
| 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 |
+
```
|