X-vector

From The Hei Canon

x-vector is the fleet's embedding workbench for voice x-vectors. Analyze, visualize, and create speaker embeddings; blend and synthesize.

Stack: Rust/WASM frontend (egui, ONNX Runtime Web) + optional Python backend (FastAPI, Postgres+pgvector). Private repo.

Frontend-first — the ONNX speaker encoder runs entirely in-browser, so core workflows need nothing but static file hosting.

Features

  • 3D / 2D embedding visualization — PCA, t-SNE, UMAP projections.
  • In-browser voice embedding — ONNX Runtime Web, auto-loads on startup.
  • Microphone recording — record and embed voices directly in the browser.
  • Voice blending — SLERP interpolation (2 voices) or N-voice weighted blend.
  • Speech synthesis — via vLLM-omni TTS API (server mode only).
  • Workspace export/import.xvs Parquet format.
  • Annotation — label voices, KNN classification.
  • Dimension analysis — find embedding dimensions that separate voice categories.
  • Voice design — amplify or attenuate specific voice characteristics.
  • SafeTensors — interop with HuggingFace models.

Models

Model HuggingFace Dim
0.6B marksverdhei/Qwen3-Voice-Embedding-12Hz-0.6B 1024
1.7B marksverdhei/Qwen3-Voice-Embedding-12Hz-1.7B 2048

Only *-Base model variants work with the speaker_embedding TTS field. The *-customvoice and *-voicedesign variants do not support it.

Capability split

Frontend-native: ONNX embedding, blending, projections, .xvs import/export, standalone hosting, local annotation, browser-local persistence.

Backend-only: PostgreSQL persistence, runtime database config, server-side TTS proxy via vLLM, SafeTensors import/export endpoints.

Sources

See also

  • trost — VibeVoice TTS API (consumes voice embeddings for cloning).
  • discord-bot — voice cloning surface (/clone).