본문으로 건너뛰기
가이드

Wixzel Voice sarvam 엔진으로 만드는 힌디어·말라얄람어 전화 에이전트

Wixzel Voice에 전화 에이전트 두 개가 생깁니다. 하나는 힌디어, 하나는 말라얄람어를 하며, 둘 다 sarvam 엔진에서 Sarvam의 Saaras 음성 인식, Sarvam-105B 언어 모델, Bulbul 음성을 하나의 파이프라인으로 사용합니다. SIP 트렁크가 이미 연결되어 있다면 cURL로 약 20분이 걸립니다. sarvam 엔진은 연결된 1분당 $0.0617, 3분 통화에 약 $0.19이며, 선불 잔액에서 초 단위로 청구되고 회선에는 통신사 요금이 별도로 붙습니다.

작성 · 게시 · 업데이트

소요 시간
트렁크를 연결한 상태에서 약 20분
엔진
sarvam
엔진 사용 시간
연결된 1분당 $0.0617

시작하기 전에 무엇이 필요한가요?

  • 크레딧이 있는 Wixzel Voice API 키(WIXZEL_API_KEY로 export).
  • 번호가 연결된 SIP 트렁크. 인도 번호라면 Exotel이나 Vobiz 같은 통신사에서 KYC와 필요한 DLT 등록을 마친 계정이 필요합니다. 이 절차를 마치지 않은 계정은 잔액이 있어도 모든 발신 통화가 차단될 수 있습니다.
  • curl, jq, uuidgen.

Wixzel Voice에서 단계별로 어떻게 만드나요?

  1. 01엔진이 지원하는 언어와 음성 확인하기

    두 목록 모두 하드코딩하지 말고 API에 물어봅니다.

    shell
    curl https://api.voice.wixzel.com/v1/engines/sarvam/languages \
      -H "Authorization: Bearer $WIXZEL_API_KEY"
    
    curl https://api.voice.wixzel.com/v1/engines/sarvam/voices \
      -H "Authorization: Bearer $WIXZEL_API_KEY"

    언어 엔드포인트는 현재 11개의 코드를 반환합니다: en-IN, hi-IN, bn-IN, gu-IN, kn-IN, ml-IN, mr-IN, od-IN, pa-IN, ta-IN, te-IN. 힌디어는 hi-IN, 말라얄람어는 ml-IN입니다. 음성은 priya, kavya, shubh 같은 Bulbul v3 화자 이름입니다. Sarvam은 이름 외에는 아무 정보도 공개하지 않으므로, 음성을 고르기 전에 직접 들어 보십시오.

  2. 02힌디어 에이전트 만들기

    언어는 세 가지 설정으로 정해집니다. voice.stt.language는 인식과 음성을 힌디어로 고정하고, 에이전트의 language는 모델에게 힌디어로 답하라고 알리며, 프롬프트와 첫 인사는 에이전트가 말해야 할 방식대로 씁니다. 세 단계 모두 Sarvam 모델입니다. 음성 인식(STT) 제공업체가 파이프라인을 정하고, 나머지 두 단계는 같은 계열에서 골라야 하기 때문입니다.

    shell
    curl https://api.voice.wixzel.com/v1/agents \
      -H "Authorization: Bearer $WIXZEL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "Hindi reception",
        "language": "hi-IN",
        "system_prompt": "You answer the phone for Sharma Dental Clinic, in Hindi. Speak the everyday Hindi callers use, English words included. Keep replies to one or two short sentences.",
        "opening_message": "नमस्ते, शर्मा डेंटल क्लिनिक में आपका स्वागत है। बताइए, मैं आपकी क्या मदद करूँ?",
        "voice": {
          "stt": { "model": "sarvam/saaras-v3-realtime", "language": "hi-IN" },
          "llm": { "model": "sarvam/sarvam-105b" },
          "tts": { "model": "sarvam/bulbul-v3", "voice": "priya" }
        }
      }'

    응답의 id를 HINDI_AGENT_ID로 보관합니다. 엔진이 지원하지 않는 언어나 음성은 에이전트 생성 시 거부되며, 오류에 사용할 수 있는 값이 나열됩니다.

  3. 03말라얄람어 에이전트 만들기

    구조는 같고, 두 곳 모두 ml-IN으로 바꾸고 첫 인사를 말라얄람어로 씁니다.

    shell
    curl https://api.voice.wixzel.com/v1/agents \
      -H "Authorization: Bearer $WIXZEL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "Malayalam reception",
        "language": "ml-IN",
        "system_prompt": "You answer the phone for a dental clinic in Kochi, in Malayalam. Speak the everyday Malayalam callers use, English words included. Keep replies to one or two short sentences.",
        "opening_message": "നമസ്കാരം, കൊച്ചി ഡെന്റൽ ക്ലിനിക്കിലേക്ക് സ്വാഗതം. ഞാൻ എങ്ങനെ സഹായിക്കാം?",
        "voice": {
          "stt": { "model": "sarvam/saaras-v3-realtime", "language": "ml-IN" },
          "llm": { "model": "sarvam/sarvam-105b" },
          "tts": { "model": "sarvam/bulbul-v3", "voice": "kavya" }
        }
      }'

    이 id는 MALAYALAM_AGENT_ID로 보관합니다. 에이전트 하나는 언어 하나만 씁니다. sarvam 엔진에는 언어 자동 감지 모드가 없으므로, 두 언어의 발신자를 모두 응대하려면 수신은 언어별로 번호를 하나씩 두고, 발신은 통화마다 에이전트를 골라야 합니다.

  4. 04수신 통화를 연결하거나 발신하기

    번호에 힌디어 에이전트를 지정해 수신 통화를 받게 하거나, 말라얄람어 에이전트로 전화를 겁니다.

    shell
    # Inbound: calls to this number reach the Hindi agent
    jq -n --arg agent "$HINDI_AGENT_ID" '{inbound_agent_id: $agent}' |
      curl -X PATCH https://api.voice.wixzel.com/v1/phone-numbers/$NUMBER_ID \
        -H "Authorization: Bearer $WIXZEL_API_KEY" \
        -H "Content-Type: application/json" \
        -d @-
    
    # Outbound: the Malayalam agent rings $TO (E.164, for example +91 and ten digits)
    jq -n --arg to "$TO" --arg agent "$MALAYALAM_AGENT_ID" --arg from "$NUMBER_ID" \
      '{to: $to, agent_id: $agent, from_number_id: $from}' |
      curl https://api.voice.wixzel.com/v1/calls \
        -H "Authorization: Bearer $WIXZEL_API_KEY" \
        -H "Idempotency-Key: $(uuidgen)" \
        -H "Content-Type: application/json" \
        -d @-

    POST /v1/calls에는 Idempotency-Key가 필수입니다. 같은 키로 재시도하면 두 번 전화를 거는 대신 원래 통화를 반환합니다.

  5. 05발신자가 실제로 말하는 방식으로 테스트하기

    대부분의 발신자는 힌디어나 말라얄람어에 영어를 섞어 말합니다. 날짜, 숫자, 브랜드 이름, "appointment"나 "cancel" 같은 단어입니다. Sarvam 모델은 모델이 처리할 수 있는 범위 안에서 힝글리시 같은 혼합 언어를 처리하므로, 프롬프트에서 이를 금지하지 말고 허용하도록 쓰십시오.

    에이전트가 할 수 없는 것은 발신자가 완전히 다른 인도 언어로 바꿔 말할 때 따라가는 것입니다. 인식 언어는 통화가 시작될 때 voice.stt.language로 고정되기 때문입니다. 실제 트래픽을 연결하기 전에 실제 표현으로 몇 번 통화해 보고, GET /v1/calls/{id}의 대화 기록에서 어떻게 인식되었는지 확인하십시오.

