:speech_balloon: Speech recognition for your site

Overview

annyang!

A tiny JavaScript Speech Recognition library that lets your users control your site with voice commands.

annyang has no dependencies, weighs just 2 KB, and is free to use and modify under the MIT license.

Demo and Tutorial

Play with some live speech recognition demos

FAQ, Technical Documentation, and API Reference

Hello World

It's as easy as adding one javascript file to your document and defining the commands you want.

<script src="//cdnjs.cloudflare.com/ajax/libs/annyang/2.6.1/annyang.min.js"></script>
<script>
if (annyang) {
  // Let's define a command.
  const commands = {
    'hello': () => { alert('Hello world!'); }
  };

  // Add our commands to annyang
  annyang.addCommands(commands);

  // Start listening.
  annyang.start();
}
</script>

Check out some live speech recognition demos and advanced samples, then read the full API Docs.

Adding a GUI

You can easily add a GUI for the user to interact with Speech Recognition using Speech KITT.

Speech KITT makes it easy to add a graphical interface for the user to start or stop Speech Recognition and see its current status. KITT also provides clear visual hints to the user on how to interact with your site using their voice, providing instructions and sample commands.

Speech KITT is fully customizable and comes with many different themes, and instructions on how to create your own designs.

Speech Recognition GUI with Speech KITT

<script src="//cdnjs.cloudflare.com/ajax/libs/annyang/2.6.1/annyang.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/SpeechKITT/0.3.0/speechkitt.min.js"></script>
<script>
if (annyang) {
  // Add our commands to annyang
  annyang.addCommands({
    'hello': function() { alert('Hello world!'); }
  });

  // Tell KITT to use annyang
  SpeechKITT.annyang();

  // Define a stylesheet for KITT to use
  SpeechKITT.setStylesheet('//cdnjs.cloudflare.com/ajax/libs/SpeechKITT/0.3.0/themes/flat.css');

  // Render KITT's interface
  SpeechKITT.vroom();
}
</script>

For help with setting up a GUI with KITT, check out the Speech KITT page.

Author

Tal Ater: @TalAter

License

Licensed under MIT.

Comments
  • (Android) Repeated microphone notification πŸ“΅πŸŽ™πŸ€“

    (Android) Repeated microphone notification πŸ“΅πŸŽ™πŸ€“

    Works perfectly on desktop.

    When using Annyang on my my Android in Chrome, the microphone notification repeatedly goes off when accessing the site over HTTPS.

    If I access it over HTTP, it allows me to complete a command, and then asks me to Block/Allow the use of the microphone again.

    I would like to use HTTPS so it remembers my choice.

    Expected Behavior

    • First time visiting site should ask for permission to use microphone and should remember my choice.
    • When loading the site should make microphone notification noise once.
    • Should then not make the notification noise again.

    Current Behavior

    • First time visiting site, asks for permission to use microphone and remembers choice.
    • Then repeatedly (every 1-2 seconds) makes microphone notification noise.

    Possible Solution

    Maybe using the .start() options:

    annyang.start({ autoRestart: false });
    annyang.start({ autoRestart: false, continuous: false });
    

    Steps to Reproduce (for bugs)

    $(function() {
      if (annyang) {
        var commands = {
          'hello': function() {
            someFunction();
          },
          'light on': function() {
            someFunction();
          },
          'lights on': function() {
            someFunction();
          },
          'light off': function() {
            someFunction();
          },
          'lights off': function() {
            someFunction();
          }
        };
    
        annyang.addCommands(commands);
        annyang.start();
      }
    });
    

    Your Environment

    • Version: 2.3.0
    • Chrome: 49.0.2623.105
    • Operating System: Android 5.1.1

    Thanks! ✌️

    opened by revett 41
  • Add multi language support

    Add multi language support

    annyang already supports receiving commands in any language. Just call:

    // choose language
    annyang.setLanguage('it-IT');
    
    // define commands in that language
    annyang.init({
      'mi chiamo *name': sayHello
    });
    

    Need to add support for defining rules in multiple languages, and then a user should be able to just change the language without redefining rules:

    // choose language
    annyang.setLanguage('it-IT');
    
    // define commands in that language
    annyang.init(
      'it-IT': {
        'mi chiamo *name': sayHello
      },
      'en' : {
        'my name is *name': sayHello
      }
    });
    
    annyang.setLanguage('en');
    // now annyag recognizes English
    annyang.setLanguage('it-IT');
    // now annyag recognizes Italian
    

    See how this can be added without breaking existing code (can define either multiple languages, or one)

    enhancement 
    opened by TalAter 21
  • Annyang in Chromium

    Annyang in Chromium

    So, I have been trying to develop an app that uses Annyang library. However, when I test this in Chromium (in Raspberry Pi), it is not working.

    I'm suspecting that the API requests limit in Chromium has passed (Without an API key). Therefore I went ahead to enable my own account's Web Speech API. Then I placed my API key and client ID, secret in my Raspberry pi environment variable, rebooted it, and try to test Annyang in my Chromium. In my Google Dev Console, it is indicated that I made almost 100 API calls within a minute. It also says that I had a client error 4**, and yes the homepage commands were not working (Hello, Show me cute kittens) (Since I have not used my Web Speech API before, I should not have passed the 50 requests limit)

    This might be more like a Chromium issue, but I'm throwing it here in case if anyone has an idea of what is happening here? I'm thinking that with my unused Web Speech API call limit, Annyang should work.

    I'm using Chromium 48 (https://www.raspberrypi.org/forums/viewtopic.php?t=121195) in Raspberry Pi 3 (Raspbian Jessie)

    opened by kelvien 18
  • Permission dialog keeps showing when used with Backbonejs

    Permission dialog keeps showing when used with Backbonejs

    I didn't have any luck using it with Backbonejs, the permission dialog keeps showing up, as if in loop, doesn't matter if i authorize or not. Here's the code, the annyang call is on line 118. And here's the app running

    opened by jorgeguberte 17
  • Annyang stops working after a bit of silence

    Annyang stops working after a bit of silence

    Annyang works perfectly fine, when it is started for the first time. But, after some time (silence), it doesn't seem to recognize what the user is speaking. Leave it for some more time and it again starts recognising but it recognises what was previously spoken as well.

    Also, when I add callback for error, I was able to see error popping up every now and then. Is there a way to possibly know what error it is ?

    Environment :

    • Browser Name and version: Chrome (version 48)
    • Operating System and version (desktop or mobile): Ubuntu Mate 15.04
    opened by sanjayshreedharan 16
  • typings

    typings

    typings in the .d.ts format to enhance type safety and autocompletion for TypeScript based apps

    Description

    I added a annyang.d.ts file reflecting the public api.

    TODO

    I copied most of the comments, and enhanced them. Altough copying is a ugly solution, i did not find a common practice how to do it better.

    Motivation and Context

    I wanted to use annyang in a angular2 project.

    How Has This Been Tested?

    there are no tests right now, as I have no experience in how to test type definition. Any help would be nice. @typings

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [x] My code follows the code style of this project.
    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [x] I have read the CONTRIBUTING document.
    • [ ] I have added tests to cover my changes.
    • [x] All new and existing tests passed.
    opened by theluk 13
  • Annyang not working in Electron apps

    Annyang not working in Electron apps

    Hi,

    I tried using Annyang for some speech detection in an Electron app and it doesn't seem to be working. I receive a typeError(not a function) whenever I try to use any of its functions. Any reason why this would be happening since Electron does run in a Chromium environment.

    To overcome the CommonJS issues I'm loading annyang in the app using

    <script>window.annyang = require('/path to file')</script>

    However when I access annyang in the dev console it shows that it's a null object.

    opened by shekit 13
  • Added override option for

    Added override option for "continuous" setting

    As per this issue, would like to add a flag for https clients to force the continue flag to be set on the recognizer.

    https://github.com/TalAter/annyang/issues/70

    Thanks,

    Kean

    opened by KeanW 13
  • prevent repeated confirmation of microphone usage in chrome

    prevent repeated confirmation of microphone usage in chrome

    Chrome keeps asking me whether I would allow or deny the page to use the microphone. Even after hundreds of clicks on Allow, it keeps asking me and the functionality of annyang does not work.

    Any ideas why that is?

    opened by ddsky 11
  • Send text to annyang.

    Send text to annyang.

    Hi, I think annyang is an amazing tool for voice recognision and I'm growing fonder of it every day. Altough, I'd like to see a way to send text to it and have it be recognized by the engine and parsed via the commands object.

    For example,

    annyang.sendText("text");
    

    would parse the command "text"

    Thanks

    - Mackan

    opened by Sven65 10
  • Added a

    Added a "removeAllCallbacks" Method

    I've added a "removeAllCallbacks" method that resets the callbacks object back to a native state. This is needed with Javascript MVC frameworks so that bindings can be removed when needed.

    [In my case, we're working on an Ember.js application that needed to disconnect some controller bindings when a particular area of the app would go out of scope (during user log out).]

    opened by brendonseesdragons 10
  • Endless empty network errors

    Endless empty network errors

    Expected Behavior

    Annyang starts and listens to commands.

    Current Behavior

    Annyang has endless Network Errors with an empty message.

    Steps to Reproduce (for bugs)

    Unsure, it looks like it works for you guys, this is just what happens for me.

    Context

    I want to implement voice commands to an overlay GUI I've been making using NWJS, I like to automate things and love novelty additions, so having the ability to say "create window overlay" and have an overlay window appear, or "create window ad free" and have a normal window appear with ad blocking built-in would be amazing.

    (Note, both those features are done I just dont have voice input)

    Your Environment

    • Version used: 2.6.1
    • Browser name and version: Chromium 105.0.5195.102 (NWJS v0.68.0)
    • Operating system and version (desktop or mobile): Desktop (Windows 10)
    • Link to your project: It depends on NWJS to function as it uses Node.JS features such-as FS.
    opened by MistakingManx 1
  • Language codes for non-English recognition | Are they different on Android and iOS?

    Language codes for non-English recognition | Are they different on Android and iOS?

    On this page I see that "zh-CN" for mainland and "zh-TW" for Taiwan are listed for Chinese; and "zh" is not listed. But on developers.apple.com like this page I often encounter "zh-Hans" and "zh-Hant". Note that this confusion applies to most non-English languages, i.e. not only Chinese. EDIT-1: Tested on Mac OS, and setLanguage("zh"); works and setLanguage("zh-Hans"); doesn't work. EDIT-2: Tried listening to Arabic on Mac OS. For some reason setLanguage("ar"); makes it return possible phrases as recognized speech but no annyang commands fired (Safari 16.0) even though the string values were obviously matching. So I had to quit using annyang.addCommands(commands); and instead I did something like,

    annyang.addCallback('result', function() {
          // Run a for loop and use .search() to see if there is a match
    });
    

    and it worked.

    With regards to the community

    opened by The-Linguist 2
  • how we can use Speech Synthesis and annyang in the same project

    how we can use Speech Synthesis and annyang in the same project

    Expected Behavior

    Current Behavior

    Possible Solution

    Steps to Reproduce (for bugs)

    Context

    Your Environment

    • Version used:
    • Browser name and version:
    • Operating system and version (desktop or mobile):
    • Link to your project:
    opened by HebaOdeh2000 0
  • Microsoft Edge adding dot to end of spoken word

    Microsoft Edge adding dot to end of spoken word

    When trying out the Annyang website on Edge, when you say something it automatically adds a dot to then end of the spoken word/sentence. Because of this, the library can't find a match.

    image

    opened by Allatir 2
  • annyang.min.js move an object in 3D

    annyang.min.js move an object in 3D

    excuse a query. in the annyang.min.js library you can also manipulate the coordinates in 3D? For example, I have an avartar project that captures those coordinates and with the annyang.min.js library I want to move with the voice. avarta 3d avarta 3d

    opened by ubilrodriguez 0
  • any way to increase reliability for recognizing individual letters and numbers?

    any way to increase reliability for recognizing individual letters and numbers?

    I'm using annyang to input chess moves and I'm finding it very challenging to have it correctly recognize commands such as "D 2" and "B 2", "E 2" and so on.

    Is there a browser in particular that might do a better job than others? Clearly my own voice and pronunciation is a factor in this, I'm just finding it borderline unfeasible at all with how often it incorrectly understands my input, as simple as those inputs are meant to be (64 sounds ranging from "A 1" to "H 8"

    opened by vesper8 1
Releases(v2.6.1)
  • v2.6.1(May 7, 2018)

    πŸ‘ This release is 100% backwards compatible with all v2 releases.

    Ensured support up to Node.js 10. Updated dependencies and rebuilt for a more efficient distributable.

    Awesome people :star:

    Special thanks to:

    • @DanielRuf
    • @Gebrukal
    • @HannesOberreiter
    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Oct 7, 2016)

    πŸ‘ This release is 100% backwards compatible with all v2 releases.

    [Added] Allow listening to the soundstart event

    You can now add a callback event which will run when the speech recognition's soundstart event fires.

    annyang.addCallback('soundstart', fn);
    

    This event will fire once per speech recognition session (due to a bug in Chrome). If you would like to get it again the next time sound is heard, you can abort and restart speech recognition… which is the default behavior in HTTPS anyway. In other words, in HTTPS it works great.

    See a more complete example for detecting when the user starts and stops speaking in the FAQ.

    Changed file structure and development stack

    The main annyang files which you will include in your project are now in the /dist directory:

    If you would like to work on annyang's code itself, it is now in the /src directory:

    annyang's source now passes through babel with the es2015 preset, so you can use ES2015 language features in it.

    Awesome people :star:

    Special thanks to:

    • @remybach - For the original soundstart event code, and helping determine the final functionality.
    • @peterdillon - Helping create a use case to test the new soundstart event.
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0(Aug 22, 2016)

    πŸ‘ This release is 100% backwards compatible with all v2 releases.

    [Added] Allow starting annyang in paused mode

    The options object passed to annyang.start() now accepts a new attribute called paused.

    The following example will start the browser's speech recognition engine, but annyang will be in paused mode (meaning that it will not respond to any speech, even if it matches commands).

    annyang.start({ paused: true });
    

    paused is optional and defaults to false if you do not set it.

    [Fixed] An autorestart will cause annyang to unpause

    As reported in #193, if annyang is paused and set to autorestart, it would be unpaused when the Speech Recognition engine restarts. This has been fixed to maintain the paused state.

    [Added] Error callbacks can now access error event

    All callbacks added on error events (error, errorNetwork, errorPermissionBlocked, and errorPermissionDenied) are now called with the error event as their first argument.

    Sample usage:

    annyang.addCallback('error', function(event) {
      console.log(event.error);
    });
    

    Awesome people :star:

    A lot of people have helped make this version possible!

    Special thanks to:

    • @v12 - Speeding up the Travis build (571fad2b80ef5646d765249397600784a207ec19)
    • @evancohen - Helping the community with running annyang in Chromium, Electron and Cordova and helping improve annyang's docs (8e5e0c3e651c9ce475773070d6d7c0415e3ad61c).
    • @vikas-bansal - Refactoring the debug code (7af107e07831aca6c979d66918d56686fce31773)
    • @shekit - Spotting the pausing bug (#193).
    • @lmangani - 🌟 Helping the community with so many things.
    • @kelvien - Helping the community with speech recognition in Chromium.
    • @daniel3d - Helping the community with speech recognition in Chromium and Electron.
    • @thurt - Helping with code contributions (#211)
    • @atchyut-re - Helping the community with open issues.
    • @Digitaledgestudios - Helping the community with open issues.
    • @mcollovati - Helping the community with very detailed responses (#216).
    • @daniel3d - Helping with adding error event to the error callbacks.
    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(Apr 11, 2016)

    [Added] annyang.trigger() method

    annyang commands can now be triggered manually by emulating speech being said. Pass a sentence, or an array of possible sentences to annyang.trigger(), and annyang will act on them as if they came from speech recognition.

    Examples:

    annyang.trigger('Time for some thrilling heroics');
    annyang.trigger(
        ['Time for some thrilling heroics', 'Time for some thrilling aerobics']
      );
    
    Source code(tar.gz)
    Source code(zip)
  • v2.3.0(Mar 31, 2016)

    [Added] UMD support

    annyang can now be required as a module in environments that support them.

    Here is an example of using annyang in an Electron app (an environment that supports both modules and Speech Recognition):

    <script>
      const annyang = require('./annyang.min.js');
      annyang.addCommands({
        'hello': function() {
          console.log('world');
        }
      });
      annyang.start();
    </script>
    

    This additional support for modules does not break existing functionality, as annyang is still available in the global scope.

    A huge thanks goes to @v12 for all the hard work to make this feature possible!

    [Fixed] Fixed tiny init bug

    Bug caused an exception to be thrown when attempting to abort annyang before it was initialized.

    [Added] New tests added

    Improved test coverage of annyang

    Awesome people :star:

    A lot of contributors have helped make this version possible!

    Special thanks to:

    • @v12 - Added UMD support.
    • @lmangani - Thank you for repeatedly being the first one to step up and help the community with issues.
    • @wizardsambolton - Thank you for helping the community with issues.
    • @rmilesson - Thank you for helping the community with issues.
    • @evancohen - Thank you for helping the community with issues.
    • @sdkcarlos - Thank you for helping the community with issues.
    • @asantos00 - Thank you for helping the community with issues.
    • @chrifpa - Added tests.
    • @MattCain - Added tests.
    • @Byron - Added tests.
    • @timotius02 - Added tests.
    • @ZahraTee - Added tests.
    Source code(tar.gz)
    Source code(zip)
  • v2.2.1(Jan 27, 2016)

    [Added] - annyang.removeCallback()

    New method allows removing callbacks you attached to events. Check out the annyang.removeCallback() documentation for details and sample code.

    Announcing Speech KITT

    Meet Speech KITT - a new library that makes it as easy as possible to create a GUI for users to interact with Speech Recognition

    [Fix] Bug

    Fixed a bug which caused an error to be thrown when a command that was called by annyang included calls to to remove commands.

    Test Coverage Improved

    Improved test coverage of annyang using the new Speech Recognition mock object - Corti.

    Awesome people :star:

    A lot of new contributors have helped make this version possible! Special thanks to: @soney - Found and fixed a bug when removing commands from command @qgustavor - Documentation @siawyoung - Added new tests and helped new contributors @Endi1 - Added new tests @evaldosantos - Added new tests @theotow - Added new tests @mdboop - Added new tests @wizardsambolton + @MartinKoutny - Idea for removeCallback() method

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Dec 24, 2015)

    Added a new method which returns true if speech recognition is currently on. Returns false if speech recognition is off or annyang is paused.

    if (annyang) {
      annyang.isListening(); // will return false
      annyang.start();
      annyang.isListening(); // will return true
      annyang.pause();
      annyang.isListening(); // will return false
      annyang.abort();
      annyang.isListening(); // will return false
    }
    
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Jul 24, 2015)

    Added

    You can now pass an object containing a RegExp and a callback function to the addCommands() or init() methods. This allows for much more powerful command matching

    Example:
    var calculateFunction = function(month) { console.log(month); }
    var commands = {
      // This example will accept any word as the "month"
      'calculate :month stats': calculateFunction,
      // This example will only accept months which are at the start of a quarter
      'calculate :quarter stats': {'regexp': /^calculate (January|April|July|October) stats$/, 'callback': calculateFunction}
    }
    

    See https://github.com/TalAter/annyang/tree/master/docs#commands-object for details.

    Changed

    Some callbacks registered on events will now be fired with parameters.

    Example:
    annyang.addCallback('resultNoMatch', function(phrases) {
      console.log('No command matched. Possible sentences said:');
      console.log(phrases);
    });
    
    annyang.addCallback('result', function(phrases) {
      console.log('Speech recognized. Possible sentences said:');
      console.log(phrases);
    });
    
    annyang.addCallback('resultMatch', function(said, commandMatched, phrases) {
      console.log('Command matched');
      console.log('The phrase the user said that matched a command');
      console.log(said);
      console.log('The command that was matched');
      console.log(commandMatched);
      console.log('An array of possible alternative phrases the user might\'ve said');
      console.log(phrases);
    });
    

    See https://github.com/TalAter/annyang/blob/master/docs/#addcallbacktype-callback-context for details.

    Changed

    In debug mode, adding commands no longer logs a message with the number of commands loaded. Instead it logs individual messages for each command registered along with it's name. If one of the commands could not be loaded because it wasn't properly formatted, an error message with the name of the command will be logged.

    Fixed / Added

    Documentation expanded and improved. Greatly expanded README section on callbacks. Updated README with all changes made in this version.

    Source code(tar.gz)
    Source code(zip)
  • v1.6.0(Mar 19, 2015)

    Added two new methods which allow you to pause() and resume() annyang.

    These will just cause annyang to stop responding to speech commands, without actually stopping or restarting the browser's SpeechRecognition engine - which is great because you can now instantly pause-resume-pause-resume at any moment without requesting permissions again (even on HTTP).

    This contribution comes from @niki4810 who also provided an interesting scenario for when and how to use this in #98

    This release also catches exceptions thrown by the SpeechRecognition engine, if you try to start it when it is already started. The error message is logged to the console (if debug mode is on)

    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Nov 24, 2014)

    You can now pass an optional parameter when starting annyang, to force it to run in continuous or non-continuous mode. When turning continuous mode off, speech recognition will stop as soon as the user stops talking (i.e. only picking up his first sentence).

    // Start listening, don't restart automatically
    // stop recognition after first phrase recognized
    annyang.start({ autoRestart: false, continuous: false });
    

    :bulb: annyang is pretty smart about guessing when to use continuous mode in order to compensate for issues in webkitSpeechRecognition, as well as for secure and non-secure connections. So, unless you know your application must have continuous mode off, I suggest leaving it at default and simply calling annyang.abort() when you want to stop listening.

    This contribution comes from @KeanW, who is building an awesome VR headset for Autodesk powered by annyang!

    VR voice controlled headset

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Aug 31, 2014)

    annyang now uses non-continuous mode when the user is on HTTPS.

    This allows for drastically faster results on HTTPS.

    Ludicrous Speed

    This is one more reason to use HTTPS

    Unfortunately, non-continuous mode isn't practical on HTTP, because of repeating security notices (and using interimResults usually gives partial results until the final one is returned).

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Aug 22, 2014)

    Easily run a local server (with HTTPS) by running grunt dev. Makes extending annyang much simpler. Thanks @PavelVanecek for the contribution.

    Added detailed documentation and API specs. These will now be generated automatically from the JSDoc comments, which will be kept at their new high level.

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Aug 21, 2014)

    Calling removeCommands() with no arguments will now remove all the commands registered to annyang. Previously it did nothing when no arguments were passed. Thanks go to @James1x0 for the contribution.

    Minor non-critical fix in abort() method

    This release is Fully backwards compatible.

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Jan 7, 2014)

    Calling annyang.init() is now optional. annyang will lazily initialize on its own.

    The big benefit here, is that you no longer need to worry about always running init() first. Just start() listening whenever you want, addCommands() whenever, and as often as you like.

    For example:

      // Add commands
      annyang.addCommands(commands);
    
      // Add more commands
      annyang.addCommands(anotherCommand);
    
      // Start listening.
      annyang.start();
    
      // Just remembered a few more commands to add
      annyang.addCommands(moreCommands);
    
      // Stop listening.
      annyang.abort();
    

    This release is Fully backwards compatible. You can still run init() if you want.

    Source code(tar.gz)
    Source code(zip)
