لقد أطلقت xAI ميزة Grok Voice مع إصدار Grok 4.3، والخلاصة العملية للمطورين: يمكنك تجربتها مجانًا من خلال xAI Console. لا توجد رسوم لكل دقيقة أو لكل توكن على ميزات الصوت نفسها: وكيل الصوت، تحويل النص إلى كلام، تحويل الكلام إلى نص، واستنساخ الأصوات المخصصة. المورد الوحيد الذي تتم محاسبته هو استخدام توكنات Grok 4.3 الأساسية عندما ينفذ الوكيل عمليات الاستدلال، وله بدل مجاني داخل الكونسول للاختبار.
في هذا الدليل ستشغّل Grok Voice بتكلفة صفرية، تنشئ صوتًا مخصصًا، تفتح جلسة WebSocket، وتختبر التدفق كاملًا باستخدام Apidog قبل ربطه بمنتجك.
إذا كنت تحتاج إلى تغطية أوسع لـ Grok 4.3 API، أو مقارنة مباشرة بين Grok Voice و OpenAI في Grok Voice مقابل GPT-Realtime، فهذه الأدلة المرافقة تغطي بقية التفاصيل.
ملخص سريع
- Grok Voice مجاني عبر xAI Console (
console.x.ai) لميزات TTS و STT ووكيل الصوت والأصوات المخصصة. - النموذج الرئيسي:
grok-voice-think-fast-1.0. - وقت الحصول على أول صوت أقل من ثانية واحدة؛ وتقول xAI إنه أسرع بحوالي 5 مرات من أقرب منافس.
- أكثر من 80 صوتًا جاهزًا عبر 28 لغة.
- 5 شخصيات صوتية مدمجة:
Eve,Ara,Rex,Sal,Leo. - استنساخ صوت مخصص من حوالي دقيقة واحدة من الكلام، مع صوت جاهز للإنتاج في أقل من دقيقتين.
- نقطة نهاية WebSocket:
wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0
- نقاط REST لـ TTS و STT والأصوات المخصصة تشترك في واجهة API واحدة.
- استخدم Apidog لاختبار جلسات WebSocket وإعادة تشغيلها دون إعادة تسجيل الصوت.
ما الذي تحصل عليه مجانًا في Grok Voice؟
ادخل إلى console.x.ai، أنشئ مفتاح API، ثم يمكنك استخدام أربع واجهات صوتية دون رسوم مرتبطة بميزات الصوت نفسها:
- Voice Agent: محادثة كلام-إلى-كلام في الوقت الفعلي، مع استخدام الأدوات، واكتشاف نشاط الصوت من جانب الخادم، وإدارة تناوب الأدوار.
- Text-to-Speech: أكثر من 80 صوتًا جاهزًا عبر 28 لغة، مع إخراج MP3 أو μ-law للهاتف.
- Speech-to-Text: نسخ صوتي متدفق أو دفعي عبر 25 لغة إدخال، مع طوابع زمنية على مستوى الكلمة وتحديد المتحدث.
-
Custom Voices: استنساخ صوتك من عينة قصيرة واستخدام
voice_idالناتج في TTS أو وكيل الصوت.
المورد الوحيد الذي يُستهلك هو توكنات Grok 4.3 عندما يحتاج الوكيل إلى الاستدلال. الكونسول يمنح رصيدًا مجانيًا كافيًا لاختبار التدفقات قبل الانتقال إلى الإنتاج.
الخطوة 1: إنشاء مفتاح API من xAI Console
افتح console.x.ai وسجل الدخول باستخدام حساب X. من صفحة API Keys أنشئ مفتاحًا جديدًا، وفعّل نطاقي:
voicechat
ثم خزّنه كمتغير بيئة:
export XAI_API_KEY="xai-..."
في تطبيقات المتصفح لا ترسل مفتاح API الأصلي إلى العميل. بدلًا من ذلك، أنشئ رمزًا مؤقتًا من الخادم عبر إعدادات الكونسول أو نقطة النهاية:
/v1/realtime/sessions
الرمز المؤقت يحمل نفس النطاق، لكنه ينتهي خلال دقائق، لذلك يمكن تمريره للمتصفح دون كشف المفتاح الأساسي.
الخطوة 2: اختيار صوت جاهز أو إنشاء صوت مخصص
لديك خياران: استخدام صوت جاهز، أو استنساخ صوت مخصص.
استخدام الأصوات الجاهزة
وكيل الصوت يأتي بخمس شخصيات:
| الصوت | الوصف | استخدام مناسب |
|---|---|---|
Eve |
أنثى، حيوية | دعم العملاء بنبرة مبهجة |
Ara |
أنثى، دافئة | مساعد عام |
Rex |
ذكر، واثق | سيناريوهات المبيعات |
Sal |
محايد، سلس | السرد والقراءات الطويلة |
Leo |
ذكر، موثوق | الامتثال والتدفقات الرسمية |
أما واجهة TTS الأوسع فتدعم مكتبة أكبر من 80 صوتًا عبر 28 لغة. تستدعي الصوت باستخدام المعلمة voice.
إنشاء صوت مخصص
جهّز ملف WAV مدته تقريبًا دقيقة واحدة، بشرط أن يكون:
- من متحدث واحد.
- بصوت واضح.
- دون موسيقى خلفية.
- مسجلًا في بيئة هادئة.
ثم ارفع العينة:
curl https://api.x.ai/v1/custom-voices \
-H "Authorization: Bearer $XAI_API_KEY" \
-F "name=narrator-jane" \
-F "language=en" \
-F "audio=@sample.wav"
ستعيد xAI قيمة voice_id خلال أقل من دقيقتين. يمكنك استخدام هذا المعرف لاحقًا في TTS أو في جلسة وكيل الصوت.
الحد الأقصى لطول العينة المرجعية هو 120 ثانية، لكن الجودة أهم من الطول. عينة نظيفة مدتها 60 ثانية أفضل من عينة طويلة مليئة بالضوضاء.
الخطوة 3: فتح جلسة WebSocket مع Grok Voice
وكيل الصوت يعمل عبر جلسة WebSocket واحدة:
- افتح الاتصال.
- أرسل إعدادات الجلسة.
- ابث صوت المستخدم.
- استقبل صوت الرد.
مثال Node.js بسيط:
import WebSocket from "ws";
const ws = new WebSocket(
"wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0",
{
headers: {
Authorization: `Bearer ${process.env.XAI_API_KEY}`,
},
}
);
ws.on("open", () => {
ws.send(JSON.stringify({
type: "session.update",
session: {
voice: "ara",
instructions: "You are a friendly support agent. Keep replies under two sentences.",
input_audio_format: "pcm16",
output_audio_format: "pcm16",
turn_detection: {
type: "server_vad",
},
},
}));
});
ws.on("message", (raw) => {
const event = JSON.parse(raw.toString());
if (event.type === "response.audio.delta") {
process.stdout.write(Buffer.from(event.delta, "base64"));
}
if (event.type === "response.audio.done") {
console.error("Audio response finished");
}
});
لإرسال صوت المستخدم، استخدم أحداث:
input_audio_buffer.append
وتكون إطارات الصوت بصيغة PCM16 ومشفرة بـ base64.
الخادم يعيد الصوت عبر:
response.audio.delta
وعند انتهاء الدور يرسل:
response.audio.done
صيغة PCM16 بمعدل 24 كيلوهرتز مناسبة لتطبيقات المتصفح وسطح المكتب. إذا كنت تبني تكاملًا هاتفيًا، استخدم μ-law.
الخطوة 4: إضافة Function Calling إلى الوكيل
يدعم وكيل الصوت استدعاء الأدوات أثناء المحادثة. هذا مفيد عندما يحتاج النموذج إلى جلب حالة طلب، التحقق من حساب، أو استدعاء API داخلية.
عرّف الأداة داخل إعدادات الجلسة:
ws.send(JSON.stringify({
type: "session.update",
session: {
tools: [
{
type: "function",
name: "lookup_order",
description: "Look up the status of a customer order by order number.",
parameters: {
type: "object",
properties: {
order_id: {
type: "string",
},
},
required: ["order_id"],
},
},
],
},
}));
عندما يريد النموذج استدعاء الأداة، سيصدر حدثًا مثل:
response.function_call_arguments.done
بعد ذلك:
- اقرأ اسم الدالة والوسائط.
- نفّذ الدالة في الخادم لديك.
- أعد النتيجة باستخدام
conversation.item.createمن نوعfunction_call_output. - سيكمل النموذج المحادثة صوتيًا من حيث توقف.
توجد أيضًا أداة مدمجة باسم web_search، مفيدة عندما تريد ترسيخ الردود في معلومات حديثة دون بناء طبقة استرجاع مخصصة.
الخطوة 5: استخدام TTS فقط بدون WebSocket
إذا كنت لا تحتاج إلى وكيل محادثة كامل، واستخدامك يقتصر على تحويل نص إلى صوت، فاستخدم REST API مباشرة.
مثال:
curl https://api.x.ai/v1/tts \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-tts-1",
"voice": "ara",
"input": "Welcome back to your account. Your last login was Tuesday at 3pm.",
"format": "mp3"
}' \
--output greeting.mp3
الصيغ المدعومة:
-
mp3: جودة عالية. -
mulaw: 8 كيلوهرتز، مناسب للهاتف.
نقطة النهاية متزامنة؛ ترسل النص وتحصل على ملف الصوت مباشرة، دون جلسة بث.
الخطوة 6: اختبار التدفق كاملًا في Apidog
تصحيح WebSocket من الطرفية يصبح مزعجًا عندما تكون المحادثة معتمدة على الحالة. النمط العملي هو تجهيز جلسة قابلة لإعادة التشغيل.
استخدم الخطوات التالية:
- أنشئ طلب WebSocket جديدًا في Apidog.
- ضع عنوان الاتصال:
wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0
- أضف ترويسة المصادقة:
Authorization: Bearer {{XAI_API_KEY}}
- خزّن
XAI_API_KEYداخل متغيرات البيئة. - جهّز رسائل JSON بالترتيب:
session.updateinput_audio_buffer.appendresponse.create
- أعد تشغيل نفس النص مقابل اتصال واحد.
- راقب أحداث الخادم في الشجرة.
- غيّر
voiceأوinstructionsوقارن بين التشغيلين.
يمكنك تنزيل Apidog، وإنشاء مشروع واحد يحتوي على:
- WebSocket لوكيل الصوت.
- REST request لـ TTS.
- REST request لـ STT.
- REST request للأصوات المخصصة.
ولأن TTS و STT واجهات REST عادية، يمكنك اختبارها في نفس مساحة العمل. لمزيد من أنماط اختبار API المعتمدة على الحالة، راجع أداة اختبار API لمهندسي ضمان الجودة.
حدود الفئة المجانية
الوصول المجاني يغطي ميزات الصوت نفسها، لكن توجد حدود عملية يجب الانتباه لها:
- حدود المعدل: الكونسول يفرض قيودًا على عدد الطلبات في الدقيقة لكل نقطة نهاية لمنع إساءة الاستخدام. مناسبة للبناء والعروض التجريبية، لكنها ليست بديلًا لخطة إنتاجية.
- حصة الأصوات المخصصة: الحساب الواحد يمكنه الاحتفاظ بعدد محدود من الأصوات المستنسخة في الوقت نفسه. يمكنك حذف صوت قديم لتحرير فتحة.
- توكنات الاستدلال: عندما يستخدم وكيل الصوت Grok 4.3 للتفكير، يتم الخصم من رصيد الكونسول. الرصيد المجاني مناسب للنماذج الأولية، أما الإنتاج فيتطلب خطة مدفوعة.
إذا ظهرت لك أخطاء rate limit، قلّل التوازي، اجمع الطلبات، أو انتقل إلى مستوى مدفوع. سلوك API نفسه لا يتغير؛ الحد الأقصى فقط يتغير.
اختبار الأصوات قبل النشر
قبل اختيار صوت نهائي، شغّل نفس النص عبر عدة أصوات. استخدم قائمة اختبار قصيرة:
- تحية من جملتين.
- عبارة تأكيد مثل: "فهمت، كل شيء جاهز".
- جملة طويلة تحتوي على رقم وتاريخ وفاصلة.
- سؤال بنبرة دعم.
- رد قصير جدًا مثل: "تم".
اختبر كل صوت بثلاث نبرات في التعليمات:
- هادئة.
- عادية.
- عاجلة.
الفكرة ليست قياس الجودة فقط، بل التأكد من أن الصوت يناسب المنتج وسياق الاستخدام. الأصوات تختلف في الإيقاع والنبرة حتى عند استخدام النص نفسه.
الأسئلة الشائعة
هل Grok Voice مجاني فعلًا؟
ميزات الصوت نفسها — TTS و STT ووكيل الصوت والأصوات المخصصة — لا تحمل رسومًا لكل دقيقة أو لكل توكن عبر الكونسول. لكن استدلال Grok 4.3 الأساسي يستهلك من رصيد الكونسول. الرصيد المجاني يكفي عادة للنماذج الأولية.
هل أحتاج إلى حساب X؟
نعم. تسجيل الدخول إلى xAI Console يتطلب حساب X.
هل يمكن استخدام Grok Voice من المتصفح؟
نعم، لكن لا ترسل مفتاح API الأصلي إلى المتصفح. أنشئ رمزًا مؤقتًا من الخادم عبر:
/v1/realtime/sessions
ثم سلّم الرمز قصير الأجل إلى العميل لفتح WebSocket مباشرة.
ما جودة الصوت المتوقعة؟
إخراج TTS يدعم MP3 عالي الدقة و μ-law بمعدل 8 كيلوهرتز. وكيل الصوت يستخدم PCM16 بمعدل 24 كيلوهرتز داخليًا. الجودة قريبة من محركات TTS التجارية الرئيسية، والكمون هو العامل الأبرز.
هل يعمل مع الاتصالات الهاتفية؟
نعم. صيغة μ-law مناسبة لجسور SIP و PSTN. ستظل بحاجة إلى مزود SIP، لأن xAI لا توفر بوابة SIP خاصة بها اليوم.
كيف أزيد جودة استنساخ الصوت؟
ركّز على جودة العينة المرجعية:
- غرفة هادئة.
- ميكروفون ثابت.
- متحدث واحد.
- دون ضوضاء أو موسيقى.
- نبرة متسقة.
عينة نظيفة مدتها 60 ثانية أفضل من عينة أطول بجودة سيئة. بعد إنشاء voice_id يمكنك استخدامه في TTS ووكيل الصوت دون إعادة الاستنساخ.
هل يمكن استخدام Grok Voice لشخصيات لعبة؟
نعم. نقطة TTS مناسبة للتوليد في وقت التشغيل، والأصوات المخصصة تسمح بمنح كل شخصية صوتًا مختلفًا. راقب الكمون عند الأسطر الطويلة، واستخدم توليدًا مقطعًا بدل إرسال فقرات طويلة دفعة واحدة.
خاتمة
Grok Voice يقدم مسارًا مباشرًا لبناء وكيل صوت في الوقت الفعلي دون تكلفة على ميزات الصوت نفسها أثناء الاختبار. ابدأ بمفتاح من xAI Console، اختر صوتًا جاهزًا أو أنشئ voice_id مخصصًا، ثم اختبر جلسة WebSocket كاملة في Apidog قبل ربطها بواجهة المستخدم.
عندما تريد دمجه مع استدلال Grok 4.3، راجع دليل Grok 4.3 API. وللمقارنة مع OpenAI، راجع Grok Voice مقابل GPT-Realtime.


Top comments (0)