본문으로 건너뛰기

© 2026 Molayo

HuggingFace헤드라인2026. 05. 07. 19:52

FastRTC: Python 의 실시간 통신 라이브러리

요약

최근 OpenAI와 Google 등에서 라이브 멀티모달 API가 폭발적으로 성장함에 따라, 실시간 오디오/비디오 AI 애플리케이션 구축의 어려움이 대두되었습니다. 이에 'FastRTC'라는 Python 라이브러리가 출시되었으며, 이는 개발자가 WebRTC 기반의 실시간 오디오 및 비디오 AI 앱을 쉽게 만들 수 있도록 설계되었습니다. FastRTC는 자동 음성 감지(Turn Taking), Gradio UI 내장, 무료 전화 호출 기능(`fastphone()`), 그리고 FastAPI 통합 등 강력한 기능을 제공하여, 사용자는 복잡한 스트리밍 인프라 대신 응답 로직 자체에만 집중할 수 있게 합니다.

핵심 포인트

  • FastRTC는 Python 기반의 실시간 오디오/비디오 AI 애플리케이션 구축을 위한 라이브러리입니다.
  • 자동 음성 감지 및 턴 테이크 기능이 내장되어 있어, 개발자가 응답 로직에만 집중할 수 있게 합니다.
  • Gradio UI를 통한 테스트 환경과 FastAPI 통합을 통한 프로덕션 배포가 용이합니다.
  • 무료 전화번호 호출(`fastphone()`) 기능을 제공하여 실제 통화 시나리오에서의 테스트 및 데모가 가능합니다.
  • STT/TTS 모델 로딩 및 LLM 연동 등 실시간 통신 계층 처리를 간소화합니다.

OpenAI 와 Google 은 각각 ChatGPT 와 Gemini 를 위한 라이브 멀티모달 API 를 출시했습니다. OpenAI 는 심지어 1-800-ChatGPT 로 전화 번호를 공개하기도 했습니다!

Kyutai 는 완전 오픈 소스 오디오-오디오 LLM 인 Moshi 를 출시했습니다. Alibaba 는 Qwen2-Audio, Fixie.ai 는 Ultravox 를 출시했습니다 - 두 모델 모두 오디오를 원생적으로 이해하는 오픈 소스 LLM 입니다.

ElevenLabs 는 시리즈 C 에서 1 억 8 천만 달러를 조달했습니다.

모델 및 자금 측면에서의 폭발적인 성장에도 불구하고, Python 을 포함한 실시간 AI 애플리케이션을 구축하는 것은 여전히 어렵습니다. 오디오와 비디오 스트리밍이 특히 그렇습니다.

  • ML 엔지니어는 WebRTC 와 같은 실시간 애플리케이션 구축에 필요한 기술에 대한 경험이 없을 수 있습니다.
  • Cursor 나 Copilot 과 같은 코드 어시스턴스 도구조차도 실시간 오디오/비디오 애플리케이션을 지원하는 Python 코드를 작성하는 데 어려움을 겪습니다. 저는 경험에서 알고 있습니다!

그래서 우리는 FastRTC 를 발표하게 되었습니다.
Python 의 실시간 통신 라이브러리입니다. 이 라이브러리는 Python 으로 완전히 실시간 오디오 및 비디오 AI 애플리케이션을 구축하는 것을 매우 쉽게 만들도록 설계되었습니다!

이 블로그 포스트에서는 FastRTC 의 기본 개념을 실제 오디오 애플리케이션 구축을 통해 설명하겠습니다. 마지막에, 당신은 FastRTC 의 핵심 기능을 이해할 것입니다:

  • 🗣️ 자동 음성 감지 및 턴 테이크 (Turn Taking) 내장되어 있으므로, 사용자 응답 로직에만 집중하면 됩니다.
  • 💻 자동 UI - 테스트 (또는 프로덕션 배포!) 에 사용할 WebRTC 활성화 Gradio UI 가 내장되어 있습니다.
  • 📞 전화 호출 - fastphone() 을 사용하여 오디오 스트리밍으로 무료 전화 번호를 호출할 수 있습니다 (HF 토큰 필요. PRO 계정은 제한이 증가됨).
  • ⚡️ WebRTC 와 Websocket 지원.
  • 💪 커스터마이징 가능 - FastAPI 앱에 스트림을 마운트하여 사용자 지정 UI 를 제공하거나 Gradio 를 넘어 배포할 수 있습니다.
  • 🧰 텍스트 음성 변환, 음성 텍스트 변환, 스톱 워드 감지 등 시작을 위한 많은 유틸리티가 있습니다.