Owner
Tal Ater
Founder and CTO @DAVFoundation. Author of Building Progressive Web Apps (O'Reilly). W3C Invited Expert. Open sourcerer.
Tal Ater
A movie critic site allowing users to browse different selection of movie titles, tv shows, pod cast and more

A movie critic site allowing users to browse different selection of movie titles, tv shows, pod cast and more! A user can click on Whats a Potatoe Meter? to access the comments page a leave a rating on their favorite title from the list we have on the dropdown.

Aaron Lu 3 Mar 22, 2022
The best Discord bot and server listing site of the future.

Ghosty Lists An open source project to list all the awesome bot of discord and servers. Quick Mention Please do not claim this as yours when you are f

null 5 Sep 24, 2022
Recap let's you recap on your favourite social network videos by downloading them on your devices, from the range of YouTube, SoundCloud, Facebook, Twitter, Instagram, TikTok, Vimeo, Dailymotion, VK, or AOL.

Recap A Social Network Video Downloader Recap let's you recap on your favourite social network videos by downloading them on your devices, from the ra

John Oladele 4 Sep 24, 2022
Prettier embeds for your YouTubes - with nice options like high-res preview images, advanced customization of embed options, and optional FitVids support.

PrettyEmbed.js Prettier embeds for your YouTubes - with nice options like high-res preview images, advanced customization of embed options, and option

Mike Zarandona 1.1k Sep 28, 2022
:loudspeaker: A JavaScript library to add voice commands to your sites, apps or games.

Voix JS A JavaScript library to add voice commands to your sites, apps or games. NOTE: At this time, this library is only compatible with Google Chrom

Guille Paz 548 Dec 8, 2022
AmplitudeJS: Open Source HTML5 Web Audio Library. Design your web audio player, the way you want. No dependencies required.

Documentation β€’ Examples β€’ Tutorials β€’ Support Us β€’ Get Professional Help AmplitudeJS is a lightweight JavaScript library that allows you to control t

Server Side Up 3.9k Jan 2, 2023
Meet Muffin - a multipurpose, customizable and open source Discord bot with bunch of useful features for your server!

Meet Muffin - a multipurpose, highly customizable and open source Discord bot with bunch of useful features for your server! Self-hosting notice While

null 0 Oct 21, 2021
Play your favorite playlist with rexom

rexom ?? Play your favorite playlist with rexom ?? ?? Requirements. Make Your own discord bot from here make sure you have Git, VS Code, nodejs in yur

DevelopersSupportAR 35 Dec 25, 2022
πŸ”Š first auto join discord selfbot - just with one command join it to your server πŸ”₯

?? Messi (Discord Self Bot) first auto join discord selfbot - just with one command join it to your server discord.js-selfbot ?? Requirements Discord

Parsa 25 Dec 12, 2022
Pancakeswap and Uniswap sniping for beginners. DYOR and modify the code to your liking

Hey everyone, I built a basic sniping bot for pancake and uniswap using their libraries. Simply put, you fill the settings in bot.js and it buys the t

Lemon 42 Aug 9, 2021
A simple discord bot that can execute commands to your termux.

Termux-Bot It's a simple discord bot that can execute commands to your termux. Try it for yourselves Requirements discord account and bot, npm, git, o

null 12 Oct 5, 2022
Link your position on a mcbe server to a discord voice. The sound changes according to the distance to the nearest players.

DiscordLink Link your position on a mcbe server to a discord voice. The sound changes according to the distance to the nearest players. Credits - No I

MaXoooZ 1 May 28, 2022
Add some fire to your Spotify music playlists πŸ”₯🎧

Spotifire ?? Add some fire to your Spotify music playlists ?? Built With Next.js React Tailwind CSS (v3.0) NextAuth Recoil Spotify Web API Preview Vis

Niloy Sikdar 15 Jun 19, 2022
Lightweight customizable placeholders for third party content of your website (e.g. Youtube Videos) compatible with the Usercentrics CMP.

Usercentrics Widgets Lightweight customizable placeholders for third party content of your website (e.g. Youtube Videos) compatible with the Usercentr

Netresearch 3 Nov 17, 2022
An efficient package, which syncs ratelimits of your Discord Bot on all Machines/Clusters.

Discord-cross-ratelimit An efficient package, which syncs ratelimits of your Discord Bot on all Machines/Clusters. Why? When Sharding/Scaling your Bot

meister03 13 Oct 23, 2022
Demeter is a bot discord that identifies and quantifies the commitment of your members by assigning them reputation points.

Demeter Discord Bot Demeter is a Discord bot that identifies and quantifies your members' commitment by assigning them reputation points. This is a pr

vanmoortel 5 Jan 4, 2022
Zoltan is a polyphonic music synthesizer that you can play in your browser.

Zoltan Zoltan is a polyphonic browser-based synthesizer written in TypeScript using React. The project is currently in the early alpha stages, so expe

Mark-James McDougall 7 Dec 17, 2022
πŸ€–A small, robust Discord bot to support and manage a daily word game in your server. (soonβ„’)

Wordable ?? Wordable is a small, robust Discord bot to support and manage a daily word game in your server! Commands /ping - Replies with pong! /guess

Vic Trodd 6 Feb 11, 2022
SpotLight is a web app which uses spotify developer APIs and lists your most listened songs, albums, artists and genres.

SpotLight is a web app which uses spotify developer APIs and lists your most listened songs, albums, artists and genres.

Sahil Saha 9 Dec 31, 2022