Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds TTS to announcements made by the Captain and silicons #72300

Closed
wants to merge 46 commits into from

Conversation

Watermelon914
Copy link
Member

@Watermelon914 Watermelon914 commented Dec 27, 2022

About The Pull Request

TTS currently can't handle every client having their own voice, so it's been limited to announcements made by the Captain and silicon players.
In the future, if we get a GPU server, it may become a more viable option to implement every client having their own voice because GPUs are great at concurrency.

It's all handled via python http requests to a local server. Docker is required to set up, but the container can be held on a separate linux server as it's only used to process text into audio and send it back via http requests.

TTS engine used in python script:
VITS: https://arxiv.org/pdf/2106.06103
coqui: https://github.com/coqui-ai/TTS

Base image is debian.

This is all handled locally. There are no calls to a third-party service.

Why It's Good For The Game

TTS is cool.

Changelog

🆑 Watermelon914, Iamgoofball, MrStonedOne
add: Adds TTS to announcements made by the Captain and silicon players.
/:cl:

@tgstation-server tgstation-server added Feature Exposes new bugs in interesting ways Tools We pretend to be a real development community labels Dec 27, 2022
@Watermelon914 Watermelon914 marked this pull request as draft December 27, 2022 22:37
@ghost
Copy link

ghost commented Dec 27, 2022

will this use the same TTS as that one testmerge?

Copy link
Member

@MrStonedOne MrStonedOne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR needs more documentation in the PR body about the TTS engine used. Website, a non-generic name (tts, the name of the python package is too generic and not googleable), etc

PR needs a documentation file that includes links to the documentation of the tts engine. Including the code documentation.

PR needs to specify in the pr body rather or not the tts package calls out to another 3rd party service or generates it locally.

tools/tts/Dockerfile Outdated Show resolved Hide resolved
@tgstation-server tgstation-server added the Config Update Time to bother the headadmins for three months to get your config applied label Dec 27, 2022
@Watermelon914
Copy link
Member Author

will this use the same TTS as that one testmerge?

no, that was using a third party.
This is using a library. The voices are pretty boring, but I think we can train and use better voices, goof seems to have a few ideas on how to do that.

@Mothblocks Mothblocks added the Needs Pictures I want to make sure you ran this on your local machine label Dec 28, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Dec 28, 2022

This pull request was test merged in 361 round(s).

Round list

sybil

manuel

bagil

terry

@Addust

This comment was marked as off-topic.

@Addust

This comment was marked as off-topic.

@CMDR-Gungnir
Copy link
Contributor

This was really good! Could you at least tell us what happened?

@Watermelon914
Copy link
Member Author

Watermelon914 commented Jan 17, 2023

lost interest in working on it, it was practically feature complete but I was waiting on goof to finish training his dataset but it never really got to a point where it sounded good enough to test on the servers.
There were also a variety of other issues regarding scaling it up and figuring out how to send the sounds to the client (because byond IO sucks)

@CMDR-Gungnir
Copy link
Contributor

That's fair enough.

@TheSmallBlue
Copy link
Contributor

TheSmallBlue commented Jan 17, 2023

A shame. Maybe it'd be worth making in a way smaller scale exclusively for AI vox, but I don't know if you're interested in that

@Watermelon914
Copy link
Member Author

A shame. Maybe it'd be worth making in a way smaller scale exclusively for AI vox, but I don't know if you're interested in that

The issues regarding it weren't dealbreakers nor impossible to fix, it's just that they took effort
Plus most of them were already sort of fixed, I just needed the dataset and to slightly configure the code

@Watermelon914 Watermelon914 reopened this Mar 12, 2023
@tgstation-server tgstation-server removed the Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts label Mar 12, 2023
@Watermelon914 Watermelon914 changed the title [Draft] Adds TTS to the game [Draft] Adds TTS to announcements made by the Captain and silicons Mar 12, 2023
@Watermelon914 Watermelon914 removed the Do Not TM If you test merge this, MSO is going to wake up label Mar 12, 2023
@Watermelon914 Watermelon914 changed the title [Draft] Adds TTS to announcements made by the Captain and silicons Adds TTS to announcements made by the Captain and silicons Mar 12, 2023
@Watermelon914 Watermelon914 added the Do Not Merge You must have really upset someone label Mar 12, 2023
@Watermelon914 Watermelon914 marked this pull request as ready for review March 12, 2023 14:29
@Watermelon914 Watermelon914 removed the Do Not Merge You must have really upset someone label Mar 12, 2023
@TheSmallBlue
Copy link
Contributor

Hell yeah, we're back babyyyyy

@TheSilverNuke
Copy link
Contributor

This reminds me of when we outsourced to that AI website. Those were good times. Glad something similar is being implemented.

@san7890
Copy link
Member

san7890 commented Mar 13, 2023

this is a very non-visible PR at the absolute bottom of the list and a lot of the technical grievances that were addressed in the comments here no longer apply due to the infrequent nature of announcements- let alone cover an entirely different subject body, making some of the feedback given pre-rename feel a bit odd

would you kindly make a new PR such that it gains more visibility/traction from interested parties and not linger down here in the bowels of the PR list

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Config Update Time to bother the headadmins for three months to get your config applied Feature Exposes new bugs in interesting ways 📌 Test Merge Candidate This version will not be removed by actions when the PR is updated Tools We pretend to be a real development community UI We make the game less playable, but with round edges
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet