跳到主要內容
指南

在 Wixzel Voice 的 sarvam 引擎上打造印地語與馬拉雅拉姆語電話代理

您將在 Wixzel Voice 上擁有兩個電話代理,一個說印地語、一個說馬拉雅拉姆語,都使用 sarvam 引擎:Sarvam 的 Saaras 語音辨識、Sarvam-105B 語言模型和 Bulbul 語音組成同一條管線。已連接 SIP 中繼的情況下,用 cURL 約需 20 分鐘。sarvam 引擎每接通一分鐘 $0.0617,三分鐘的通話約 $0.19,從預付餘額按秒計費,另加電信業者的線路費率。

作者: · 發布於 · 更新於

所需時間
連接好中繼後約 20 分鐘
引擎
sarvam
引擎時間
每接通分鐘 $0.0617

開始之前需要準備什麼?

  • 一把有點數的 Wixzel Voice API 金鑰,匯出為 WIXZEL_API_KEY。
  • 一個上面有號碼的 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。語音是 Bulbul v3 的說話者名稱,例如 priya、kavya 和 shubh;Sarvam 只公布名稱,沒有其他說明,因此請先試聽再選擇。

  2. 02建立印地語代理

    語言由三項設定決定。voice.stt.language 將辨識和語音固定為印地語;代理的 language 告訴模型用印地語回覆;提示詞和開場白則照代理應有的說話方式來寫。三個階段都是 Sarvam 模型,因為語音轉文字供應商決定了管線,另外兩個階段必須來自同一系列。

    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 的模型在其能力範圍內能處理像 Hinglish 這樣的混雜語言,因此提示詞應允許這種說法,而不是禁止。

    代理無法做到的是跟上完全改說另一種印度語言的來電者,因為辨識語言在通話開始時就固定為 voice.stt.language。在導入正式流量前,先用真實的說法撥打幾通電話,並從 GET /v1/calls/{id} 的逐字稿查看系統聽到了什麼。

在 Wixzel Voice 上打造這個要花多少錢?

在 sarvam 引擎上進行 3 分鐘通話的引擎時間,以每接通分鐘 $0.0617 計算:每通約 $0.19。 電信使用您自己的中繼,按您電信業者的費率計算,不包含在內。

本指南所打造內容的每月引擎費用
每月通話數接通分鐘數每月引擎費用
5001,500$92.55
2,5007,500$463
10,00030,000$1,851

sarvam 引擎每接通一分鐘 $0.0617,已含協調服務費;作為比較,classic 引擎為 $0.0867,因此在 Sarvam 上一分鐘的印地語或馬拉雅拉姆語通話,比在 classic 上一分鐘的英文通話便宜。通話進行時,每個階段以各自的單位計量,因此安靜的通話會比估算便宜,話多的通話則較貴。線路費用由您的電信業者另行收取。

預付制,沒有訂閱,也沒有免費方案:從 $5 起儲值點數,使用時從中扣除。估算您自己的使用組合。

這個實作適用哪些 Wixzel Voice 限制?

  • 每個代理一種語言。sarvam 引擎沒有自動語言偵測,完全改說另一種語言的來電者無法被跟上。
  • 通話期間,Sarvam 在印度處理語音和文字。通話紀錄、逐字稿和任何錄音都儲存在印度的伺服器上。
  • Bulbul 語音只有名稱,沒有性別或口音說明。試聽需要撥打測試通話,這會撥打真實電話並消耗點數。
  • 印度電信業者對外撥通話設有 KYC 門檻,且常需要 DLT 註冊。因此被電信業者擋下的通話會在電信業者端失敗,平台端無法修正。
  • 每個帳號預設最多可同時進行五通通話,可申請提高上限。

常見問題

如何在 Wixzel Voice 上打造印地語電話代理?

在 sarvam 引擎上建立代理,將 voice.stt.language 和代理的 language 設為 hi-IN,使用印地語開場白和 Bulbul 語音,然後為號碼設定 inbound_agent_id,或用 POST /v1/calls 撥出電話。它可以透過您的 SIP 中繼以印地語進行電話通話,也可以透過 WebSocket 在您的網頁和行動應用程式中進行工作階段,每接通一分鐘 $0.0617。

AI 電話代理能說馬拉雅拉姆語嗎?

可以。在 sarvam 代理上將 voice.stt.language 和代理的 language 設為 ml-IN,用馬拉雅拉姆語撰寫開場白,並選擇 Bulbul 語音。語音辨識、語言模型和語音都在 Sarvam 專為印度語言打造的模型上執行。

一個代理能同時說印地語和馬拉雅拉姆語嗎?

不能。辨識語言在通話開始時就依代理固定,且 sarvam 引擎沒有偵測模式。請每種語言建立一個代理,並將每個號碼或每通外撥電話導向正確的代理。

Wixzel Voice 上的 sarvam 代理聽得懂 Hinglish 嗎?

在 Sarvam 模型的能力範圍內可以:它們能處理混雜語言,例如印地語句子中夾雜英文詞。上線前請用真實來電者的說法測試,並閱讀逐字稿確認系統聽到了什麼。

印度的通話資料會留在印度嗎?

通話期間,Sarvam 在印度處理語音和文字。通話紀錄、逐字稿和任何錄音都儲存在印度。隱私權政策和 DPA 列出了所有處理者及其所在地。

延伸閱讀

  • 語音引擎文件

    兩種語音結構、語音清單和語言端點。

  • 組合語音引擎文件

    模型系列、模型 id,以及組合式每分鐘費用的計算方式。

  • SIP 中繼文件

    Exotel 與 Vobiz 設定,以及 KYC 和 DLT 檢查。

  • 代理文件

    每個代理欄位,以及其有效值的來源。

代理式電話通訊 API

關於 Wixzel Voice

Wixzel Voice 是一個語音 AI API,用於打造 AI 代理,透過您自己的 SIP 中繼撥打和接聽真實的電話,或在您的網頁和行動應用程式中與人對話。一把 API 金鑰和一份預付餘額即可使用所有語音引擎,依實際用量按秒計費。

建立您的第一個語音代理