دليل إعداد بوت تحويل النص إلى كلام على Discord (2026)

دليل شامل لإعداد بوت تحويل النص إلى كلام على Discord في عام 2026. يغطي Voicemod TTS و Streamcord وبوتات Discord.js المخصصة مع ElevenLabs وتوجيه قنوات الصوت والاختصارات.

إذا كنت تريد أن ينطق Discord النص بصوت عالٍ — سواء كنت بثاثاً يوجه دردشة Twitch إلى قناة صوتية، أو مستخدماً تفضل الكتابة، أو مطوراً يبني أداة سرد مخصصة — فإن بوت تحويل النص إلى كلام على Discord هو الحل الصحيح. يغطي هذا الدليل كل خيار عملي متاح في عام 2026: البوتات المستضافة التي يمكنك إضافتها بنقرة واحدة، وأمر Discord TTS الأصلي، وشرح خطوة بخطوة لبناء بوت مخصص مع Discord.js و API ElevenLabs.


الملخص السريع

  • أمر Discord الأصلي /tts يقع من جانب العميل - يشغل الصوت من خلال السماعات المحلية للمستمع، وليس من خلال قناة صوتية.
  • Streamcord TTS هو الخيار المستضاف الأكثر شيوعاً للبثاثين الذين يريدون قراءة دردشة Twitch بصوت عالٍ في قنوات صوت Discord.
  • يوفر Voicemod TTS أصواتاً متنوعة وشخصية عبر بوت مُدار.
  • بوت Discord.js مخصص مع ElevenLabs يعطيك أفضل جودة صوت والتحكم الكامل، مع وقت بناء أقل من ساعة.
  • يمكن تعيين الاختصارات لتشغيل أوامر TTS من خلال إعدادات اتصالات Discord أو من خلال أدوات خارجية مثل AutoHotkey.
  • يجمع VoxBooster مع بوتات TTS لسير عمل هجين حيث تريد سرد دردشة مُخلّق وصوت معدّل مباشر.

لماذا توجد بوتات TTS وما الذي تفعله بالفعل

يُساء فهم أمر Discord المدمج /tts في كثير من الأحيان. عندما تكتب /tts hello، يقرأ عميل سطح مكتب Discord هذا النص بصوت عالٍ من خلال السماعات الخاصة بك باستخدام محرك TTS المحلي لنظام التشغيل. لا يسمعه المستخدمون الآخرون في القناة من خلال قناة الصوت - يسمعونها فقط إذا كان لديهم أيضاً TTS الخاص بهم على Discord مفعّلاً وقراءة عميلهم للرسالة محلياً.

يعمل بوت تحويل النص إلى كلام على Discord بشكل مختلف. البوت هو عملية من جانب الخادم مع اتصال قناة صوتية خاص بها. عند تشغيله، يخلّق الكلام من النص وينقل الصوت الناتج إلى قناة الصوت ذاتها. يسمعها الجميع في تلك القناة الصوتية، بنفس الطريقة التي يسمعون بها مشارك آخر يتحدث. هذا التمييز - العميل المحلي مقابل البث في القناة - هو السبب الوحيد وراء وجود البوتات لهذه حالة الاستخدام.

السيناريوهات الشائعة حيث يكون هذا مهماً:

  • إعداد البث: أنت مباشر على Twitch وتريد قراءة رسائل المشاهدين بصوت عالٍ في مكالمة صوت Discord تشاركها مع بثاثين متعاونين.
  • إمكانية الوصول: عضو خادم لا يستطيع أو يفضل عدم استخدام ميكروفون؛ يتيح بوت TTS لهم المشاركة في نقاشات صوتية بالكتابة.
  • الإعلانات: يقرأ البوت تنبيهات الإشراف أو تعيينات الأدوار أو الرسائل المجدولة في قناة بدون مشغل بشري.
  • السرد المخصص: يبني المطورون بوتات تسرد أحداث اللعبة أو الدرجات أو التنبيهات في الوقت الفعلي باستخدام أصوات AI عالية الجودة.

الخيار 1: أمر Discord الأصلي /tts

قبل الوصول إلى بوت، تحقق مما إذا كان أمر Discord المدمج يغطي احتياجاتك.

