AI Gateway에서 실시간 음성 에이전트 구축하기
요약
Vercel AI Gateway가 실시간 음성 기능을 지원하며, OpenAI 및 xAI 모델을 통해 실시간 음성, TTS, STT 기능을 제공합니다. AI SDK 7의 useRealtime 훅을 사용하여 브라우저에서 WebSocket 기반의 즉각적인 음성 대화 에이전트를 구축할 수 있습니다.
핵심 포인트
- AI Gateway를 통한 실시간 음성, TTS, STT 라우팅 지원
- OpenAI 및 xAI 모델과 연동하여 실시간 오디오 처리 가능
- AI SDK 7의 useRealtime 훅으로 WebSocket 및 마이크 관리
- 단일 모델이 오디오를 직접 처리하여 지연 시간 단축
- 보안을 위해 서버에서 생성된 짧은 수명의 토큰으로 인증
이제 오디오/음성(audio/voice)을 지원합니다. 기존에 텍스트, 이미지, 비디오를 위해 사용하던 것과 동일한 호출 방식을 통해 실시간 음성, 텍스트 음성 변환(Text to Speech, TTS), 음성 텍acy 변환(Speech to Text, STT)을 추가할 수 있으며, 이는 다른 모든 모달리티(modality)와 함께 AI Gateway를 통해 라우팅됩니다.AI Gateway
오디오 기능은 OpenAI 및 xAI의 모델과 함께 출시됩니다. 각 호출은 기존의 다른 모델에서 사용하던 것과 동일한 제공자 라우팅(provider routing), 관찰 가능성(observability), 비용 제어(spend controls), 그리고 BYOK(Bring-Your-Own-Key) 지원을 제공받습니다.OpenAIxAI
이 기능들은 베타 버전이며 AI SDK 7에서 사용할 수 있습니다.AI SDK
실시간(Realtime), 음성(speech), 전사(transcription) 모델은 AI SDK 7에서 지원됩니다.AI SDK 7
실시간(Realtime) 기능은 사용자가 대화를 나눌 수 있는 형태로 앱을 변화시킵니다. 사용자가 말하면 모델이 즉시 응답합니다. 전체 턴(turn)이 완료될 때까지 기다리는 대신 즉각적으로 응답하기 때문에, 사용자는 사람과 대화하듯이 모델의 말을 끊거나 말을 얹을 수 있습니다. 이는 음성 비서, 고객 지원 에이전트, 핸즈프리 도구, 그리고 사용자가 타이핑보다 말하는 것을 선호하는 모든 곳에 적합합니다.
모델들을 체이닝(chaining)하는 방식과 차별화되는 점은, 단일 실시간 모델이 음성-텍스트 변환(Speech-to-Text), 언어 모델(Language Model), 텍스트-음성 변환(Text-to-Speech) 파이프라인을 실행하는 대신 오디오를 직접 듣고 오디오를 직접 생성한다는 것입니다.
브라우저에서는 useRealtime 훅이 WebSocket 연결, 마이크 캡처 및 오디오 재생을 관리합니다.
연결은 AI Gateway 자격 증명으로 인증됩니다. 따라서 서버에서 수명이 짧은 토큰을 생성(mint)하고 브라우저에는 해당 토큰만 전달합니다. API 키는 클라이언트에 절대 도달하지 않습니다. 토큰을 생성하는 라우트를 추가하세요:
그 다음 클라이언트 컴포넌트에서 연결합니다:
이 훅(hook)은 마이크를 캡처하고, AI Gateway를 통해 모델로 오디오를 스트리밍하며, 음성으로 된 응답을 재생합니다. 브라우저 외부에서는 getWebSocketConfig, serializeClientEvent, parseServerEvent를 사용하여 직접 세션을 제어할 수 있습니다. 해당 경로에 대한 자세한 내용은 realtime reference를 참조하세요.
실시간 (realtime) 세션은 일반적인 모델 호출과는 다르게 작동합니다:
generateSpeech를 사용하여 텍스트로부터 음성 오디오를 생성합니다. 목소리(voice)와 출력 형식(output format)을 전달한 다음, 결과를 파일로 작성합니다.
transcribe를 사용하여 녹음된 내용을 텍스트로 전사(transcribe)합니다. 오디오는 버퍼(buffer), base64 문자열 또는 URL일 수 있습니다.
음성 생성(speech)과 전사(transcription)는 상호 보완적이므로 서로 결합될 수 있습니다. 하나의 모델로 오디오를 생성하고 다른 모델로 이를 다시 읽을 수 있으며, 이는 오디오 파이프라인(audio pipeline)의 양 끝단을 빠르게 확인하는 방법입니다.
코드를 작성하지 않고도 오디오 모델을 시도해 볼 수 있습니다. models page를 열고, 모델을 클릭하여 브라우저에서 바로 상호작용하세요. 실시간 (realtime) 모델과 대화하여 음성 대화를 나누거나, 음성 또는 전사 모델에 텍스트나 오디오를 보내 결과를 읽거나 재생할 수 있습니다.
오디오 호출은 AI Gateway의 다른 모든 모델 호출과 동일하게 작동합니다. providers를 통해 하나의 API 키를 사용하고, observability에서 요청 및 사용량을 확인하며, 동일한 budgets and spend limits를 적용하고, 필요할 때 bring your own provider keys를 사용할 수 있습니다. 이미 텍스트/이미지/비디오를 위해 AI Gateway를 사용 중인 앱에 음성을 추가하는 작업도 이제 모두 한 곳에서 처리할 수 있습니다.
| Capability | How it works | Use it for |
|---|---|---|
| Realtime voice |
스트리밍을 위한 실시간 오디오 입출력, 저지연 (low-latency) 세션 | 양방향 음성 에이전트 및 실시간 대화 |
Text to speech (텍스트 음성 변환) | 텍스트 입력, 오디오 파일 출력, 단일 요청 | 내레이션 (Voiceovers), 음성 응답, 텍스트 콘텐츠의 오디오 버전 |
Speech to text (음성 텍스트 변환) | 녹음된 오디오 입력, 텍스트 출력, 단일 요청 | 음성 메모 전사 (Transcribing), 통화 녹음 전사 |
시작하기
실시간 음성 에이전트 (Realtime voice agents)
Text to speech (텍스트 음성 변환)
Speech to text (음성 텍스트 변환/전사)
플레이그라운드 (Playground)
AI Gateway를 통한 오디오 라우팅
추가 정보
실시간 세션 내부 (Inside a realtime session)
-
클라이언트 측의 무음 타이머 없이, 서버가 사용자의 발화 중단을 결정하도록 하며 사용자가 모델의 답변을 끊고 말할 수 있게(barge-in) 합니다. 발화 순서 제어 및 중단 (Turn-taking and interruptions).
turnDetection: { type: 'server-vad' } -
모델이 답변 도중에 도구 호출 (tool call)을 생성하면, 이를 실행하고 결과를 클라이언트 이벤트로 반환합니다. 그러면 모델은 턴을 종료하지 않고 다음 답변에 그 결과를 포함합니다. 대화 중 도구 사용 (Tools mid-conversation).
AI 자동 생성 콘텐츠
본 콘텐츠는 Vercel AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기