[Showcase] CallRec — 手机通话录音的 100% 离线档案库(SenseVoice + CAM++ 声纹 + Ollama 摘要 + 关系图谱)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Aptitud para principiantes
- 88/100
- Tipo de issue
- Documentación
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Área
- documentation
Línea de trabajo
Empieza por docs/community_projects.md y revisa el formato de showcase existente. Añade CallRec con el enlace al repositorio, el flujo de trabajo offline y las integraciones relevantes de FunASR del issue; después, verifica que la entrada cumpla las convenciones de showcase del proyecto e incluya las capturas de pantalla, el GIF o el enlace de Colab solicitados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
这是什么 / What
CallRec 是一个面向「手机自动通话录音」垂直场景的全本地闭环应用:把成千上万通躺在文件夹里的 .m4a,变成可全文检索、可按人/按时间统计、可看关系图谱、可导出音色克隆的私人档案库。全程离线,音频与转写永不离开本机。
仓库:https://github.com/RevolutionLA/call-recording-archive (MIT)
用到的 FunASR 能力
| 环节 | 模型 |
|---|---|
| VAD | fsmn-vad |
| 转写 | SenseVoiceSmall(language=auto, use_itn) |
| 标点恢复 | ct-punc |
| 声纹/说话人分离 | CAM++(192 维 embedding + scipy 层次聚类,通话场景强制 k=2) |
完整流水线
scan(文件名解析姓名/号码/时间)
→ run(16k 规范化 → VAD → SenseVoice → 标点 → CAM++ → 双人聚类)
→ align(跨通话质心聚类自动锁定「我」→ 联系人归并)
→ summarize(本地 Ollama:摘要/待办/事件/情绪)
→ graph + web 驾驶舱(FastAPI + 自绘 Canvas 力导向图 + ECharts,零 CDN)
→ voices(导出 6–18s 干净人声片段给 Qwen3-TTS 克隆音色)
亮点
- 通话专属:利用「每通电话你必然在场」的先验自动确定「我」,这是会议/播客工具没有的问题设定;电话 8k 音质下的声纹阈值与聚类策略已实测调优。
- 断点续跑:每通独立状态,千通级批处理一夜跑完,单通失败不拖垮整批。
- SQLite 单文件即数据库(WAL 并发),备份=复制一个文件。
- 零外网依赖:模型走 ModelScope 国内缓存,前端字体与图表库全部本地 vendor。
欢迎 FunASR 用户试用与反馈;如有兴趣,也很乐意被收录进 docs/community_projects.md / use-case showcase。愿意按你们的收录规范补充任何材料(演示截图、GIF、Colab 链接等)。
English summary
CallRec turns folders of phone call recordings into a fully offline personal archive: SenseVoice + fsmn-vad + ct-punc transcription, CAM++ voiceprint diarization that auto-identifies "me" across calls, contact merging, local LLM (Ollama) summaries, full-text search, a hand-drawn Canvas force-directed relationship graph, and clean voice-clip export for Qwen3-TTS cloning. No audio or transcript ever leaves the machine. MIT licensed — feedback and contributions welcome.
- Lenguaje dominante
- Python
- Estrellas
- 20.5k
- Forks
- 2.1k
- Merge medio
- 13 h 33 min
- PR fusionados (30 d)
- 139
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de modelscope/FunASR
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
modelscope/FunASR#3704 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
没有vllm时使用fun-asr-nano每次都重新加载模型Abiertobug needs feedback
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
modelscope/FunASR#3401 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
关于实时模式的vllm解码并发问题Abiertobenchmark needs feedback question
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
modelscope/FunASR#3732 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
【暴露的问题比断句严重】实时语音,切分不够彻底,怎么解决Abiertobug needs triage
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
modelscope/FunASR#3727 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
funasr-nano在电话录音识别场景表现不是很好Abiertoneeds triage question
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
modelscope/FunASR#3718 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de modelscope/FunASR
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
PedestrianDynamics/pyFDS-Evac#343 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
theskumar/python-dotenv#708 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 2 días
-
Docs Timedelta
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
pandas-dev/pandas#69919 ·
Los mantenedores suelen responder en 1 día
-
API documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
zephyrproject-rtos/west#1009 · 2 comentarios ·
Los mantenedores suelen responder en 3 días