كيفية تفعيله: في الخادم الخاص بك، انتقل إلى إعدادات الخادم → النظرة العامة → تفعيل تحويل النص إلى كلام. ضمن إعدادات القناة المتقدمة، عيّن السماح لأي شخص بنشر رسائل TTS (أو قيّدها إلى أدوار محددة).

كيفية استخدامه: في أي قناة نصية مع TTS مفعّل، اكتب /tts [your message]. يقرأ Discord الرسالة بصوت عالٍ من خلال سماعات المستقبِل باستخدام محرك TTS الخاص به للنظام.

القيود:

  • الصوت يذهب إلى السماعات المحلية، وليس إلى بث قناة الصوت.
  • جودة الصوت تعتمد على محرك TTS الخاص بنظام تشغيل المستمع (Microsoft David أو Zira وغيرها على Windows).
  • يجب أن يمكّن كل مستمع TTS في الإعدادات → إمكانية الوصول → السماح بتشغيل واستخدام أمر /tts.

الأفضل لـ: الوصول السريع، أو الحالات التي يحتاج فيها كل مستخدم فقط إلى سماع النص المقروء محلياً - وليس للبث أو الإعلانات الجماعية.


الخيار 2: بوت Voicemod TTS

Voicemod، المعروف بشكل أساسي بمبدّل الصوت على سطح مكتبه، يدير بوت Discord الذي يجلب مكتبته إلى وظيفة تحويل النص إلى كلام.

ما يوفره:

  • مكتبة من الأصوات الشخصية والمتنوعة (الآلية والكرتونية والعميقة وغيرها).
  • واجهة أمر شرطة بسيطة: /tts [voice] [message].
  • بدون تحميل نموذج صوت مخصص - أنت محدود بمكتبة Voicemod المعينة مسبقاً.
  • طبقة مجانية متاحة؛ الأصوات المميزة تتطلب اشتراك Voicemod.

الإعداد:

  1. تفضل صفحة بوت Voicemod Discord وانقر على أضف إلى الخادم.
  2. فرّح البوت بأذونات الاتصال والتحدث وقراءة الرسائل.
  3. انضم إلى قناة صوتية في الخادم الخاص بك.
  4. استخدم /tts متبوعاً باسم الصوت المختار والنص الرسالة.

القيود: اختيار الصوت مقتصر على مكتبة Voicemod. إذا كنت بحاجة إلى صوت طبيعي الصوت الإنساني أو شخصية مخصصة، فهذا لن يغطيه.


الخيار 3: Streamcord TTS للبثاثين

Streamcord هو بوت تحويل النص إلى كلام على Discord الذي تختاره البثاثون الذين يريدون قراءة رسائل دردشة Twitch بصوت عالٍ في قناة صوت Discord. إنه يربط Twitch و Discord بشكل أصلي.

ما يوفره:

  • يربط قناة Twitch الخاصة بك بقناة صوت Discord.
  • يقرأ رسائل دردشة Twitch بصوت عالٍ مع صوت قابل للتكوين وسرعة وطبقة صوت.
  • يدعم Subscriber-only TTS وعمليات استرجاع نقاط القنوات كمشغلات TTS وتصفية الرسائل.
  • أمر شرطة وتكوين لوحة تحكم.

الإعداد:

  1. انتقل إلى streamcord.io وانقر على أضف إلى Discord.
  2. فرّح على الخادم الخاص بك بالأذونات المطلوبة.
  3. استخدم /tts setup واتبع المطالبات لربط قناة Twitch الخاصة بك واختيار قناة صوت Discord الهدف.
  4. قم بتكوين إعدادات الصوت في streamcord.io/dashboard.

توجيه قناة الصوت: ينضم Streamcord إلى قناة الصوت التي تحددها أثناء الإعداد. يمكنك تغيير القناة الهدف عبر لوحة التحكم بدون إعادة دعوة البوت. لجعله يتابعك بين القنوات، استخدم أمر /tts move.