Wixzel Voice에서 이 빌드의 비용은 얼마인가요?

sarvam 엔진에서 연결된 1분당 $0.0617로 3분 통화를 할 때의 엔진 사용 시간 비용: 통화당 약 $0.19. 전화 통신은 자체 트렁크에서 통신사 요금으로 청구되며 포함되지 않습니다.

이 가이드 빌드의 월 엔진 비용
월 통화 수연결된 시간(분)월 엔진 비용
5001,500$92.55
2,5007,500$463
10,00030,000$1,851

sarvam 엔진은 오케스트레이션 수수료를 포함해 연결된 1분당 $0.0617입니다. 비교하자면 classic 엔진은 $0.0867이므로, Sarvam의 힌디어·말라얄람어 1분은 classic의 영어 1분보다 저렴합니다. 각 단계는 통화 중에 자체 단위로 계량되므로 조용한 통화는 예상보다 적게, 말이 많은 통화는 더 많이 나옵니다. 회선 요금은 통신사가 별도로 청구합니다.

선불이며 구독과 무료 등급이 없습니다. $5부터 크레딧을 충전하면 사용량만큼 차감됩니다. 내 사용량으로 추정해 보기.

이 빌드에는 Wixzel Voice의 어떤 한도가 적용되나요?

  • 에이전트당 언어 하나. sarvam 엔진에는 언어 자동 감지가 없으므로, 발신자가 완전히 다른 언어로 바꾸면 따라가지 못합니다.
  • Sarvam은 통화 중 음성과 텍스트를 인도에서 처리합니다. 통화 로그, 대화 기록, 녹음은 인도에 있는 서버에 저장됩니다.
  • Bulbul 음성은 이름만 제공되며 성별이나 억양 설명은 없습니다. 들어 보려면 테스트 통화를 해야 하고, 테스트 통화는 실제 전화를 울리고 크레딧을 사용합니다.
  • 인도 통신사는 KYC와, 많은 경우 DLT 등록을 마쳐야 발신을 허용합니다. 이 때문에 통신사가 차단한 통화는 통신사 단계에서 실패하며, 플랫폼 쪽에서는 해결할 수 없습니다.
  • 계정당 기본적으로 동시에 5건의 통화를 진행할 수 있으며, 요청하면 한도를 늘려 드립니다.

