A retro text-to-speech bot for Discord

Overview

hawking

A retro text-to-speech bot for Discord, designed to work with all of the stuff you might've seen in Moonbase Alpha, using the existing commands.

Activate Hawking on your server!

  • Go to this page on Discord's site.
  • Select the server that you want Hawking to be added to.
  • Hit the "Authorize" button.
  • Start speaking! (Hint: join a voice channel and type in \help. You should check out the Commands section of this readme, too!)

Join my Discord server!

Click here to join!

  • Help me test unstable versions of Hawking and my other bots
  • Let me know if something's broken
  • Post suggestions for improving Hawking and my other bots
  • Got a funny phrase you want added? Suggest it in there!

Commands

These commands allow for the basic operation of the bot, by anyone. Just type them into a public text channel while connected to a public voice channel. (Hawking can also read/join channels that you've given the permissions to)

  • \say [text] - Tells the bot to speak [text] in the voice channel that you're currently in.
  • \skip - Skip a phrase that you've requested, or start a vote to skip on someone else's phrase.
  • \find [text] - The bot will search its preloaded phrases for the one whose contents most closely matches [text], and will display that command's name. Note: requires the Phrases module.
  • \random - Plays a random phrase from the list of preloaded phrases. Note: requires the Phrases module.
  • \fortune - Tells you your magic 8 ball fortune!
  • \stupidquestion - Asks you a random, (potentially) stupid question from Reddit.
  • \invite - Gets you an invite link for the bot, as well as gets you an invite link for my Discord server.
  • \delete_my_data - Sets up a request to remove all of your stored user data (TTS data, User Id, Channel Id, and Server Id) from the Hawking database. Note that anonymized usage statistics are still kept, however. All requests are processed once a week, currently that happens every Monday at midnight. Furthermore, the previously mentioned identifying information will automatically be removed after a year.
  • \help - Show the help screen.
  • \speech_config - Shows the help screen for configuring Hawking's speech.

Hosting, Configuring, Commanding, and Extending Hawking

Lastly...

Also included are some built-in phrases from this masterpiece. Check out the Phrases section in the \help screen. You should also take a look at my dedicated hawking-phrases repository. It's got a bunch of phrase files that can easily be put into your phrases folder for even more customization.

Lastly, be sure to check out the Moonbase Alpha moon tunes guide on Steam, there's a bunch of great stuff in there!

Tested on Windows 10, and Ubuntu 16.04.

Comments
  • Bump requests from 2.18.4 to 2.20.0

    Bump requests from 2.18.4 to 2.20.0

    Bumps requests from 2.18.4 to 2.20.0.

    Changelog

    Sourced from requests's changelog.

    2.20.0 (2018-10-18)

    Bugfixes

    • Content-Type header parsing is now case-insensitive (e.g. charset=utf8 v Charset=utf8).
    • Fixed exception leak where certain redirect urls would raise uncaught urllib3 exceptions.
    • Requests removes Authorization header from requests redirected from https to http on the same hostname. (CVE-2018-18074)
    • should_bypass_proxies now handles URIs without hostnames (e.g. files).

    Dependencies

    • Requests now supports urllib3 v1.24.

    Deprecations

    • Requests has officially stopped support for Python 2.6.

    2.19.1 (2018-06-14)

    Bugfixes

    • Fixed issue where status_codes.py's init function failed trying to append to a __doc__ value of None.

    2.19.0 (2018-06-12)

    Improvements

    • Warn user about possible slowdown when using cryptography version < 1.3.4
    • Check for invalid host in proxy URL, before forwarding request to adapter.
    • Fragments are now properly maintained across redirects. (RFC7231 7.1.2)
    • Removed use of cgi module to expedite library load time.
    • Added support for SHA-256 and SHA-512 digest auth algorithms.
    • Minor performance improvement to Request.content.
    • Migrate to using collections.abc for 3.7 compatibility.

    Bugfixes

    • Parsing empty Link headers with parse_header_links() no longer return one bogus entry.
    ... (truncated)
    Commits
    • bd84045 v2.20.0
    • 7fd9267 remove final remnants from 2.6
    • 6ae8a21 Add myself to AUTHORS
    • 89ab030 Use comprehensions whenever possible
    • 2c6a842 Merge pull request #4827 from webmaven/patch-1
    • 30be889 CVE URLs update: www sub-subdomain no longer valid
    • a6cd380 Merge pull request #4765 from requests/encapsulate_urllib3_exc
    • bbdbcc8 wrap url parsing exceptions from urllib3's PoolManager
    • ff0c325 Merge pull request #4805 from jdufresne/https
    • b0ad249 Prefer https:// for URLs throughout project
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 7
  • Update discord.py dependency to 1.3.4

    Update discord.py dependency to 1.3.4

    I've been noticing that Hawking (and Clipster) will seem to come online and offline more often than they should. After taking a look at the logs, I've noticed that there are some instances of the socket closing, and the service having to reconnect it automatically. websockets.exceptions.ConnectionClosed: WebSocket connection is closed: code = 1006 (connection closed abnormally [internal]), no reason. Upon further inspection, there is a constant type error that seems to cause this issue:

    Traceback (most recent call last):
      File "/usr/local/bin/hawking/code/hawking.py", line 206, in <module>
        hawking.run()
      File "/usr/local/bin/hawking/code/hawking.py", line 198, in run
        self.bot.run(utilities.load_json(self.token_file_path)["token"])
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/client.py", line 640, in run
        return future.result()
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/client.py", line 621, in runner
        await self.start(*args, **kwargs)
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/client.py", line 585, in start
        await self.connect(reconnect=reconnect)
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/client.py", line 499, in connect
        await self._connect()
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/client.py", line 463, in _connect
        await self.ws.poll_event()
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/gateway.py", line 471, in poll_event
        await self.received_message(msg)
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/gateway.py", line 425, in received_message
        func(data)
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/state.py", line 750, in parse_guild_create
        guild = self._get_create_guild(data)
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/state.py", line 725, in _get_create_guild
        guild._from_data(data)
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/guild.py", line 296, in _from_data
        self._sync(guild)
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/guild.py", line 323, in _sync
        self._add_channel(TextChannel(guild=self, data=c, state=self._state))
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/channel.py", line 107, in __init__
        self._update(guild, data)
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/channel.py", line 131, in _update
        self._fill_overwrites(data)
      File "/usr/local/bin/hawking/lib/python3.6/site-packages/discord/abc.py", line 294, in _fill_overwrites
        self._overwrites.append(_Overwrites(id=overridden_id, **overridden))
    TypeError: __new__() got an unexpected keyword argument 'deny_new'
    

    Fortunately, I'm not the only one to experience this (see: https://github.com/Rapptz/discord.py/issues/5109). The recommended course of action seems to be to update discord.py to the latest version (1.3.4), as it's currently on 1.3.2

    bug 
    opened by naschorr 6
  • Cog not reloading, but starts up fine?

    Cog not reloading, but starts up fine?

    Hello, while using the bot and doing \admin reload_modules I find that it fails to load one cog module, stupidquestions. To clarify, it loads on startup but on reloading it won't reload. I've tried sifting around in the code for a little but with little success. As for the error I'm getting, it's not finding reddit in stupidquestions?

    Here's what the general startup looks like:

    (hawking) C:\Users\ServerAdmin\Desktop\hawking-master\code>hawking.py 2021-11-09 17:15:47,808 - module_manager - discover_modules - INFO - Skipping module music, as it's initialization data was false 2021-11-09 17:15:50,122 - module_manager - _load_module - INFO - Instantiated cog: PrivacyManager 2021-11-09 17:15:52,169 - module_manager - _load_module - INFO - Instantiated cog: SpeechConfigHelpCommand 2021-11-09 17:15:54,226 - module_manager - _load_module - INFO - Instantiated cog: SocialInviteCommand 2021-11-09 17:15:54,237 - module_manager - _load_module - INFO - Instantiated module: MessageParser 2021-11-09 17:15:54,273 - module_manager - _load_module - INFO - Instantiated cog: Speech 2021-11-09 17:15:56,315 - module_manager - _load_module - INFO - Instantiated cog: AudioPlayer 2021-11-09 17:15:58,358 - module_manager - _load_module - INFO - Instantiated cog: Admin 2021-11-09 17:15:58,359 - module_manager - _load_module - INFO - Instantiated cog: Fortune 2021-11-09 17:16:00,422 - phrases - init_phrases - INFO - Loaded 66 phrases. 2021-11-09 17:16:00,422 - module_manager - _load_module - INFO - Instantiated cog: Phrases 2021-11-09 17:16:00,425 - module_manager - _load_module - INFO - Instantiated module: Reddit 2021-11-09 17:16:00,426 - module_manager - _load_module - INFO - Instantiated cog: StupidQuestions 2021-11-09 17:16:00,426 - hawking - run - INFO - Starting up the bot. 2021-11-09 17:16:00,427 - privacy_manager - process_delete_request_queue - INFO - Skipping delete request processing, as queue is empty. 2021-11-09 17:16:00,428 - stupid_questions - load_questions - INFO - Loading questions from reddit: top(week), 250 submissions 2021-11-09 17:16:05,675 - stupid_questions - load_questions - INFO - 250 questions loaded at Tue Nov 9 17:16:05 2021 2021-11-09 17:16:08,240 - hawking - on_ready - INFO - Logged in as 'Steven | \' (version: 1.10.0), (id: 907471553338413106)

    Here's the reload:

    2021-11-09 17:16:24,898 - phrases - init_phrases - INFO - Loaded 66 phrases. 2021-11-09 17:16:24,913 - module_manager - reload_registered_modules - ERROR - Error: 'dict' object has no attribute 'reddit' when reloading cog: StupidQuestions 2021-11-09 17:16:24,913 - module_manager - reload_registered_modules - INFO - Loaded 10/11 cogs. 2021-11-09 17:16:24,916 - privacy_manager - process_delete_request_queue - INFO - Skipping delete request processing, as queue is empty.

    Not sure if I missed something somewhere or if I scuffed something up badly when installing. I'll say that the installing process for me was not "smooth" really.

    I also attached the log file just incase: hawking.log

    *As a note, it appends the log to the same log file each time, so after extensive use (mine was at 22000 kilobytes or something, after only one day) that could become an issue for the log. (unless I also scuffed something there as well)

    I'll drop that here as well incase anyone sees something useful or wants to know how (pay attention when closing cmd with ctrl+c): hawkingAppendAllToThisLog.log

    bug 
    opened by BLegereSK 4
  • Bot ignoring only say command

    Bot ignoring only say command

    Sorry, new to Github.

    Was working earlier today, then stopped responding to the \say command. Still responds to \help command. Wondering if this is an issue for my server or just something with the bot.

    bug 
    opened by grundleface 3
  • Bump aiohttp from 3.6.2 to 3.7.4

    Bump aiohttp from 3.6.2 to 3.7.4

    Bumps aiohttp from 3.6.2 to 3.7.4.

    Release notes

    Sourced from aiohttp's releases.

    aiohttp 3.7.3 release

    Features

    • Use Brotli instead of brotlipy [#3803](https://github.com/aio-libs/aiohttp/issues/3803) <https://github.com/aio-libs/aiohttp/issues/3803>_
    • Made exceptions pickleable. Also changed the repr of some exceptions. [#4077](https://github.com/aio-libs/aiohttp/issues/4077) <https://github.com/aio-libs/aiohttp/issues/4077>_

    Bugfixes

    • Raise a ClientResponseError instead of an AssertionError for a blank HTTP Reason Phrase. [#3532](https://github.com/aio-libs/aiohttp/issues/3532) <https://github.com/aio-libs/aiohttp/issues/3532>_
    • Fix web_middlewares.normalize_path_middleware behavior for patch without slash. [#3669](https://github.com/aio-libs/aiohttp/issues/3669) <https://github.com/aio-libs/aiohttp/issues/3669>_
    • Fix overshadowing of overlapped sub-applications prefixes. [#3701](https://github.com/aio-libs/aiohttp/issues/3701) <https://github.com/aio-libs/aiohttp/issues/3701>_
    • Make BaseConnector.close() a coroutine and wait until the client closes all connections. Drop deprecated "with Connector():" syntax. [#3736](https://github.com/aio-libs/aiohttp/issues/3736) <https://github.com/aio-libs/aiohttp/issues/3736>_
    • Reset the sock_read timeout each time data is received for a aiohttp.client response. [#3808](https://github.com/aio-libs/aiohttp/issues/3808) <https://github.com/aio-libs/aiohttp/issues/3808>_
    • Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of View [#3880](https://github.com/aio-libs/aiohttp/issues/3880) <https://github.com/aio-libs/aiohttp/issues/3880>_
    • Fixed querying the address families from DNS that the current host supports. [#5156](https://github.com/aio-libs/aiohttp/issues/5156) <https://github.com/aio-libs/aiohttp/issues/5156>_
    • Change return type of MultipartReader.aiter() and BodyPartReader.aiter() to AsyncIterator. [#5163](https://github.com/aio-libs/aiohttp/issues/5163) <https://github.com/aio-libs/aiohttp/issues/5163>_
    • Provide x86 Windows wheels. [#5230](https://github.com/aio-libs/aiohttp/issues/5230) <https://github.com/aio-libs/aiohttp/issues/5230>_

    Improved Documentation

    • Add documentation for aiohttp.web.FileResponse. [#3958](https://github.com/aio-libs/aiohttp/issues/3958) <https://github.com/aio-libs/aiohttp/issues/3958>_
    • Removed deprecation warning in tracing example docs [#3964](https://github.com/aio-libs/aiohttp/issues/3964) <https://github.com/aio-libs/aiohttp/issues/3964>_
    • Fixed wrong "Usage" docstring of aiohttp.client.request. [#4603](https://github.com/aio-libs/aiohttp/issues/4603) <https://github.com/aio-libs/aiohttp/issues/4603>_
    • Add aiohttp-pydantic to third party libraries [#5228](https://github.com/aio-libs/aiohttp/issues/5228) <https://github.com/aio-libs/aiohttp/issues/5228>_

    Misc

    ... (truncated)

    Changelog

    Sourced from aiohttp's changelog.

    3.7.4 (2021-02-25)

    Bugfixes

    • (SECURITY BUG) Started preventing open redirects in the aiohttp.web.normalize_path_middleware middleware. For more details, see https://github.com/aio-libs/aiohttp/security/advisories/GHSA-v6wp-4m6f-gcjg.

      Thanks to Beast Glatisant <https://github.com/g147>__ for finding the first instance of this issue and Jelmer Vernooij <https://jelmer.uk/>__ for reporting and tracking it down in aiohttp. [#5497](https://github.com/aio-libs/aiohttp/issues/5497) <https://github.com/aio-libs/aiohttp/issues/5497>_

    • Fix interpretation difference of the pure-Python and the Cython-based HTTP parsers construct a yarl.URL object for HTTP request-target.

      Before this fix, the Python parser would turn the URI's absolute-path for //some-path into / while the Cython code preserved it as //some-path. Now, both do the latter. [#5498](https://github.com/aio-libs/aiohttp/issues/5498) <https://github.com/aio-libs/aiohttp/issues/5498>_


    3.7.3 (2020-11-18)

    Features

    • Use Brotli instead of brotlipy [#3803](https://github.com/aio-libs/aiohttp/issues/3803) <https://github.com/aio-libs/aiohttp/issues/3803>_
    • Made exceptions pickleable. Also changed the repr of some exceptions. [#4077](https://github.com/aio-libs/aiohttp/issues/4077) <https://github.com/aio-libs/aiohttp/issues/4077>_

    Bugfixes

    • Raise a ClientResponseError instead of an AssertionError for a blank HTTP Reason Phrase. [#3532](https://github.com/aio-libs/aiohttp/issues/3532) <https://github.com/aio-libs/aiohttp/issues/3532>_
    • Fix web_middlewares.normalize_path_middleware behavior for patch without slash. [#3669](https://github.com/aio-libs/aiohttp/issues/3669) <https://github.com/aio-libs/aiohttp/issues/3669>_
    • Fix overshadowing of overlapped sub-applications prefixes. [#3701](https://github.com/aio-libs/aiohttp/issues/3701) <https://github.com/aio-libs/aiohttp/issues/3701>_

    ... (truncated)

    Commits
    • 0a26acc Bump aiohttp to v3.7.4 for a security release
    • 021c416 Merge branch 'ghsa-v6wp-4m6f-gcjg' into master
    • 4ed7c25 Bump chardet from 3.0.4 to 4.0.0 (#5333)
    • b61f0fd Fix how pure-Python HTTP parser interprets //
    • 5c1efbc Bump pre-commit from 2.9.2 to 2.9.3 (#5322)
    • 0075075 Bump pygments from 2.7.2 to 2.7.3 (#5318)
    • 5085173 Bump multidict from 5.0.2 to 5.1.0 (#5308)
    • 5d1a75e Bump pre-commit from 2.9.0 to 2.9.2 (#5290)
    • 6724d0e Bump pre-commit from 2.8.2 to 2.9.0 (#5273)
    • c688451 Removed duplicate timeout parameter in ClientSession reference docs. (#5262) ...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Crashes on certain input message (across all servers)

    Crashes on certain input message (across all servers)

    The message in question: \say EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST EST PST CST MST

    Takes more than 10 minutes to be functional again and accept commands

    bug 
    opened by grm4871 2
  • Upgraded the `fortune` cog to work with slash commands

    Upgraded the `fortune` cog to work with slash commands

    • Added optional callback support to Invoked_command_handler, which will be called instead of the generic followup.response used previously
    • Added support for explicitly setting the ephemeral state in an interaction's response in the invoked_command_handler
    enhancement discord 
    opened by naschorr 1
  • Apply for message content privileged intent

    Apply for message content privileged intent

    Hawking uses the textual content of the message alongside it's activation string to generate speech, and since it's now in more than 1,100(!) servers, it'll be crucial to become approved.

    Where Hawking needs message content:

    • \say [text] requires message content to determine what speech to generate
    • \find [text] requires message content to know what phrase to search for, otherwise this feature is pointless
    • \admin [subcommand] I believe discord.py pulls in message content for subcommands, but I'm not 100% sure (I can't imagine how else it would work though)

    Applications for the intent open at October 25, 2021 3:00 PM.

    Discord's policy for this intent: https://support.discord.com/hc/en-us/articles/4410940809111 Discord's intent FAQ: https://support-dev.discord.com/hc/en-us/articles/4404772028055-Message-Content-Access-Deprecation-for-Verified-Bots.

    discord 
    opened by naschorr 1
  • `audio_player.py` shouldn't be able to communicate with the user

    `audio_player.py` shouldn't be able to communicate with the user

    There are a few ctx.send calls that allow for the class to directly talk to users in error cases. Really this logic should be handled by the invokers (ex: speech.py's _say and play_random_channel_timeout_message methods), which are already interacting with the user via commands.

    enhancement 
    opened by naschorr 1
  • Implement consistent textual bot output interface

    Implement consistent textual bot output interface

    Right now, text based bot interactions use a few different techniques: normal ctx.send messages, code blocks, and embeds. I'd like to build a unified, paginated system with fallbacks so that all text based interactions have a consistent look and feel, regardless of the permissions assigned to the bot. Ideally people are using Hawking with the default permissions, so everyone will get a rich embed based experience, but falling back to safer methods is totally fine to me.

    It's a bit vanilla, but the stupid_questions module is in a decent spot, and I think can serve as a good target to shoot for. There's an explicit bot to user response in the form of: Hey $USER, take a look at:, and then an embed with the nicely formatted Reddit link below.

    enhancement 
    opened by naschorr 1
  • Build documentation to describe the process for adding new modules to Hawking

    Build documentation to describe the process for adding new modules to Hawking

    Should probably have sections on:

    • Module skeleton
    • Describing how discover_modules works
    • The ModuleInitializationStruct
    • Implementing dependencies for your new module
    • Practical example(s?)
    enhancement 
    opened by naschorr 1
  • Bump certifi from 2022.6.15 to 2022.12.7

    Bump certifi from 2022.6.15 to 2022.12.7

    Bumps certifi from 2022.6.15 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Hawking won't rejoin a channel after being disconnected (via Discord)

    Hawking won't rejoin a channel after being disconnected (via Discord)

    From the support discord: https://discord.com/channels/521474080340180998/697856301652246649/1035644477177610270

    Looks like Hawking will rejoin after a restart, or after @Hawking admin disconnect. More investigation needs to happen, but likely improved handling of a disconnect event will need to be added.

    bug 
    opened by naschorr 0
  • `help` command outputs too many commands after phrases have been refreshed.

    `help` command outputs too many commands after phrases have been refreshed.

    /say <text>       Speaks your text aloud
    /skip             Vote to skip what's currently playing
    /phrase <name>    Speaks the specific phrase
    /find <search>    Speaks the most similar phrase
    /random           Speaks a random phrase
    /fortune          Tells you your magic 8 ball fortune!
    /invite           Posts invite links for Hawking
    /privacy_policy   Gives a link to the privacy policy
    /speech_config    Posts a link to the speech config docs
    /stupid_question  Ask a stupid question, via Reddit.
    /help             Shows the help page
    

    vs. ❌

    /say <text>       Speaks your text aloud
    /skip             Vote to skip what's currently playing
    /phrase <name>    Speaks the specific phrase
    /find <search>    Speaks the most similar phrase
    /random           Speaks a random phrase
    /find <search>    Speaks the most similar phrase
    /fortune          Tells you your magic 8 ball fortune!
    /invite           Posts invite links for Hawking
    /phrase <name>    Speaks the specific phrase
    /privacy_policy   Gives a link to the privacy policy
    /random           Speaks a random phrase
    /speech_config    Posts a link to the speech config docs
    /stupid_question  Ask a stupid question, via Reddit.
    /help             Shows the help page
    
    bug 
    opened by naschorr 0
Owner
Nick Schorr
Big fan of Python, TypeScript, Docker, and the open source movement
Nick Schorr
Silero Models: pre-trained speech-to-text, text-to-speech models and benchmarks made embarrassingly simple

Silero Models: pre-trained speech-to-text, text-to-speech models and benchmarks made embarrassingly simple

Alexander Veysov 3.2k Dec 31, 2022
PyTorch implementation of Microsoft's text-to-speech system FastSpeech 2: Fast and High-Quality End-to-End Text to Speech.

An implementation of Microsoft's "FastSpeech 2: Fast and High-Quality End-to-End Text to Speech"

Chung-Ming Chien 1k Dec 30, 2022
Simple Speech to Text, Text to Speech

Simple Speech to Text, Text to Speech 1. Download Repository Opsi 1 Download repository ini, extract di lokasi yang diinginkan Opsi 2 Jika sudah famil

Habib Abdurrasyid 5 Dec 28, 2021
Ptorch NLU, a Chinese text classification and sequence annotation toolkit, supports multi class and multi label classification tasks of Chinese long text and short text, and supports sequence annotation tasks such as Chinese named entity recognition, part of speech tagging and word segmentation.

Pytorch-NLU,一个中文文本分类、序列标注工具包,支持中文长文本、短文本的多类、多标签分类任务,支持中文命名实体识别、词性标注、分词等序列标注任务。 Ptorch NLU, a Chinese text classification and sequence annotation toolkit, supports multi class and multi label classification tasks of Chinese long text and short text, and supports sequence annotation tasks such as Chinese named entity recognition, part of speech tagging and word segmentation.

null 186 Dec 24, 2022
Simple Text-To-Speech Bot For Discord

Simple Text-To-Speech Bot For Discord This is a very simple TTS bot for discord made with python. For this bot you need FFMPEG, see installation to se

null 1 Sep 26, 2022
A Python module made to simplify the usage of Text To Speech and Speech Recognition.

Nav Module The solution for voice related stuff in Python Nav is a Python module which simplifies voice related stuff in Python. Just import the Modul

Snm Logic 1 Dec 20, 2021
Code for ACL 2022 main conference paper "STEMM: Self-learning with Speech-text Manifold Mixup for Speech Translation".

STEMM: Self-learning with Speech-Text Manifold Mixup for Speech Translation This is a PyTorch implementation for the ACL 2022 main conference paper ST

ICTNLP 29 Oct 16, 2022
This repository contains data used in the NAACL 2021 Paper - Proteno: Text Normalization with Limited Data for Fast Deployment in Text to Speech Systems

Proteno This is the data release associated with the corresponding NAACL 2021 Paper - Proteno: Text Normalization with Limited Data for Fast Deploymen

null 37 Dec 4, 2022
Unofficial Implementation of Zero-Shot Text-to-Speech for Text-Based Insertion in Audio Narration

Zero-Shot Text-to-Speech for Text-Based Insertion in Audio Narration This repo contains only model Implementation of Zero-Shot Text-to-Speech for Text

Rishikesh (ऋषिकेश) 33 Sep 22, 2022
glow-speak is a fast, local, neural text to speech system that uses eSpeak-ng as a text/phoneme front-end.

Glow-Speak glow-speak is a fast, local, neural text to speech system that uses eSpeak-ng as a text/phoneme front-end. Installation git clone https://g

Rhasspy 8 Dec 25, 2022
Neural building blocks for speaker diarization: speech activity detection, speaker change detection, overlapped speech detection, speaker embedding

⚠️ Checkout develop branch to see what is coming in pyannote.audio 2.0: a much smaller and cleaner codebase Python-first API (the good old pyannote-au

pyannote 2.2k Jan 9, 2023
Speech Recognition for Uyghur using Speech transformer

Speech Recognition for Uyghur using Speech transformer Training: this model using CTC loss and Cross Entropy loss for training. Download pretrained mo

Uyghur 11 Nov 17, 2022
Shirt Bot is a discord bot which uses GPT-3 to generate text

SHIRT BOT · Shirt Bot is a discord bot which uses GPT-3 to generate text. Made by Cyclcrclicly#3420 (474183744685604865) on Discord. Support Server EX

null 31 Oct 31, 2022
Bidirectional Variational Inference for Non-Autoregressive Text-to-Speech (BVAE-TTS)

Bidirectional Variational Inference for Non-Autoregressive Text-to-Speech (BVAE-TTS) Yoonhyung Lee, Joongbo Shin, Kyomin Jung Abstract: Although early

LEE YOON HYUNG 147 Dec 5, 2022
Simple, Pythonic, text processing--Sentiment analysis, part-of-speech tagging, noun phrase extraction, translation, and more.

TextBlob: Simplified Text Processing Homepage: https://textblob.readthedocs.io/ TextBlob is a Python (2 and 3) library for processing textual data. It

Steven Loria 8.4k Dec 26, 2022
Simple, Pythonic, text processing--Sentiment analysis, part-of-speech tagging, noun phrase extraction, translation, and more.

TextBlob: Simplified Text Processing Homepage: https://textblob.readthedocs.io/ TextBlob is a Python (2 and 3) library for processing textual data. It

Steven Loria 7.5k Feb 17, 2021
LightSpeech: Lightweight and Fast Text to Speech with Neural Architecture Search

LightSpeech UnOfficial PyTorch implementation of LightSpeech: Lightweight and Fast Text to Speech with Neural Architecture Search.

Rishikesh (ऋषिकेश) 54 Dec 3, 2022