diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-26 07:31:21 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-26 07:31:21 +0200 |
| commit | 80982b5953c221ab25b4cd3f0cd1cd935261774f (patch) | |
| tree | f372710d74232185b020b5713685227e6add67f0 /AGENTS.md | |
| parent | da1083948c935d8e0e57e49101bd920725d65acd (diff) | |
| download | desktop-assistant-80982b5953c221ab25b4cd3f0cd1cd935261774f.tar.gz desktop-assistant-80982b5953c221ab25b4cd3f0cd1cd935261774f.zip | |
Use the system kokoro-onnx package, drop the venv
kokoro-onnx is now packaged (python3-kokoro-onnx, without
espeakng-loader) and finds the system espeak-ng with its default
config, so the explicit EspeakConfig and the .venv setup go away.
Tested live: two Italian questions answered and spoken correctly.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 24 |
1 files changed, 5 insertions, 19 deletions
@@ -7,12 +7,9 @@ the glue between them. Status: **first working loop** in `assistant.py` (2026-09-25). Mic button on/off is push-to-talk, whisper large-v3-turbo on the Arc transcribes, the resident llama-server model answers, Kokoro speaks it. Button-off to -first spoken word ~2 s. Kokoro is not packaged yet: it runs from the -repo's gitignored `.venv`. See "Findings" and "Next steps". +first spoken word ~2 s. See "Findings" and "Next steps". -Run: `.venv/bin/python assistant.py` (`--test` for the self-check). The -venv is `python3 -m venv --system-site-packages .venv && .venv/bin/pip -install kokoro-onnx`; system-site-packages gives it the system onnxruntime. +Run: `python3 assistant.py` (`--test` for the self-check). --- @@ -26,8 +23,7 @@ mic button ──> arecord ──> whisper-server (STT) ──> llama-server (LL |-------|---------------------|--------|-------| | STT | `whisper.cpp` 1.9.4 | `whisper-server` (also `whisper-stream`, `whisper-cli`) | SDL2 mic capture, ffmpeg decoding, Vulkan + OpenVINO backends | | LLM | `llama.cpp-vulkan` 0.5.0 | `llama-server` | already running as a system service, see below | -| TTS | none yet: `kokoro-onnx` from PyPI in `.venv` | | uses system `python3-onnxruntime` and `espeak-ng` | -| (TTS, unused) | `piper-tts` 1.7.0 | `piper-tts` | voices rejected by ear, see Findings | +| TTS | `python3-kokoro-onnx` 0.6.1 | (Python module) | uses system `python3-onnxruntime` and `espeak-ng`, no `espeakng-loader` | The three packages are in the `my-slackbuilds` repo (`../slackbuilds-superrepo/my-slackbuilds/`). Package-level changes (build @@ -98,13 +94,6 @@ router. It already records 16 kHz mono WAV and sends it as `input_audio` to audio-capable models, and parses `presets.ini`. Reuse its findings, do not import from it. -## piper-tts - -Prebuilt upstream wheel (OHF-voice/piper1-gpl), console script `piper-tts`, -Python module `piper` under the system python3.12. Runtime deps -`python3-onnxruntime` and `python3-pathvalidate` are packaged separately. -Voices are ONNX models plus a `.onnx.json` config; none downloaded yet. - --- ## Findings @@ -336,6 +325,8 @@ kokoro-onnx GitHub release `model-files-v1.0`. espeak-ng instead: `EspeakConfig(lib_path="/usr/lib64/libespeak-ng.so.1", data_path="/usr/share/espeak-ng-data")`. A system package would do the same and drop `espeakng-loader`. + Done 2026-09-26: `python3-kokoro-onnx` (with `python3-phonemizer`, + `python3-dlinfo`) finds system espeak-ng with the default config. - Load 0.30 s. `create()` on the ~20 s paragraph: ~2.6 s, ~7x real time, same for `if_sara`, `im_nicola` (lang `it`), `af_heart` (`en-us`), `bm_george` (`en-gb`). `create()` returns only after the whole text, so @@ -359,8 +350,6 @@ Steps 1-5 of the original plan are done (models, backend comparison, live mic, TTS, glue); push-to-talk came for free from the mic button. Open, in no particular order: -- **Packaging Kokoro** in `my-slackbuilds` (`kokoro-onnx` without - `espeakng-loader`, pointed at system espeak-ng), then drop `.venv`. - **Run as a service/autostart** (it currently runs by hand). - **Barge-in:** pressing the button while it speaks does not stop the reply yet. @@ -369,9 +358,6 @@ no particular order: - **Latency:** STT ~1.2 s is the biggest share; the double encoder pass (detect + transcribe) is the target if it matters. - **Tools** (time, weather, calendar) so the model stops guessing facts. -- Piper leftovers: piper voices and ggml-base/small deleted 2026-09-26. - Installed `piper-tts` and `python3-pathvalidate` packages still to remove - (root). - OpenVINO in the whisper.cpp package: runs on CPU only here (no Intel compute-runtime), decision goes to `my-slackbuilds`. |
