Updates to TTS Engines
This commit is contained in:
1 parent
7e73053fd7
commit
1a5c10710d
19 files changed
+6420
-2572
No files matched your search
@@ -0,0 +1,432 @@
|
||||
# help_content.py
|
||||
# pylint: disable=no-member
|
||||
|
||||
class AllTalkHelpContent:
|
||||
"""CSS and help content for help_content.py"""
|
||||
custom_css = """
|
||||
/* Add this to your existing CSS */
|
||||
.gradio-container .prose {
|
||||
max-width: none !important;
|
||||
padding: 0.5rem !important; /* Reduced padding */
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.custom-markdown div {
|
||||
border: none !important; /* Remove the inner border */
|
||||
margin-top: 0 !important; /* Remove top margin */
|
||||
margin-bottom: 0 !important; /* Remove bottom margin */
|
||||
padding-top: 0 !important; /* Remove top padding */
|
||||
padding-bottom: 0 !important; /* Remove bottom padding */
|
||||
}
|
||||
|
||||
/* Update the existing custom-markdown class */
|
||||
.custom-markdown {
|
||||
font-size: 15px !important;
|
||||
line-height: 1.6 !important;
|
||||
color: var(--body-text-color) !important;
|
||||
background-color: var(--background-fill-primary) !important;
|
||||
border: 1px solid var(--border-color-primary) !important;
|
||||
border-radius: 8px !important;
|
||||
padding: 0.5rem !important;
|
||||
margin: 0 !important; /* Changed from 1rem 0 to 0 */
|
||||
max-width: 100% !important;
|
||||
box-sizing: border-box !important;
|
||||
/* Default text color for all content (grey) */
|
||||
color: rgba(156, 163, 175, 1) !important; /* Adjust this grey value to match your interface */
|
||||
}
|
||||
|
||||
/* Make headings white */
|
||||
.custom-markdown h1,
|
||||
.custom-markdown h2,
|
||||
.custom-markdown h3,
|
||||
.custom-markdown h4,
|
||||
.custom-markdown h5,
|
||||
.custom-markdown h6 {
|
||||
color: var(--heading-text-color, var(--body-text-color)) !important;
|
||||
font-weight: 600 !important;
|
||||
}
|
||||
|
||||
/* Keep all other elements in the grey color */
|
||||
.custom-markdown p,
|
||||
.custom-markdown li,
|
||||
.custom-markdown ul,
|
||||
.custom-markdown ol {
|
||||
color: rgba(156, 163, 175, 1) !important; /* Same grey as the base text */
|
||||
}
|
||||
|
||||
/* Additional targeting for any wrapping elements */
|
||||
.gradio-container .prose > * {
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
/* Update the list item spacing in your existing CSS */
|
||||
.custom-markdown li {
|
||||
font-size: 0.95rem !important;
|
||||
margin-bottom: 0.2rem !important; /* Reduced from 0.5rem to 0.3rem */
|
||||
}
|
||||
|
||||
/* Add specific styling for definition-style lists (like your Default, Recommendation, Tip items) */
|
||||
.custom-markdown li p {
|
||||
margin: 0 !important; /* Remove paragraph margins within list items */
|
||||
}
|
||||
|
||||
/* If you need even tighter spacing for specific types of lists */
|
||||
.custom-markdown li + li {
|
||||
margin-top: 0.2rem !important; /* Space between consecutive list items */
|
||||
}
|
||||
|
||||
/* Ensure nested lists maintain proper spacing */
|
||||
.custom-markdown li > ul,
|
||||
.custom-markdown li > ol {
|
||||
margin: 0.2rem 0 0.2rem 1rem !important; /* Reduced from 0.5rem */
|
||||
}
|
||||
|
||||
/* Consistent heading styles */
|
||||
.custom-markdown h2 {
|
||||
font-size: 1.2rem !important; /* Fixed size relative to root */
|
||||
font-weight: 600 !important;
|
||||
margin: 1.5rem 0 1rem !important;
|
||||
color: var(--heading-text-color, var(--body-text-color)) !important;
|
||||
border-bottom: 1px solid var(--border-color-primary) !important;
|
||||
padding-bottom: 0.5rem !important;
|
||||
}
|
||||
|
||||
/* First paragraph styling */
|
||||
.custom-markdown p:first-of-type {
|
||||
font-size: 0.95rem !important; /* Match base size */
|
||||
font-weight: 400 !important;
|
||||
margin-bottom: 1rem !important;
|
||||
}
|
||||
|
||||
/* Regular paragraphs */
|
||||
.custom-markdown p {
|
||||
font-size: 0.95rem !important;
|
||||
margin: 0.8rem 0 !important;
|
||||
}
|
||||
|
||||
/* List styling */
|
||||
.custom-markdown ul,
|
||||
.custom-markdown ol {
|
||||
margin: 0.8rem 0 !important;
|
||||
padding-left: 1.5rem !important;
|
||||
}
|
||||
|
||||
/* Code styling */
|
||||
.custom-markdown code {
|
||||
font-family: ui-monospace, monospace !important;
|
||||
background-color: var(--background-fill-secondary) !important;
|
||||
padding: 0.2rem 0.4rem !important;
|
||||
border-radius: 4px !important;
|
||||
font-size: 0.8rem !important; /* Slightly smaller than regular text */
|
||||
color: var(--body-text-color) !important;
|
||||
}
|
||||
|
||||
/* Add styles for bold and emphasis */
|
||||
.custom-markdown strong {
|
||||
font-weight: 600 !important;
|
||||
color: var(--body-text-color) !important;
|
||||
}
|
||||
|
||||
.custom-markdown em {
|
||||
font-style: italic !important;
|
||||
}
|
||||
|
||||
/* Ensure both columns take equal width */
|
||||
.gradio-row > div {
|
||||
flex: 1 1 50% !important;
|
||||
min-width: 0 !important; /* Prevents flex items from overflowing */
|
||||
}
|
||||
"""
|
||||
|
||||
ENGINE_INFORMATION = """
|
||||
## 🔊 TTS Engine Capabilities Help
|
||||
|
||||
This guide explains the various capabilities that **may** be available in different TTS engines and models. Each capability affects how the TTS engine processes and generates speech output.
|
||||
"""
|
||||
|
||||
ENGINE_INFORMATION1 = """
|
||||
## 🚀 Performance Features
|
||||
|
||||
- **DeepSpeed Capable**: Enables GPU acceleration using the DeepSpeed optimization library.
|
||||
- **Requires**: NVIDIA GPU with CUDA support
|
||||
- **Benefit**: Significantly faster text-to-speech generation
|
||||
- **Note**: Model must specifically support DeepSpeed inference
|
||||
|
||||
- **Low VRAM Capable**: Optimized for systems with limited GPU memory.
|
||||
- **Benefit**: Efficient memory management between CPU and GPU
|
||||
- **Use Case**: Ideal when running alongside other GPU-intensive applications like LLMs
|
||||
- **Note**: May trade speed for memory efficiency
|
||||
|
||||
- **Streaming Capable**: Enables real-time speech generation.
|
||||
- **Benefit**: Immediate playback without generating entire audio first
|
||||
- **Use Case**: Interactive applications and real-time responses
|
||||
- **Note**: Not all output formats support streaming
|
||||
|
||||
## 🎵 Voice Control Features
|
||||
|
||||
- **Pitch Capable**: Allows adjustment of voice pitch.
|
||||
- **Benefit**: Creates more expressive and varied speech output
|
||||
- **Use Case**: Customizing voice characteristics
|
||||
- **Note**: Adjustment range varies by model
|
||||
|
||||
- **Generation Speed Capable**: Controls speech rate.
|
||||
- **Benefit**: Adjustable playback speed during generation
|
||||
- **Use Case**: Creating faster or slower speech output
|
||||
- **Note**: May affect audio quality at extreme settings
|
||||
|
||||
- **Temperature Capable**: Controls output randomness.
|
||||
- **Benefit**: Adjustable speech variation and creativity
|
||||
- **Use Case**: Balancing consistency vs. naturality
|
||||
- **Note**: Higher values increase variation but may reduce quality
|
||||
"""
|
||||
|
||||
ENGINE_INFORMATION2 = """
|
||||
## 🎯 Quality Enhancement Features
|
||||
|
||||
- **Repetition Penalty Capable**: Prevents unnatural speech patterns.
|
||||
- **Benefit**: Reduces repeated sounds and phrases
|
||||
- **Use Case**: Improving natural flow of longer texts
|
||||
- **Note**: Strength of penalty may be adjustable
|
||||
|
||||
## 🌐 Multi-Feature Support
|
||||
|
||||
- **Multi-Languages Capable Models**: Each model Supports multiple languages.
|
||||
- **Benefit**: Generate speech in different languages
|
||||
- **Note**: Quality may vary between languages
|
||||
- **Tip**: Check model-specific language support
|
||||
|
||||
- **Multi-Voice Capable**: Supports multiple speaking voices.
|
||||
- **Benefit**: Different voices or speaking styles
|
||||
- **Types**: Pre-trained voices or voice cloning
|
||||
- **Note**: Voice quality may vary by model
|
||||
|
||||
- **Multi-Model Capable Engine**: Supports multiple TTS models.
|
||||
- **Benefit**: Flexibility in model selection
|
||||
- **Use Case**: Switching between models for different needs
|
||||
- **Note**: Each model may have different capabilities
|
||||
|
||||
## 📁 Technical Features
|
||||
|
||||
- **Default Audio Output Format**: Specifies output file format.
|
||||
- **Common Formats**: WAV, MP3, FLAC, Opus, AAC, PCM
|
||||
- **Note**: Transcoding to different formats adds processing time
|
||||
- **Warning**: Not all formats support streaming
|
||||
|
||||
- **Platform Support**: Operating system compatibility.
|
||||
- **Platforms**: Windows, Linux, macOS
|
||||
- **Note**: Additional setup may be required
|
||||
- **Warning**: Support level may vary by platform
|
||||
"""
|
||||
|
||||
DEFAULT_SETTINGS = """
|
||||
## 🎯 TTS Engine Settings Help
|
||||
|
||||
This guide explains the settings and configuration options available for individual Text-to-Speech engines within AllTalk.
|
||||
"""
|
||||
|
||||
DEFAULT_SETTINGS1 = """
|
||||
## 🎚️ Engine Capabilities & Controls
|
||||
|
||||
- **Low VRAM Mode**
|
||||
- Optimizes memory usage for systems with limited GPU memory
|
||||
- Efficiently manages resources by moving data between CPU and GPU
|
||||
- Recommended for systems with less than 4GB VRAM or when running alongside other GPU-intensive applications
|
||||
|
||||
- **DeepSpeed Capability**
|
||||
- Accelerates TTS generation using optimized inference
|
||||
- Only available for engines and models that support DeepSpeed
|
||||
- Requires NVIDIA GPU with CUDA support
|
||||
|
||||
- **Temperature Control**
|
||||
- Adjusts the variability in speech generation
|
||||
- **Range**: 0.0 to 1.0
|
||||
- **Lower values** (0.1-0.5): More consistent, stable output
|
||||
- **Higher values** (0.6-1.0): More variable, potentially more natural-sounding output
|
||||
|
||||
- **Repetition Penalty**
|
||||
- Helps prevent repetitive speech patterns
|
||||
- **Range**: 1.0 to 15.0
|
||||
- Higher values more strongly discourage repetition
|
||||
- Typically most effective between 1.0-3.0
|
||||
|
||||
- **Pitch Adjustment**
|
||||
- Modifies the voice pitch when supported
|
||||
- **Range**: -20 to +20
|
||||
- Use subtle adjustments for most natural results
|
||||
|
||||
- **Generation Speed**
|
||||
- Controls the pace of generated speech
|
||||
- **Range**: 0.5 to 2.0
|
||||
- 1.0 represents normal speed
|
||||
"""
|
||||
|
||||
DEFAULT_SETTINGS2 = """
|
||||
|
||||
## 🗣️ Voice Configuration
|
||||
|
||||
### OpenAI Voice Mappings
|
||||
- Only relevant when using the OpenAI-compatible API endpoint
|
||||
- Maps OpenAI's six standard voices to equivalent voices in the current engine:
|
||||
- `alloy`
|
||||
- `echo`
|
||||
- `fable`
|
||||
- `nova`
|
||||
- `onyx`
|
||||
- `shimmer`
|
||||
- Essential for maintaining compatibility with OpenAI API calls
|
||||
- Each mapping can be customized to any available voice in the current engine
|
||||
|
||||
Information on the OpenAI Endpoint is available in the [Github Wiki](https://github.com/erew123/alltalk_tts/wiki)
|
||||
|
||||
### Default Voices
|
||||
- **Default/Character Voice**: Used when no specific voice is specified in API calls
|
||||
- **Narrator Voice**: Separate default for narrator-specific text
|
||||
- These defaults are engine-specific and won't affect other TTS engines
|
||||
- Can be overridden by explicitly specifying voices in API calls
|
||||
|
||||
## ⚙️ Important Notes
|
||||
|
||||
- Settings availability is determined by engine capabilities
|
||||
- Grayed-out options indicate features not supported by the current engine
|
||||
- Changes only affect the currently selected TTS engine
|
||||
- Settings here act as defaults but can be overridden via API parameters
|
||||
- All changes require clicking "Update Settings" to take effect
|
||||
- Some settings require an engine reload to take effect
|
||||
"""
|
||||
|
||||
HELP_PAGE = """
|
||||
## 🎯 Parler TTS Engine Settings Help
|
||||
|
||||
Parler TTS is a unique text-to-speech system that generates voices based on descriptive prompts, similar to how image generation AI works with text descriptions.
|
||||
"""
|
||||
|
||||
HELP_PAGE1 = """
|
||||
## 📁 File Locations & Management
|
||||
|
||||
- **Model Storage**
|
||||
- Models are stored in `/alltalk_tts/models/parler/{model name}`
|
||||
|
||||
## 🎚️ Engine Capabilities & Controls
|
||||
|
||||
- **Low VRAM Mode**
|
||||
- Enabled by default for optimized memory management
|
||||
- Helps balance resource usage when running alongside other applications
|
||||
- Recommended for most setups
|
||||
|
||||
- **Multi-Model Support**
|
||||
- Supports multiple internal models for voice generation
|
||||
- Allows for diverse voice characteristics and styles
|
||||
- Enables both native and custom voice descriptions
|
||||
|
||||
## 🗣️ Voice System
|
||||
|
||||
### Native Voices
|
||||
- 34 built-in consistent voices including:
|
||||
- Aaron, Alisa, Anna, Barbara, Bill, etc.
|
||||
- Each native voice provides more consistent results
|
||||
- Use these when you need reproducible voice characteristics
|
||||
|
||||
### Custom Voice Descriptions
|
||||
- Create voices by describing desired characteristics:
|
||||
- Gender and age
|
||||
- Speaking style and pace
|
||||
- Accent and tone
|
||||
- Audio quality characteristics
|
||||
- **Example**: "A female speaker with an enthusiastic and lively voice. Her tone is bright and energetic, with a fast pace and a lot of inflection."
|
||||
|
||||
### Voice Editor
|
||||
- Add and manage custom voice descriptions
|
||||
- Save frequently used voice configurations
|
||||
- Edit existing voice descriptions
|
||||
- Voice settings are stored in `system/tts_engines/parler/parler_voices.json`
|
||||
"""
|
||||
|
||||
HELP_PAGE2 = """
|
||||
## 📝 Important Notes
|
||||
|
||||
- **Voice Consistency**
|
||||
- Unlike traditional TTS engines, each generation may sound slightly different
|
||||
- Native voices provide more consistent results
|
||||
- Custom voice descriptions may vary between generations
|
||||
|
||||
- **Audio Quality Control**
|
||||
- Include "very clear audio" in description for highest quality
|
||||
- Use "very noisy audio" for intentional background noise
|
||||
- Control reverb and recording proximity through descriptions
|
||||
|
||||
- **Best Practices**
|
||||
- Use punctuation to control speech rhythm
|
||||
- Be specific in voice descriptions
|
||||
- Test different description combinations for desired results
|
||||
- Consider using native voices for consistent output
|
||||
|
||||
## ⚠️ Known Limitations
|
||||
|
||||
- No support for:
|
||||
- DeepSpeed acceleration
|
||||
- Pitch adjustment
|
||||
- Generation speed control
|
||||
- Repetition penalty
|
||||
- Temperature adjustment
|
||||
- Streaming generation
|
||||
- Multi-language capabilities
|
||||
|
||||
## 🔧 System Requirements
|
||||
|
||||
- Runs on all major operating systems:
|
||||
- Windows
|
||||
- Linux
|
||||
- macOS
|
||||
- Outputs in WAV format
|
||||
- May show flash attention warnings on Windows (normal behavior)
|
||||
"""
|
||||
|
||||
VOICE_EDITOR = """
|
||||
## 🎙️ Parler Voice Editor Help
|
||||
|
||||
The Voice Editor allows you to create, manage, and customize voice descriptions for Parler TTS. Each voice consists of a name and a detailed description that defines its characteristics.
|
||||
"""
|
||||
|
||||
VOICE_EDITOR1 = """
|
||||
## 📝 Creating Voice Descriptions
|
||||
|
||||
### Basic Structure
|
||||
- **Voice Name**: A unique identifier for your voice (e.g., "Soothing female", "Angry Tom")
|
||||
- **Voice Description**: Detailed description of voice characteristics
|
||||
|
||||
### Description Components
|
||||
Include these elements for best results:
|
||||
- Gender and age characteristics
|
||||
- Speaking style and pace
|
||||
- Tone and emotional quality
|
||||
- Audio environment/quality
|
||||
- Accent or language characteristics (if desired)
|
||||
|
||||
### Example Descriptions
|
||||
`A female speaker with a soft, soothing voice. Her tone is gentle and calming, with a slight reverb as if she is in a small, cozy room.`
|
||||
|
||||
`A male speaker with a strong, authoritative voice. His tone is firm and commanding, with a slight bass boost that adds to the depth. He speaks at a moderate pace.`
|
||||
"""
|
||||
|
||||
VOICE_EDITOR2 = """
|
||||
## 💡 Best Practices
|
||||
|
||||
- **Be Specific**: The more detailed your description, the better the results
|
||||
- **Include Audio Quality**: Mention desired audio characteristics (clear, reverb, etc.)
|
||||
- **Consider Pacing**: Specify speaking speed (slow, moderate, fast)
|
||||
- **Define Personality**: Include emotional and stylistic elements
|
||||
|
||||
## 🔧 Managing Voices
|
||||
|
||||
- Use **Add/Save Voice** to create new or update existing voices
|
||||
- **Delete Selected Voice** removes the currently selected voice
|
||||
- **Clear Text Boxes** resets the input fields
|
||||
- Select any voice from the dropdown to edit its properties
|
||||
|
||||
## ⚠️ Important Notes
|
||||
|
||||
- Each generation may sound slightly different even with the same description
|
||||
- Native voices tend to be more consistent than custom voices
|
||||
- Changes are saved to the voice configuration file automatically
|
||||
"""
|
||||
@@ -4,6 +4,7 @@ import requests
|
||||
import gradio as gr
|
||||
from tqdm import tqdm
|
||||
from pathlib import Path
|
||||
from .help_content import AllTalkHelpContent
|
||||
this_dir = Path(__file__).parent.resolve() # Sets up self.this_dir as a variable for the folder THIS script is running in.
|
||||
main_dir = Path(__file__).parent.parent.parent.parent.resolve() # Sets up self.main_dir as a variable for the folder AllTalk is running in
|
||||
|
||||
@@ -127,11 +128,17 @@ def parler_model_alltalk_settings(model_config_data):
|
||||
def_narrator_voice_gr = gr.Dropdown(value=model_config_data["settings"]["def_narrator_voice"], label="Narrator Voice", choices=voice_list, allow_custom_value=True)
|
||||
with gr.Group():
|
||||
with gr.Row():
|
||||
details_text = gr.Textbox(label="Details", show_label=False, lines=5, interactive=False, value="In this section, you can set the default settings for this TTS engine. Settings that are not supported by the current engine will be greyed out and cannot be selected. Default voices specified here will be used when no specific voice is provided in the TTS generation request. If a voice is specified in the request, it will override these default settings. When using the OpenAI API compatable API with this TTS engine, the voice mappings will be applied. As the OpenAI API has a limited set of 6 voices, these mappings ensure compatibility by mapping the OpenAI voices to the available voices in this TTS engine.")
|
||||
details_text = gr.Textbox(label="Details", show_label=False, lines=5, interactive=False, value="Configure default settings and voice mappings for the selected TTS engine. Unavailable options are grayed out based on engine capabilities. See the Help section below for detailed information about each setting.")
|
||||
with gr.Row():
|
||||
submit_button = gr.Button("Update Settings")
|
||||
output_message = gr.Textbox(label="Output Message", interactive=False, show_label=False)
|
||||
submit_button.click(parler_model_update_settings, inputs=[def_character_voice_gr, def_narrator_voice_gr, lowvram_enabled_gr, deepspeed_enabled_gr, temperature_set_gr, repetitionpenalty_set_gr, pitch_set_gr, generationspeed_set_gr, alloy_gr, echo_gr, fable_gr, nova_gr, onyx_gr, shimmer_gr], outputs=output_message)
|
||||
with gr.Accordion("HELP - 🔊 Understanding TTS Engine Default Settings Page", open=False):
|
||||
with gr.Row():
|
||||
gr.Markdown(AllTalkHelpContent.DEFAULT_SETTINGS, elem_classes="custom-markdown")
|
||||
with gr.Row():
|
||||
gr.Markdown(AllTalkHelpContent.DEFAULT_SETTINGS1, elem_classes="custom-markdown")
|
||||
gr.Markdown(AllTalkHelpContent.DEFAULT_SETTINGS2, elem_classes="custom-markdown")
|
||||
|
||||
###########################################################################################
|
||||
# Do not change this section apart from "TTS Engine Name" value to match your engine name #
|
||||
@@ -164,34 +171,12 @@ def parler_model_alltalk_settings(model_config_data):
|
||||
gr.Textbox(label="Linux Support", value='Yes' if features_list['linux_capable'] else 'No', interactive=False)
|
||||
gr.Textbox(label="Mac Support", value='Yes' if features_list['mac_capable'] else 'No', interactive=False)
|
||||
with gr.Row():
|
||||
gr.Markdown("""
|
||||
#### 🟧 DeepSpeed Capable
|
||||
DeepSpeed is a deep learning optimization library that can significantly speed up model training and inference. If a model is DeepSpeed capable, it means it can utilize DeepSpeed to accelerate the generation of text-to-speech output. This requires the model to be loaded into CUDA/VRAM on an Nvidia GPU and the model's inference method to support DeepSpeed.
|
||||
#### 🟧 Pitch Capable
|
||||
Pitch refers to the highness or lowness of a sound. If a model is pitch capable, it can adjust the pitch of the generated speech, allowing for more expressive and varied output.
|
||||
#### 🟧 Generation Speed Capable
|
||||
Generation speed refers to the rate at which the model can generate text-to-speech output. If a model is generation speed capable, it means the speed of the generated speech can be adjusted, making it faster or slower depending on the desired output.
|
||||
#### 🟧 Repetition Penalty Capable
|
||||
Repetition penalty is a technique used to discourage the model from repeating the same words or phrases multiple times in the same sounding way. If a model is repetition penalty capable, it can apply this penalty during generation to improve the diversity and naturalness of the output.
|
||||
#### 🟧 Multi-Languages Capable
|
||||
Multi-language capable models can generate speech in multiple languages. This means that the model has been trained on data from different languages and can switch between them during generation. Some models are language-specific.
|
||||
#### 🟧 Multi-Voice Capable
|
||||
Multi-voice capable models generate speech in multiple voices or speaking styles. This means that the model has been trained on data from different speakers and can mimic their voices during generation, or is a voice cloning model that can generate speech based on the input sample.
|
||||
""")
|
||||
gr.Markdown("""
|
||||
#### 🟧 Streaming Capable
|
||||
Streaming refers to the ability to generate speech output in real-time, without the need to generate the entire output before playback. If a model is streaming capable, it can generate speech on-the-fly, allowing for faster response times and more interactive applications.
|
||||
#### 🟧 Low VRAM Capable
|
||||
VRAM (Video Random Access Memory) is a type of memory used by GPUs to store and process data. If a model is low VRAM capable, it can efficiently utilize the available VRAM by moving data between CPU and GPU memory as needed, allowing for generation even on systems with limited VRAM where it may be competing with an LLM model for VRAM.
|
||||
#### 🟧 Temperature Capable
|
||||
Temperature is a hyperparameter that controls the randomness of the generated output. If a model is temperature capable, the temperature can be adjusted to make the output more or less random, affecting the creativity and variability of the generated speech.
|
||||
#### 🟧 Multi-Model Capable Engine
|
||||
If an engine is multi-model capable, it means that it can support and utilize multiple models for text-to-speech generation. This allows for greater flexibility and the ability to switch between different models depending on the desired output. Different models may be capable of different languages, specific languages, voices, etc.
|
||||
#### 🟧 Default Audio Output Format
|
||||
Specifies the file format in which the generated speech will be saved. Common audio formats include WAV, MP3, FLAC, Opus, AAC, and PCM. If you want different outputs, you can set the transcode function to change the output audio, though transcoding will add a little time to the generation and is not available for streaming generation.
|
||||
#### 🟧 Windows/Linux/Mac Support
|
||||
These indicators show whether the model and engine are compatible with Windows, Linux, or macOS. However, additional setup or requirements may be necessary to ensure full functionality on your operating system. Please note that full platform support has not been extensively tested.
|
||||
""")
|
||||
with gr.Accordion("HELP - 🔊 Understanding TTS Engine Capabilities", open=False):
|
||||
with gr.Row():
|
||||
gr.Markdown(AllTalkHelpContent.ENGINE_INFORMATION, elem_classes="custom-markdown")
|
||||
with gr.Row():
|
||||
gr.Markdown(AllTalkHelpContent.ENGINE_INFORMATION1, elem_classes="custom-markdown")
|
||||
gr.Markdown(AllTalkHelpContent.ENGINE_INFORMATION2, elem_classes="custom-markdown")
|
||||
|
||||
#######################################################################################################################################################################################################
|
||||
# REQUIRED CHANGE #
|
||||
@@ -347,6 +332,12 @@ def parler_model_alltalk_settings(model_config_data):
|
||||
add_update_button.click(add_update_voice, inputs=[voice_name, description, selected_index, button_label], outputs=[voice_list, voice_name, description, selected_index, voice_name, button_label])
|
||||
delete_button.click(delete_selected_voice, inputs=selected_index, outputs=[voice_list, voice_name, description, selected_index, voice_name, button_label])
|
||||
clear_button.click(clear_text_boxes, outputs=[voice_name, description, selected_index, voice_name, button_label])
|
||||
with gr.Accordion("HELP - 🎙️ Parler Voice Editor Help", open=False):
|
||||
with gr.Row():
|
||||
gr.Markdown(AllTalkHelpContent.VOICE_EDITOR, elem_classes="custom-markdown")
|
||||
with gr.Row():
|
||||
gr.Markdown(AllTalkHelpContent.VOICE_EDITOR1, elem_classes="custom-markdown")
|
||||
gr.Markdown(AllTalkHelpContent.VOICE_EDITOR2, elem_classes="custom-markdown")
|
||||
|
||||
###################################################################################################
|
||||
# REQUIRED CHANGE #
|
||||
@@ -355,54 +346,10 @@ def parler_model_alltalk_settings(model_config_data):
|
||||
###################################################################################################
|
||||
with gr.Tab("Engine Help"):
|
||||
with gr.Row():
|
||||
gr.Markdown("""
|
||||
### 🟧 Where are the Parler models stored?
|
||||
This extension will download the models to `/alltalk_tts/models/parler/` folder.<br>
|
||||
|
||||
### 🟧 Where are the voices stored for parler models?
|
||||
Parler is unlike any other TTS engine. It is actually mode like Stable Diffusion, where you write a text based description of what you want your image to look like, but in this case, you describe what you want the voice to sound like. For example `A female speaker with an enthusiastic and lively voice. Her tone is bright and energetic, with a fast pace and a lot of inflection. The audio is clear and vibrant.`
|
||||
|
||||
This means you can have pretty much any voice you want, however, the downside to this is, there is little consistency of the voices, meaning that no 2x TTS generations will sound exactly like the same voice. You can however use one of the `Native` built in voices to give a level of consistency. Please refer to the Parler website for more infomation https://github.com/huggingface/parler-tts.<br>
|
||||
|
||||
### 🟧 So how do I create my voices for Parler?
|
||||
On the settings page for Parler, there is a Voice Editor tab. In there you can add/remove/ammend voices as you wish, or edit the `parler_voices.json` file stored in `system/tts_engines/parler/`.
|
||||
|
||||
### 🟧 Where are the outputs stored & Automatic output wav file deletion
|
||||
Voice outputs are stored in `/alltalk_tts/outputs/`. You can configure automatic maintenance deletion of old wav files by setting `Del WAV's older than` in the global settings.<br>
|
||||
|
||||
> When `Disabled`, your output wav files will be left untouched.<br>
|
||||
> When set to a setting `1 Day` or greater, your output wav files older than that time period will be automatically deleted on start-up of AllTalk.<br>
|
||||
|
||||
### 🟧 Skipped text/speech
|
||||
At time of writing, this model is 1x day old and I could see reports of issues with some TTS not being generated, some longer text missing the middle portion of the text etc. You can confirm what AllTalk sent to the Parler TTS engine by looking at the command prompt/terminal window. If your text shows up there, it was sent to the Parler TTS engine. Please refer to the Parler website for more details https://github.com/huggingface/parler-tts.
|
||||
""")
|
||||
gr.Markdown("""
|
||||
### 🟧 How do I use Parler's voice generation system?
|
||||
To create a voice with Parler:
|
||||
|
||||
Describe the voice characteristics in your prompt. For example: `Jon's voice is monotone yet slightly fast in delivery, with a very close recording that almost has no background noise.`
|
||||
|
||||
Use one of the 34 inbuilt `Native` speaker names for a level of consistency: `Aaron, Alisa, Anna, Barbara, Bill, Brenda, Bruce, Carol, David, Eileen, Emily, Eric, Gary, James, Jason, Jenna, Jerry, Jon, Jordan, Joy, Karen, Laura, Lauren, Lea, Mike, Naomie, Patrick, Rebecca, Rick, Rose, Tina, Tom, Will, Yann`
|
||||
|
||||
Control audio quality in the voice characteristics prompt:
|
||||
|
||||
> Include `very clear audio` for highest quality<br>
|
||||
> Use `very noisy audio` for high levels of background noise
|
||||
|
||||
Adjust other features in your voice characteristics prompt:
|
||||
|
||||
> Gender<br>
|
||||
> Speaking rate<br>
|
||||
> Pitch<br>
|
||||
> Reverberation
|
||||
|
||||
Remember, while you can create diverse voices, each generation may sound slightly different even with the same description.
|
||||
|
||||
In the text sent for TTS generation, you can use punctuation to control speech rhythm (e.g. use `,` commas for small breaks)
|
||||
|
||||
### 🟧 UserWarning: 1Torch was not compiled with flash attention
|
||||
This is a limitation of Windows Pytorch not yet having full flash attention support on later builds of Pytorch (is my understanding at this time).
|
||||
""")
|
||||
gr.Markdown(AllTalkHelpContent.HELP_PAGE, elem_classes="custom-markdown")
|
||||
with gr.Row():
|
||||
gr.Markdown(AllTalkHelpContent.HELP_PAGE1, elem_classes="custom-markdown")
|
||||
gr.Markdown(AllTalkHelpContent.HELP_PAGE2, elem_classes="custom-markdown")
|
||||
|
||||
return app
|
||||
|
||||
|
||||
Reference in new issue
Block a user