FastRTC:Python 即時通訊函式庫

Hugging Face 推出了 FastRTC,這是一個 Python 函式庫,讓開發者無需具備 WebRTC 或 WebSocket 協定的深厚專業知識,即可構建即時音訊與視訊 AI 應用程式。該函式庫抽象化了複雜的通訊層,讓機器學習工程師能夠專注於應用邏輯與模型整合。

核心能力與特性

FastRTC 提供了一套工具,簡化了即時 AI 串流從原型到生產環境的轉換過程:

  • 自動語音檢測與輪流機制ReplyOnPause 功能可管理語音活動檢測(VAD)與輪流邏輯,開發者無需手動實作這些機制。
  • 用於原型設計的整合式 UI:FastRTC 包含內建支援 WebRTC 的 Gradio UI,開發者可以透過 stream.ui.launch() 立即測試串流。
  • 生產環境部署:可以使用 stream.mount(app) 將串流掛載到任何 FastAPI 應用程式中,從而能夠在 Gradio 環境之外使用自定義的 UI 與部署方式。
  • 電話整合:透過 fastphone() 方法,開發者可以獲取免費電話號碼(需要 Hugging Face token),將傳統電話直接連接到音訊串流。
  • 協定支援:該函式庫原生支援 WebRTC 與 WebSockets。
  • 開發工具:FastRTC 包含內建的語音轉文字 (STT)、文字轉語音 (TTS) 以及停用詞檢測工具,以加速開發流程。

技術實作

FastRTC 的設計非常靈活,允許開發者使用自己偏好的模型與 API。它負責處理通訊層,而開發者則提供回應邏輯。

即時音訊回聲

對於基礎實作,FastRTC 使用 Stream 類別與 ReplyOnPause 包裝器。將一個回傳音訊元組 (sample_rate, audio_data) 的生成器函數傳遞給串流,隨後由串流處理將該音訊即時傳送回使用者端。

LLM 語音聊天整合

FastRTC 透過提供從 Hugging Face Hub 獲取優化模型的輔助函數,簡化了語音對語音 (voice-to-voice) AI 的流程:

  • STTget_stt_model() 獲取 Moonshine Base,該模型針對裝置端 CPU 推論進行了優化。
  • TTSget_tts_model() 獲取 Kokoro-82M,同樣針對裝置端 CPU 推論進行了優化。

這些工具可以與任何 LLM API(例如 SambaNova、OpenAI 或 Gemini)結合,以建立完整的語音聊天迴圈:STT 模型將使用者音訊轉換為文字,LLM 生成文字回應,最後由 TTS 模型將音訊回應串流回傳給使用者。

背景與市場定位

FastRTC 的發布填補了 AI 生態系統中的空白。目前高性能即時語音模型(如 OpenAI 的 live multimodal APIs、Google 的 Gemini、Kyutai 的 Moshi、Alibaba 的 Qwen2-Audio 以及 Fixie.ai 的 Ultravox)正大量湧現,但在 Python 即時應用程式中部署這些模型的工具仍然很難使用。FastRTC 旨在為可能缺乏即時音訊與視訊串流特定網路需求經驗的機器學習工程師,降低進入門檻。

Sources