자주 묻는 질문

Wixzel Voice에서 힌디어 전화 에이전트를 만들려면 어떻게 해야 하나요?

sarvam 엔진에서 voice.stt.language와 에이전트의 language를 hi-IN으로 설정하고, 힌디어 첫 인사와 Bulbul 음성을 지정해 에이전트를 만듭니다. 그런 다음 번호에 inbound_agent_id를 지정하거나 POST /v1/calls로 전화를 겁니다. 에이전트는 SIP 트렁크를 통한 전화 통화나 WebSocket을 통한 웹·모바일 앱 세션에서 힌디어로 대화하며, 요금은 연결된 1분당 $0.0617입니다.

AI 전화 에이전트가 말라얄람어를 할 수 있나요?

네. sarvam 에이전트에서 voice.stt.language와 에이전트의 language를 ml-IN으로 설정하고, 첫 인사를 말라얄람어로 쓰고, Bulbul 음성을 고릅니다. 음성 인식, 언어 모델, 음성이 모두 인도 언어용으로 만든 Sarvam 모델에서 동작합니다.

에이전트 하나가 힌디어와 말라얄람어를 모두 할 수 있나요?

아니요. 인식 언어는 통화가 시작될 때 에이전트별로 고정되며, sarvam 엔진에는 감지 모드가 없습니다. 언어마다 에이전트를 하나씩 만들고, 각 번호나 각 발신 통화를 알맞은 에이전트로 연결하십시오.

Wixzel Voice의 sarvam 에이전트가 힝글리시를 알아듣나요?

Sarvam 모델이 처리할 수 있는 범위 안에서는 그렇습니다. 힌디어 문장 속 영어 단어처럼 언어가 섞인 말을 처리합니다. 실제 서비스 전에 실제 발신자의 표현으로 테스트하고, 대화 기록에서 어떻게 인식되었는지 확인하십시오.

인도 통화 데이터는 인도에 보관되나요?

Sarvam은 통화가 진행되는 동안 음성과 텍스트를 인도에서 처리합니다. 통화 로그, 대화 기록, 녹음은 인도에 저장됩니다. 개인정보처리방침과 DPA에 모든 처리자와 위치가 나와 있습니다.

더 읽을거리

  • 음성 엔진문서

    두 가지 음성 구성, 음성 목록, 언어 엔드포인트.

  • 음성 엔진 구성하기문서

    모델 계열, 모델 ID, 구성한 엔진의 분당 요금 계산 방식.

  • SIP 트렁크문서

    Exotel과 Vobiz 설정, KYC와 DLT 확인.

  • 에이전트문서

    에이전트의 모든 필드와 유효한 값의 출처.

에이전트형 전화 통신을 위한 API

Wixzel Voice 소개

Wixzel Voice는 자체 SIP 트렁크로 실제 전화를 걸고 받거나 웹·모바일 앱에서 사람들과 대화하는 AI 에이전트를 만들기 위한 음성 AI API입니다. API 키 하나와 선불 잔액 하나로 모든 음성 엔진을 사용하며, 실제 사용량에 따라 초 단위로 과금됩니다.

Wixzel Voice MCP 서버로 Claude에게 실제 전화 회선 연결하기

Claude Code나 claude.ai의 Claude가 SIP 트렁크로 실제 전화를 걸고 대화 기록을 읽어 주는 상태. 전화를 걸기 전에는 항상 확인을 거칩니다.

Wixzel Voice로 Node.js에서 Twilio AI 접수원 만들기

Node.js로 만든 AI 접수원이 기존 Twilio 번호로 오는 전화를 받고 API에 예약을 잡는 상태.

Wixzel Voice로 WebSocket 기반 Flutter 음성 에이전트 추가하기

API 키는 서버에 두고, 전화번호 없이 사용자가 WebSocket으로 음성 에이전트와 대화하는 Flutter 앱.

Wixzel Voice API로 실제 전화 통화에 Gemini Live 연결하기

cURL 요청 네 번으로 SIP 트렁크를 통해 실제 전화를 거는 Gemini Live 에이전트, 그리고 대화 기록과 비용이 담긴 통화 기록.

Wixzel Voice로 AI 리드 선별 캠페인 실행하기

에이전트가 SIP 트렁크로 리드 목록에 동시 통화 한도에 맞춘 배치 단위로 전화를 걸고, 모든 통화의 상태와 대화 기록을 읽어 오는 상태.

Wixzel Voice로 웹사이트에 말하는 AI 마스코트 추가하기

웹사이트 구석에서 방문자가 브라우저로 통화하는 말하는 마스코트. 지정한 도메인과 일일 한도 안에서만 동작하고, 모든 발신자가 목록에 남습니다.

Wixzel Voice로 Flutter 앱에 에이전트 마스코트 표시하기

실시간 통화 중 에이전트 음성에 맞춰 입을 움직이는 에이전트 마스코트가 있는 Flutter 화면. API 키는 서버에 둡니다.

첫 음성 에이전트를 만드세요