Add your description here
Project description
recallia
Minimal voice-to-notes pipeline with FunASR + Ollama.
Quickstart (Docker)
- Requirements: Docker & docker-compose; NVIDIA GPU + container toolkit recommended; Ollama (runs as a service in compose).
- (Optional) Reuse host Ollama models: set
HOST_OLLAMA_MODELS=/path/to/host/.ollamabeforedocker compose up. - Build & run:
docker compose up --build
- Drop audio files (
.mp3/.wav/.m4a/.aac) intodata/inbox/. Outputs land indata/archive/YYYY-MM-DD/<hash>/.
Flow
- ASR via FunASR (GPU if available).
- Summaries/tags + per-sentence emotions via Ollama.
- Artifacts per file: original audio,
transcript.jsonl,llm_summary.json,llm_emotion.json,run.log. - Metadata in SQLite
data/db.sqlite3.
Config
docker-compose.yaml:OLLAMA_HOST(defaults tohttp://ollama:11434), GPU flags, caches (./cache,./modelscope, optionalHOST_OLLAMA_MODELS).recallia/config.py: ASR device, LLM model, base paths.
Local (no Docker)
uv sync
python -m recallia
Ensure Ollama reachable at OLLAMA_HOST.
Demo data
Use examples/generate_demo_data.py to produce sample audio/text for testing.
Example archive (real output)
data/archive/2025-12-15/7daf3d771c04/
- 02_emergency_call.mp3
- transcript.jsonl
- llm_summary.json
- llm_emotion.json
- run.log
run.logkey fields:- summary: 技术人员发现API网关出现502错误,原因是数据库连接延迟导致CPU负载过高和慢查询问题。决定手动添加索引并切换流量以缓解当前状况。
- tags: api网关, 数据库连接, 索引
- duration_sec: 7.064
llm_summary.jsonsnippet:
{
"response": {
"summary": "技术人员发现API网关出现502错误,原因是数据库连接延迟导致CPU负载过高和慢查询问题。决定手动添加索引并切换流量以缓解当前状况。",
"tags": "api网关, 数据库连接, 索引"
}
}
transcript.jsonlstarts with full text, then per-segment entries. Excerpt:
{"type": "full_text", "text": "Speaker 0: 喂,老张听得到吗?出大问题了, api 网关全是五百零二报错。\nSpeaker 2: 听到了,我刚看监控,数据库连接迟爆了, cpu 直接飙到百分之一百,\n..."}
{"type": "segment", "speaker": "Speaker 0", "text": "喂,", "start_time": 290, "end_time": 530, "emotion": "neutral"}
{"type": "segment", "speaker": "Speaker 2", "text": "数据库连接迟爆了,", "start_time": 10860, "end_time": 12400, "emotion": "neutral"}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
recallia-0.0.2.tar.gz
(10.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
recallia-0.0.2-py3-none-any.whl
(12.1 kB
view details)
File details
Details for the file recallia-0.0.2.tar.gz.
File metadata
- Download URL: recallia-0.0.2.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05bd264fcdc7ba153fd060139835239adb2ff7b0b6e62325abf25e0772356055
|
|
| MD5 |
de14b23791aebfee19665a4c1d408c7e
|
|
| BLAKE2b-256 |
484e93822ad31a455e46df649c2c6ae3eceb8166e0d9719ca9d0c2874eadbcb9
|
File details
Details for the file recallia-0.0.2-py3-none-any.whl.
File metadata
- Download URL: recallia-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
179dd68fe3ee95aa96c9cb7a6c6cd487712b6549e423c4707c1501f6ab2ddbf5
|
|
| MD5 |
30a04d714ccec0b92b5ec3f4508ba09f
|
|
| BLAKE2b-256 |
84cef84b0bbae8cd19e7101f4c05bf296219ee20a99ae0bc0de3c04cbf2e3c42
|