推荐阅读:
VSCode-Python:Python开发者的一站式开发的高效开发利器,为VSCode编写Python代码如虎添翼
FastAPI-Amis-Admin:一个高效的Python后台管理系统利器!
几个常见的Python代码打包工具,及减小打包文体积的一些技巧
嗨,朋友们,先来聊聊 FastRTC。它是一个超轻量的 Python 实时通信库,能把你写好的函数瞬间变成音视频流服务。支持 WebRTC、WebSocket,甚至电话接口,让你从此不用再烦恼前端复杂对接和异步细节。想调试?内置 Gradio UI,一句 .ui.launch(),本地立马预览;想线上部署?.mount(app) 直接挂到 FastAPI。

它解决了哪些痛点?
.fastphone() 一条命令搞定,连临时电话号都免费给你。
代码示例:玩转音视频流下面简单示范几个常见玩法。
from fastrtc importStream,ReplyOnPauseimport numpy as npdefecho(audio:tuple[int, np.ndarray]):yield audio # 用户一说完,就把声音返还stream =Stream( handler=ReplyOnPause(echo), modality="audio", mode="send-receive",)stream.ui.launch()from fastrtc importStream,ReplyOnPause, audio_to_bytes, aggregate_bytes_to_16bitimport anthropic, numpy as npfrom elevenlabs importElevenLabsclaude = anthropic.Anthropic()tts =ElevenLabs()defchat(audio):# 语音转文本 text =...# 自行调用 Whisper# Claude 回复 resp = claude.messages.create(..., messages=[{"role":"user","content":text}]) reply =...# 提取纯文本# 文本转语音流for chunk in tts.text_to_speech.convert_as_stream(text=reply, voice_id="...", model_id="..."):yieldfrom aggregate_bytes_to_16bit(chunk)stream =Stream( handler=ReplyOnPause(chat), modality="audio", mode="send-receive")stream.mount(app)# 挂到 FastAPI,自己写前端接入from fastrtc importStreamimport numpy as npdefflip(image):return np.flip(image, axis=0)stream =Stream(handler=flip, modality="video", mode="send-receive")stream.ui.launch()优缺点一览优点:

缺点:
总结总的来说,FastRTC 就像给 Python 装了个“实时通信引擎”,让你把函数变成 OK 级别的音视频服务、电话机器人或者 WebRTC 应用,不用纠结底层协议。无论是快速原型验证,还是二次开发集成,FastRTC 都能帮你省去大量琐碎工作。想在项目里嵌入实时对话、远程物联网视频监控,或者语音客服,FastRTC 都能轻松搞定。
项目地址:https/github.com/gradio-app/fastrtc