Skip to content

A Node.JS module for speech to text transcription in Discord voice channels using wit.ai.

Notifications You must be signed in to change notification settings

ShadowLp174/discord-stt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Discord.js Speech Transcriber

This transcriber was made for speech to text in discord voice calls. It uses wit.ai.

Preparation

To use the tool you need

Installation

Simply run

npm install discord-text-to-speech

Happy coding!

Usage

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!

Example

An example is available as a basic Discord music bot with voice commands. GitHub

API

.listen(AudioReceiver, userId, user)

Parameter:

  • AudioReceiver type VoiceReceiver
  • userId type String; Id of the user who has to be listened to
  • user type User; Userobject of the user

Returns:

  • Promise resolving into Object:
{
  transcript: {
    text: "text" // other values by wit.ai like natural language-processing values are stored here too
  },
  user: <User>
}

Releases

No releases published

Packages

No packages published