496a0f5a18 | ||
---|---|---|
dist | ||
.gitignore | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
bootstrap.min.css | ||
config-dist.yml | ||
favicon.ico | ||
jquery.js | ||
requirements.txt | ||
tts.html | ||
tts.js | ||
tts.py |
README.md
Twitch TextToSpeech Bot
A simple Twitch TTS bot
Installation
- Clone the repo, or download and unzip the newest Release
- Rename/copy
config-dist.yml
toconfig.yml
- (Optional) Move/copy
./dist/tts.exe
into the main directory (you can omit this step if you have Python installed)
Configuration
Adapt config.yml
to your needs. Example:
irc:
channel: "#gpkvt"
username: "ttsbot"
oauth_token: "oauth:ohkoace0wooghue8she9xaN0nooSau"
server: "irc.chat.twitch.tv"
clearmsg_timeout: 10
http:
port: 80
bind: "localhost"
bot:
subonly: False
modonly: False
message_length: 200
messages:
too_long: "Sorry, your TTS message is too long."
disabled: "Sorry, TTS is disabled right now."
denied: "Sorry, you are not allowed to use TTS."
subonly: "Sorry, TTS is a sub-only feature."
whitelist: "Sorry, you are not allowed to use TTS."
ready: "TTS bot alpha ready!"
says: "says"
log:
level: "INFO"
usermapping:
gpkvt: "gpk"
whitelist:
Explanation:
irc
channel
: Channel you want to monitor (e.g. #gpkvt)username
: The bots username (e.g. gpkvt)oauth_token
: The bots OAUTH-Token (e.g. oauth:ohkoace0wooghue8she9xaN0nooSau)server
: Twitch IRC server to be used (default should be fine)clearmsg_timeout
: Time to wait for an moderator to delete a message, before it's added to the TTS queue
http
port
: Internal Webserver Port to listen to (e.g. 8080)bind
: Interface/IP to bind server to (e.g. localhost)
bot
subonly
: IfTrue
only Subs can use TTSmodonly
: IfTrue
only Mods can use TTSmessage_length
: Maximum allowed message length for TTS
messages
too_long
: The bots reply if message exceedsmessage_length
disabled
: The bots reply if TTS is disableddenied
: The bots reply if the user is not allowed to use TTSsubonly
: The bots reply ifsubonly
is active and the user isn't one.whitelist
: The bots reply ifwhitelist
is set and user isn't on the list.ready
: The bots init messagesays
: Prefix to add between username and message
log
level
: The loglevel, valid values are:DEBUG
,INFO
,WARNING
,ERROR
,CRITICAL
usermapping
Use this section to define key:value pairs of usernames. The first value is the Twitch username, the second value is how the bot should pronouce the user, when reading the message. This is helpfull if you have regulars with numbers or strangs chars in the name. You can add new/change entries on the fly without restarting the bot (changes took up to 60 seconds).
whitelist
You can add a whitelist section to config.yml
, a whitelist will override any other settings like subonly
and modonly
. Only users on the whitelist are allowed to use !tts
. Broadcasters and mods can temporarily add users (including themselfs) to the whitelist by using the !ptts
command, though.
A whitelist looks as follows:
whitelist:
- gpkvt
- foo
- bar
To disable the whitelist, remove it from config.yml
completely. If you just leave whitelist:
without entries, everyone must be whitelisted using !ptts
(even broadcaster and mods). The permit is temporary until the bot restarts or (whichever happens first) if the user is removed from the whitelist using !dtts
.
Usage
Execute tts.exe
(or tts.py
if you have Python installed), open the TTS webpage in your browser (the URL depends on your bind
and port
configuration, usually it's just http://localhost). Click the Init
button at the bottom of the TTS webpage (you should hear Init complete
).
Connect to the configured Twitch channel and send a message starting with !tts
. After a few seconds (depending on your clearmsg_timeout
config), the message should be read.
Additional commands (broadcaster and mods only) are:
-
!toff
: Turn TTS off (will also empty the current TTS queue) -
!ton
: Turn TTS back on -
!dtts <username>
: Disable TTS for the given user -
!ptts <username>
: Allow TTS for the given user
Voices
The voices available depends on your Operating System and/or browser. On some systems only a default voice is available and the Select voice
dropdown might stay empty or will only show entries after you clicked the Init
button. Some Android devices will show a huge list of voices, but sounds the same no matter which one you choose.
On Windows you can install additional voices via Settings
> Time & language
> Speech
> Add voices
or by simply run Add speech voices
Troubleshooting
Feel free to use the Issuetracker if you experience any problems.