자, 들어가 보겠습니다.

우리는 실시간 오디오의 "Hello World" 인 사용자의 말기를 반사하는 것으로 시작하겠습니다. FastRTC 에서 이것은 다음과 같이 간단합니다:

from fastrtc import Stream, ReplyOnPause
import numpy as np
def echo(audio: tuple[int, np.ndarray]) -> tuple[int, np.ndarray]:
...

이를 분해해 보겠습니다:

  • ReplyOnPause 는 음성 감지와 턴 테이크를 처리해 주므로, 사용자 응답 로직에만 집중하면 됩니다. 오디오 튜플 (표시 (sample_rate, audio_data) ) 을 반환하는 모든 생성기가 작동합니다.
  • Stream 클래스는 스트림을 테스트하기 위해 Gradio UI 를 구축해 줍니다. 프로토타이핑을 완료한 후, 한 줄의 코드 (stream.mount(app)) 로 프로덕션 준비된 FastAPI 앱으로 스트림을 배포할 수 있습니다. 여기서 app 은 FastAPI 앱입니다.

여기서 동작 방식:

다음 단계는 LLM 을 사용하여 사용자에게 응답하는 것입니다. FastRTC 는 내장 음성 텍스트 변환 및 텍스트 음성 변환 기능을 제공하므로, LLM 과 작업하는 것은 정말 쉽습니다. 우리의 echo 함수를 다음과 같이 변경해 보겠습니다:

import os
from fastrtc import (ReplyOnPause, Stream, get_stt_model, get_tts_model)
from openai import OpenAI
...

우리는 SambaNova API 를 사용하여 빠른 속도를 얻습니다. get_stt_model() 은 Moonshine Base 를 가져오고, get_tts_model() 은 Hub 에서 Kokoro 를 가져옵니다. 두 모델 모두 기기 내 CPU 추론을 위해 추가로 최적화되었습니다. 하지만 당신은 LLM/텍스트 음성 변환/음성 텍스트 변환 API 나 심지어 음성-음성 모델을 사용할 수 있습니다. 좋아하는 도구를 가져오세요 - FastRTC 는 실시간 통신 계층만 처리합니다.

stream.ui.launch() 대신에 stream.fastphone() 을 호출한다면,

스트림으로 전화할 수 있는 무료 전화번호를 제공받습니다. 참고로, Hugging Face 토큰이 필요합니다. PRO 계정은 제한이 증가합니다.

터미널에는 다음과 같은 내용이 표시됩니다:

INFO: Your FastPhone is now live! Call +1 877-713-4471 and use code 530574 to connect to your stream.
INFO: You have 30:00 minutes remaining in your quota (Resetting on 2025-03-23)

그런 다음 전화번호를 호출하면 스트림에 연결됩니다!

  • FastRTC의 기본 개념을 배우기 위해 문서를 읽으세요.
  • 구축을 시작하는 가장 좋은 방법은 cookbook 을 확인하는 것입니다. 인기 있는 LLM 제공자 (OpenAI 와 Gemini 의 실시간 API 포함) 와 통합하고, 스트림을 FastAPI 앱과 연결하고, 커스텀 배포를 수행하고, 핸들러에서 추가 데이터를 반환하고, 비디오 처리 등을 수행하는 방법을 알아보세요!
  • ⭐️ 저장소를 스타트하고 버그 및 이슈 요청을 제출하세요!
  • HuggingFace 의 FastRTC Org 을 팔로우하여 업데이트를 확인하고 배포된 예제를 확인하세요!

FastRTC 를 확인해 주셔서 감사합니다!

AI 자동 생성 콘텐츠

본 콘텐츠는 Hugging Face Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
2

댓글

0