diff --git a/packages/fakeyou/public/mascot/guide.webp b/packages/fakeyou/public/mascot/guide.webp new file mode 100644 index 0000000000..b69a658423 Binary files /dev/null and b/packages/fakeyou/public/mascot/guide.webp differ diff --git a/packages/fakeyou/public/mascot/tou.webp b/packages/fakeyou/public/mascot/tou.webp new file mode 100644 index 0000000000..94c3155774 Binary files /dev/null and b/packages/fakeyou/public/mascot/tou.webp differ diff --git a/packages/fakeyou/src/v2/view/NewTopNavFc.tsx b/packages/fakeyou/src/v2/view/NewTopNavFc.tsx index c4d3b22a68..c10654e55f 100644 --- a/packages/fakeyou/src/v2/view/NewTopNavFc.tsx +++ b/packages/fakeyou/src/v2/view/NewTopNavFc.tsx @@ -16,6 +16,7 @@ import { faSignOutAlt, faComputer, faLaptop, + faBook, } from "@fortawesome/free-solid-svg-icons"; import { faDiscord, faPatreon } from "@fortawesome/free-brands-svg-icons"; import { Logout } from "@storyteller/components/src/api/session/Logout"; @@ -411,6 +412,16 @@ function NewTopNavFc(props: Props) { Patrons +
  • + + + Guide + +
  • void, + sessionWrapper: SessionWrapper; + querySessionAction: () => void; - isShowingVocodesNotice: boolean, - clearVocodesNotice: () => void, + isShowingVocodesNotice: boolean; + clearVocodesNotice: () => void; - isShowingLangaugeNotice: boolean, - clearLanguageNotice: () => void, - displayLanguage: Language, - primaryLanguageCode: string, + isShowingLangaugeNotice: boolean; + clearLanguageNotice: () => void; + displayLanguage: Language; + primaryLanguageCode: string; - isShowingTwitchTtsNotice: boolean, - clearTwitchTtsNotice: () => void, + isShowingTwitchTtsNotice: boolean; + clearTwitchTtsNotice: () => void; - isShowingPleaseFollowNotice: boolean, - clearPleaseFollowNotice: () => void, + isShowingPleaseFollowNotice: boolean; + clearPleaseFollowNotice: () => void; - isShowingBootstrapLanguageNotice: boolean, - clearBootstrapLanguageNotice: () => void, + isShowingBootstrapLanguageNotice: boolean; + clearBootstrapLanguageNotice: () => void; - enqueueTtsJob: (jobToken: string) => void, - ttsInferenceJobs: Array, + enqueueTtsJob: (jobToken: string) => void; + ttsInferenceJobs: Array; - enqueueW2lJob: (jobToken: string) => void, - w2lInferenceJobs: Array, + enqueueW2lJob: (jobToken: string) => void; + w2lInferenceJobs: Array; - enqueueTtsModelUploadJob: (jobToken: string) => void, - ttsModelUploadJobs: Array, + enqueueTtsModelUploadJob: (jobToken: string) => void; + ttsModelUploadJobs: Array; - enqueueW2lTemplateUploadJob: (jobToken: string) => void, - w2lTemplateUploadJobs: Array, + enqueueW2lTemplateUploadJob: (jobToken: string) => void; + w2lTemplateUploadJobs: Array; - enqueueVocoderUploadJob: (jobToken: string) => void, - vocoderUploadJobs: Array, + enqueueVocoderUploadJob: (jobToken: string) => void; + vocoderUploadJobs: Array; - textBuffer: string, - setTextBuffer: (textBuffer: string) => void, - clearTextBuffer: () => void, + textBuffer: string; + setTextBuffer: (textBuffer: string) => void; + clearTextBuffer: () => void; - ttsModels: Array, - setTtsModels: (ttsVoices: Array) => void, + ttsModels: Array; + setTtsModels: (ttsVoices: Array) => void; - allTtsCategories: TtsCategoryType[], - setAllTtsCategories: (allTtsCategories: TtsCategoryType[]) => void, + allTtsCategories: TtsCategoryType[]; + setAllTtsCategories: (allTtsCategories: TtsCategoryType[]) => void; - allTtsCategoriesByTokenMap: Map, - allTtsModelsByTokenMap: Map, - ttsModelsByCategoryToken: Map>, + allTtsCategoriesByTokenMap: Map; + allTtsModelsByTokenMap: Map; + ttsModelsByCategoryToken: Map>; - dropdownCategories: TtsCategoryType[][], - setDropdownCategories: (dropdownCategories: TtsCategoryType[][]) => void, - selectedCategories: TtsCategoryType[], - setSelectedCategories: (selectedCategories: TtsCategoryType[]) => void, + dropdownCategories: TtsCategoryType[][]; + setDropdownCategories: (dropdownCategories: TtsCategoryType[][]) => void; + selectedCategories: TtsCategoryType[]; + setSelectedCategories: (selectedCategories: TtsCategoryType[]) => void; - maybeSelectedTtsModel?: TtsModelListItem, - setMaybeSelectedTtsModel: (maybeSelectedTtsModel: TtsModelListItem) => void, + maybeSelectedTtsModel?: TtsModelListItem; + setMaybeSelectedTtsModel: (maybeSelectedTtsModel: TtsModelListItem) => void; } -interface State { -} +interface State {} class NewVocodesContainer extends React.Component { - constructor(props: Props) { super(props); - this.state = { - } + this.state = {}; } - logout = () => { - } + logout = () => {}; public render() { return (
    - { - + - + @@ -163,28 +155,21 @@ class NewVocodesContainer extends React.Component { /> - - + - + - + { }} + querySessionCallback={() => {}} sessionWrapper={this.props.sessionWrapper} /> @@ -199,21 +184,15 @@ class NewVocodesContainer extends React.Component { */} - + - + - + @@ -225,9 +204,7 @@ class NewVocodesContainer extends React.Component { - + @@ -248,27 +225,19 @@ class NewVocodesContainer extends React.Component { - + - + - + - + @@ -278,9 +247,7 @@ class NewVocodesContainer extends React.Component { - + @@ -292,16 +259,16 @@ class NewVocodesContainer extends React.Component { - + @@ -309,7 +276,9 @@ class NewVocodesContainer extends React.Component { @@ -330,15 +299,11 @@ class NewVocodesContainer extends React.Component { - + - + @@ -396,9 +361,7 @@ class NewVocodesContainer extends React.Component { - + @@ -406,9 +369,7 @@ class NewVocodesContainer extends React.Component { - + @@ -419,8 +380,12 @@ class NewVocodesContainer extends React.Component { + + + + - + @@ -433,10 +398,16 @@ class NewVocodesContainer extends React.Component { displayLanguage={this.props.displayLanguage} isShowingTwitchTtsNotice={this.props.isShowingTwitchTtsNotice} clearTwitchTtsNotice={this.props.clearTwitchTtsNotice} - isShowingPleaseFollowNotice={this.props.isShowingPleaseFollowNotice} + isShowingPleaseFollowNotice={ + this.props.isShowingPleaseFollowNotice + } clearPleaseFollowNotice={this.props.clearPleaseFollowNotice} - isShowingBootstrapLanguageNotice={this.props.isShowingBootstrapLanguageNotice} - clearBootstrapLanguageNotice={this.props.clearBootstrapLanguageNotice} + isShowingBootstrapLanguageNotice={ + this.props.isShowingBootstrapLanguageNotice + } + clearBootstrapLanguageNotice={ + this.props.clearBootstrapLanguageNotice + } enqueueTtsJob={this.props.enqueueTtsJob} ttsInferenceJobs={this.props.ttsInferenceJobs} ttsModelUploadJobs={this.props.ttsModelUploadJobs} @@ -449,7 +420,9 @@ class NewVocodesContainer extends React.Component { setTtsModels={this.props.setTtsModels} allTtsCategories={this.props.allTtsCategories} setAllTtsCategories={this.props.setAllTtsCategories} - allTtsCategoriesByTokenMap={this.props.allTtsCategoriesByTokenMap} + allTtsCategoriesByTokenMap={ + this.props.allTtsCategoriesByTokenMap + } allTtsModelsByTokenMap={this.props.allTtsModelsByTokenMap} ttsModelsByCategoryToken={this.props.ttsModelsByCategoryToken} dropdownCategories={this.props.dropdownCategories} @@ -460,17 +433,13 @@ class NewVocodesContainer extends React.Component { setMaybeSelectedTtsModel={this.props.setMaybeSelectedTtsModel} /> - - - +
    - ) + ); } } -export { NewVocodesContainer } +export { NewVocodesContainer }; diff --git a/packages/fakeyou/src/v2/view/about/guide_page/GuidePage.tsx b/packages/fakeyou/src/v2/view/about/guide_page/GuidePage.tsx new file mode 100644 index 0000000000..91b23a6a63 --- /dev/null +++ b/packages/fakeyou/src/v2/view/about/guide_page/GuidePage.tsx @@ -0,0 +1,137 @@ +import React from "react"; +import { motion } from "framer-motion"; +import { container, item, panel, image } from "../../../../data/animation"; +import { Link } from "react-router-dom"; + +interface Props {} + +function GuidePage(props: Props) { + return ( + +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + FakeYou TTS Guide + +
    +
    + +

    How to generate the best sounding TTS

    +
    +
    +
    + + + + + +
    +
    +
    +
    +
    + + +
    +

    Quick Tips

    +
    +

    + These are some tips to generate the best sounding text-to-speech. +

    +
    +

    Preventing TTS strokes

    +

    + A TTS stroke is when the generated audio becomes garbled and + incoherent. +

    +

    + This can be fixed by adding an ending punctuation as without + one, this will happen frequently. If the message still messes + up, add a comma at the start and end so the program can take a + brief pause and usually corrects it. +

    +
    +
    +

    + Purposefully misspelling words to get correct + pronunciation/manner of speech +

    +

    + Sometimes the TTS program cannot accurately read the word or you + want a word pronounced a certain way. You can experiment with + it. For example, to say the word "ass" with a certain hit, spell + it as "asz". Or another example, Games = Gaymes. +

    +
    +
    +

    Fluffing

    +

    + To get a certain emotion and personality in the message you + want, add fluff. To do this, add the first sentence with words + that you have no intention of using. Like bunch of cursing and + such. " + + Fuck you bitch! I hate you! + {" "} + I cant believe you said that to me!". You can remove the first + sentence you had no intention of using in an audio editor of + your choice like Audacity. +

    +
    +
    +

    Yelling

    +

    + This only works if the dataset has yelling and transcript + properly. When you do the transcript of a character that yells, + add an exclamation mark on the transcript clip that has yelling + and periods for normal speech. This will easier trigger angry + emotions. But the yelling will likely not happen with smaller + datasets or if the yelling is not at all in the dataset. +

    +
    +
    +
    +
    + + +
    +

    Generate your TTS now!

    +
    +
    + + + +
    +
    +
    +
    +
    + ); +} + +export { GuidePage }; diff --git a/packages/fakeyou/src/v2/view/about/terms_page/TermsPage.tsx b/packages/fakeyou/src/v2/view/about/terms_page/TermsPage.tsx index 65da2e2a3a..d0d6373b72 100644 --- a/packages/fakeyou/src/v2/view/about/terms_page/TermsPage.tsx +++ b/packages/fakeyou/src/v2/view/about/terms_page/TermsPage.tsx @@ -1,6 +1,6 @@ import React from "react"; import { motion } from "framer-motion"; -import { container, item, panel } from "../../../../data/animation"; +import { container, item, panel, image } from "../../../../data/animation"; import { ThirdPartyLinks } from "@storyteller/components/src/constants/ThirdPartyLinks"; interface Props {} @@ -8,15 +8,36 @@ interface Props {} function TermsPage(props: Props) { return ( -
    -
    -
    - - Terms and Conditions - - - Please use this technology responsibly. - +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + Terms and Conditions + +
    +
    + +

    Please use this technology responsibly.

    +
    +
    +
    diff --git a/packages/fakeyou/src/v2/view/patrons/PatronPage.tsx b/packages/fakeyou/src/v2/view/patrons/PatronPage.tsx index 200ad23b8f..14875e89ee 100644 --- a/packages/fakeyou/src/v2/view/patrons/PatronPage.tsx +++ b/packages/fakeyou/src/v2/view/patrons/PatronPage.tsx @@ -28,7 +28,10 @@ function PatronPage(props: Props) { expensive server bills. - +