إعداد الاختصار لـ Streamcord: لا يحتوي Streamcord نفسه على نظام اختصار سطح مكتب مخصص. عادة ما يربط البثاثون مفتاح Push-to-Talk في Discord لميكروفونهم الخاص، ثم يستخدمون اتصالاً منفصلاً في OBS أو StreamDeck لتشغيل أوامر الدردشة. للحصول على تحكم أكثر دقة، يمكن لأنماط AutoHotkey إرسال أوامر /tts عبر اختصارات لوحة المفاتيح بمحاكاة إدخال Discord.


الخيار 4: بوت مخصص مع Discord.js و API ElevenLabs

للحصول على أعلى جودة صوت والتحكم الكامل في السلوك، قم ببناء بوت تحويل النص إلى كلام على Discord الخاص بك باستخدام Discord.js v14 و API ElevenLabs. هذا يعطيك الوصول إلى أصوات استوديو عالية الجودة من ElevenLabs واستنساخ الأصوات والتخليق المتعدد اللغات وتعديل المعاملات لكل طلب.

المتطلبات المسبقة

  • Node.js 18+
  • تطبيق Discord وتوكن البوت (discord.com/developers)
  • مفتاح API ElevenLabs (elevenlabs.io)
  • FFmpeg مثبت وعلى PATH الخاص بك (مطلوب من قبل @discordjs/voice لترميز الصوت)

الخطوة 1: تهيئة المشروع

mkdir discord-tts-bot && cd discord-tts-bot
npm init -y
npm install discord.js @discordjs/voice @discordjs/opus elevenlabs libsodium-wrappers ffmpeg-static

الخطوة 2: تسجيل أمر الشرطة

أنشئ deploy-commands.js:

const { REST, Routes, SlashCommandBuilder } = require('discord.js');

const commands = [
  new SlashCommandBuilder()
    .setName('tts')
    .setDescription('Speak text in your voice channel')
    .addStringOption(opt =>
      opt.setName('text').setDescription('Text to speak').setRequired(true)
    )
].map(cmd => cmd.toJSON());

const rest = new REST({ version: '10' }).setToken(process.env.DISCORD_TOKEN);

(async () => {
  await rest.put(
    Routes.applicationGuildCommands(process.env.CLIENT_ID, process.env.GUILD_ID),
    { body: commands }
  );
  console.log('Commands registered');
})();

شغّل node deploy-commands.js مرة واحدة لتسجيل أمر الشرطة /tts على الخادم الخاص بك.

الخطوة 3: بناء البوت

أنشئ index.js:

const { Client, GatewayIntentBits } = require('discord.js');
const { joinVoiceChannel, createAudioPlayer, createAudioResource, AudioPlayerStatus } = require('@discordjs/voice');
const { ElevenLabsClient } = require('elevenlabs');
const { Readable } = require('stream');

const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates] });
const eleven = new ElevenLabsClient({ apiKey: process.env.ELEVENLABS_API_KEY });

const VOICE_ID = 'your-elevenlabs-voice-id'; // e.g. 'EXAVITQu4vr4xnSDxMaL' for Rachel

client.on('interactionCreate', async interaction => {
  if (!interaction.isChatInputCommand() || interaction.commandName !== 'tts') return;

  const text = interaction.options.getString('text');
  const voiceChannel = interaction.member?.voice?.channel;

  if (!voiceChannel) {
    return interaction.reply({ content: 'Join a voice channel first.', ephemeral: true });
  }

  await interaction.deferReply({ ephemeral: true });

  const audioStream = await eleven.textToSpeech.convertAsStream(VOICE_ID, {
    text,
    model_id: 'eleven_multilingual_v2',
    voice_settings: { stability: 0.5, similarity_boost: 0.75 }
  });

  const connection = joinVoiceChannel({
    channelId: voiceChannel.id,
    guildId: interaction.guildId,
    adapterCreator: interaction.guild.voiceAdapterCreator,
  });

  const player = createAudioPlayer();
  const resource = createAudioResource(Readable.from(audioStream));

  player.play(resource);
  connection.subscribe(player);

  player.on(AudioPlayerStatus.Idle, () => connection.destroy());

  await interaction.editReply({ content: 'Speaking.' });
});

client.login(process.env.DISCORD_TOKEN);

الخطوة 4: تكوين متغيرات البيئة

أنشئ .env:

