Practical overview
When it fits
Use it when a project needs a configurable, self-hosted voice-agent backend and the developer wants to choose or replace the speech and language-model components.
Who it is for
- Developers building self-hosted conversational voice agents
- Teams integrating real-time voice through WebSocket or WebRTC
- Builders selecting local or hosted speech and language-model components
- Python developers working with modular speech-processing pipelines
Documented uses
- Assemble a voice-agent pipeline from VAD, STT, LLM and TTS stages
- Run speech recognition, language generation and speech synthesis locally
- Connect a hosted or local OpenAI-compatible LLM endpoint
- Expose real-time voice interaction through WebSocket or WebRTC
- Adapt the components for speech translation or synthesis applications
Requirements & limits
The repository is public and licensed under Apache-2.0. The documented quickstart requires Python 3.10 or newer, internet access for initial model downloads and hardware-specific setup. A hosted-LLM configuration requires an API key; fully local configurations do not.
- The pipeline separates VAD, STT, LLM and TTS, so component selection is a central design choice.
- WebSocket and WebRTC support matters when the client must use the core OpenAI Realtime GA event set.
- Fully local operation is documented for Apple Silicon and Linux with an NVIDIA GPU.
- Hosted-LLM use keeps microphone audio local in the documented configuration but sends transcribed text, instructions and conversation history to the provider.
- The repository’s LLM interface is OpenAI-compatible; compatibility of any particular endpoint still needs to be checked independently.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Set up a fully local Apple Silicon voice agent
Install Speech To Speech and start the documented Apple Silicon local configuration.
Before you start
- Apple Silicon Mac
- Python 3.10 or newer; Python 3.11 recommended
- Internet access for the first model downloads
- Approximately 16 GB or more of unified memory is recommended
- A microphone and speakers or headphones
Steps
Create and activate a Python virtual environment.
Install the speech-to-speech package with pip.
Run the Apple Silicon local command with the mac-optimal-settings preset and the documented quantized Qwen3 model.
Allow microphone access if prompted, wait for the first model download and warm-up, then speak and pause for a reply.
Expected outcome
A local voice-agent configuration using Parakeet TDT for speech recognition, Qwen3-4B through MLX LM for the language model and Qwen3-TTS through MLX Audio for speech output.
Guide limitations
- The memory figures are planning estimates and actual use depends on context length, audio length and backend versions.
- The first run downloads and warms up models.
- Use headphones to reduce speaker feedback; blocking microphone capture during playback prevents interruption while the assistant speaks.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 2 October 2026
- Original website title
- huggingface/speech-to-speech · Official homepage title · retained in its source language

