Grok Voice 3.0는 xAI의 실시간 음성-대-음성 모델로, 2026년 10월 14일에 출시되었습니다. API 모델 이름은 grok-voice-3.0이며, 2026년 11월 3일 기준으로 grok-voice-latest points to this version입니다. 출시 발표에 따르면 음성 세션 요금은 분당 $0.08(시간당 $4.80)입니다. 이 모델은 음성 비서와 고객 지원을 위해 대화, 중단 처리, 도구 사용을 결합합니다. 기본적인 Python, xAI API 키, websockets 라이브러리만으로 프롬프트를 보내고 음성 응답을 저장할 수 있습니다. 아래 예제로 시작한 뒤, 애플리케이션이 성장함에 따라 녹음 음성, 라이브 마이크 스트리밍, 비즈니스 도구를 추가하세요.
첫 테스트는 단일 텍스트→오디오 턴이면 충분합니다. 재생 가능한 응답으로 인증과 오디오 생성이 마이크 추가 전 정상임을 확인할 수 있습니다.
오디오 입력에는 일치하는 포맷과 명확한 턴 경계가 필요합니다. 수동 턴 완료로 녹음된 PCM 오디오를 제출하거나, 서버 측 음성 감지로 마이크 오디오를 스트리밍할 수 있습니다.
애플리케이션이 비즈니스 작업을 제어합니다. 함수 인자와 사용자 권한을 검증하고, 승인된 작업을 실행한 뒤 결과를 반환하여 음성 에이전트가 계속 진행하도록 합니다.
브라우저와 모바일 클라이언트는 단기 자격 증명을 사용합니다. 서버는 영구 API 키를 보관하고, 클라이언트 연결을 위한 임시 토큰을 발급합니다.
Grok Voice 3.0이란?
Grok Voice 3.0은 xAI가 SpaceX Super Intelligence 브랜딩 하에서 개발한 실시간 대화형 음성 모델입니다. 음성 또는 텍스트 입력을 받아, 진행 중인 세션 내에서 오디오와 텍스트를 반환할 수 있습니다. 일반 텍스트 전용 Grok 모델의 대체재라기보다, 음성 에이전트 사용 사례에 최적화되어 있습니다.
기존 음성 비서는 종종 음성 인식, 언어 모델, 음성 합성을 연쇄적으로 구성합니다. 반면 Grok Voice는 대화형 동작과 도구 지원이 통합된 음성-대-음성 세션을 제공합니다. 이 아키텍처는 개발자의 오케스트레이션 레이어를 단순화할 수 있으나, 애플리케이션 차원에서 여전히 오디오 캡처, 전송, 인증, 비즈니스 통합, 모니터링이 필요합니다.
Grok Voice 3.0 모델 정의는 텍스트와 오디오를 입력·출력 모달리티로 명시합니다. 이 튜토리얼에서는 서버 측 Python 스크립트로 재생 가능한 응답을 얻는 것이 첫 유의미한 체크포인트입니다.
Grok Voice 3.0의 주요 기능과 역량
라이브 대화 유지: 세션 전반에 걸쳐 WebSocket으로 음성과 텍스트를 교환합니다.
중단 처리: 서버 측 음성 감지를 사용하고, 발화자가 말하기 시작하면 큐에 있는 재생을 중지합니다.
비즈니스 도구 사용: 주문 조회 및 일정 관리 같은 작업을 위한 자체 함수를 연결합니다.
Grok Voice 3.0 벤치마크 성능
공식 출시 보고서는 2026년 10월 13일자 Artificial Analysis 결과를 인용합니다:
이는 공개된 벤치마크 결과일 뿐, 여러분의 배포 환경을 보장하지는 않습니다. 고객에게 에이전트를 제공하기 전에 자체 악센트, 소음 환경, 도구, 에스컬레이션 경로를 테스트하세요.
Grok Voice 3.0 API 호출 전 준비 사항은?
xAI 콘솔에서 계정을 생성하거나 로그인하고, API 키를 발급받아 계정 접근 권한과 사용 가능 크레딧을 확인하세요. Python 예제는 로컬 터미널 또는 신뢰할 수 있는 서버에서 실행합니다.
동일 환경에서 Python 3.11 이상과 pip
XAI_API_KEY로 저장된 유효한 xAI API 키
보안 아웃바운드 WebSocket 연결을 허용하는 네트워크 연결
생성된 WAV 파일을 열 수 있는 미디어 플레이어
xAI 콘솔에서 키를 발급받으세요. 애플리케이션에 하드코딩하지 말고 환경 변수로 저장하세요.
현재 Bash 터미널에 API 키를 설정합니다.
export XAI_API_KEY="your_xai_api_key"
Windows PowerShell의 경우:
현재 PowerShell 세션에 API 키를 설정합니다.
$env:XAI_API_KEY="your_xai_api_key"
Python 환경에 WebSocket 클라이언트를 설치합니다.
python -m pip install "websockets>=14,<18"
나머지 명령은 동일한 터미널 세션에서 실행하세요. 가상 환경을 사용한다면 패키지 설치 전에 활성화하세요.
Python으로 Grok Voice 3.0 API 사용하는 방법
네이티브 Realtime API는 WebSocket 연결을 사용합니다. 일반 텍스트 채팅 완성과 달리, 대화가 진행되는 동안 세션 이벤트를 교환하고 오디오 청크를 스트리밍합니다.
1단계: 고정 모델을 선택하고 세션 구성
API는 WebSocket URL에서 버전이 지정된 모델 이름을 받습니다. 예제는 요청 버전을 명시하기 위해 grok-voice-3.0을 사용합니다. session.update 이벤트로 음성, 오디오 포맷, 수동 턴 처리를 설정하고, 프롬프트를 제출하기 전에 session.updated를 기다리세요.
2단계: 텍스트를 보내고 음성 응답 수집
다음 스크립트를 grok_voice_demo.py로 저장하세요. 이 스크립트는 텍스트 프롬프트 1개를 제출하고 base64로 인코딩된 오디오 청크를 수집해 모노, 24 kHz, 16비트 PCM WAV 파일로 기록합니다. 또한 API 오류, 비정상 완료, 오디오가 생성되지 않은 응답 시 중지합니다.
성공적으로 응답을 받으면 터미널에 Saved grok_response.wav가 출력됩니다. 그 파일을 미디어 플레이어로 열어 정상 속도의 완전한 응답이 들리는지 확인하세요. 파일이 없거나 재생할 수 없다면, 더 많은 기능을 추가하기 전에 반환된 이벤트와 오디오 구성을 점검할 필요가 있습니다.
실시간 이벤트 레퍼런스는 여기서 사용한 세션 승인 및 응답 라이프사이클을 설명합니다. 이 스크립트는 전체 턴을 기다린 뒤 파일을 기록하지만, 대화형 음성 애플리케이션은 도착하는 대로 오디오 청크를 재생해야 합니다.
Grok Voice 3.0에 오디오를 보내는 방법은?
수동 턴 완료 방식의 녹음 오디오
이 예제는 모노, 24 kHz, 16비트 PCM WAV 파일을 사용합니다. Grok Voice 3.0은 다른 PCM 샘플레이트, μ-law, A-law, Opus도 지원합니다. 실제 포맷은 session.update 구성과 일치해야 합니다. 이전 스크립트에서 conversation.item.create 블록만 아래 스니펫으로 교체하세요. 이어지는 response.create 호출과 기존 수신 루프는 유지합니다.
텍스트 메시지 블록을 녹음 오디오 업로드로 main() 내부에서 교체하세요.
with wave.open("request.wav", "rb") as source:
if (
source.getnchannels() != 1
or source.getsampwidth() != 2
or source.getframerate() != SAMPLE_RATE
or source.getcomptype() != "NONE"
):
raise ValueError("Use mono, 24 kHz, 16-bit PCM WAV audio.")
pcm = source.readframes(source.getnframes())
if len(pcm) < SAMPLE_RATE * 2 // 10:
raise ValueError("Use a spoken recording longer than 100 ms.")
for offset in range(0, len(pcm), 4800):
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": base64.b64encode(pcm[offset:offset + 4800]).decode("ascii"),
}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
while (await receive_event(ws)).get("type") != "input_audio_buffer.committed":
pass
이 교체 코드는 WebSocket 컨텍스트 내부에서 기존 텍스트 메시지 블록과 동일한 들여쓰기로 배치하세요. WAV 컨테이너 헤더가 아닌 원시 PCM 샘플을 보냅니다. 첫 번째 스크립트는 수동 턴 처리를 명시적으로 선택하므로, 버퍼 커밋과 응답 요청은 별도 동작입니다.
라이브 마이크 캡처와 즉시 재생
대화형 상호작용을 위해 오디오를 지속적으로 캡처하고, 구성된 입력 포맷으로 변환하여 짧은 청크로 전송하세요. 녹음 파일 예제의 수동 모드 대신 자동 턴 감지를 위해 server_vad를 선택합니다. 서버가 이미 응답을 생성 중일 때는 두 번째 response.create를 추가하지 마세요.
중단이 발생하면 큐에 있던 어시스턴트 오디오 재생을 신속히 중단하세요. 네트워크 취소만으로는 애플리케이션에 이미 버퍼링된 사운드를 제거하지 못합니다. 재생 큐를 작게 유지하고, 청자가 실제로 들은 오디오 양을 추적하여 애플리케이션이 대화 상태를 일관되게 유지하도록 하세요.
Grok Voice 3.0 에이전트에 도구를 추가하는 방법은?
애플리케이션은 주문 조회, 일정 관리, 계정 확인 같은 도구를 노출할 수 있습니다. 에이전트는 복잡한 음성 요청을 해석하고, 승인된 함수를 호출한 뒤 그 결과를 사용해 대화를 이어갈 수 있습니다. 이는 고객이 한 통화에서 여러 관련 변경을 요청할 때 특히 유용합니다.
API는 커스텀 함수와 서버 관리형 도구를 지원합니다. 커스텀 함수의 경우, 도구를 정의해도 모델이 데이터베이스에 자동 연결되는 것은 아니며 애플리케이션이 동작을 구현해야 합니다.
session.tools에 함수 이름, 설명, JSON 인자 스키마를 선언합니다.
response.function_call_arguments.done을 처리하고, 인자를 파싱한 뒤 발신자의 권한을 검증한 후 함수를 실행합니다.
결과를 item.type이 function_call_output이고 일치하는 call_id를 포함한 conversation.item.create 이벤트로 반환합니다.
필요한 함수 결과를 모두 제출한 후 response.create를 전송합니다. 여러 호출이 함께 도착하면 모델에 계속 진행을 요청하기 전에 모든 결과를 반환하세요.
읽기 전용 도구(예: 주문 배송 상태 확인)부터 시작하세요. 예약 변경, 환불, 주문 접수처럼 상태를 변경하는 작업에서는 애플리케이션에서 신원 확인, 확인 절차, 중복 요청 방지 등을 반드시 시행하세요.
브라우저와 모바일 앱에서 Grok Voice 3.0을 사용하는 방법
클라이언트 측 연결에는 임시 자격 증명을 사용하세요. 서버는 영구 API 키로 단기 토큰을 요청하고, 그 토큰을 클라이언트에 전달합니다. 자체 토큰 엔드포인트에 대한 요청을 인증하고, 무제한 게이트웨이가 되지 않도록 사용 제한을 적용하세요.
마이크 동의, 녹음 제어, 연결 상태를 인터페이스에 명확히 표시하세요. 연결 손실을 명시적으로 처리하고, 오래된 재생을 중지하며, 이미 완료되었을 수 있는 동작을 재실행하지 않도록 하세요.
Grok Voice 3.0 API 일반 오류 해결 방법
인증 실패: 스크립트를 실행하는 터미널에 XAI_API_KEY가 설정되어 있고, 키가 접근 권한이 있는 계정에 속하는지 확인하세요. 키를 로그나 지원 메시지에 붙여넣지 마세요.
예상치 못한 클라이언트 라이브러리 인자: pip가 스크립트를 실행하는 Python 환경에 요청한 websockets 버전을 설치했는지 확인하세요.
오디오 출력 없음: 오류 이벤트와 response.done을 점검하고, session.updated가 구성을 승인했는지 확인하며, 수동 턴에서 응답이 요청되었는지 확인하세요.
왜곡된 재생: 실제 바이트를 구성된 코덱, 샘플레이트, 채널 수, WAV 헤더와 비교하세요. MP3 파일 이름을 WAV로 바꾼다고 변환되지는 않습니다.
타임아웃: 네트워크 접근과 서비스 상태를 확인한 뒤 마지막으로 성공한 이벤트를 점검하세요. 실패한 연결 재시도는 이미 실행되었을 수 있는 비즈니스 동작과는 분리해 수행하세요.
Grok Voice 3.0 API 예산은 어떻게 잡아야 하나요?
음성 사용과 커스텀 통합은 별도 비용을 발생시킬 수 있습니다. 이 튜토리얼에 관련된 공개 요금은 실시간 세션과 텍스트 입력이며, 독립형 음성 인식 및 음성 생성 제품은 별도 서비스입니다.
예를 들어, 과금 대상 세션 500분은 기본 음성 요금으로 $40에 해당합니다. 이 견적에는 텍스트 입력, 선택적 도구, 전화 통신, 자체 인프라는 포함되지 않습니다. 짧은 테스트 세션으로 시작하고, 대화가 끝나면 유휴 연결을 종료하세요.
결론
Grok Voice 3.0 API의 한 번의 완전한 턴부터 시작하세요: 연결, 세션 구성, 프롬프트 제출, 오디오 수신, 재생. 이 경로가 정상 동작하면 녹음 음성을 추가하고, 그 위에 마이크 캡처와 스트리밍 재생을 구축하세요. 대화와 오류 처리 경로가 안정된 이후에 비즈니스 도구를 도입하세요.