DISCORD_TOKEN=your_bot_token
CLIENT_ID=your_app_client_id
GUILD_ID=your_server_id
ELEVENLABS_API_KEY=your_elevenlabs_key

شغّل node index.js، انضم إلى قناة صوتية في الخادم الخاص بك، واكتب /tts Hello, this is my custom TTS bot.

اختيار نموذج الصوت

يوفر ElevenLabs عدة نماذج في عام 2026:

ModelLatencyQualityLanguages
eleven_turbo_v2_5~250msGood32
eleven_multilingual_v2~400msExcellent29
eleven_flash_v2_5~75msGood32

لاستخدام Discord في الوقت الفعلي، يقلل eleven_flash_v2_5 التأخير بين الأمر والكلام. لنسخ الأولوية على الجودة، eleven_multilingual_v2 هو الخيار الأفضل.


توجيه قناة الصوت: أنماط عملية

بغض النظر عن البوت الذي تستخدمه، يتبع توجيه قناة الصوت نفس الأنماط الأساسية.

نمط متابعة المستخدم: ينضم البوت إلى أي قناة صوتية يكون المستخدم الذي استدعاه فيها وقت استخدام الأمر. هذا هو الافتراضي لمعظم البوتات والتنفيذ في مثال Discord.js أعلاه. لا يلزم أي ضبط مسبق.

نمط القناة الثابتة: تعيّن معرّف قناة محدد في تكوين البوت. يتحدث البوت دائماً في تلك القناة بغض النظر عن مكان وجود المستخدم المستدعي. الأفضل لبوتات الإعلانات أو غرف TTS المخصصة.

نمط متعدد القنوات: إعداد أكثر تعقيداً حيث تعيّن قنوات نصية مختلفة على قنوات صوتية مختلفة. في Discord.js، تنفذه مع كائن خريطة القناة وتحل قناة صوت الهدف من قناة النص المصدر.

نمط متابعة ديناميكي: يراقب البوت أحداث voiceStateUpdate وينتقل لمتابعة مستخدم محدد بين قنوات الصوت. مفيد للبثاثين الذين يتحولون بين الغرف بشكل متكرر أثناء الجلسة.


إعداد الاختصار لأوامر TTS

تُشغّل معظم بوتات TTS بأوامر شرطة، وليس بالاختصارات. لكن يمكنك إنشاء سير عمل الاختصار الفعالة مع عدة نهج.

الاتصالات المدمجة في Discord: انتقل إلى إعدادات Discord → الاتصالات. لا يمكنك ربط أوامر نصية عشوائية هنا - فقط Push-to-Talk و Deafen و Mute والإجراءات المشابهة في Discord. بالنسبة لـ TTS، لا تنطبق الاتصالات بشكل مباشر.

AutoHotkey (Windows): يمكنك تعيين اختصار لكتابة أمر /tts [preset message] والضغط على Enter في نافذة Discord:

^F1:: ; Ctrl+F1
  WinActivate, Discord
  Send, /tts Your preset message here{Enter}
return

StreamDeck: إذا كنت تستخدم Elgato StreamDeck، يمكن لإجراء “النص” إرسال ضربات المفاتيح إلى أي نافذة نشطة. قم بتكوين زر StreamDeck للتركيز على إدخال نص Discord واكتب أمر /tts. هذا أسرع وأكثر موثوقية من AutoHotkey لسيناريوهات البث المباشر.

كلمات رئيسية من جانب البوت: بالنسبة للبوتات المخصصة، يمكنك تنفيذ مشغل بادئة في قناة نصية بدلاً من أمر شرطة - أي رسالة في قناة محددة تبدأ ببادئة مكوّنة يتم إرسالها تلقائياً إلى TTS. هذا يحول أي رسالة إلى مشغل TTS خالي من الاختصار.


سير العمل الهجين: بوتات TTS + معدّل الصوت المباشر

يتعامل بوت TTS مع الكلام المُخلّق من النص. لا يلمس ميكروفونك. هذا يعني أن بوتات TTS ومعدّلات الأصوات المباشرة مثل VoxBooster توجد بدون صراع في قناة الصوت نفسها.

