클라우드플레어(Cloudflare) 에이전트, 이제 목소리로 대화하세요!
클라우드플레어(Cloudflare)는 에이전트 SDK(Agents SDK)에 실시간 음성 지원 기능을 추가하여, 사용자가 음성으로 에이전트와 상호작용할 수 있도록 지원
`@cloudflare/voice` 패키지를 통해 음성 에이전트(Voice Agent) 구축을 위한 다양한 기능(STT, TTS, React Hook) 제공
단일 WebSocket 연결을 통해 텍스트와 음성 입력을 모두 처리하여, 멀티모달(Multimodal) 에이전트 구축 지원
Workers AI를 활용한 STT 및 TTS 제공으로, 별도의 API 키 없이 음성 에이전트 개발 시작 가능
Twilio 어댑터(Adapter)를 통해 전화 통화(Phone Call) 연동 지원 및 WebRTC, SFU(Selective Forwarding Unit) 지원 계획 발표
에이전트 SDK(Agents SDK) 음성 파이프라인(Voice Pipeline) 아키텍처
본문에 따르면 클라우드플레어(Cloudflare)의 음성 파이프라인(Voice Pipeline)은 기존 에이전트 SDK(Agents SDK)의 Durable Object 기반 아키텍처(Durable Object-based Architecture)를 확장하여 설계되었다.
오디오 전송(Audio Transport): 브라우저(Browser)에서 마이크(Microphone) 오디오를 캡처하여, 에이전트가 사용하는 동일한 WebSocket 연결을 통해 16kHz 모노 PCM 스트리밍
STT 세션 설정(STT Session Setup): 통화 시작 시, 에이전트는 통화 기간 동안 지속되는 연속적인 Transcriber 세션(Continuous Transcriber Session) 생성
TTS 출력(TTS Output): onTurn() 메서드에서 반환된 응답을 오디오로 합성하여, 문장 단위로 분할하여 전송
이러한 구조를 통해 음성 및 텍스트 입력을 동일한 에이전트 인스턴스(Agent Instance)에서 처리하여, 멀티모달(Multimodal) 상호작용을 지원한다.
Workers AI를 활용한 STT 및 TTS 제공
클라우드플레어(Cloudflare)는 음성 에이전트 개발을 위해 Workers AI를 활용한 STT(Speech-to-Text) 및 TTS(Text-to-Speech) 기능을 제공한다.
WorkersAIFluxSTT: 대화형(Conversational) 스트리밍 STT
WorkersAINova3STT: 받아쓰기(Dictation) 스타일 스트리밍 STT
WorkersAITTS: 텍스트 음성 변환(Text-to-Speech)
이러한 기능을 통해 개발자는 별도의 API 키 없이 음성 에이전트를 구축할 수 있으며, Cloudflare 네트워크(Cloudflare Network) 상에서 실행되어 지연 시간(Latency)을 줄일 수 있다. 또한, 다양한 STT 및 TTS 모델(Model) 선택을 지원하여 유연성을 제공한다.
멀티모달(Multimodal) 에이전트 구축을 위한 단일 연결
본문에서는 음성 및 텍스트 입력을 단일 WebSocket 연결(Single WebSocket Connection)을 통해 처리하여, 멀티모달(Multimodal) 에이전트 구축을 지원한다고 설명한다.
sendText() 메서드: STT를 거치지 않고 텍스트를 직접 onTurn() 메서드로 전송
onCallStart() 메서드: 통화 시작 시, 에이전트가 사용자에게 인사말을 음성으로 전달
다양한 입력 방식 지원: 사용자는 텍스트 입력, 음성 입력, 또는 두 가지 방식을 혼합하여 사용할 수 있으며, 동일한 대화 내역(Conversation History)을 공유
이러한 특징은 개발자가 별도의 코드 분기 없이 다양한 입력 방식을 지원하는 에이전트(Agent)를 구축할 수 있도록 돕는다.
음성 에이전트(Voice Agent)의 확장성 및 통합
클라우드플레어(Cloudflare)는 음성 에이전트가 단순한 음성 기능에 국한되지 않고, 다양한 기능을 통합할 수 있도록 설계했다.
도구(Tools) 및 스케줄링(Scheduling): 음성 에이전트 내에서 도구를 호출하고, 예약된 알림(Scheduled Reminder)을 음성으로 전달
전화 통화(Phone Call) 연동: Twilio 어댑터(Adapter)를 통해 전화 통화(Phone Call)를 지원하여, 다양한 채널(Channel)에서 일관된 경험 제공
WebRTC 지원 계획: WebRTC를 통해 어려운 네트워크 환경에서도 안정적인 음성 통신 지원 계획
이러한 확장성을 통해 개발자는 다양한 기능과 채널을 통합한 강력한 음성 에이전트(Voice Agent)를 구축할 수 있다.
음성 에이전트(Voice Agent) 개발을 위한 API 및 생태계
클라우드플레어(Cloudflare)는 음성 에이전트 개발을 위한 다양한 API와 생태계를 제공하여, 개발자가 자유롭게 기능을 확장할 수 있도록 지원한다.
withVoice, withVoiceInput: 음성 에이전트 및 음성 입력 에이전트 생성을 위한 함수 제공
useVoiceAgent, useVoiceInput: React 앱에서 음성 기능을 사용하기 위한 Hook 제공
Transcriber, TTSProvider 인터페이스: STT 및 TTS 제공업체를 위한 인터페이스를 제공하여, 다양한 음성 서비스(Voice Service)와의 연동 지원
오픈 소스 기여 장려: STT, TTS, 텔레포니(Telephony) 어댑터(Adapter) 및 WebRTC 구현에 대한 기여를 장려
이러한 생태계는 개발자가 자신만의 음성 에이전트(Voice Agent)를 구축하고, 생태계에 기여할 수 있도록 돕는다.