Skip to main content

a Discord bot that uses DECtalk text-to-speech

Project description

DECbot

A Discord bot that uses DECtalk text-to-speech (think Stephen Hawking or Moonbase Alpha).

DECbot uses wine and the original DECtalk say.exe to synthesize text from text chat into a voice channel. The bot offers a set of commands allowing users to control how and where DECbot synthesizes speech. The bot can also take multiple commands at once, allowing multiple sounds and voices to be played back at the same time.

Requirements

  • Python 3
  • wine
  • A copy of the DECtalk executable and support. This includes say.exe, dectalk.dll, and the dictionary, dtalk_us.dic.

Commands

DECbot can synthesize text into different voice channels depending on the command:

  • !dec talk <text> plays the text back in the current voice channel.
  • !dec tell <@mention> <text> plays the text back in the voice channel of the user mentioned.

The presence of DECbot can also be controlled (to minimize annoyance):

  • !dec quiet stops the currently playing text immediately.
  • !dec leave forces the bot to leave its current voice channel.

Both TTS commands run using the "Perfect Paul" voice with phonemes enabled (so the bot can "sing"). Additional options can be specified as they would in a normal say.exe command: with brackets and a colon ([:command]). For example, DECbot can talk as "Frail Frank" by starting the text with [:nf].

Installation

$ pip install decbot

The bot can also be run from source as a module. In the top level directory:

$ python -m decbot

Running

A new Discord bot must be set up before the application can be run:

  1. Create a new Discord application in the developer portal.
  2. Fill in the general information, and note the Client ID on this page.
  3. Set up your bot in the "Bot" tab. Note the Token on this page.

Next, to start the application:

  1. Create a DECbot configuration file. At minimum, this must have the bot token, and the path to the DECtalk executable, tts.bin.

  2. Get an invite link (the client field must be specified in the config):

    $ decbot --invite
    
  3. Have the Discord server administrator add the bot. Note that it must be granted the ability to read and send text messages, and be able to view, join, and talk in voice channels.

  4. Start the bot. The application looks for a configuration file in the same directory called .decbot. Specify a different path as follows:

    $ decbot --config /path/to/my/config
    
  5. To stop the bot, the application can be stopped from the command line, or the owner can issue !dec quit in the Discord server chat.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

decbot-1.0.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

decbot-1.0.0-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file decbot-1.0.0.tar.gz.

File metadata

  • Download URL: decbot-1.0.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for decbot-1.0.0.tar.gz
Algorithm Hash digest
SHA256 780abd06cfa3ab28a88fa8de7d1c64ca60b2d10a96f4659debfeb616a344eaef
MD5 7c7306edd745faad55e3ff2e081d2b36
BLAKE2b-256 575018006a9bb7afe2c6a1c70139164c3728a14c54888e08284f3b10476705af

See more details on using hashes here.

File details

Details for the file decbot-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: decbot-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for decbot-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2174b5743f5b7b62a66975270bb1785998e20b6270acf045f81413c32da10b48
MD5 2ad4bc44d3b77c38aee12b18d16f2032
BLAKE2b-256 ba3b6c44aedd4094708b57a00b45f5ceb1c81c311e445c53acb4d5f68ad65d17

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page