This transcriber was made for speech to text in discord voice calls. It uses wit.ai.
To use the tool you need
- to know how to set up a Discord bot using Node.JS that can interact with voice channels
- a free API key for wit.ai (found in the settings section after you created an app)
Simply run
npm install discord-text-to-speech
Happy coding!
First, you need to import the module and create a Transcriber instance with your API key as shown here:
const Transcriber = require("discord-speech-to-text");
const transcriber = new Transcriber(WITAIKEY);
Next you have to join the voice channel with you Discord bot and apply the transcriber when someone says something.
Important: When you create your client object, you have to give it the GUILD_VOICE_STATES
intent! Like this: const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_VOICE_STATES] });
let channel = interaction.member.guild.channels.cache.get(interaction.member.voice.channel.id);
const connection = joinVoiceChannel({
channelId: channel.id,
guildId: channel.guild.id,
adapterCreator: channel.guild.voiceAdapterCreator,
selfDeaf: false,
selfMute: false
});
connection.receiver.speaking.on("start", (userId) => {
transcriber.listen(connection.receiver, userId, client.users.cache.get(userId)).then((data) => {
if (!data.transcript.text) return;
let text = data.transcript.text;
let user = data.user;
});
});
Have Fun!
An example is available as a basic Discord music bot with voice commands. GitHub
- AudioReceiver type
VoiceReceiver
- userId type
String
; Id of the user who has to be listened to - user type
User
; Userobject of the user
- Promise resolving into Object:
{
transcript: {
text: "text" // other values by wit.ai like natural language-processing values are stored here too
},
user: <User>
}