|
Download README.md from fivetech/ava-real: direct link, hf CLI and curl.
- Browser
- Download file 3.85 kB
-
https://huggingface.co/spaces/fivetech/ava-real/resolve/main/README.md
- Command line
-
hf download hf://spaces/fivetech/ava-real/README.md
-
curl -L -o README.md https://huggingface.co/spaces/fivetech/ava-real/resolve/main/README.md
3.85 kB
| title: Ava Real | |
| emoji: π | |
| colorFrom: gray | |
| colorTo: blue | |
| sdk: static | |
| app_file: index.html | |
| pinned: false | |
| thumbnail: https://huggingface.co/spaces/fivetech/ava-real/resolve/main/thumbnail-v3.jpg | |
| short_description: A more realistic Ava talking with LFM3-Omni | |
| models: | |
| - LiquidAI/LFM3-Omni-2B | |
| - LiquidAI/LFM3-Omni-2B-GGUF | |
| # Ava Real | |
| An experimental fork of [townbox/ava](https://huggingface.co/spaces/townbox/ava) | |
| aimed at a more realistic look. Same architecture: WebGPU inference of | |
| LFM3-Omni-2B in the browser, Silero VAD, TalkingHead 3D. Changes include | |
| better-defined key lighting with a warm rim softbox, higher-contrast studio | |
| environment, sharper skin micro-grain (pores), brighter enamel teeth, livelier | |
| hair and eye materials, and rebranded pages. | |
| Hands-free voice chat with Ava Real, a 3D lip-synced avatar, running entirely in | |
| the browser: credits to the upstream UX of | |
| [victor/gemma-avatar](https://huggingface.co/spaces/victor/gemma-avatar) and the | |
| model runtime of | |
| [LiquidAI/LFM3-Omni-2B-WebGPU](https://huggingface.co/spaces/LiquidAI/LFM3-Omni-2B-WebGPU). | |
| No backend: your voice never leaves the device. | |
| ``` | |
| you speak β Silero VAD (WASM) β LFM3-Omni-2B (WebGPU): audio in, interleaved text + speech out β avatar speaks | |
| ``` | |
| - **Needs** a desktop browser with WebGPU and `shader-f16` (recent Chrome/Edge) and a | |
| 1.6 GB model download on first visit; later visits load from the browser cache. | |
| - **Model** runs in a worker, so the avatar keeps rendering. It hears the audio | |
| directly: there is no separate transcription step, and so no user transcript. | |
| - **Barge-in**: talk over her and generation and playback stop immediately. | |
| - **Body language** (moods, thumbs up, shrug, a wave) is read from her words as they | |
| are heard, in `src/reactions.js`. | |
| - **Character** is a short system prompt you can edit directly in Settings | |
| (`src/system-prompt.js` has the default). The only thing added to it is the model's | |
| required "Respond with interleaved text and audio." line. | |
| - **Lip-sync** is derived from the audio by HeadAudio, as in gemma-avatar. | |
| Differences from gemma-avatar, all forced by the model: there is no voice picker | |
| (LFM3-Omni's interleaved mode has one voice and ignores voice requests), and the | |
| model doesn't call avatar tools. Offering any tool schema derails its conversation: | |
| with the original Space's tools "let's play a quick game" starts a timer, and with | |
| avatar tools it gestures on every turn, gives shallow replies and can loop without | |
| speaking. The runtime, message format, generation mode and greedy decoding otherwise | |
| match the original Space. | |
| ## Known model behaviour | |
| LFM3-Omni-2B can re-ask its last question and can't sustain a game like Twenty | |
| Questions: it answers "no" to everything and doesn't hold a secret. The original | |
| LiquidAI Space does the same with the same model. This app doesn't try to hide it. | |
| ## Run | |
| ```bash | |
| bun install | |
| bun run start # builds dist/ and serves http://localhost:3000 | |
| ``` | |
| ## Test | |
| `bun test tests` covers the VAD segmenter and session state machine. | |
| `e2e/run.sh <scenario> <outDir>` drives the real app in headless Chromium on the | |
| real GPU: speech goes in through a PipeWire virtual mic, her voice is recorded at | |
| the OS sink. `e2e/analyze.py <outDir> --stt` reports latency, frame rate, mouth/audio | |
| correlation and a Whisper transcript. Needs PipeWire, `playwright-core`, Piper | |
| test clips (`E2E_AUDIO`) and a Python env with numpy, scipy, soundfile, faster-whisper. | |
| ## Licences | |
| App derived from [townbox/ava](https://huggingface.co/spaces/townbox/ava) (dynamic | |
| fork of the gemma-avatar UX). Avatar `brunette.glb`: Ready Player Me, CC BY-NC 4.0 (non-commercial). Model: LFM | |
| license 1.0. `Lfm3OmniForConditionalGeneration.js`: copied from the LiquidAI Space, | |
| which states no licence for it. TalkingHead, HeadAudio, Silero VAD: MIT. | |
| ONNX Runtime: MIT. | |