Guest User

Untitled

a guest
Jul 10th, 2023
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. const Discord = require('discord.js');
  2. const { Player, Queue } = require('discord-player');
  3. const fs = require('fs');
  4. const voice = require('elevenlabs-node');
  5. const Readable = require('stream').Readable;
  6. const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_VOICE_STATES"] });
  7. const player = new Player(client);
  8. const { createAudioPlayer, createAudioResource, joinVoiceChannel } = require('@discordjs/voice');
  9.  
  10. let selectedVoice = 'Biden';
  11.  
  12. const apiKey = '';
  13.  
  14. client.once('ready', () => {
  15. console.log('bot is rdy')
  16.  
  17. client.user.setActivity('use !voice to select a voice')
  18. })
  19.  
  20. client.on('messageCreate', async message => {
  21. if (!message.guild) return;
  22.  
  23. const availableVoices = ['Elon', 'Obama', 'Biden', 'Trump', 'JoeRogan', 'Drake']
  24.  
  25. // Voice selection command
  26. if (message.content.startsWith('!voice')) {
  27. const voice = message.content.split(' ')[1];
  28.  
  29. if (!voice || !availableVoices.includes(voice)) {
  30. message.channel.send(`Please provide a voice. Available voices: ${availableVoices.join(', ')}`);
  31. return;
  32. }
  33.  
  34. selectedVoice = voice;
  35. message.channel.send(`Voice has been set to ${voice}`);
  36. }
  37.  
  38. // Text-to-speech command
  39. if (message.content.startsWith('!say')) {
  40. if (message.member.voice.channel) {
  41. if (selectedVoice === 'Elon') {
  42. selectedVoice = 'i99wWXLyaALXuxVzliDw'
  43. } else if (selectedVoice === 'Biden') {
  44. selectedVoice = 'lbBNCWP1CKEAn5fM0KkU'
  45. } else if (selectedVoice === 'Trump') {
  46. selectedVoice = 'xJ0M9yCnZyvecQuvadOy'
  47. } else if (selectedVoice === 'Obama') {
  48. selectedVoice = '4E920yKtoWGA0re2UZ0i'
  49. } else if (selectedVoice === 'JoeRogan') {
  50. selectedVoice = 'dv0ogR0UV2wGPmuYeWRQ'
  51. } else if (selectedVoice === 'Drake') {
  52. selectedVoice = '17QH5eDZONYqk8DbTRb9'
  53. }
  54.  
  55. const text = message.content.slice(4);
  56. const fileName = `audio-${Date.now()}.mp3`;
  57.  
  58. await voice.textToSpeech(apiKey, selectedVoice, fileName, text);
  59.  
  60. const connection = joinVoiceChannel({
  61. channelId: message.member.voice.channel.id,
  62. guildId: message.guild.id,
  63. adapterCreator: message.guild.voiceAdapterCreator,
  64. });
  65.  
  66. const player = createAudioPlayer();
  67. const resource = createAudioResource(fileName);
  68. player.play(resource);
  69. connection.subscribe(player);
  70. } else {
  71. message.reply('You need to join a voice channel first!');
  72. }
  73. }
  74. });
  75.  
  76. client.login('');
  77.  
Advertisement
Add Comment
Please, Sign In to add comment