|
--- |
|
title: README |
|
emoji: π |
|
colorFrom: pink |
|
colorTo: green |
|
sdk: static |
|
pinned: false |
|
--- |
|
|
|
<div style='text-align: center; margin-bottom: 1rem; display: flex; justify-content: center; align-items: center;'> |
|
<h1 style='color: white; margin: 0; font-size: 40px'>FastRTC</h1> |
|
<img src="https://huggingface.co/datasets/freddyaboulton/bucket/resolve/main/fastrtc_logo.png" |
|
onerror="this.onerror=null; this.src='https://huggingface.co/datasets/freddyaboulton/bucket/resolve/main/fastrtc_logo.png';" |
|
alt="FastRTC Logo" |
|
style="height: 100px; margin-right: 10px;"> |
|
</div> |
|
|
|
<div style="display: flex; flex-direction: row; justify-content: center"> |
|
<img style="display: block; padding-right: 5px; height: 20px;" alt="Static Badge" src="https://img.shields.io/pypi/v/fastrtc"> |
|
<a href="https://github.com/freddyaboulton/fastrtc" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/github-white?logo=github&logoColor=black"></a> |
|
</div> |
|
|
|
<h3 style='text-align: center'> |
|
The Real-Time Communication Library for Python. |
|
</h3> |
|
|
|
Turn any python function into a real-time audio and video stream over WebRTC or WebSockets. |
|
|
|
## Installation |
|
|
|
```bash |
|
pip install fastrtc |
|
``` |
|
|
|
to use built-in pause detection (see [ReplyOnPause](https://fastrtc.org/)), and text to speech (see [Text To Speech](https://fastrtc.org/userguide/audio/#text-to-speech)), install the `vad` and `tts` extras: |
|
|
|
```bash |
|
pip install fastrtc[vad, tts] |
|
``` |
|
|
|
## Key Features |
|
|
|
- π£οΈ Automatic Voice Detection and Turn Taking built-in, only worry about the logic for responding to the user. |
|
- π» Automatic UI - Use the `.ui.launch()` method to launch the webRTC-enabled built-in Gradio UI. |
|
- π Automatic WebRTC Support - Use the `.mount(app)` method to mount the stream on a FastAPI app and get a webRTC endpoint for your own frontend! |
|
- β‘οΈ Websocket Support - Use the `.mount(app)` method to mount the stream on a FastAPI app and get a websocket endpoint for your own frontend! |
|
- π Automatic Telephone Support - Use the `fastphone()` method of the stream to launch the application and get a free temporary phone number! |
|
- π€ Completely customizable backend - A `Stream` can easily be mounted on a FastAPI app so you can easily extend it to fit your production application. See the [Talk To Claude](https://huggingface.co/spaces/fastrtc/talk-to-claude) demo for an example on how to serve a custom JS frontend. |
|
|
|
## Docs |
|
|
|
[https://fastrtc.org](https://fastrtc.org) |
|
|