Wixzel Voiceのsarvamエンジンで作るヒンディー語とマラヤーラム語の電話エージェント
Wixzel Voice上に、ヒンディー語とマラヤーラム語をそれぞれ話す2つの電話エージェントができます。どちらもsarvamエンジンで動き、Sarvamの音声認識Saaras、言語モデルSarvam-105B、音声Bulbulが1つのパイプラインになっています。SIPトランクを接続済みなら、cURLで約20分です。sarvamエンジンは接続1分あたり$0.0617、3分の通話で約$0.19で、前払い残高から秒単位で課金され、これに通信事業者の回線料金が加わります。
執筆 Aqeel Shamsudheen · 公開日 · 更新日
- 所要時間
- トランクが接続済みなら約20分
- エンジン
- sarvam
- エンジン利用時間
- 接続1分あたり$0.0617
始める前に何が必要ですか?
- クレジットのあるWixzel VoiceのAPIキー。
WIXZEL_API_KEYとして環境変数に設定しておきます。 - SIPトランクとそのトランク上の番号。インドの番号には、ExotelやVobizなどの通信事業者を使い、KYCと必要なDLT登録を済ませておきます。これらが済んでいないアカウントは、残高があってもすべての発信が通信事業者に拒否されることがあります。
- curl、jq、uuidgen。
Wixzel Voiceでこれを構築する手順は?
01エンジンが対応する言語と音声を確認する
どちらのリストもハードコードせず、APIに問い合わせます。
shellcurl 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が公開しているのは名前だけなので、選ぶ前に実際に聞いて確かめてください。02ヒンディー語のエージェントを作成する
言語は3つの設定で決まります。
voice.stt.languageは音声認識と音声合成をヒンディー語に固定し、エージェントのlanguageはモデルにその言語で返答させ、プロンプトと冒頭のあいさつはエージェントに話させたい言葉づかいで書きます。3つの段はすべてSarvamのモデルです。音声認識のプロバイダーがパイプラインを決め、残りの2つは同じファミリーのものである必要があるためです。shellcurl 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として控えておきます。エンジンが対応していない言語や音声を指定すると、エージェントの作成時に拒否され、エラーに有効な値が一覧されます。03マラヤーラム語のエージェントを作成する
同じ形で、2か所を
ml-INにし、冒頭のあいさつをマラヤーラム語にします。shellcurl 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として控えておきます。1つのエージェントが話すのは1つの言語です。sarvamエンジンには自動判定モードがないため、両方の言語の発信者に対応するには、着信では言語ごとに番号を分け、発信では通話ごとにエージェントを選びます。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が必須です。同じキーで再試行すると、二重に発信せずに最初の通話が返されます。05実際の発信者の話し方でテストする
ほとんどの発信者は、ヒンディー語やマラヤーラム語に英語を混ぜて話します。日付、数字、ブランド名、「appointment」や「cancel」のような単語です。Sarvamのモデルは、モデルが扱える範囲で、ヒングリッシュのような言語が混在した話し方に対応できます。プロンプトではそれを禁止せず、許容するように書いてください。
エージェントにできないのは、発信者が完全に別のインドの言語に切り替えたときに追従することです。音声認識は通話開始時に
voice.stt.languageに固定されるためです。実際のトラフィックをつなぐ前に、実際の言い回しで何度か電話をかけ、GET /v1/calls/{id}の文字起こしで何が聞き取られたかを確認してください。
Wixzel Voiceでこの構築にかかる費用は?
sarvamエンジンで3分の通話を行った場合のエンジン利用料で、接続1分あたり$0.0617、1通話あたり約$0.19です。 電話回線はお客様自身のトランクを通信事業者の料金で使うため、ここには含まれません。
| 月間の通話数 | 接続時間(分) | 月額のエンジン費用 |
|---|---|---|
| 500 | 1,500 | $92.55 |
| 2,500 | 7,500 | $463 |
| 10,000 | 30,000 | $1,851 |
sarvamエンジンはオーケストレーション料金込みで接続1分あたり$0.0617です。比較すると、classicエンジンは$0.0867なので、Sarvamでのヒンディー語やマラヤーラム語の1分は、classicでの英語の1分より安くなります。各段は通話中にそれぞれの単位で計測されるため、発話の少ない通話は見積もりより安く、多い通話は高くなります。回線料金は通信事業者から別途請求されます。
前払い制で、サブスクリプションも無料プランもありません。$5からクレジットを追加すると、使用量に応じて消費されます。自分の使い方で見積もる。
この構築に関係するWixzel Voiceの制限は?
- エージェント1つにつき1言語です。sarvamエンジンには自動言語判定がないため、発信者が完全に別の言語に切り替えると追従できません。
- Sarvamは通話中、音声とテキストをインド国内で処理します。通話ログ、文字起こし、録音はインド国内のサーバーに保存されます。
- Bulbulの音声は名前だけで提供され、性別やアクセントの説明はありません。試聴するにはテスト通話が必要で、実際の電話が鳴りクレジットを消費します。
- インドの通信事業者は、発信をKYCや、多くの場合DLT登録の完了を条件にしています。その理由で通信事業者が拒否した通話は通信事業者側で失敗し、プラットフォーム側では解決できません。
- デフォルトでは、1アカウントあたり同時に5件まで通話でき、申請により引き上げられます。
よくある質問
Wixzel Voiceでヒンディー語の電話エージェントを作るにはどうすればよいですか?
voice.stt.languageとエージェントのlanguageをhi-INに設定し、ヒンディー語の冒頭のあいさつとBulbulの音声を指定します。そのうえで番号にinbound_agent_idを設定するか、POST /v1/callsで発信します。ご自身のSIPトランク経由の電話や、WebSocket経由のWebアプリ・モバイルアプリでのセッションで、接続1分あたり$0.0617でヒンディー語の会話ができます。AI電話エージェントはマラヤーラム語を話せますか?
voice.stt.languageとエージェントのlanguageをml-INに設定し、冒頭のあいさつをマラヤーラム語で書き、Bulbulの音声を選びます。音声認識、言語モデル、音声のすべてが、インドの言語向けに作られたSarvamのモデルで動きます。1つのエージェントでヒンディー語とマラヤーラム語の両方を話せますか?
Wixzel Voiceのsarvamエージェントはヒングリッシュを理解しますか?
インドの通話データはインド国内に保管されますか?
さらに詳しく
- 音声エンジンドキュメント
2種類の音声の形、音声の一覧、言語のエンドポイント。
- 音声エンジンを組み合わせるドキュメント
ファミリー、モデルID、組み合わせたエンジンの1分あたりの料金の計算方法。
- SIPトランクドキュメント
ExotelとVobizのセットアップ、KYCとDLTの確認事項。
- エージェントドキュメント
エージェントのすべてのフィールドと、有効な値の出どころ。
Wixzel Voiceについて
Wixzel Voiceは、自社のSIPトランク経由で実際の電話を発信・着信するAIエージェントや、Webアプリやモバイルアプリの中で人と話すAIエージェントを構築するための音声AI APIです。1つのAPIキーと1つの前払い残高ですべての音声エンジンを利用でき、実際の使用量に応じて秒単位で課金されます。
その他のガイド
Claude Codeまたはclaude.aiのClaudeが、ご自身のSIPトランク経由で実際に電話をかけ、文字起こしを読み上げます。発信の前には必ず確認が入ります。
Node.jsで作った、既存のTwilio番号に応答してAPIに予約を登録するAI受付。
ユーザーがWebSocket経由で音声エージェントと話せるFlutterアプリ。APIキーはサーバーに置いたままで、電話番号は使いません。
4つのcURLリクエストで、ご自身のSIPトランク経由で実際の電話を鳴らすGemini Liveのエージェントと、文字起こしと料金を含むその通話記録。
ご自身のSIPトランク経由で、同時通話数の上限に合わせたバッチでエージェントが発信したリードの一覧と、各通話のステータスと文字起こし。
Webサイトの隅にいて、訪問者がブラウザから通話できる話すマスコット。指定したドメインと1日の上限の範囲内で動き、すべての発信者が一覧されます。
リアルタイム通話中にエージェントの声に合わせて口を動かすマスコットを表示するFlutterの画面。APIキーはサーバーに置いたままです。
最初の音声エージェントを構築

