| 1 | <div id="tts_settings"> |
| 2 | <div class="inline-drawer"> |
| 3 | <div class="inline-drawer-toggle inline-drawer-header"> |
| 4 | <b>TTS</b> |
| 5 | <div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div> |
| 6 | </div> |
| 7 | <div class="inline-drawer-content"> |
| 8 | <div id="tts_status"> |
| 9 | </div> |
| 10 | <span data-i18n="Select TTS Provider">Select TTS Provider</span> |
| 11 | <br> |
| 12 | <div class="tts_block"> |
| 13 | <select id="tts_provider" class="flex1"> |
| 14 | </select> |
| 15 | <input id="tts_refresh" data-i18n="[value]tts_refresh" class="menu_button" type="submit" value="Reload" /> |
| 16 | </div> |
| 17 | <div> |
| 18 | <label class="checkbox_label" for="tts_enabled"> |
| 19 | <input type="checkbox" id="tts_enabled" name="tts_enabled"> |
| 20 | <small data-i18n="tts_enabled">Enabled</small> |
| 21 | </label> |
| 22 | <label class="checkbox_label" for="tts_narrate_user"> |
| 23 | <input type="checkbox" id="tts_narrate_user"> |
| 24 | <small data-i18n="Narrate user messages">Narrate user messages</small> |
| 25 | </label> |
| 26 | <label class="checkbox_label" for="tts_auto_generation"> |
| 27 | <input type="checkbox" id="tts_auto_generation"> |
| 28 | <small data-i18n="Auto Generation">Auto Generation</small> |
| 29 | </label> |
| 30 | <label class="checkbox_label" for="tts_periodic_auto_generation" data-i18n="[title]Requires auto generation to be enabled." title="Requires auto generation to be enabled."> |
| 31 | <input type="checkbox" id="tts_periodic_auto_generation"> |
| 32 | <small data-i18n="Narrate by paragraphs (when streaming)">Narrate by paragraphs (when streaming)</small> |
| 33 | </label> |
| 34 | <label class="checkbox_label" for="tts_narrate_by_paragraphs"> |
| 35 | <input type="checkbox" id="tts_narrate_by_paragraphs"> |
| 36 | <small data-i18n="Narrate by paragraphs (when not streaming)">Narrate by paragraphs (when not streaming)</small> |
| 37 | </label> |
| 38 | <label class="checkbox_label" for="tts_narrate_quoted"> |
| 39 | <input type="checkbox" id="tts_narrate_quoted"> |
| 40 | <small data-i18n="Only narrate quotes">Only narrate "quotes"</small> |
| 41 | </label> |
| 42 | <label class="checkbox_label" for="tts_narrate_dialogues"> |
| 43 | <input type="checkbox" id="tts_narrate_dialogues"> |
| 44 | <small data-i18n="Ignore text, even quotes, inside asterisk">Ignore *text, even "quotes", inside asterisks*</small> |
| 45 | </label> |
| 46 | <label class="checkbox_label" for="tts_narrate_translated_only"> |
| 47 | <input type="checkbox" id="tts_narrate_translated_only"> |
| 48 | <small data-i18n="Narrate only the translated text">Narrate only the translated text</small> |
| 49 | </label> |
| 50 | <label class="checkbox_label" for="tts_skip_codeblocks"> |
| 51 | <input type="checkbox" id="tts_skip_codeblocks"> |
| 52 | <small data-i18n="Skip codeblocks">Skip codeblocks</small> |
| 53 | </label> |
| 54 | <label class="checkbox_label" for="tts_skip_tags"> |
| 55 | <input type="checkbox" id="tts_skip_tags"> |
| 56 | <small data-i18n="Skip tagged blocks">Skip <tagged> blocks</small> |
| 57 | </label> |
| 58 | <label class="checkbox_label" for="tts_pass_asterisks"> |
| 59 | <input type="checkbox" id="tts_pass_asterisks"> |
| 60 | <small data-i18n="Pass Asterisks to TTS Engine">Pass Asterisks to TTS Engine</small> |
| 61 | </label> |
| 62 | <label class="checkbox_label" for="tts_multi_voice_enabled" |
| 63 | data-i18n="[title]Works best when: Pass Asterisks to TTS Engine is enabled, and both Only narrate quotes and Ignore *text, even 'quotes', inside asterisks* are disabled." |
| 64 | title="Works best when: Pass Asterisks to TTS Engine is enabled, and both Only narrate quotes and Ignore *text, even 'quotes', inside asterisks* are disabled."> |
| 65 | <input type="checkbox" id="tts_multi_voice_enabled"> |
| 66 | <small data-i18n="Different voices for quotes and text inside asterisks"> |
| 67 | Different voices for "quotes", *text inside asterisks* and other text |
| 68 | </small> |
| 69 | </label> |
| 70 | <label class="checkbox_label" for="tts_apply_regex" title="Applies the regex pattern to filter text before TTS."> |
| 71 | <input type="checkbox" id="tts_apply_regex"> |
| 72 | <small data-i18n="Apply regex filter">Apply regex filter to text</small> |
| 73 | </label> |
| 74 | <div id="tts_regex_block" class="marginTop5"> |
| 75 | <div class="range-block-title justifyLeft"> |
| 76 | <small data-i18n="Regex Pattern">Regex Pattern (removes matching text)</small> |
| 77 | </div> |
| 78 | <input type="text" id="tts_regex_pattern" class="text_pole width100p" placeholder="Example: /[^a-zA-Z0-9\s.,!?;:'"()]+/g" /> |
| 79 | <small id="tts_regex_warning" class="warning" data-i18n="Invalid regex pattern.">Invalid regex pattern.</small> |
| 80 | </div> |
| 81 | </div> |
| 82 | <div id="playback_rate_block" class="range-block"> |
| 83 | <hr> |
| 84 | <div class="range-block-title justifyLeft"> |
| 85 | <small data-i18n="Audio Playback Speed">Audio Playback Speed</small> |
| 86 | </div> |
| 87 | <div class="range-block-range-and-counter"> |
| 88 | <div class="range-block-range"> |
| 89 | <input type="range" id="playback_rate" name="volume" min="0" max="3" step="0.05"> |
| 90 | </div> |
| 91 | <div class="range-block-counter"> |
| 92 | <input type="number" min="0" max="3" step="0.05" data-for="playback_rate" id="playback_rate_counter"> |
| 93 | </div> |
| 94 | </div> |
| 95 | </div> |
| 96 | <div id="tts_voicemap_block"> |
| 97 | </div> |
| 98 | <hr> |
| 99 | <form id="tts_provider_settings"> |
| 100 | </form> |
| 101 | <div class="tts_buttons"> |
| 102 | <input id="tts_voices" class="menu_button" data-i18n="[value]Available voices" type="submit" value="Available voices" /> |
| 103 | </div> |
| 104 | </div> |
| 105 | </div> |
| 106 | </div> |