หากคุณต้องการให้ Discord พูดข้อความออกมาเสียงดัง - ไม่ว่าจะเป็นผู้ถ่ายทำที่กำหนดเส้นทาง Twitch chat ไปยัง voice channel ผู้ใช้ที่ชื่อพิมพ์หรือนักพัฒนาที่สร้างเครื่องมือบรรยายที่กำหนดเอง - bot text to speech Discord เป็นวิธีแก้ปัญหาที่ถูกต้อง คู่มือนี้ครอบคลุมตัวเลือกการปฏิบัติทั้งหมดที่มีอยู่ในปี 2026: bot ที่โฮสต์ซึ่งคุณสามารถเพิ่มได้ด้วยคลิกเดียว คำสั่ง TTS Discord ดั้งเดิม และการอธิบายแบบทีละขั้นตอนเพื่อสร้าง bot ที่กำหนดเองด้วย Discord.js และ API ElevenLabs
TL;DR
- คำสั่ง /tts ดั้งเดิมของ Discord เป็นฝั่งไคลเอ็นต์ - เล่นเสียงผ่านลำโพงผู้ฟัง ไม่ใช่ผ่าน voice channel
- Streamcord TTS เป็นตัวเลือกที่โฮสต์ได้รับความนิยมมากที่สุดสำหรับผู้ถ่ายทำที่ต้องการให้แชท Twitch อ่านใน Discord voice channel
- Voicemod TTS มีเสียงใหม่และตัวละครผ่าน bot ที่มีการจัดการ
- Bot Discord.js + ElevenLabs ที่กำหนดเองมี chất lượng giọng nói tốt nhất và การควบคุมเต็มที่ด้วยเวลาสร้าง dưới một giờ
- Hotkey เพื่อเรียกใช้คำสั่ง TTS สามารถแมปผ่านการตั้งค่า keybind ของ Discord หรือผ่านเครื่องมือภายนอก เช่น AutoHotkey
- VoxBooster จับคู่กับ bot TTS สำหรับขั้นตอนการทำงานแบบไฮบริดที่คุณต้องการบรรยายแชทแบบสังเคราะห์และเสียงที่แก้ไขแบบสด
ทำไม TTS Bot มีอยู่และสิ่งที่พวกเขาจริง ๆ ทำ
คำสั่ง /tts ในตัวของ Discord มักเข้าใจผิด เมื่อคุณพิมพ์ /tts hello ไคลเอ็นต์ desktop Discord จะอ่านข้อความนั้นเสียงดังผ่านลำโพง ของคุณ โดยใช้เครื่องมือ TTS ระบบปฏิบัติการในพื้นที่ ผู้ใช้อื่น ๆ ในช่องไม่ได้ยินผ่าน voice channel - พวกเขาจะได้ยินก็ต่อเมื่อพวกเขาเปิดใช้ TTS Discord ของตัวเองและไคลเอ็นต์ของพวกเขาอ่านข้อความในพื้นที่
bot text to speech Discord ทำงานแตกต่างกัน Bot เป็นกระบวนการฝั่งเซิร์ฟเวอร์ที่มีการเชื่อมต่อ voice channel ของตัวเอง เมื่อเรียกใช้ มันจะสังเคราะห์เสียงพูดจากข้อความและสตรีม audio ที่ได้ผล เข้าไป ลงใน voice channel นั้นเอง ทุกคนใน voice channel นั้นได้ยินมันในลักษณะเดียวกับที่พวกเขาได้ยินผู้เข้าร่วมอื่น ๆ พูด ความแตกต่างนั้น - client-local กับ channel-broadcast - เป็นเหตุผลทั้งหมดที่ bot มีอยู่สำหรับกรณีการใช้งานนี้
สถานการณ์ทั่วไปที่สิ่งนี้สำคัญ:
- Setup การสตรีมมิง: คุณกำลังสดอยู่ใน Twitch และต้องการให้ข้อความแชทผู้ชม อ่านเสียงดังใน Discord voice call ที่คุณแบ่งปันกับ co-streamer
- การเข้าถึง: สมาชิกเซิร์ฟเวอร์ไม่สามารถหรือต้องการไม่ใช้ไมโครโฟน bot TTS ให้พวกเขาเข้าร่วมการสนทนาเสียงได้โดยการพิมพ์
- ประกาศ: Bot อ่านเตือน moderation การมอบหมายบทบาท หรือข้อความที่กำหนดเวลาลงในช่องโดยไม่มีผู้ดำเนิน
- การบรรยายแบบกำหนดเอง: นักพัฒนาสร้าง bot ที่บรรยายเหตุการณ์เกม คะแนน หรือการแจ้งเตือนแบบเรียลไทม์โดยใช้เสียง AI คุณภาพสูง
ตัวเลือก 1: คำสั่ง /tts ดั้งเดิมของ Discord
ก่อนจะใช้ bot ให้ตรวจสอบว่าคำสั่งในตัวของ Discord ตรงกับความต้องการของคุณ
วิธีเปิดใช้: บนเซิร์ฟเวอร์ของคุณ ไปที่ Server Settings → Overview → Enable Text-To-Speech ภายใต้การตั้งค่า Advanced ของช่องให้ตั้งค่า Allow anyone to post TTS messages (หรือจำกัดไว้ที่บทบาทเฉพาะ)
วิธีใช้: ในช่อง text ใด ๆ ที่เปิดใช้ TTS พิมพ์ /tts [your message] Discord อ่านข้อความเสียงดังผ่านลำโพงผู้รับโดยใช้เครื่องมือ TTS OS ของพวกเขา
ข้อ จำกัด:
- เสียงไปเพื่อเล่นเสียงในพื้นที่ ไม่ใช่การออกอากาศ voice channel
- คุณภาพเสียงขึ้นอยู่กับเครื่องมือ TTS OS ของผู้รับ (Microsoft David, Zira ฯลฯ บน Windows)
- ผู้ฟังแต่ละคนต้องเปิดใช้ TTS เป็นรายบุคคลใน Settings → Accessibility → Allow playback and usage of /tts command
ดีที่สุดสำหรับ: การใช้งานการเข้าถึงด่วน หรือสถานการณ์ที่ผู้ใช้แต่ละคนเพียงต้องฟังข้อความที่อ่านในพื้นที่ - ไม่สำหรับการสตรีมมิงหรือประกาศกลุ่ม
ตัวเลือก 2: Voicemod TTS Bot
Voicemod ซึ่งเป็นที่รู้จักจากตัวแก้ไขเสียงของเดสก์ท็อป ดำเนินการ Discord bot ที่นำเสียงของห้องสมุดไปยังฟังก์ชันการแปลงข้อความเป็นเสียงพูด
มันเสนออะไร:
- ไลบรารีเสียงตัวละครและมันใหม่ (หุ่นยนต์ การ์ตูน ลึก และอื่น ๆ)
- อินเทอร์เฟส slash command อย่างง่าย:
/tts [voice] [message] - ไม่มีการอัปโหลดแบบจำลองเสียงที่กำหนดเอง - คุณถูก จำกัด ไว้ที่ไลบรารี preset ของ Voicemod
- ชั้นฟรีพร้อมใช้งาน เสียงพรีเมียมต้องการการสมัครสมาชิก Voicemod
การตั้งค่า:
- ไปที่หน้า Voicemod Discord bot และคลิก Add to Server
- ให้สิทธิ์ bot ด้วยสิทธิ์ Connect, Speak และ Read Messages
- เข้าร่วม voice channel ของเซิร์ฟเวอร์ของคุณ
- ใช้
/ttsตามด้วยชื่อเสียงที่เลือกและข้อความ
ข้อ จำกัด: ตัวเลือกเสียงจำกัดอยู่ที่ไลบรารี Voicemod หากคุณต้องการเสียงที่เป็นธรรมชาติหรือบุคลิกภาพที่กำหนดเอง นี่จะไม่ครอบคลุม
ตัวเลือก 3: Streamcord TTS สำหรับผู้ถ่ายทำ
Streamcord เป็นตัวเลือก bot text to speech Discord สำหรับผู้ถ่ายทำที่ต้องการให้ข้อความแชท Twitch อ่านเสียงดังใน Discord voice channel มันเชื่อมต่อ Twitch และ Discord ในลักษณะดั้งเดิม
มันเสนออะไร:
- เชื่อมต่อช่อง Twitch ของคุณกับ Discord voice channel
- อ่านข้อความแชท Twitch เสียงดังโดยใช้เสียง ความเร็ว และระดับเสียงที่สามารถกำหนดค่าได้
- รองรับ TTS เฉพาะของผู้สมัครสมาชิก การแลกคะแนนช่องเป็นทริกเกอร์ TTS และการกรองข้อความ
- Slash command และการกำหนดค่า dashboard
การตั้งค่า:
- เปิด streamcord.io และคลิก Add to Discord
- ให้สิทธิ์บนเซิร์ฟเวอร์ของคุณด้วยสิทธิ์ที่จำเป็น
- ใช้
/tts setupและทำตามพรอมต์เพื่อเชื่อมโยงช่อง Twitch ของคุณและเลือก Discord voice channel เป้าหมาย - กำหนดค่าการตั้งค่าเสียงที่ streamcord.io/dashboard
การกำหนดเส้นทาง voice channel: Streamcord เข้าร่วม voice channel ที่คุณระบุในการตั้งค่า คุณสามารถเปลี่ยน channel เป้าหมายผ่าน dashboard โดยไม่ต้องเชิญ bot ใหม่ เพื่อให้มันตามคุณระหว่าง channel ให้ใช้คำสั่ง /tts move
การตั้งค่า hotkey สำหรับ Streamcord: Streamcord เองไม่มีระบบ hotkey desktop เฉพาะ ผู้ถ่ายทำมักจะผูก Push-to-Talk key ใน Discord สำหรับไมโครโฟนของพวกเขา จากนั้นใช้ keybind แยกต่างหาก ใน OBS หรือ StreamDeck เพื่อเรียกใช้คำสั่งแชท สำหรับการควบคุมที่ละเอียดยิ่งขึ้น สคริปต์ AutoHotkey สามารถส่งคำสั่ง /tts ผ่านการกดคีย์โดยการจำลองอินพุต Discord
ตัวเลือก 4: Bot ที่กำหนดเองด้วย Discord.js + API ElevenLabs
เพื่อให้ได้คุณภาพเสียงสูงสุดและการควบคุมทั้งหมดเหนือพฤติกรรม ให้สร้าง bot text to speech Discord ของคุณเองโดยใช้ Discord.js v14 และ API ElevenLabs นี่ให้คุณเข้าถึงเสียง ElevenLabs คุณภาพสตูดิโอ voice cloning การสังเคราะห์ภาษาหลายภาษา และการปรับแต่งพารามิเตอร์ต่อการร้องขอ
ข้อ กำหนดเบื้องต้น
- Node.js 18+
- ขอแอปพลิเคชัน Discord และโทเค็น bot (discord.com/developers)
- ElevenLabs API key (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: ลงทะเบียนคำสั่ง Slash
สร้าง 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 เพียงครั้งเดียวเพื่อลงทะเบียนคำสั่ง slash /tts บนเซิร์ฟเวอร์ของคุณ
ขั้นตอน 3: สร้าง Bot
สร้าง 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 เข้าร่วม voice channel บนเซิร์ฟเวอร์ของคุณ และพิมพ์ /tts Hello, this is my custom TTS bot
เลือกแบบจำลองเสียง
ElevenLabs มีแบบจำลองหลายตัวในปี 2026:
| แบบจำลอง | Latency | คุณภาพ | ภาษา |
|---|---|---|---|
| eleven_turbo_v2_5 | ~250ms | ดี | 32 |
| eleven_multilingual_v2 | ~400ms | ยอดเยี่ยม | 29 |
| eleven_flash_v2_5 | ~75ms | ดี | 32 |
สำหรับการใช้งาน Discord แบบเรียลไทม์ eleven_flash_v2_5 ลดความหน่วงระหว่างคำสั่งและการพูด สำหรับการบรรยายเน้นคุณภาพ eleven_multilingual_v2 เป็นตัวเลือกที่ดีขึ้น
การกำหนดเส้นทาง Voice Channel: รูปแบบการปฏิบัติ
ไม่ว่าคุณจะใช้ bot ใด การกำหนดเส้นทาง voice channel จะตามรูปแบบพื้นฐานที่เหมือนกัน
รูปแบบ follow-the-user: Bot เข้าร่วม voice channel ใด ๆ ที่ผู้เรียกใช้กำลังใช้เมื่อเรียกใช้คำสั่ง นี่คือค่าเริ่มต้นสำหรับ bot ส่วนใหญ่และการใช้งานในตัวอย่าง Discord.js ข้างต้น ไม่จำเป็นต้องกำหนดค่าล่วงหน้า
รูปแบบช่องคงที่: คุณกำหนด ID ช่องเฉพาะในการกำหนดค่า bot Bot พูดในช่องนั้นเสมอไม่ว่าผู้เรียกใช้อยู่ที่ไหน ดีที่สุดสำหรับ bot ประกาศหรือห้องที่อุทิศให้กับ TTS
รูปแบบหลายช่อง: การตั้งค่าที่ซับซ้อนมากขึ้นซึ่งช่อง text ที่แตกต่างกันแมปไปยังช่อง voice ที่แตกต่างกัน ใน Discord.js คุณใช้งานสิ่งนี้ด้วยออบเจ็กต์การแมปช่องและแก้ไข target voice channel จากช่อง text ต้นทาง
รูปแบบ follow แบบไดนามิก: Bot ตรวจสอบ voiceStateUpdate events และย้ายไปตามผู้ใช้ที่ระบุระหว่างช่อง voice มีประโยชน์สำหรับผู้ถ่ายทำที่มักเปลี่ยนห้องในระหว่างเซสชัน
การตั้งค่า Hotkey สำหรับคำสั่ง TTS
Bot TTS ส่วนใหญ่เรียกใช้โดยคำสั่ง slash ไม่ใช่ hotkey แต่คุณสามารถสร้างขั้นตอนการทำงาน hotkey ที่มีประสิทธิภาพด้วยวิธีที่แตกต่างกันสองสามวิธี
Keybind ที่สร้างมาใน Discord: เปิด Discord Settings → Keybinds คุณไม่สามารถผูกคำสั่งข้อความตามอำเภอใจที่นี่ได้ - เพียง push-to-talk mute deafen และการกระทำ Discord ที่คล้ายกัน สำหรับ TTS keybind ไม่สามารถใช้ได้โดยตรง
AutoHotkey (Windows): คุณสามารถแมป hotkey เพื่อพิมพ์คำสั่ง /tts [preset message] และกด Enter ในหน้าต่าง Discord:
^F1:: ; Ctrl+F1
WinActivate, Discord
Send, /tts Your preset message here{Enter}
return
StreamDeck: หากคุณใช้ Elgato StreamDeck การกระทำ “Text” สามารถส่งการกดคีย์ไปยังหน้าต่างที่ใช้งาน กำหนดค่าปุ่ม StreamDeck เพื่อเน้นอินพุตข้อความ Discord และพิมพ์คำสั่ง /tts ของคุณ นี่เร็วกว่าและเชื่อถือได้มากกว่า AutoHotkey สำหรับสถานการณ์ live streaming
Bot-side hotwords: สำหรับ bot ที่กำหนดเอง คุณสามารถใช้งานทริกเกอร์นำหน้าในช่อง text แทนคำสั่ง slash - ข้อความใด ๆ ในช่องที่ระบุซึ่งเริ่มต้นด้วยนำหน้าที่กำหนดค่า จะถูกส่งไปยัง TTS โดยอัตโนมัติ นี่จึงเปลี่ยนข้อความใด ๆ ให้เป็นทริกเกอร์ TTS ปลอดจากคำหลัก
ขั้นตอนการทำงานแบบไฮบริด: Bot TTS + ตัวแก้ไขเสียงแบบสด
Bot TTS จัดการการพูดแบบสังเคราะห์จากข้อความ มันไม่สัมผัสไมโครโฟนของคุณ ซึ่งหมายความว่า bot TTS และตัวแก้ไขเสียงแบบสด เช่น VoxBooster อยู่ร่วมกันในช่อง voice เดียวกันโดยไม่มีความขัดแย้ง
การตั้งค่าไฮบริดการปฏิบัติสำหรับผู้ถ่ายทำ:
- Streamcord TTS อ่านข้อความแชท Twitch ของคุณเสียงดังใน Discord voice channel ที่ co-streamer ของคุณอยู่
- VoxBooster แก้ไขเสียงไมโครโฟนแบบสดของคุณ - ไม่ว่าจะเป็นการลดเสียง เอฟเฟกต์ pitch หรือบุคลิกภาพเสียงที่โคลน
- Co-streamer ของคุณได้ยินทั้งสอง: bot TTS พูดข้อความผู้ชม และเสียงสดของคุณที่ได้รับการแก้ไข
สองสตรีมเสียงอิสระ Bot TTS สร้างเสียงจากการเชื่อมต่อของตัวเอง เสียงไมโครโฟนของคุณผ่านอุปกรณ์เสมือน VoxBooster ก่อนไปถึง Discord Discord ผสมมันในลักษณะเดียวกับการผสมคนเข้าร่วมสองคนใด ๆ ในช่อง
วิธีการแบบไฮบริดนี้มีประสิทธิภาพเป็นพิเศษสำหรับผู้สร้างเนื้อหาที่ต้องการสภาพแวดล้อมเสียงที่หลากหลายมากขึ้นโดยไม่ต้องให้ผู้ชมหรือ co-streamer ติดตั้งสิ่งใด ๆ นอกเหนือจาก Discord
การแก้ไขปัญหาทั่วไป
Bot เข้าร่วมแต่ไม่สร้างเสียง: ตรวจสอบว่า FFmpeg อยู่ใน PATH ของคุณและ @discordjs/opus ติดตั้งสำเร็จ เรียกใช้ ffmpeg -version ในเทอร์มินัลเพื่อตรวจสอบ หากขาด opus ให้ลอง npm rebuild @discordjs/opus
คำสั่ง TTS มีการหน่วงเวลานาน: ความหน่วง API ElevenLabs ขึ้นอยู่กับแบบจำลองที่คุณเลือกและความยาวของข้อความอินพุต สลับไป eleven_flash_v2_5 เพื่อลดความหน่วง สำหรับข้อความที่ยาวกว่า ~200 อักขระ ลองแบ่งข้อความก่อนส่ง
Bot ตัดการเชื่อมต่อในขณะเล่น: โดยปกติแล้ว นี่คือ timeout การเชื่อมต่อเสียง เพิ่ม connection.on('error') handler และเชื่อมต่อใหม่เมื่อล้มเหลว ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ของคุณมีการเชื่อมต่อ UDP outbound ที่เสถียรบนพอร์ต 443 (โปรโตคลเสียง Discord)
Streamcord TTS ไม่อ่านข้อความทั้งหมด: Streamcord กรองประเภทข้อความบางประเภทตามค่าเริ่มต้น ตรวจสอบ dashboard Streamcord ของคุณภายใต้ Filters เพื่อให้ข้อความที่ไม่ใช่ผู้สมัครสมาชิก และปิดใช้งานการกรองเนื้อหาหากต้องการ
คำสั่ง Discord /tts ไม่ทำงาน: ยืนยันว่า TTS เปิดใช้ในการตั้งค่าเซิร์ฟเวอร์ของคุณและช่องที่เฉพาะเจาะจงอนุญาต TTS ผู้ใช้แต่ละคนต้องเปิดใช้ TTS playback ในการตั้งค่า Accessibility ของตัวเอง
สรุป
ในปี 2026 การตั้งค่า bot text to speech Discord ใช้เวลาตั้งแต่สองนาที (Streamcord หรือ Voicemod) ถึงน้อยกว่าหนึ่งชั่วโมง (Discord.js + ElevenLabs ที่กำหนดเอง) ตัวเลือกที่ถูกต้องขึ้นอยู่กับข้อกำหนดคุณภาพเสียงของคุณ ว่าคุณต้องการปรับแต่งมากเพียงใด และว่าคุณกำลังสร้างสำหรับเซิร์ฟเวอร์ของคุณเองหรือสำหรับการตั้งค่าการสตรีมมิงการผลิต TTS /tts ดั้งเดิม Discord ครอบคลุมการเล่นแบบฝั่งไคลเอ็นต์พื้นฐานไม่มี bot Bot ที่โฮสต์เช่น Streamcord ครอบคลุมกรณีการใช้งาน streamer ด้วยการตั้งค่าขั้นต่ำ Bot Discord.js ที่กำหนดเอง พร้อม ElevenLabs ให้เสียง AI คุณภาพสตูดิโอพร้อมการควบคุมโปรแกรมเต็มรูปแบบเหนือการพูดทุกด้าน
สำหรับการตั้งค่าการสตรีมมิงเสียงอเนกประสงค์ที่สุด รวมตัวแก้ไข TTS สำหรับการบรรยายแชทกับ VoxBooster สำหรับการแก้ไขเสียงแบบสด - เครื่องมือสองตัว voice channel เดียว ไม่มีความขัดแย้ง