58 lines
2.4 KiB
Markdown
58 lines
2.4 KiB
Markdown
---
|
|
title: HF Realtime Voice
|
|
emoji: 🎙️
|
|
colorFrom: indigo
|
|
colorTo: purple
|
|
sdk: docker
|
|
app_port: 7860
|
|
pinned: false
|
|
short_description: Voice chat over WebSocket against a HF speech-to-speech
|
|
---
|
|
|
|
# Realtime voice backend
|
|
|
|
FastAPI APIs and WebSocket relay for the [React voice frontend](../s2s-frontend).
|
|
This service handles configuration, caller context, upstream authentication,
|
|
search, reasoning, ApiPilot tools, and optional load-balancer allocation.
|
|
|
|
The root `start_ui.sh` now serves the [React frontend](../s2s-frontend) with
|
|
Vite on public port `8420`, proxying backend requests here on loopback port
|
|
`8421`. The browser UI lives entirely in `s2s-frontend`; running FastAPI directly
|
|
or through Docker exposes only backend routes and shared documentation.
|
|
|
|
The complete [usage guide](../docs/client/usage.md) covers local startup,
|
|
connection modes, Docker, settings, and queue behavior. See the
|
|
[documentation index](../docs/README.md), [architecture](../docs/client/architecture.md),
|
|
and [change history](CHANGELOG.md) for implementation details and history.
|
|
|
|
Build from the repository root so the container includes the documentation:
|
|
|
|
```bash
|
|
docker build -f s2s-client/Dockerfile -t s2s-client .
|
|
```
|
|
|
|
The Python project is contained in this directory: `pyproject.toml`, `uv.lock`,
|
|
`.python-version`, `.venv`, quality tools, and tests. Use uv 0.12.5 and Python
|
|
3.12 (uv can provision Python). From the repository root:
|
|
|
|
```bash
|
|
make -C s2s-client install
|
|
make -C s2s-client check
|
|
```
|
|
|
|
Tests isolate environment configuration, use HTTP fixtures for allocation and
|
|
caller authentication, and start a loopback WebSocket service to verify audio
|
|
frames, keepalive, and teardown. No deployed services or database are needed.
|
|
|
|
See [backend development and compatibility](../docs/client/development.md) for
|
|
formatting, typing, schema policy, optional Git hooks, and deployment checks.
|
|
`uvicorn server:app --app-dir s2s-client` remains a supported entry point;
|
|
the implementation now lives in `s2s_client/`.
|
|
|
|
FastAPI's API explorer remains at `/docs`. Project documents are served as files below
|
|
`/docs/client/`, `/docs/speech/`, `/docs/adr/`, `/docs/examples/`, and
|
|
`/docs/proposals/`. The historical `/project/` and `/public/docs.html` URLs
|
|
redirect to the retained architecture proposal. Markdown remains source text;
|
|
documentation directories are not browsable rendered pages. Start from the
|
|
repository documentation index or request `/docs/README.md` explicitly.
|