إعداد هجين عملي للبثاثين:

  1. يقرأ Streamcord TTS رسائل دردشة Twitch الخاصة بك بصوت عالٍ في قناة صوت Discord التي يكون فيها البثاثون المتعاونون.
  2. VoxBooster يعدّل صوت ميكروفونك المباشر في الوقت الفعلي - سواء كان قمع الضوضاء أو تأثير طبقة صوت أو شخصية صوت مستنسخة.
  3. يسمع البثاثون المتعاونون كلاهما: بوت TTS ينطق رسائل المشاهدين، وصوتك المعدّل المباشر.

تدفقات الصوت هي مستقلة. يولد بوت TTS صوتاً من اتصاله الخاص. يمر صوت الميكروفون عبر جهاز VoxBooster الافتراضي قبل الوصول إلى Discord. يمزج Discord بينهما بنفس الطريقة التي يمزج بها أي مشاركين في قناة.

هذا النهج الهجين فعال بشكل خاص لمنشئي المحتوى الذين يريدون بيئة صوتية أكثر غنى بدون مطالبة المشاهدين أو البثاثين المتعاونين بتثبيت أي شيء يتجاوز Discord.


استكشاف الأخطاء الشائعة

ينضم البوت لكن لا ينتج صوتاً: تحقق من أن FFmpeg على PATH الخاص بك وأن @discordjs/opus تثبيت بنجاح. شغّل ffmpeg -version في الطرفية للتحقق. إذا كان opus مفقوداً، حاول npm rebuild @discordjs/opus.

أمر TTS له كمون طويل: يعتمد كمون API ElevenLabs على النموذج الذي اخترته وطول نص الإدخال. التبديل إلى eleven_flash_v2_5 لكمون أقل. بالنسبة للرسائل الأطول من ~200 حرف، فكر في تقسيم النص قبل الإرسال.

ينقطع البوت عن التشغيل أثناء التشغيل: هذا عادة ما يكون انقطاع اتصال صوت. أضف معالج connection.on('error') وأعد الاتصال عند الفشل. تأكد من أن الخادم الخاص بك لديه اتصال UDP خارج مستقر على المنفذ 443 (بروتوكول صوت Discord).

بوت Streamcord TTS لا يقرأ جميع الرسائل: يصفي Streamcord أنواع رسائل معينة افتراضياً. تحقق من لوحة تحكم Streamcord ضمن عوامل التصفية للسماح برسائل غير المشترك وتعطيل تصفية المحتوى إذا كان ذلك مرغوباً فيه.

أمر Discord /tts لا يعمل: أكد أن TTS مفعّل في إعدادات الخادم الخاص بك وأن القناة المحددة تسمح بـ TTS. يجب أيضاً على المستخدمين الفرديين تفعيل تشغيل TTS في إعدادات إمكانية الوصول الخاصة بهم في Discord.


الملخص

في عام 2026، يستغرق إعداد بوت تحويل النص إلى كلام على Discord من دقيقتين (Streamcord أو Voicemod) إلى أقل من ساعة (Discord.js مخصص + ElevenLabs). يعتمد الخيار الصحيح على متطلبات جودة الصوت لديك، وقدر التخصيص الذي تحتاجه، وما إذا كنت تبني لخادمك الخاص أو لإعداد بث إنتاجي. يغطي Discord /tts الأصلي التشغيل الأساسي من جانب العميل بدون أي بوت. تغطي البوتات المستضافة مثل Streamcord حالة استخدام البثاث بإعداد بسيط. بوت Discord.js مخصص مع ElevenLabs يعطيك أصوات AI عالية الجودة من استوديو مع التحكم البرمجي الكامل على كل جانب من جوانب الكلام.

للحصول على أكثر إعداد بث صوتي متعدد الاستخدامات، ادمج بوت TTS لسرد الدردشة مع VoxBooster لتعديل الصوت المباشر - أداتان، قناة صوتية واحدة، بدون صراع.

جرّب VoxBooster — 3 أيام مجاناً.

استنساخ الصوت الفوري، لوحة الأصوات والمؤثرات — أينما تتحدث.

  • بدون بطاقة
  • ~30ms تأخير
  • Discord · Teams · OBS
جرّب 3 أيام مجاناً