LibreAI / Audio / fastrtc
// audio · gradio-app/fastrtc

fastrtc

FastRTC turns any Python function into a real-time audio or video stream over WebRTC or WebSockets

★ 4.6k stars⑂ 436 forksMITupdated 2026-01
▦ visual — this project's README ships no embeddable screenshot,
so here's a placeholder. The guide below is complete regardless.
// project facts

Project facts

fastrtc is an open-source audio project by gradio-app (gradio-app/fastrtc on GitHub). It has 4,631 GitHub stars and 436 forks, is released under the MIT license, and was last updated on GitHub on 12 January 2026.

GitHub stars
4,631
Forks
436
License
MIT
Last updated on GitHub
12 January 2026
Category
Audio
Listing
Full install guide
Official site
Official site
// how it works

How it works

  1. Define your reply function

    Write a Python generator that takes audio (or video) frames and yields responses.

  2. Install FastRTC

    Install from PyPI, adding the vad/tts extras if you want pause detection and text-to-speech.

  3. Wrap it in a Stream

    Create a Stream with ReplyOnPause for audio conversations, and pick a delivery mode: built-in UI, FastAPI mount, or a phone number.

  4. Launch and talk

    Start the stream and speak to your function in real time.

// features

Why people love it

Automatic turn-taking

Built-in voice activity detection (the ReplyOnPause handler) runs your function when the user stops speaking.

WebRTC and WebSockets

Stream real-time audio or video over either transport, in send, receive, or send-receive modes.

Built-in Gradio UI

Every stream can launch with a test interface via stream.ui.launch().

FastAPI mounting

Mount a stream into an existing FastAPI application with stream.mount(app).

FastPhone

Get a temporary phone number to call your stream, using a Hugging Face token.

Extras for speech

Optional vad and tts extras add pause detection and text-to-speech support.

Advertisement
// run it

Run it yourself

  1. Clone the repository

    Clone the project and enter its directory (library users can install from PyPI instead).

    git clone https://github.com/gradio-app/fastrtc.git
    cd fastrtc
  2. Install FastRTC

    Install the package, with the speech extras if you need them.

    pip install fastrtc
    pip install "fastrtc[vad, tts]"
  3. Create and launch a stream

    Wrap a reply function in a Stream and launch the built-in UI.

    from fastrtc import Stream, ReplyOnPause
    stream = Stream(handler=ReplyOnPause(fn), modality="audio", mode="send-receive")
    stream.ui.launch()
// use cases

What you can build

Advertisement
// faq

Questions, answered

Who maintains FastRTC?

The Gradio team (gradio-app) — the same group behind the Gradio ML interface library.

Is FastRTC free?

Yes, it is MIT-licensed open source. FastPhone numbers are provided through Hugging Face and require an HF token.

Does it need a paid API key?

No — the library is self-contained; you supply your own speech/LLM models inside your handler function.

How does it compare to raw WebRTC libraries like aiortc?

FastRTC abstracts the transport and adds the conversational layer — VAD, turn-taking, a test UI, and FastAPI mounting — so you write a plain function instead of managing peers and tracks.

How do I get started?

`pip install fastrtc`, wrap your function with `Stream(handler=ReplyOnPause(fn), ...)`, and call `stream.ui.launch()`.

// keep exploring

Similar tools

Audio

hifi-gan

GAN vocoder that turns mel-spectrograms into high-fidelity speech audio, fast enough for real-time use.

★ 2.4k starsMIT
View guide →
Audio

mcp-video-analyzer

MCP server that turns any video — YouTube.

★ 85 starsMIT
View guide →
Audio

gTTS

gTTS — Python library and CLI that turns text into spoken mp3 via Google Translate's speech API

★ 2.6k starsMIT
View guide →
Audio

Real-Time-Voice-Cloning

Clone a voice from 5 seconds of audio and generate arbitrary speech in real time

★ 60.2k starsNOASSERTION
View guide →
Audio

VieNeu-TTS

Vietnamese TTS with instant voice cloning — on-device, real-time CPU inference, 48 kHz audio

★ 2.8k starsApache-2.0
View guide →
Audio

librosa

Python library for audio and music analysis

★ 8.6k starsISC
View guide →
// alternatives

Alternatives in Audio

The most-starred other Audio projects in the LibreAI catalogue — the realistic shortlist if fastrtc is not the right fit.

Get fastrtc

Free and open — grab the source, star the repo, and start creating.