diff --git a/.gitignore b/.gitignore index 2dd987e..b41ffe5 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,21 @@ **/*venv/ **/*.ico **/*MANIFEST.in -**/*Setup.py \ No newline at end of file +**/*Setup.py + +# +**/uvr5/lib/ +**/GPT_SoVITS/config.py +**/GPT_SoVITS/GPT_SoVITS/AR/ +**/GPT_SoVITS/GPT_SoVITS/configs/ +**/GPT_SoVITS/GPT_SoVITS/module/ +**/GPT_SoVITS/GPT_SoVITS/pretrained_models/ +**/GPT_SoVITS/GPT_SoVITS/text/ +**/GPT_SoVITS/GPT_SoVITS/tools/i18n/locale/ +**/GPT_SoVITS/GPT_SoVITS/inference_webui.py +**/GPT_SoVITS/GPT_SoVITS/my_utils.py +**/GPT_SoVITS/GPT_SoVITS/onnx_export.py +**/GPT_SoVITS/GPT_SoVITS/process_ckpt.py +**/GPT_SoVITS/GPT_SoVITS/s1_train.py +**/GPT_SoVITS/GPT_SoVITS/s2_train.py +**/GPT_SoVITS/GPT_SoVITS/utils.py \ No newline at end of file diff --git a/EVT_Core/ASR/VPR/Identify.py b/EVT_Core/ASR/VPR/Identify.py index 8bde742..4c21be4 100644 --- a/EVT_Core/ASR/VPR/Identify.py +++ b/EVT_Core/ASR/VPR/Identify.py @@ -17,16 +17,17 @@ class Voice_Identifying: def __init__(self, StdAudioSpeaker: dict, Audio_Dir_Input: str, - AudioSpeakersData_Path: str = './AudioSpeakerData.txt', Model_Path: str = './Models/.pth', Model_Type: str = 'Ecapa-Tdnn', Feature_Method: str = 'melspectrogram', DecisionThreshold: float = 0.60, - Duration_of_Audio: float = 4.20 + Duration_of_Audio: float = 4.20, + Output_Root: str = "./", + Output_DirName: str = "", + AudioSpeakersData_Name: str = "AudioSpeakerData" ): self.StdAudioSpeaker = StdAudioSpeaker self.Audio_Dir_Input = Audio_Dir_Input - self.AudioSpeakersData_Path = AudioSpeakersData_Path self.Model_Path = Model_Path self.Model_Dir = Path(Model_Path).parent.__str__() self.Model_Name = Path(Model_Path).stem.__str__() @@ -34,6 +35,8 @@ def __init__(self, self.Feature_Method = Feature_Method self.DecisionThreshold = DecisionThreshold self.Duration_of_Audio = Duration_of_Audio + self.Output_Dir = Path(Output_Root).joinpath(Output_DirName).as_posix() + self.AudioSpeakersData_Path = Path(self.Output_Dir).joinpath(AudioSpeakersData_Name).as_posix() + ".txt" os.makedirs(os.path.dirname(self.AudioSpeakersData_Path), exist_ok = True) diff --git a/EVT_Core/Dataset/GPT_SoVITS/Create.py b/EVT_Core/Dataset/GPT_SoVITS/Create.py new file mode 100644 index 0000000..d72d8c9 --- /dev/null +++ b/EVT_Core/Dataset/GPT_SoVITS/Create.py @@ -0,0 +1,135 @@ +import os, sys, shutil +from typing import Union, Optional +from glob import glob +from pathlib import Path + +from .utils.Creating_Directories import create_directories +from .utils.Convert_SRT_to_CSV import change_encoding, convert_srt_to_csv +from .utils.Split_Audio import split_files +from .utils.Create_DS_CSV import create_DS_csv +from .utils.Merge_CSV import merge_csv +from .utils.Merge_Transcripts_and_Files import merge_transcripts_and_wav_files +from .utils.Clean import clean_unwanted_characters +from .utils.Create_Dataset_Loading_Script import Transcript_Writer + + +class Dataset_Creating: + ''' + 1. Convert SRT to CSV + 2. Reorgnize CSV content + 3. Split and downsample WAV + ''' + def __init__(self, + SRT_Dir: str, + AudioSpeakersData_Path: str, + #WAV_Time_Limitation: float = 10.00, + DataFormat: str = 'PATH|NAME|LANG|TEXT', + #Add_AuxiliaryData: bool = False, + #AuxiliaryData_Path: str = './AuxiliaryData/AuxiliaryData.txt', + Output_Root: str = "./", + Output_DirName: str = "", + FileList_Name: str = 'FileList' + ): + self.SRT_Dir = SRT_Dir + def Get_WAV_Paths_Input(): + WAV_Paths_Input = [] + if Path(AudioSpeakersData_Path).is_dir(): + for SubPath in glob(Path(AudioSpeakersData_Path).joinpath('**', '*.wav').__str__(), recursive = True): + Audio = Path(SubPath).as_posix() + WAV_Paths_Input.append(Audio) + if Path(AudioSpeakersData_Path).is_file(): + with open(file = AudioSpeakersData_Path, mode = 'r', encoding = 'utf-8') as AudioSpeakersData: + AudioSpeakerLines = AudioSpeakersData.readlines() + for AudioSpeakerLine in AudioSpeakerLines: + Audio = AudioSpeakerLine.split('|')[0] + WAV_Paths_Input.append(Audio) + return WAV_Paths_Input + self.WAV_Paths_Input = Get_WAV_Paths_Input() + self.WAV_Dir_Split = Path(Output_Root).joinpath(Output_DirName).as_posix() + def Get_AudioSpeakers(): + AudioSpeakers = {} + if Path(AudioSpeakersData_Path).is_dir(): + for SubPath in glob(Path(AudioSpeakersData_Path).joinpath('**', '*.wav').__str__(), recursive = True): + Audio = Path(self.WAV_Dir_Split).joinpath(Path(SubPath).name).as_posix() + Speaker = Path(SubPath).parent.name + AudioSpeakers[Audio] = Speaker + if Path(AudioSpeakersData_Path).is_file(): + with open(file = AudioSpeakersData_Path, mode = 'r', encoding = 'utf-8') as AudioSpeakersData: + AudioSpeakerLines = AudioSpeakersData.readlines() + for AudioSpeakerLine in AudioSpeakerLines: + Audio = Path(self.WAV_Dir_Split).joinpath(Path(AudioSpeakerLine.split('|')[0]).name).as_posix() + Speaker = AudioSpeakerLine.split('|')[1].strip() + AudioSpeakers[Audio] = Speaker + return AudioSpeakers + self.AudioSpeakers = Get_AudioSpeakers() + #self.WAV_Time_Limitation = WAV_Time_Limitation + self.DataFormat = DataFormat.replace('路径', 'PATH').replace('人名', 'NAME').replace('语言', 'LANG').replace('文本', 'TEXT') + self.FileList_Path = Path(self.WAV_Dir_Split).joinpath(FileList_Name).as_posix() + ".txt" + + def CallingFunctions(self): + SRT_Counter = len(glob(os.path.join(self.SRT_Dir, '*.srt'))) + + if SRT_Counter == 0: + print('!!! Please add srt_file(s) to %s-folder' %self.SRT_Dir) + sys.exit() + + # Create directories + CSV_Dir_Prepared = './Temp/ready_for_merging' + CSV_Dir_Merged = './Temp/merged_csv' + CSV_Dir_Final = './Temp/final_csv' + create_directories(self.WAV_Dir_Split, CSV_Dir_Prepared, CSV_Dir_Merged, CSV_Dir_Final) + + # Changing encoding from utf-8 to utf-8-sig + print('Encoding srt_file(s) to utf-8...') + for SRT in glob(os.path.join(self.SRT_Dir, '*.srt')): + change_encoding(SRT) + print('Encoding of %s-file(s) changed' %SRT_Counter) + print('---------------------------------------------------------------------') + + # Extracting information from srt-files to csv + print('Extracting information from srt_file(s) to csv_files') + for File in glob(os.path.join(self.SRT_Dir, '*.srt')): + convert_srt_to_csv(File, CSV_Dir_Prepared) + print('%s-file(s) converted and saved as csv-files to ./csv' %SRT_Counter) + print('---------------------------------------------------------------------') + + # Now slice audio according to start- and end-times in csv + print('Slicing audio according to start- and end-times of transcript_csvs...') + split_files(CSV_Dir_Prepared, self.WAV_Paths_Input, self.WAV_Dir_Split) + WAV_Counter = len(glob(os.path.join(self.WAV_Dir_Split, '*.wav'))) + print('Slicing complete. {} files in dir {}'.format(WAV_Counter, self.WAV_Dir_Split)) + print('---------------------------------------------------------------------') + + # Now create list of filepaths and -size of dir ./split_audio + create_DS_csv(self.WAV_Dir_Split, CSV_Dir_Merged) + print('DS_csv with Filepaths - and sizes created.') + print('---------------------------------------------------------------------') + + # Now join all seperate csv files + merge_csv(CSV_Dir_Prepared, CSV_Dir_Merged) + print('Merged csv with all transcriptions created.') + print('---------------------------------------------------------------------') + + # Merge the csv with transcriptions and the file-csv with paths and sizes + CSV_Name_Final = 'DS_training_final.csv' + merge_transcripts_and_wav_files(CSV_Dir_Merged, CSV_Dir_Final, CSV_Name_Final) + print('Final DS csv generated.') + print('---------------------------------------------------------------------') + + # Clean the data of unwanted characters and translate numbers from int to words + CSV_Path_Final_Cleaned = clean_unwanted_characters(CSV_Dir_Final, CSV_Name_Final) + print('Unwanted characters cleaned.') + print('---------------------------------------------------------------------') + + # Write transcript to text-file for model training + Transcript_Writer(self.AudioSpeakers, self.DataFormat, CSV_Path_Final_Cleaned, self.WAV_Dir_Split, self.FileList_Path) + print('Transcript written.') + print('---------------------------------------------------------------------') + + # Now remove the created folders + for folders in [CSV_Dir_Prepared, CSV_Dir_Merged, CSV_Dir_Final]: + shutil.rmtree(folders, ignore_errors = True) + print('Temp files removed.') + print('********************************************** FINISHED ************************************************') + + print(f'Final processed audio is in {self.WAV_Dir_Split}') \ No newline at end of file diff --git a/EVT_Core/Dataset/GPT_SoVITS/utils/Clean.py b/EVT_Core/Dataset/GPT_SoVITS/utils/Clean.py new file mode 100644 index 0000000..1c1d9f0 --- /dev/null +++ b/EVT_Core/Dataset/GPT_SoVITS/utils/Clean.py @@ -0,0 +1,76 @@ +import os +import pandas as pd +#from unidecode import unidecode + + +def Read_CSV(CSV_Path): + try: + return pd.read_csv(CSV_Path, engine = 'python') + except Exception as e: + print(e, type(e)) + if (isinstance(e, pd.errors.EmptyDataError)): + pass + + +def clean_unwanted_characters(CSV_Dir_Final, CSV_Name_Final): + ''' + Remove unwanted characters. After cleaning the transcripts, the text is extracted and saved in a txt file which can be used for training the language model. + ''' + DF_DS_Final = Read_CSV(os.path.join(CSV_Dir_Final, CSV_Name_Final)) + + # some srt files contain font codes which are removed hereby + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('', '', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('', '', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('', '', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('', '', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('', '', regex=True) + + ''' + # Characters to be removed + punct = str(['.!"#$%&\'()*+,-/:;<–=>?@[\\]^_°`{}~ ̀ ̆ ̃ ́']) + transtab = str.maketrans(dict.fromkeys(punct, ' ')) + ''' + DF_DS_Final = DF_DS_Final.dropna() + ''' + DF_DS_Final['transcript'] = '£'.join(DF_DS_Final['transcript'].tolist()).translate(transtab).split('£') + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].str.lower() + ''' + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('\s+', '', regex = True) # Replace line feeds without spaces + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].str.strip() + ''' + # Further remove unwanted characters + remove_char = '鄚氏鐷顤鐰鄣酹輐霵鐼羦鄜酲酺酺礫飉舣δφℳˁカᛠᛏˁːɣ\ʿʻʾŋ\ʹªьʺъˀˇʼʔˊˈ!"#$%&\()*+,-./:;<=>?@[]^_`{|}~' + + table_2 = str.maketrans('','', remove_char) + DF_DS_Final['transcript'] = [w.translate(table_2) for w in DF_DS_Final['transcript']] + + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('ä','ae', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('ö','oe', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('ü','ue', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('α','alpha', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('ə','e', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('ё','e', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('γ','gamma', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('µ','mikro', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('π','pi', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('β','beta', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('ζ','zeta', regex=True) + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].replace('ß','ss', regex=True) + + # to get rid of final unwanted characters transform characters to strictly unicode + def to_ASCII(text): + text = unidecode(text) + return text + + DF_DS_Final['transcript'] = DF_DS_Final['transcript'].apply(to_ASCII) + ''' + + # Save cleaned files + CSV_Name_Final_Cleaned = CSV_Name_Final[:-4] + CSV_Path_Final_Cleaned = os.path.join(CSV_Dir_Final, (CSV_Name_Final_Cleaned + '_cleaned.csv')) + DF_DS_Final.to_csv(CSV_Path_Final_Cleaned, header = True, index = False, encoding = 'utf-8') #DF_DS_Final.to_csv('./merged_csv/' + final_path + '_char_removed.csv', header = True, index = False, encoding = 'utf-8-sig') + + print('Length of ds_final: {}'.format(len(DF_DS_Final))) + print('Final Files cleaned of unwanted characters') + + return CSV_Path_Final_Cleaned \ No newline at end of file diff --git a/EVT_Core/Dataset/GPT_SoVITS/utils/Convert_SRT_to_CSV.py b/EVT_Core/Dataset/GPT_SoVITS/utils/Convert_SRT_to_CSV.py new file mode 100644 index 0000000..a90d29c --- /dev/null +++ b/EVT_Core/Dataset/GPT_SoVITS/utils/Convert_SRT_to_CSV.py @@ -0,0 +1,84 @@ +import pandas as pd +import os +import io +import re +import numpy as np + + +def change_encoding(SRT_Path): + ''' + Change encoding from utf-8 to utf-8-sig to keep Umlaute (e.g. ä, ö, ü) + ''' + with io.open(SRT_Path, 'r', encoding = 'utf-8') as f: + text = f.read() + # process Unicode text + with io.open(SRT_Path, 'w', encoding = 'utf-8-sig') as f: + f.write(text) + + +def convert_srt_to_csv( + SRT_Path, + CSV_Dir +): + ''' + Extract start time, end-time and subtitle from the SRT_Path-files and store in a csv. In preparation for audio-splitting, a column id is generated from the filename with the addition of a unique number. + ''' + with open(SRT_Path, 'r', encoding = 'utf-8-sig') as h: + Sub = h.readlines() #returns list of all lines + + Re_Pattern = r'[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3} --> [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}' + # Get start times + Times = list(filter(re.compile(Re_Pattern).search, Sub)) + Start_Times = [time.split('-->')[0].strip() for time in Times] + End_Times = [time.split('-->')[1].strip() for time in Times] + + # Get lines + Lines = [[]] + for Sentence in Sub: + if re.match(Re_Pattern, Sentence): + Lines[-1].pop() + Lines.append([]) + else: + Lines[-1].append(Sentence) + + Lines = Lines[1:] # all text in lists + + Column_Names = ['id', 'start_times', 'end_times', 'transcript'] + DF_Text = pd.DataFrame(columns = Column_Names) + + DF_Text['start_times'] = Start_Times + DF_Text['end_times'] = End_Times + DF_Text['transcript'] = [" ".join(i).strip() for i in Lines] + + DF_Text['id'] = np.arange(len(DF_Text)) + ID_Extension = os.path.basename(SRT_Path).replace('.srt', '_') + ''' + ID_Extension = ID_Extension.replace(' ', '_') + ID_Extension = ID_Extension.replace('-', '_') + ID_Extension = ID_Extension.replace('.', '_') + ID_Extension = ID_Extension.replace('__', '_') + ID_Extension = ID_Extension.replace('___', '_') + ''' + DF_Text['id'] = ID_Extension + DF_Text['id'].map(str) + + file_extension = ID_Extension[:-1] + + # converting the times to milliseconds + def convert_to_ms(time): + h_ms = int(time[:2])*3600000 + m_ms = int(time[3:5])*60000 + s_ms = int(time[6:8])*1000 + ms = int(time[9:12]) + ms_total = h_ms + m_ms + s_ms + ms + return(ms_total) + + def conv_int(start): + new_start = int(start) + return(new_start) + + DF_Text['start_times'] = DF_Text['start_times'].apply(convert_to_ms) + DF_Text['start_times'] = DF_Text['start_times'].apply(conv_int) + + DF_Text['end_times'] = DF_Text['end_times'].apply(convert_to_ms) + + DF_Text.to_csv(os.path.join(CSV_Dir, (file_extension + '.csv')), index = False, header = True, encoding = 'utf-8-sig') \ No newline at end of file diff --git a/EVT_Core/Dataset/GPT_SoVITS/utils/Create_DS_CSV.py b/EVT_Core/Dataset/GPT_SoVITS/utils/Create_DS_CSV.py new file mode 100644 index 0000000..32a0d17 --- /dev/null +++ b/EVT_Core/Dataset/GPT_SoVITS/utils/Create_DS_CSV.py @@ -0,0 +1,32 @@ +import pandas as pd +import os +from glob import glob +import wave +import contextlib + + +def create_DS_csv( + WAV_Dir_Extract, + CSV_Dir +): + ''' + Create csv with filepath and -size in preparation for final DS training-csv + ''' + #this function holds the code to extract the filepath and filesize of all audio in the respective directory + print(f'Extracting filepath and -size for every .wav file in {WAV_Dir_Extract}') + Data = pd.DataFrame(columns = ['wav_filename', 'wav_filesize', 'duration']) + DF = pd.DataFrame(columns = ['wav_filename', 'wav_filesize', 'duration']) + + for entry in glob(os.path.join(WAV_Dir_Extract, '*.wav')): + filepath = os.path.abspath(entry) + filesize = os.path.getsize(entry) + with contextlib.closing(wave.open(entry, 'rb')) as f: + frames = f.getnframes() + rate = f.getframerate() + duration = frames / float(rate) + DF['wav_filename'] = [filepath] + DF['wav_filesize'] = [filesize] + DF['duration'] = [duration] + Data = pd.concat([Data, DF], ignore_index = True) + + Data.to_csv(os.path.join(CSV_Dir, 'Filepath_Filesize.csv'), header = True, index = False, encoding = 'utf-8-sig') diff --git a/EVT_Core/Dataset/GPT_SoVITS/utils/Create_Dataset_Loading_Script.py b/EVT_Core/Dataset/GPT_SoVITS/utils/Create_Dataset_Loading_Script.py new file mode 100644 index 0000000..9bd3b0b --- /dev/null +++ b/EVT_Core/Dataset/GPT_SoVITS/utils/Create_Dataset_Loading_Script.py @@ -0,0 +1,102 @@ +import os +import pandas as pd +import random +import re +import shutil +from pathlib import Path + + +ToStandaloneForm = True + + +def Transcript_Writer( + AudioSpeakers, + DataFormat, + CSV_Path, + #AuxiliaryData_Path, + Audio_Dir, + Text_Path +): + ''' + CSV to TXT + ''' + CSV_Path_DataSet = Path(CSV_Path).parent.joinpath("Dataset.csv").__str__() + pd.read_csv(CSV_Path)[['wav_filename', 'transcript']].to_csv( + path_or_buf = CSV_Path_DataSet, + header = None, + index = None, + mode = 'w', + sep = '|' + ) + #shutil.copy(CSV_Path_DataSet, CSV_Save_Path) if CSV_Save_Path is not None else None + with open(file = CSV_Path_DataSet, mode = 'r', encoding = 'utf-8') as File_Old: + DataLines = File_Old.readlines() + + LangList = [] + for Line in DataLines: + Line_LanguageText = Line.split('|', maxsplit = 1)[1] + Line_Lang = re.split(r'[\[\]]', Line_LanguageText)[1] + LangList.append(Line_Lang) if Line_Lang not in LangList else None + + def UpdateDataLines(DataLines, Text_Path): + for Index, Line in enumerate(DataLines): + Line_Path = Line.split('|', maxsplit = 1)[0] + Audio = Path(Line_Path.rsplit('_', maxsplit = 1)[0] + Path(Line_Path).suffix).as_posix() + Line_Name = AudioSpeakers[Audio] + Line_LanguageText = Line.split('|', maxsplit = 1)[1] + Line_Lang = re.split(r'[\[\]]', Line_LanguageText)[1].strip() + Line_Text = re.split(r'[\[\]]', Line_LanguageText)[2].strip() + if ToStandaloneForm: + if Path(Line_Path).parent.as_posix() != Path(Audio_Dir).as_posix(): + Line_Path_Dst = Path(Audio_Dir).joinpath(Path(Line_Path).name) + shutil.copy(Line_Path, Audio_Dir) if not Path(Line_Path_Dst).exists() else None + Line_Path = Line_Path_Dst + Line_Path = f"./{Path(Line_Path).relative_to(Path(Text_Path).parent).as_posix()}" + Line = DataFormat.replace('PATH', Line_Path).replace('NAME', Line_Name).replace('LANG', Line_Lang).replace('TEXT', Line_Text) + '\n' + DataLines[Index] = Line + return DataLines + + ''' + def UpdateAuxiliaryDataLines(AuxiliaryDataLines, Text_Path): + print("Writing AuxiliaryData paths...") + AuxiliaryDataLines_New = [] + for AuxiliaryDataLine in AuxiliaryDataLines: + Line_Path = AuxiliaryDataLine.split('|', maxsplit = 1)[0] + Line_Path = Path(AuxiliaryData_Path).parent.joinpath(Line_Path).as_posix() + Line_Name = AuxiliaryDataLine.split("|", maxsplit = 2)[1] + Line_LanguageText = AuxiliaryDataLine.split("|", maxsplit = 2)[2] + Line_Lang = re.split(r'[\[\]]', Line_LanguageText)[1].strip() + if Line_Lang not in LangList: + continue + Line_Text = re.split(r'[\[\]]', Line_LanguageText)[2].strip() + if ToStandaloneForm: + if Path(Line_Path).parent.as_posix() != Path(Audio_Dir).as_posix(): + Line_Path_Dst = Path(Audio_Dir).joinpath(Path(Line_Path).name) + shutil.copy(Line_Path, Audio_Dir) if not Path(Line_Path_Dst).exists() else None + Line_Path = Line_Path_Dst + Line_Path = f"./{Path(Line_Path).relative_to(Path(Text_Path).parent).as_posix()}" + AuxiliaryDataLine = DataFormat.replace('PATH', Line_Path).replace('NAME', Line_Name).replace('LANG', Line_Lang).replace('TEXT', Line_Text) + '\n' + AuxiliaryDataLines_New.append(AuxiliaryDataLine) + return AuxiliaryDataLines_New + ''' + + random.shuffle(DataLines) + DataLines = UpdateDataLines(DataLines, Text_Path) + ''' + if AuxiliaryData_Path is not None: + with open(file = AuxiliaryData_Path, mode = 'r', encoding = 'utf-8') as AuxiliaryData: + AuxiliaryDataLines = AuxiliaryData.readlines() + random.shuffle(AuxiliaryDataLines) + AuxiliaryDataLines = UpdateAuxiliaryDataLines(AuxiliaryDataLines, Text_Path) + ReplicateTimes = len(AuxiliaryDataLines) // len(DataLines) if len(AuxiliaryDataLines) > len(DataLines) else 1 + DataLines = DataLines * ReplicateTimes + AuxiliaryDataLines + ''' + + random.shuffle(DataLines) + + print("Writing VITS dataset paths...") + def WriteDataLines(Text_Path, Lines): + os.makedirs(os.path.dirname(Text_Path), exist_ok = True) + with open(file = Text_Path, mode = 'w', encoding = 'utf-8') as File_New: + File_New.writelines(Lines) + WriteDataLines(Text_Path, DataLines) \ No newline at end of file diff --git a/EVT_Core/Dataset/GPT_SoVITS/utils/Creating_Directories.py b/EVT_Core/Dataset/GPT_SoVITS/utils/Creating_Directories.py new file mode 100644 index 0000000..32e0c3f --- /dev/null +++ b/EVT_Core/Dataset/GPT_SoVITS/utils/Creating_Directories.py @@ -0,0 +1,35 @@ +import os + + +def create_directories( + wav_dir_prepared, + wav_dir_split, + csv_dir_merged, + csv_dir_final +): + ''' + Create csv directory + ''' + if not os.path.exists(wav_dir_prepared): + try: + os.makedirs(wav_dir_prepared, exist_ok = True) + except OSError: + print('Creation of directory %s failed' %wav_dir_prepared) + + if not os.path.exists(wav_dir_split): + try: + os.makedirs(wav_dir_split, exist_ok = True) + except OSError: + print('Creation of directory %s failed' %wav_dir_split) + + if not os.path.exists(csv_dir_merged): + try: + os.makedirs(csv_dir_merged, exist_ok = True) + except OSError: + print('Creation of directory %s failed' %csv_dir_merged) + + if not os.path.exists(csv_dir_final): + try: + os.makedirs(csv_dir_final, exist_ok = True) + except OSError: + print('Creation of directory %s failed' %csv_dir_final) diff --git a/EVT_Core/Dataset/GPT_SoVITS/utils/Merge_CSV.py b/EVT_Core/Dataset/GPT_SoVITS/utils/Merge_CSV.py new file mode 100644 index 0000000..fe001cd --- /dev/null +++ b/EVT_Core/Dataset/GPT_SoVITS/utils/Merge_CSV.py @@ -0,0 +1,31 @@ +import os +import pandas as pd +from glob import glob + + +def Read_CSV(CSV_Path): + try: + Content = pd.read_csv(CSV_Path, engine = 'python') + except Exception as e: + print(e, type(e)) + if (isinstance(e, pd.errors.EmptyDataError)): + pass + else: + return Content + + +def merge_csv( + CSV_Dir, + CSV_Dir_Merged +): + ''' + Joins all seperate csv-files + ''' + print('Merging csv-files with transcriptions') + CSV_Combined = pd.DataFrame() + for Entry in glob(os.path.join(CSV_Dir, '*.csv')): + DF = Read_CSV(Entry) + CSV_Combined = pd.concat([CSV_Combined, DF], ignore_index = True) + + CSV_Combined.to_csv(os.path.join(CSV_Dir_Merged, 'Full_Transcript.csv'), header = True, index = False, encoding = 'utf-8-sig') + print('All csv-files merged') diff --git a/EVT_Core/Dataset/GPT_SoVITS/utils/Merge_Transcripts_and_Files.py b/EVT_Core/Dataset/GPT_SoVITS/utils/Merge_Transcripts_and_Files.py new file mode 100644 index 0000000..06f47dc --- /dev/null +++ b/EVT_Core/Dataset/GPT_SoVITS/utils/Merge_Transcripts_and_Files.py @@ -0,0 +1,62 @@ +import os +import re +import pandas as pd + + +def Read_CSV(CSV_Path): + try: + Content = pd.read_csv(CSV_Path, engine = 'python') + except Exception as e: + print(e, type(e)) + if (isinstance(e, pd.errors.EmptyDataError)): + pass + else: + return Content + + +def merge_transcripts_and_wav_files( + CSV_Dir_Merged, + CSV_Dir_Final, + CSV_Name_Final, + #Time_Limitation +): + ''' + Matches the transcripts to the available audio files. + ''' + DF_Final = pd.DataFrame() + + CSV_Path_Transcript = os.path.join(CSV_Dir_Merged, 'Full_Transcript.csv') + CSV_Path_Filesize = os.path.join(CSV_Dir_Merged, 'Filepath_Filesize.csv') + + DF_Transcripts = Read_CSV(CSV_Path_Transcript) + DF_Filesize = Read_CSV(CSV_Path_Filesize) + + # by splitting the path at / and then choosing -1, the filename can be extracted + def remove_path(path): + path = re.split(r'[/\\\\]', path)[-1] #path = path.split('/')[-1] + return path + + DF_Filesize['id'] = DF_Filesize['wav_filename'].apply(remove_path) + + # filter out duration of less than specified time (seconds) + def convert(duration): + time = float(duration) + return time + + DF_Filesize['duration'] = DF_Filesize['duration'].apply(convert) + #DF_Filesize = DF_Filesize[DF_Filesize['duration'] < Time_Limitation] + + # drop unnecessary columns + DF_Transcripts.drop(['start_times', 'end_times'], axis = 1, inplace = True) + #DF_Filesize.drop(['duration'], axis = 1, inplace = True) + + DF_Filesize['id'] = DF_Filesize['id'].replace('.wav', '', regex = True) + + # merge on column id + DF_Final = pd.merge(DF_Transcripts, DF_Filesize, on = 'id') + DF_Final.drop(['id'], axis = 1, inplace = True) + + # rearrange columns + DF_Final = DF_Final[['wav_filename', 'duration', 'transcript']] #DF_Final = DF_Final[['wav_filename', 'wav_filesize', 'transcript']] + + DF_Final.to_csv(os.path.join(CSV_Dir_Final, CSV_Name_Final), header=True, index=False, encoding='utf-8-sig') \ No newline at end of file diff --git a/EVT_Core/Dataset/GPT_SoVITS/utils/Split_Audio.py b/EVT_Core/Dataset/GPT_SoVITS/utils/Split_Audio.py new file mode 100644 index 0000000..a5c3db7 --- /dev/null +++ b/EVT_Core/Dataset/GPT_SoVITS/utils/Split_Audio.py @@ -0,0 +1,56 @@ +import os +import pandas as pd +from glob import glob +from pathlib import Path +from pydub import AudioSegment +from concurrent.futures import ThreadPoolExecutor + + +def ReadCSV(CSV_Path): + try: + Content = pd.read_csv(CSV_Path, engine = 'python') + except Exception as e: + print(e, type(e)) + if (isinstance(e, pd.errors.EmptyDataError)): + pass + else: + return Content + + +def SplitFile( + CSV_Path, + Item, + Dir_Output +): + DF = ReadCSV(CSV_Path) + + def SplitAudio(DF): + Audio = AudioSegment.from_wav(Item) + Audio_Split = Audio[DF['start_times']:DF['end_times']] + Audio_Split.export(os.path.join(Dir_Output, (DF['id'] + '.wav')), format = 'wav') + + DF.apply(SplitAudio, axis = 1) + + +def split_files( + CSV_Dir_Input, + WAV_Paths_Input, + Dir_WAVOutput +): + ''' + Slice audio files based on start and end times in csv files + ''' + ParamsList = [] + CSV_Paths_Input = [CSV_Path_Input.as_posix() for CSV_Path_Input in Path(CSV_Dir_Input).glob('*.csv')] + for WAV_Path_Input in WAV_Paths_Input: + CSV_Path = Path(CSV_Dir_Input).joinpath(Path(WAV_Path_Input).stem).as_posix() + '.csv' + if Path(WAV_Path_Input).exists() and CSV_Path in CSV_Paths_Input: + ParamsList.append((CSV_Path, WAV_Path_Input, Dir_WAVOutput)) + else: + next + + with ThreadPoolExecutor(max_workers = os.cpu_count()) as Executor: + Executor.map( + SplitFile, + *zip(*ParamsList) + ) \ No newline at end of file diff --git a/EVT_Core/Dataset/GPT_SoVITS/utils/__init__.py b/EVT_Core/Dataset/GPT_SoVITS/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/EVT_Core/Dataset/VITS/Create.py b/EVT_Core/Dataset/VITS/Create.py index 8ec76fb..7b5f25d 100644 --- a/EVT_Core/Dataset/VITS/Create.py +++ b/EVT_Core/Dataset/VITS/Create.py @@ -1,4 +1,3 @@ -#import time, datetime import os, sys, shutil from typing import Union, Optional from glob import glob @@ -15,9 +14,6 @@ from .utils.Create_Dataset_Loading_Script import Transcript_Writer -#start_time = time.time() - - class Dataset_Creating: ''' 1. Convert SRT to CSV @@ -30,15 +26,16 @@ def __init__(self, WAV_SampleRate: Optional[Union[int, str]] = 22050, WAV_SampleWidth: Optional[Union[int, str]] = '32 (Float)', WAV_ToMono: bool = False, - WAV_Dir_Split: str = './WAV_Files_Split', #WAV_Time_Limitation: float = 10.00, - DataFormat: str = 'PATH|NAME|LANG|TEXT', + DataFormat: str = 'PATH|NAME|[LANG]TEXT[LANG]', Add_AuxiliaryData: bool = False, AuxiliaryData_Path: str = './AuxiliaryData/AuxiliaryData.txt', TrainRatio: float = 0.7, - ToStandaloneForm: bool = False, - FileList_Path_Training: str = './FileLists/Train_FileList.txt', - FileList_Path_Validation: str = './FileLists/Val_FileList.txt' + #ToStandaloneForm: bool = False, + Output_Root: str = "./", + Output_DirName: str = "", + FileList_Name_Training: str = 'Train_FileList', + FileList_Name_Validation: str = 'Val_FileList' ): self.SRT_Dir = SRT_Dir def Get_WAV_Paths_Input(): @@ -58,19 +55,19 @@ def Get_WAV_Paths_Input(): self.WAV_SampleRate = eval(WAV_SampleRate) if WAV_SampleRate is not None else None self.WAV_SampleWidth = str(WAV_SampleWidth) if WAV_SampleWidth is not None else None self.WAV_ToMono = WAV_ToMono - self.WAV_Dir_Split = WAV_Dir_Split + self.WAV_Dir_Split = Path(Output_Root).joinpath(Output_DirName).as_posix() def Get_AudioSpeakers(): AudioSpeakers = {} if Path(AudioSpeakersData_Path).is_dir(): for SubPath in glob(Path(AudioSpeakersData_Path).joinpath('**', '*.wav').__str__(), recursive = True): - Audio = Path(WAV_Dir_Split).joinpath(Path(SubPath).name).as_posix() + Audio = Path(self.WAV_Dir_Split).joinpath(Path(SubPath).name).as_posix() Speaker = Path(SubPath).parent.name AudioSpeakers[Audio] = Speaker if Path(AudioSpeakersData_Path).is_file(): with open(file = AudioSpeakersData_Path, mode = 'r', encoding = 'utf-8') as AudioSpeakersData: AudioSpeakerLines = AudioSpeakersData.readlines() for AudioSpeakerLine in AudioSpeakerLines: - Audio = Path(WAV_Dir_Split).joinpath(Path(AudioSpeakerLine.split('|')[0]).name).as_posix() + Audio = Path(self.WAV_Dir_Split).joinpath(Path(AudioSpeakerLine.split('|')[0]).name).as_posix() Speaker = AudioSpeakerLine.split('|')[1].strip() AudioSpeakers[Audio] = Speaker return AudioSpeakers @@ -79,9 +76,9 @@ def Get_AudioSpeakers(): self.DataFormat = DataFormat.replace('路径', 'PATH').replace('人名', 'NAME').replace('语言', 'LANG').replace('文本', 'TEXT') self.AuxiliaryData_Path = AuxiliaryData_Path if Add_AuxiliaryData else None self.TrainRatio = TrainRatio - self.ToStandaloneForm = ToStandaloneForm - self.FileList_Path_Training = FileList_Path_Training #if not self.ToStandaloneForm else Path(self.WAV_Dir_Split).joinpath(Path(FileList_Path_Training).name).as_posix() - self.FileList_Path_Validation = FileList_Path_Validation #if not self.ToStandaloneForm else Path(self.WAV_Dir_Split).joinpath(Path(FileList_Path_Validation).name).as_posix() + self.ToStandaloneForm = True #self.ToStandaloneForm = ToStandaloneForm + self.FileList_Path_Training = Path(self.WAV_Dir_Split).joinpath(FileList_Name_Training).as_posix() + ".txt" + self.FileList_Path_Validation = Path(self.WAV_Dir_Split).joinpath(FileList_Name_Validation).as_posix() + ".txt" def CallingFunctions(self): SRT_Counter = len(glob(os.path.join(self.SRT_Dir, '*.srt'))) @@ -92,9 +89,10 @@ def CallingFunctions(self): # Create directories WAV_Dir_Prepared = './Temp/ready_for_splitting' + CSV_Dir_Prepared = './Temp/ready_for_merging' CSV_Dir_Merged = './Temp/merged_csv' CSV_Dir_Final = './Temp/final_csv' - create_directories(WAV_Dir_Prepared, self.WAV_Dir_Split, CSV_Dir_Merged, CSV_Dir_Final) + create_directories(WAV_Dir_Prepared, self.WAV_Dir_Split, CSV_Dir_Prepared, CSV_Dir_Merged, CSV_Dir_Final) # Changing encoding from utf-8 to utf-8-sig print('Encoding srt_file(s) to utf-8...') @@ -106,7 +104,7 @@ def CallingFunctions(self): # Extracting information from srt-files to csv print('Extracting information from srt_file(s) to csv_files') for File in glob(os.path.join(self.SRT_Dir, '*.srt')): - convert_srt_to_csv(File, WAV_Dir_Prepared) + convert_srt_to_csv(File, CSV_Dir_Prepared) print('%s-file(s) converted and saved as csv-files to ./csv' %SRT_Counter) print('---------------------------------------------------------------------') @@ -117,7 +115,7 @@ def CallingFunctions(self): # Now slice audio according to start- and end-times in csv print('Slicing audio according to start- and end-times of transcript_csvs...') - split_files(WAV_Dir_Prepared, self.WAV_Dir_Split) + split_files(CSV_Dir_Prepared, self.WAV_Paths_Input, self.WAV_Dir_Split) WAV_Counter = len(glob(os.path.join(self.WAV_Dir_Split, '*.wav'))) print('Slicing complete. {} files in dir {}'.format(WAV_Counter, self.WAV_Dir_Split)) print('---------------------------------------------------------------------') @@ -128,7 +126,7 @@ def CallingFunctions(self): print('---------------------------------------------------------------------') # Now join all seperate csv files - merge_csv(WAV_Dir_Prepared, CSV_Dir_Merged) + merge_csv(CSV_Dir_Prepared, CSV_Dir_Merged) print('Merged csv with all transcriptions created.') print('---------------------------------------------------------------------') @@ -149,30 +147,9 @@ def CallingFunctions(self): print('---------------------------------------------------------------------') # Now remove the created folders - for folders in [WAV_Dir_Prepared, CSV_Dir_Merged, CSV_Dir_Final]: + for folders in [WAV_Dir_Prepared, CSV_Dir_Prepared, CSV_Dir_Merged, CSV_Dir_Final]: shutil.rmtree(folders, ignore_errors = True) print('Temp files removed.') print('********************************************** FINISHED ************************************************') - print(f'Final processed audio is in {self.WAV_Dir_Split}') - - ''' - print('******************************************* Execution Time *********************************************') - # Evaluate the scripts execution time - end_time = time.time() - exec_time = str(datetime.timedelta(seconds=end_time-start_time)) - print('The script took {} to run'.format(exec_time)) - print('********************************************************************************************************') - ''' - - -''' -Sources: - - Downsampling wav-files: https://stackoverflow.com/questions/30619740/python-downsampling-wav-audio-file - - Converting to 16-bit files: https://stackoverflow.com/questions/44812553/how-to-convert-a-24-bit-wav-file-to-16-or-32-bit-files-in-python3 - - Extract audio (wav) from wmv or mp4: https://zulko.github.io/moviepy/ - - Extract audio (wav) from wmv or mp4: https://medium.com/@steadylearner/how-to-extract-audio-from-the-video-with-python-aea325f434b6 - - Dataset-split: https://stackoverflow.com/questions/38250710/how-to-split-data-into-3-sets-train-validation-and-test -Further information: - - README.md (https://github.com/tobiasrordorf/SRT-to-CSV-and-audio-split) -''' \ No newline at end of file + print(f'Final processed audio is in {self.WAV_Dir_Split}') \ No newline at end of file diff --git a/EVT_Core/Dataset/VITS/utils/Split_Audio.py b/EVT_Core/Dataset/VITS/utils/Split_Audio.py index be8264b..a5c3db7 100644 --- a/EVT_Core/Dataset/VITS/utils/Split_Audio.py +++ b/EVT_Core/Dataset/VITS/utils/Split_Audio.py @@ -1,6 +1,7 @@ import os import pandas as pd from glob import glob +from pathlib import Path from pydub import AudioSegment from concurrent.futures import ThreadPoolExecutor @@ -17,13 +18,14 @@ def ReadCSV(CSV_Path): def SplitFile( + CSV_Path, Item, Dir_Output ): - DF = ReadCSV(Item) + DF = ReadCSV(CSV_Path) def SplitAudio(DF): - Audio = AudioSegment.from_wav(Item.replace('.csv', '.wav')) + Audio = AudioSegment.from_wav(Item) Audio_Split = Audio[DF['start_times']:DF['end_times']] Audio_Split.export(os.path.join(Dir_Output, (DF['id'] + '.wav')), format = 'wav') @@ -31,16 +33,19 @@ def SplitAudio(DF): def split_files( - Dir_Input, - Dir_Output + CSV_Dir_Input, + WAV_Paths_Input, + Dir_WAVOutput ): ''' Slice audio files based on start and end times in csv files ''' ParamsList = [] - for Item in glob(os.path.join(Dir_Input, '*.csv')): - if os.path.exists(Item.replace('.csv', '.wav')): - ParamsList.append((Item, Dir_Output)) + CSV_Paths_Input = [CSV_Path_Input.as_posix() for CSV_Path_Input in Path(CSV_Dir_Input).glob('*.csv')] + for WAV_Path_Input in WAV_Paths_Input: + CSV_Path = Path(CSV_Dir_Input).joinpath(Path(WAV_Path_Input).stem).as_posix() + '.csv' + if Path(WAV_Path_Input).exists() and CSV_Path in CSV_Paths_Input: + ParamsList.append((CSV_Path, WAV_Path_Input, Dir_WAVOutput)) else: next diff --git a/EVT_Core/Process/Process.py b/EVT_Core/Process/Process.py index 337ad69..53f3968 100644 --- a/EVT_Core/Process/Process.py +++ b/EVT_Core/Process/Process.py @@ -29,23 +29,27 @@ class Audio_Processing: def __init__(self, Media_Dir_Input: str, - Media_Dir_Output: str, Media_Format_Output: Optional[str] = 'wav', SampleRate: Optional[Union[int, str]] = None, SampleWidth: Optional[Union[int, str]] = None, ToMono: bool = False, - #Denoise_Audio: bool = True, + Denoise_Audio: bool = True, + Denoise_Model_Path: str = "", + Denoise_Target: str = '', Slice_Audio: bool = True, RMS_Threshold: float = -40., Audio_Length_Min: int = 5000, Silent_Interval_Min: int = 300, Hop_Size: int = 10, - Silence_Kept_Max: int = 1000 + Silence_Kept_Max: int = 1000, + Media_Root_Output: str = "./", + Media_DirName_Output: str = "", ): self.Media_Dir_Input = Media_Dir_Input - self.Media_Dir_Output = Media_Dir_Output self.Media_Format_Output = Media_Format_Output.lower() if Media_Format_Output is not None else None - self.Denoise_Audio = False #self.Denoise_Audio = Denoise_Audio + self.Denoise_Audio = Denoise_Audio + self.DenoiseModel_Path = Denoise_Model_Path + self.DenoiseTarget = Denoise_Target.replace('人声', 'vocals').replace('背景声', 'instrument') self.Slice_Audio = Slice_Audio self.RMS_Threshold = RMS_Threshold self.Audio_Length_Min = Audio_Length_Min @@ -55,8 +59,9 @@ def __init__(self, self.SampleRate = eval(SampleRate) if SampleRate is not None else None self.SampleWidth = str(SampleWidth) if SampleWidth is not None else None self.ToMono = ToMono + self.Media_Dir_Output = Path(Media_Root_Output).joinpath(Media_DirName_Output).as_posix() - os.makedirs(Media_Dir_Output, exist_ok = True) + os.makedirs(self.Media_Dir_Output, exist_ok = True) def GetPatterns(self, Directory: str, @@ -93,7 +98,12 @@ def ProcessMedia(self, if self.Denoise_Audio: WriteParamsList.clear() - AudioData = Denoiser(AudioData) + AudioData, SampleRate = Denoiser( + AudioData, + SampleRate, + ModelPath = self.DenoiseModel_Path, + Target = self.DenoiseTarget + ) Audio_Name_Output = Audio_Name_Input.rsplit('.', 1)[0] + '_Denoised_' + '.' + self.Media_Format_Output Audio_Path_Output = os.path.normpath(os.path.join(self.Media_Dir_Output, Audio_Name_Output)) WriteParamsList.append((Audio_Path_Output, AudioData.T if len(AudioData.shape) > 1 else AudioData, int(SampleRate))) @@ -130,7 +140,7 @@ def ProcessMedia(self, def Process_Audio(self): print('Processing media...') - with ThreadPoolExecutor(max_workers = os.cpu_count()) as Executor: + with ThreadPoolExecutor(max_workers = os.cpu_count() if not self.Denoise_Audio else 1) as Executor: Executor.map( self.ProcessMedia, self.GetPatterns(self.Media_Dir_Input, self.MediaExtensions) diff --git a/EVT_Core/Process/utils/Denoise_Audio.py b/EVT_Core/Process/utils/Denoise_Audio.py index 529858f..7c60dce 100644 --- a/EVT_Core/Process/utils/Denoise_Audio.py +++ b/EVT_Core/Process/utils/Denoise_Audio.py @@ -1,33 +1,76 @@ -import numpy +import os +import torch +import traceback import librosa -from scipy.signal import medfilt +import soundfile +from pathlib import Path +from .uvr5.mdxnet import MDXNetDereverb +from .uvr5.vr import AudioPre, AudioPreDeEcho -def Denoiser( + +def uvr( AudioData, - Mode: int = 1 + SampleRate, + ModelPath, + Target, + Agg ): - if Mode == 1: # 中值法 - # 将数据转换为浮点数类型 - AudioData = AudioData.astype(float) - - # 对每个声道的数据进行降噪处理 - for i in range(AudioData.shape[1]): - AudioData[:, i] = medfilt(AudioData[:, i], 3) - - # 将数据转换回整型类型 - AudioData = AudioData.astype(numpy.int16) - - if Mode == 2: # FFT - # 通过FFT转换到频域 - AudioData = librosa.stft(AudioData) + try: + if "onnx_dereverb_by_foxjoy" in ModelPath.lower() and Path(ModelPath).suffix == ".onnx": + pre_fun = MDXNetDereverb( + model_path = ModelPath, + chunks = 15 + ) + else: + device = "cuda" if torch.cuda.is_available() else "cpu" + func = AudioPre if "DeEcho" not in Path(ModelPath).stem else AudioPreDeEcho + pre_fun = func( + agg = int(Agg), + model_path = ModelPath, + device = device, + is_half = False, + ) + tmp_path = Path(os.getcwd()).joinpath("tmp.wav").as_posix() + AudioData = librosa.resample(AudioData, orig_sr = SampleRate, target_sr = 44100) + soundfile.write(tmp_path, AudioData.T if len(AudioData.shape) > 1 else AudioData, 44100, subtype = 'PCM_16') + data, samplerate = pre_fun._path_audio_( + path = tmp_path, + target = Target, + is_hp3 = "hp3" in Path(ModelPath).stem.lower() + ) + except: + traceback.print_exc() + finally: + os.remove(tmp_path) + if ModelPath == "onnx_dereverb_By_FoxJoy": + del pre_fun.pred.model + del pre_fun.pred.model_ + else: + del pre_fun.model + del pre_fun + torch.cuda.empty_cache() if torch.cuda.is_available() else None + return data.T if len(data.shape) > 1 else data, samplerate - # 在频域进行降噪处理 - Mean_RealPart = numpy.mean(AudioData.real) # 对实部求平均 - Mean_ImagPart = numpy.mean(AudioData.imag) # 对虚部求平均 - AudioData = AudioData - Mean_RealPart - 1j * Mean_ImagPart # 重构复数 去除直流分量 - # 通过逆FFT转换回时域 - AudioData = librosa.istft(AudioData) - - return AudioData \ No newline at end of file +def Denoiser( + AudioData, + SampleRate, + ModelPath, + Target = "voice", # 指定要保留人声还是背景音 + #Agg = 10 # 人声提取激进程度(0-20, step=1) +): + ''' + ModelName_Map = { + "不带和声": "HP3_all_vocals", + "带和声": "HP5_only_main_vocal", + } + ModelName = ModelName_Map.get(AudioType, "HP3_all_vocals") + ''' + return uvr( + AudioData, + SampleRate, + ModelPath, + Target = Target, + Agg = 10 + ) \ No newline at end of file diff --git a/EVT_Core/Process/utils/Load_Media.py b/EVT_Core/Process/utils/Load_Media.py index bf95b26..2fb7122 100644 --- a/EVT_Core/Process/utils/Load_Media.py +++ b/EVT_Core/Process/utils/Load_Media.py @@ -10,7 +10,7 @@ def Loader( Mono: bool = True ): ''' - Load an media file like using librosa.load() + Load a media file like using librosa.load() ''' AudioFile = AudioSegment.from_file(Path) diff --git a/EVT_Core/Process/utils/uvr5/mdxnet.py b/EVT_Core/Process/utils/uvr5/mdxnet.py new file mode 100644 index 0000000..7149191 --- /dev/null +++ b/EVT_Core/Process/utils/uvr5/mdxnet.py @@ -0,0 +1,231 @@ +import os +import logging +logger = logging.getLogger(__name__) +import librosa +import numpy as np +import soundfile as sf +import torch +from tqdm import tqdm +from pathlib import Path + +cpu = torch.device("cpu") + + +class ConvTDFNetTrim: + def __init__( + self, device, model_name, target_name, L, dim_f, dim_t, n_fft, hop=1024 + ): + super(ConvTDFNetTrim, self).__init__() + + self.dim_f = dim_f + self.dim_t = 2**dim_t + self.n_fft = n_fft + self.hop = hop + self.n_bins = self.n_fft // 2 + 1 + self.chunk_size = hop * (self.dim_t - 1) + self.window = torch.hann_window(window_length=self.n_fft, periodic=True).to( + device + ) + self.target_name = target_name + self.blender = "blender" in model_name + + self.dim_c = 4 + out_c = self.dim_c * 4 if target_name == "*" else self.dim_c + self.freq_pad = torch.zeros( + [1, out_c, self.n_bins - self.dim_f, self.dim_t] + ).to(device) + + self.n = L // 2 + + def stft(self, x): + x = x.reshape([-1, self.chunk_size]) + x = torch.stft( + x, + n_fft=self.n_fft, + hop_length=self.hop, + window=self.window, + center=True, + return_complex=True, + ) + x = torch.view_as_real(x) + x = x.permute([0, 3, 1, 2]) + x = x.reshape([-1, 2, 2, self.n_bins, self.dim_t]).reshape( + [-1, self.dim_c, self.n_bins, self.dim_t] + ) + return x[:, :, : self.dim_f] + + def istft(self, x, freq_pad=None): + freq_pad = ( + self.freq_pad.repeat([x.shape[0], 1, 1, 1]) + if freq_pad is None + else freq_pad + ) + x = torch.cat([x, freq_pad], -2) + c = 4 * 2 if self.target_name == "*" else 2 + x = x.reshape([-1, c, 2, self.n_bins, self.dim_t]).reshape( + [-1, 2, self.n_bins, self.dim_t] + ) + x = x.permute([0, 2, 3, 1]) + x = x.contiguous() + x = torch.view_as_complex(x) + x = torch.istft( + x, n_fft=self.n_fft, hop_length=self.hop, window=self.window, center=True + ) + return x.reshape([-1, c, self.chunk_size]) + + +def get_models(device, dim_f, dim_t, n_fft): + return ConvTDFNetTrim( + device=device, + model_name="Conv-TDF", + target_name="vocals", + L=11, + dim_f=dim_f, + dim_t=dim_t, + n_fft=n_fft, + ) + + +class Predictor: + def __init__(self, args): + import onnxruntime as ort + + logger.info(ort.get_available_providers()) + self.args = args + self.model_ = get_models( + device=cpu, dim_f=args.dim_f, dim_t=args.dim_t, n_fft=args.n_fft + ) + self.model = ort.InferenceSession( + os.path.join(args.onnx, self.model_.target_name + ".onnx"), + providers=[ + "CUDAExecutionProvider", + "DmlExecutionProvider", + "CPUExecutionProvider", + ], + ) + logger.info("ONNX load done") + + def demix(self, mix): + samples = mix.shape[-1] + margin = self.args.margin + chunk_size = self.args.chunks * 44100 + assert not margin == 0, "margin cannot be zero!" + if margin > chunk_size: + margin = chunk_size + + segmented_mix = {} + + if self.args.chunks == 0 or samples < chunk_size: + chunk_size = samples + + counter = -1 + for skip in range(0, samples, chunk_size): + counter += 1 + + s_margin = 0 if counter == 0 else margin + end = min(skip + chunk_size + margin, samples) + + start = skip - s_margin + + segmented_mix[skip] = mix[:, start:end].copy() + if end == samples: + break + + sources = self.demix_base(segmented_mix, margin_size=margin) + """ + mix:(2,big_sample) + segmented_mix:offset->(2,small_sample) + sources:(1,2,big_sample) + """ + return sources + + def demix_base(self, mixes, margin_size): + chunked_sources = [] + progress_bar = tqdm(total=len(mixes)) + progress_bar.set_description("Processing") + for mix in mixes: + cmix = mixes[mix] + sources = [] + n_sample = cmix.shape[1] + model = self.model_ + trim = model.n_fft // 2 + gen_size = model.chunk_size - 2 * trim + pad = gen_size - n_sample % gen_size + mix_p = np.concatenate( + (np.zeros((2, trim)), cmix, np.zeros((2, pad)), np.zeros((2, trim))), 1 + ) + mix_waves = [] + i = 0 + while i < n_sample + pad: + waves = np.array(mix_p[:, i : i + model.chunk_size]) + mix_waves.append(waves) + i += gen_size + mix_waves = torch.tensor(mix_waves, dtype=torch.float32).to(cpu) + with torch.no_grad(): + _ort = self.model + spek = model.stft(mix_waves) + if self.args.denoise: + spec_pred = ( + -_ort.run(None, {"input": -spek.cpu().numpy()})[0] * 0.5 + + _ort.run(None, {"input": spek.cpu().numpy()})[0] * 0.5 + ) + tar_waves = model.istft(torch.tensor(spec_pred)) + else: + tar_waves = model.istft( + torch.tensor(_ort.run(None, {"input": spek.cpu().numpy()})[0]) + ) + tar_signal = ( + tar_waves[:, :, trim:-trim] + .transpose(0, 1) + .reshape(2, -1) + .numpy()[:, :-pad] + ) + + start = 0 if mix == 0 else margin_size + end = None if mix == list(mixes.keys())[::-1][0] else -margin_size + if margin_size == 0: + end = None + sources.append(tar_signal[:, start:end]) + + progress_bar.update(1) + + chunked_sources.append(sources) + _sources = np.concatenate(chunked_sources, axis=-1) + # del self.model + progress_bar.close() + return _sources + + def prediction(self, + path, target + ): + mix, rate = librosa.load(path, sr = 44100, mono = False) + if mix.ndim == 1: + mix = np.asfortranarray([mix, mix]) + mix = mix.T + sources = self.demix(mix.T) + opt = sources[0].T + if target == "vocals": + data, samplerate = mix - opt, rate + if target == "instrument": + data, samplerate = opt, rate + return data, samplerate + + +class MDXNetDereverb: + def __init__(self, model_path, chunks): + self.onnx = Path(model_path).parent.as_posix() #self.onnx = "%s/uvr5_weights/onnx_dereverb_By_FoxJoy"%os.path.dirname(os.path.abspath(__file__)) + self.shifts = 10 # 'Predict with randomised equivariant stabilisation' + self.mixing = "min_mag" # ['default','min_mag','max_mag'] + self.chunks = chunks + self.margin = 44100 + self.dim_t = 9 + self.dim_f = 3072 + self.n_fft = 6144 + self.denoise = True + self.pred = Predictor(self) + self.device = cpu + + def _path_audio_(self, + path, target, is_hp3=False + ): + return self.pred.prediction(path, target) \ No newline at end of file diff --git a/EVT_Core/Process/utils/uvr5/vr.py b/EVT_Core/Process/utils/uvr5/vr.py new file mode 100644 index 0000000..c373c1b --- /dev/null +++ b/EVT_Core/Process/utils/uvr5/vr.py @@ -0,0 +1,251 @@ +import os +parent_directory = os.path.dirname(os.path.abspath(__file__)) +import logging +logger = logging.getLogger(__name__) +import librosa +import numpy as np +import soundfile as sf +import torch + +from .lib.lib_v5 import nets_61968KB as Nets +from .lib.lib_v5 import spec_utils +from .lib.lib_v5.model_param_init import ModelParameters +from .lib.lib_v5.nets_new import CascadedNet +from .lib.utils import inference + + +class AudioPre: + def __init__(self, agg, model_path, device, is_half, tta=False): + self.model_path = model_path + self.device = device + self.data = { + # Processing Options + "postprocess": False, + "tta": tta, + # Constants + "window_size": 512, + "agg": agg, + "high_end_process": "mirroring", + } + mp = ModelParameters("%s/lib/lib_v5/modelparams/4band_v2.json"%parent_directory) + model = Nets.CascadedASPPNet(mp.param["bins"] * 2) + cpk = torch.load(model_path, map_location="cpu") + model.load_state_dict(cpk) + model.eval() + if is_half: + model = model.half().to(device) + else: + model = model.to(device) + + self.mp = mp + self.model = model + + def _path_audio_(self, + path, target, is_hp3=False + ): + X_wave, y_wave, X_spec_s, y_spec_s = {}, {}, {}, {} + bands_n = len(self.mp.param["band"]) + # print(bands_n) + for d in range(bands_n, 0, -1): + bp = self.mp.param["band"][d] + if d == bands_n: # high-end band + ( + X_wave[d], + _, + ) = librosa.core.load( + path, + sr = bp["sr"], + mono = False, + dtype = np.float32, + res_type = bp["res_type"], + ) + if X_wave[d].ndim == 1: + X_wave[d] = np.asfortranarray([X_wave[d], X_wave[d]]) + else: # lower bands + X_wave[d] = librosa.core.resample( + X_wave[d + 1], + orig_sr = self.mp.param["band"][d + 1]["sr"], + target_sr = bp["sr"], + res_type = bp["res_type"], + ) + # Stft of wave source + X_spec_s[d] = spec_utils.wave_to_spectrogram_mt( + X_wave[d], + bp["hl"], + bp["n_fft"], + self.mp.param["mid_side"], + self.mp.param["mid_side_b2"], + self.mp.param["reverse"], + ) + # pdb.set_trace() + if d == bands_n and self.data["high_end_process"] != "none": + input_high_end_h = (bp["n_fft"] // 2 - bp["crop_stop"]) + ( + self.mp.param["pre_filter_stop"] - self.mp.param["pre_filter_start"] + ) + input_high_end = X_spec_s[d][ + :, bp["n_fft"] // 2 - input_high_end_h : bp["n_fft"] // 2, : + ] + + X_spec_m = spec_utils.combine_spectrograms(X_spec_s, self.mp) + aggresive_set = float(self.data["agg"] / 100) + aggressiveness = { + "value": aggresive_set, + "split_bin": self.mp.param["band"][1]["crop_stop"], + } + with torch.no_grad(): + pred, X_mag, X_phase = inference( + X_spec_m, self.device, self.model, aggressiveness, self.data + ) + # Postprocess + if self.data["postprocess"]: + pred_inv = np.clip(X_mag - pred, 0, np.inf) + pred = spec_utils.mask_silence(pred, pred_inv) + y_spec_m = pred * X_phase + v_spec_m = X_spec_m - y_spec_m + + if (target, is_hp3) in (("instrument", False), ("vocals", True)): + if self.data["high_end_process"].startswith("mirroring"): + input_high_end_ = spec_utils.mirroring( + self.data["high_end_process"], y_spec_m, input_high_end, self.mp + ) + wav_instrument = spec_utils.cmb_spectrogram_to_wave( + y_spec_m, self.mp, input_high_end_h, input_high_end_ + ) + else: + wav_instrument = spec_utils.cmb_spectrogram_to_wave(y_spec_m, self.mp) + data = (np.array(wav_instrument) * 32768).astype("int16") + samplerate = self.mp.param["sr"] + return data, samplerate + + if (target, is_hp3) in (("instrument", True), ("vocals", False)): + if self.data["high_end_process"].startswith("mirroring"): + input_high_end_ = spec_utils.mirroring( + self.data["high_end_process"], v_spec_m, input_high_end, self.mp + ) + wav_vocals = spec_utils.cmb_spectrogram_to_wave( + v_spec_m, self.mp, input_high_end_h, input_high_end_ + ) + else: + wav_vocals = spec_utils.cmb_spectrogram_to_wave(v_spec_m, self.mp) + data = (np.array(wav_vocals) * 32768).astype("int16") + samplerate = self.mp.param["sr"] + return data, samplerate + + +class AudioPreDeEcho: + def __init__(self, agg, model_path, device, is_half, tta=False): + self.model_path = model_path + self.device = device + self.data = { + # Processing Options + "postprocess": False, + "tta": tta, + # Constants + "window_size": 512, + "agg": agg, + "high_end_process": "mirroring", + } + mp = ModelParameters("%s/lib/lib_v5/modelparams/4band_v3.json"%parent_directory) + nout = 64 if "DeReverb" in model_path else 48 + model = CascadedNet(mp.param["bins"] * 2, nout) + cpk = torch.load(model_path, map_location="cpu") + model.load_state_dict(cpk) + model.eval() + if is_half: + model = model.half().to(device) + else: + model = model.to(device) + + self.mp = mp + self.model = model + + def _path_audio_(self, + path, target, is_hp3=False + ): # 3个VR模型vocal和ins是反的 + X_wave, y_wave, X_spec_s, y_spec_s = {}, {}, {}, {} + bands_n = len(self.mp.param["band"]) + # print(bands_n) + for d in range(bands_n, 0, -1): + bp = self.mp.param["band"][d] + if d == bands_n: # high-end band + ( + X_wave[d], + _, + ) = librosa.core.load( # 理论上librosa读取可能对某些音频有bug,应该上ffmpeg读取,但是太麻烦了弃坑 + path, + sr = bp["sr"], + mono = False, + dtype = np.float32, + res_type = bp["res_type"], + ) + if X_wave[d].ndim == 1: + X_wave[d] = np.asfortranarray([X_wave[d], X_wave[d]]) + else: # lower bands + X_wave[d] = librosa.core.resample( + X_wave[d + 1], + orig_sr = self.mp.param["band"][d + 1]["sr"], + target_sr = bp["sr"], + res_type = bp["res_type"], + ) + # Stft of wave source + X_spec_s[d] = spec_utils.wave_to_spectrogram_mt( + X_wave[d], + bp["hl"], + bp["n_fft"], + self.mp.param["mid_side"], + self.mp.param["mid_side_b2"], + self.mp.param["reverse"], + ) + # pdb.set_trace() + if d == bands_n and self.data["high_end_process"] != "none": + input_high_end_h = (bp["n_fft"] // 2 - bp["crop_stop"]) + ( + self.mp.param["pre_filter_stop"] - self.mp.param["pre_filter_start"] + ) + input_high_end = X_spec_s[d][ + :, bp["n_fft"] // 2 - input_high_end_h : bp["n_fft"] // 2, : + ] + + X_spec_m = spec_utils.combine_spectrograms(X_spec_s, self.mp) + aggresive_set = float(self.data["agg"] / 100) + aggressiveness = { + "value": aggresive_set, + "split_bin": self.mp.param["band"][1]["crop_stop"], + } + with torch.no_grad(): + pred, X_mag, X_phase = inference( + X_spec_m, self.device, self.model, aggressiveness, self.data + ) + # Postprocess + if self.data["postprocess"]: + pred_inv = np.clip(X_mag - pred, 0, np.inf) + pred = spec_utils.mask_silence(pred, pred_inv) + y_spec_m = pred * X_phase + v_spec_m = X_spec_m - y_spec_m + + if target == "instrument": + if self.data["high_end_process"].startswith("mirroring"): + input_high_end_ = spec_utils.mirroring( + self.data["high_end_process"], y_spec_m, input_high_end, self.mp + ) + wav_instrument = spec_utils.cmb_spectrogram_to_wave( + y_spec_m, self.mp, input_high_end_h, input_high_end_ + ) + else: + wav_instrument = spec_utils.cmb_spectrogram_to_wave(y_spec_m, self.mp) + data = (np.array(wav_instrument) * 32768).astype("int16") + samplerate = self.mp.param["sr"] + return data, samplerate + + if target == "vocals": + if self.data["high_end_process"].startswith("mirroring"): + input_high_end_ = spec_utils.mirroring( + self.data["high_end_process"], v_spec_m, input_high_end, self.mp + ) + wav_vocals = spec_utils.cmb_spectrogram_to_wave( + v_spec_m, self.mp, input_high_end_h, input_high_end_ + ) + else: + wav_vocals = spec_utils.cmb_spectrogram_to_wave(v_spec_m, self.mp) + data = (np.array(wav_vocals) * 32768).astype("int16") + samplerate = self.mp.param["sr"] + return data, samplerate \ No newline at end of file diff --git a/EVT_Core/STT/Whisper/Transcribe.py b/EVT_Core/STT/Whisper/Transcribe.py index 799a02e..9813919 100644 --- a/EVT_Core/STT/Whisper/Transcribe.py +++ b/EVT_Core/STT/Whisper/Transcribe.py @@ -129,17 +129,18 @@ class Voice_Transcribing: def __init__(self, Model_Path: str = './Models/.pt', Audio_Dir: str = './WAV_Files', - SRT_Dir: str = './SRT_Files', Verbose: str2bool = True, Add_LanguageInfo: bool = True, Condition_on_Previous_Text: str2bool = False, fp16: str2bool = True, + Output_Root: str = './', + Output_Name: str = 'SRT_Files' ): self.Model_Name = Path(Model_Path).stem.__str__() # name of the Whisper model to use choices = available_models() self.Model_Dir = Path(Model_Path).parent.__str__() # the path to save model files; uses ~/.cache/whisper by default self.Device: str = "cuda" if torch.cuda.is_available() else "cpu" # device to use for PyTorch inference self.Audio_Dir = Audio_Dir # the path to save audio files - self.SRT_Dir = SRT_Dir # help = "directory to save the outputs + self.SRT_Dir = Path(Output_Root).joinpath(Output_Name).as_posix() # help = "directory to save the outputs self.Verbose = Verbose # whether to print out the progress and debug messages self.Task = 'transcribe' # whether to perform X->X speech recognition ('transcribe') or X->English translation ('translate') self.Language = None # language spoken in the audio, specify None to perform language detection diff --git a/EVT_Core/TTS/GPT_SoVITS/Convert.py b/EVT_Core/TTS/GPT_SoVITS/Convert.py new file mode 100644 index 0000000..00b3551 --- /dev/null +++ b/EVT_Core/TTS/GPT_SoVITS/Convert.py @@ -0,0 +1,153 @@ +import os +import sys +import platform +import logging +logger = logging.getLogger(__name__) +import psutil +import signal +import subprocess +import torch +from pathlib import Path + +from .config import python_exec, webui_port_infer_tts, is_share +#from .GPT_SoVITS.inference_webui import change_gpt_weights, change_sovits_weights, get_tts_wav + + +current_dir = Path(__file__).absolute().parent.as_posix() +os.chdir(current_dir) +sys.path.insert(0, f"{current_dir}/GPT_SoVITS") + + +def RunCMD(Args: str): + Encoding = 'gbk' if platform.system() == 'Windows' else 'utf-8' + + TotalInput = f"{Args}\n".encode(Encoding) + if platform.system() == 'Windows': + ShellArgs = ['cmd'] + if platform.system() == 'Linux': + ShellArgs = ['bash', '-c'] + Subprocess = subprocess.Popen( + args = ShellArgs, + stdin = subprocess.PIPE, + stdout = subprocess.PIPE, + stderr = subprocess.STDOUT + ) + TotalOutput = Subprocess.communicate(TotalInput)[0] + TotalOutput = '' if TotalOutput is None else TotalOutput.strip().decode(Encoding) + + return None if TotalOutput == '' else TotalOutput + + +NetStat = RunCMD(f'netstat -aon|findstr "{webui_port_infer_tts}"') +for Line in str(NetStat).splitlines(): + Line = Line.strip() + RunCMD(f'taskkill /PID {Line.split(" ")[-1]}') if Line.startswith("TCP") else None + + +def kill_proc_tree(pid, including_parent=True): + try: + parent = psutil.Process(pid) + except psutil.NoSuchProcess: + # Process already terminated + return + + children = parent.children(recursive=True) + for child in children: + try: + os.kill(child.pid, signal.SIGTERM) # or signal.SIGKILL + except OSError: + pass + if including_parent: + try: + os.kill(parent.pid, signal.SIGTERM) # or signal.SIGKILL + except OSError: + pass + + +def kill_process(pid): + if(platform.system()=="Windows"): + cmd = "taskkill /t /f /pid %s" % pid + os.system(cmd) + else: + kill_proc_tree(pid) + + +gpu_infos = [] +mem = [] +if_gpu_ok = False + +# 判断是否有能用来训练和加速推理的N卡 +ngpu = torch.cuda.device_count() +if torch.cuda.is_available() or ngpu != 0: + for i in range(ngpu): + gpu_name = torch.cuda.get_device_name(i) + if any(value in gpu_name.upper()for value in ["10","16","20","30","40","A2","A3","A4","P4","A50","500","A60","70","80","90","M4","T4","TITAN","L4","4060"]): + # A10#A100#V100#A40#P40#M40#K80#A4500 + if_gpu_ok = True # 至少有一张能用的N卡 + gpu_infos.append("%s\t%s" % (i, gpu_name)) + mem.append(int(torch.cuda.get_device_properties(i).total_memory/ 1024/ 1024/ 1024+ 0.4)) +# 判断是否支持mps加速 +if torch.backends.mps.is_available(): + if_gpu_ok = True + gpu_infos.append("%s\t%s" % ("0", "Apple GPU")) + mem.append(psutil.virtual_memory().total/ 1024 / 1024 / 1024) # 实测使用系统内存作为显存不会爆显存 +os.environ['PYTORCH_ENABLE_MPS_FALLBACK'] = '1' # 当遇到mps不支持的步骤时使用cpu + +if if_gpu_ok and len(gpu_infos) > 0: + gpu_info = "\n".join(gpu_infos) + default_batch_size = min(mem) // 2 +else: + gpu_info = "很遗憾您这没有能用的显卡来支持您训练" + default_batch_size = 1 +gpus = "-".join([i[0] for i in gpu_infos]) + + +p_tts_inference=None +def change_tts_inference( + if_tts, + bert_path, + cnhubert_base_path, + gpu_number, + is_half, + gpt_path, + sovits_path +): + global p_tts_inference + if(if_tts==True and p_tts_inference==None): + os.environ["gpt_path"]=gpt_path #if "/" in gpt_path else "%s/%s"%(GPT_weight_root,gpt_path) + os.environ["sovits_path"]=sovits_path #if "/"in sovits_path else "%s/%s"%(SoVITS_weight_root,sovits_path) + os.environ["cnhubert_base_path"]=cnhubert_base_path + os.environ["bert_path"]=bert_path + os.environ["_CUDA_VISIBLE_DEVICES"]=gpu_number + os.environ["is_half"]=str(is_half) + os.environ["infer_ttswebui"]=str(webui_port_infer_tts) + os.environ["is_share"]=str(is_share) + cmd = f'"{python_exec}" "GPT_SoVITS/inference_webui.py"' + print("TTS推理进程已开启") + print(cmd) + p_tts_inference = subprocess.Popen(cmd, shell=True) + p_tts_inference.wait() + elif(if_tts==False and p_tts_inference!=None): + kill_process(p_tts_inference.pid) + p_tts_inference=None + print("TTS推理进程已关闭") + + +def Convert( + Model_Path_Load_s1: str = "GPT_SoVITS/pretrained_models/s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt", + Model_Path_Load_s2G: str = "GPT_SoVITS/pretrained_models/s2G488k.pth", + Model_Dir_Load_bert: str = "GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large", + Model_Dir_Load_ssl: str = "GPT_SoVITS/pretrained_models/chinese-hubert-base", + Set_FP16_Run: bool = False +): + # 1C-推理 + change_tts_inference( + if_tts = True, + bert_path = Model_Dir_Load_bert, + cnhubert_base_path = Model_Dir_Load_ssl, + gpu_number = gpus, + is_half = Set_FP16_Run, + gpt_path = Model_Path_Load_s1, + sovits_path = Model_Path_Load_s2G + ) + # 2-GPT-SoVITS-变声 \ No newline at end of file diff --git a/EVT_Core/TTS/GPT_SoVITS/GPT_SoVITS/feature_extractor/__init__.py b/EVT_Core/TTS/GPT_SoVITS/GPT_SoVITS/feature_extractor/__init__.py new file mode 100644 index 0000000..860905d --- /dev/null +++ b/EVT_Core/TTS/GPT_SoVITS/GPT_SoVITS/feature_extractor/__init__.py @@ -0,0 +1,5 @@ +from . import cnhubert + +content_module_map = { + 'cnhubert': cnhubert +} \ No newline at end of file diff --git a/EVT_Core/TTS/GPT_SoVITS/GPT_SoVITS/feature_extractor/cnhubert.py b/EVT_Core/TTS/GPT_SoVITS/GPT_SoVITS/feature_extractor/cnhubert.py new file mode 100644 index 0000000..1931580 --- /dev/null +++ b/EVT_Core/TTS/GPT_SoVITS/GPT_SoVITS/feature_extractor/cnhubert.py @@ -0,0 +1,88 @@ +import torch +import logging + +logging.getLogger("numba").setLevel(logging.WARNING) + +from transformers import ( + Wav2Vec2FeatureExtractor, + HubertModel, +) + +import torch.nn as nn + +cnhubert_base_path = None + + +class CNHubert(nn.Module): + def __init__(self): + super().__init__() + self.model = HubertModel.from_pretrained(cnhubert_base_path) + self.feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained( + cnhubert_base_path + ) + + def forward(self, x): + input_values = self.feature_extractor( + x, return_tensors="pt", sampling_rate=16000 + ).input_values.to(x.device) + feats = self.model(input_values)["last_hidden_state"] + return feats + + +# class CNHubertLarge(nn.Module): +# def __init__(self): +# super().__init__() +# self.model = HubertModel.from_pretrained("/data/docker/liujing04/gpt-vits/chinese-hubert-large") +# self.feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained("/data/docker/liujing04/gpt-vits/chinese-hubert-large") +# def forward(self, x): +# input_values = self.feature_extractor(x, return_tensors="pt", sampling_rate=16000).input_values.to(x.device) +# feats = self.model(input_values)["last_hidden_state"] +# return feats +# +# class CVec(nn.Module): +# def __init__(self): +# super().__init__() +# self.model = HubertModel.from_pretrained("/data/docker/liujing04/vc-webui-big/hubert_base") +# self.feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained("/data/docker/liujing04/vc-webui-big/hubert_base") +# def forward(self, x): +# input_values = self.feature_extractor(x, return_tensors="pt", sampling_rate=16000).input_values.to(x.device) +# feats = self.model(input_values)["last_hidden_state"] +# return feats +# +# class cnw2v2base(nn.Module): +# def __init__(self): +# super().__init__() +# self.model = Wav2Vec2Model.from_pretrained("/data/docker/liujing04/gpt-vits/chinese-wav2vec2-base") +# self.feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained("/data/docker/liujing04/gpt-vits/chinese-wav2vec2-base") +# def forward(self, x): +# input_values = self.feature_extractor(x, return_tensors="pt", sampling_rate=16000).input_values.to(x.device) +# feats = self.model(input_values)["last_hidden_state"] +# return feats + + +def get_model(): + model = CNHubert() + model.eval() + return model + + +# def get_large_model(): +# model = CNHubertLarge() +# model.eval() +# return model +# +# def get_model_cvec(): +# model = CVec() +# model.eval() +# return model +# +# def get_model_cnw2v2base(): +# model = cnw2v2base() +# model.eval() +# return model + + +def get_content(hmodel, wav_16k_tensor): + with torch.no_grad(): + feats = hmodel(wav_16k_tensor) + return feats.transpose(1, 2) diff --git a/EVT_Core/TTS/GPT_SoVITS/GPT_SoVITS/tools/i18n/i18n.py b/EVT_Core/TTS/GPT_SoVITS/GPT_SoVITS/tools/i18n/i18n.py new file mode 100644 index 0000000..5894492 --- /dev/null +++ b/EVT_Core/TTS/GPT_SoVITS/GPT_SoVITS/tools/i18n/i18n.py @@ -0,0 +1,32 @@ +import json +import locale +import os + +from pathlib import Path + + +current_dir = Path(__file__).absolute().parent.as_posix() + + +def load_language_list(language): + with open(f"{current_dir}/locale/{language}.json", "r", encoding="utf-8") as f: + language_list = json.load(f) + return language_list + + +class I18nAuto: + def __init__(self, language=None): + if language in ["Auto", None]: + language = locale.getdefaultlocale()[ + 0 + ] # getlocale can't identify the system's language ((None, None)) + if not os.path.exists(f"{current_dir}/locale/{language}.json"): + language = "en_US" + self.language = language + self.language_map = load_language_list(language) + + def __call__(self, key): + return self.language_map.get(key, key) + + def __repr__(self): + return "Use Language: " + self.language diff --git a/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/feature_extractor/__init__.py b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/feature_extractor/__init__.py new file mode 100644 index 0000000..860905d --- /dev/null +++ b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/feature_extractor/__init__.py @@ -0,0 +1,5 @@ +from . import cnhubert + +content_module_map = { + 'cnhubert': cnhubert +} \ No newline at end of file diff --git a/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/feature_extractor/cnhubert.py b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/feature_extractor/cnhubert.py new file mode 100644 index 0000000..1931580 --- /dev/null +++ b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/feature_extractor/cnhubert.py @@ -0,0 +1,88 @@ +import torch +import logging + +logging.getLogger("numba").setLevel(logging.WARNING) + +from transformers import ( + Wav2Vec2FeatureExtractor, + HubertModel, +) + +import torch.nn as nn + +cnhubert_base_path = None + + +class CNHubert(nn.Module): + def __init__(self): + super().__init__() + self.model = HubertModel.from_pretrained(cnhubert_base_path) + self.feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained( + cnhubert_base_path + ) + + def forward(self, x): + input_values = self.feature_extractor( + x, return_tensors="pt", sampling_rate=16000 + ).input_values.to(x.device) + feats = self.model(input_values)["last_hidden_state"] + return feats + + +# class CNHubertLarge(nn.Module): +# def __init__(self): +# super().__init__() +# self.model = HubertModel.from_pretrained("/data/docker/liujing04/gpt-vits/chinese-hubert-large") +# self.feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained("/data/docker/liujing04/gpt-vits/chinese-hubert-large") +# def forward(self, x): +# input_values = self.feature_extractor(x, return_tensors="pt", sampling_rate=16000).input_values.to(x.device) +# feats = self.model(input_values)["last_hidden_state"] +# return feats +# +# class CVec(nn.Module): +# def __init__(self): +# super().__init__() +# self.model = HubertModel.from_pretrained("/data/docker/liujing04/vc-webui-big/hubert_base") +# self.feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained("/data/docker/liujing04/vc-webui-big/hubert_base") +# def forward(self, x): +# input_values = self.feature_extractor(x, return_tensors="pt", sampling_rate=16000).input_values.to(x.device) +# feats = self.model(input_values)["last_hidden_state"] +# return feats +# +# class cnw2v2base(nn.Module): +# def __init__(self): +# super().__init__() +# self.model = Wav2Vec2Model.from_pretrained("/data/docker/liujing04/gpt-vits/chinese-wav2vec2-base") +# self.feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained("/data/docker/liujing04/gpt-vits/chinese-wav2vec2-base") +# def forward(self, x): +# input_values = self.feature_extractor(x, return_tensors="pt", sampling_rate=16000).input_values.to(x.device) +# feats = self.model(input_values)["last_hidden_state"] +# return feats + + +def get_model(): + model = CNHubert() + model.eval() + return model + + +# def get_large_model(): +# model = CNHubertLarge() +# model.eval() +# return model +# +# def get_model_cvec(): +# model = CVec() +# model.eval() +# return model +# +# def get_model_cnw2v2base(): +# model = cnw2v2base() +# model.eval() +# return model + + +def get_content(hmodel, wav_16k_tensor): + with torch.no_grad(): + feats = hmodel(wav_16k_tensor) + return feats.transpose(1, 2) diff --git a/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/prepare_datasets_1-get-text.py b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/prepare_datasets_1-get-text.py new file mode 100644 index 0000000..8b5a412 --- /dev/null +++ b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/prepare_datasets_1-get-text.py @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- + +import os +inp_text = os.environ.get("inp_text") +inp_wav_dir = os.environ.get("inp_wav_dir") +exp_name = os.environ.get("exp_name") +i_part = os.environ.get("i_part") +all_parts = os.environ.get("all_parts") +os.environ["CUDA_VISIBLE_DEVICES"] = os.environ.get("_CUDA_VISIBLE_DEVICES") +opt_dir = os.environ.get("opt_dir") +bert_pretrained_dir = os.environ.get("bert_pretrained_dir") +is_half = eval(os.environ.get("is_half", "True")) +import traceback +import shutil +import torch +from transformers import AutoModelForMaskedLM, AutoTokenizer +from time import time as ttime + +from text.cleaner import clean_text + + +def my_save(fea,path):#####fix issue: torch.save doesn't support chinese path + dir=os.path.dirname(path) + name=os.path.basename(path) + # tmp_path="%s/%s%s.pth"%(dir,ttime(),i_part) + tmp_path="%s%s.pth"%(ttime(),i_part) + torch.save(fea,tmp_path) + shutil.move(tmp_path,"%s/%s"%(dir,name)) + + +txt_path = "%s/2-name2text-%s.txt" % (opt_dir, i_part) +if os.path.exists(txt_path) == False: + bert_dir = "%s/3-bert" % (opt_dir) + os.makedirs(opt_dir, exist_ok=True) + os.makedirs(bert_dir, exist_ok=True) + if torch.cuda.is_available(): + device = "cuda:0" + # elif torch.backends.mps.is_available(): + # device = "mps" + else: + device = "cpu" + tokenizer = AutoTokenizer.from_pretrained(bert_pretrained_dir) + bert_model = AutoModelForMaskedLM.from_pretrained(bert_pretrained_dir) + if is_half == True: + bert_model = bert_model.half().to(device) + else: + bert_model = bert_model.to(device) + + def get_bert_feature(text, word2ph): + with torch.no_grad(): + inputs = tokenizer(text, return_tensors="pt") + for i in inputs: + inputs[i] = inputs[i].to(device) + res = bert_model(**inputs, output_hidden_states=True) + res = torch.cat(res["hidden_states"][-3:-2], -1)[0].cpu()[1:-1] + + assert len(word2ph) == len(text) + phone_level_feature = [] + for i in range(len(word2ph)): + repeat_feature = res[i].repeat(word2ph[i], 1) + phone_level_feature.append(repeat_feature) + + phone_level_feature = torch.cat(phone_level_feature, dim=0) + + return phone_level_feature.T + + def process(data, res): + for name, text, lan in data: + try: + name = os.path.basename(name) + phones, word2ph, norm_text = clean_text( + text.replace("%", "-").replace("¥", ","), lan + ) + path_bert = "%s/%s.pt" % (bert_dir, name) + if os.path.exists(path_bert) == False and lan == "zh": + bert_feature = get_bert_feature(norm_text, word2ph) + assert bert_feature.shape[-1] == len(phones) + # torch.save(bert_feature, path_bert) + my_save(bert_feature, path_bert) + phones = " ".join(phones) + # res.append([name,phones]) + res.append([name, phones, word2ph, norm_text]) + except: + print(name, text, traceback.format_exc()) + + todo = [] + res = [] + with open(inp_text, "r", encoding="utf8") as f: + lines = f.read().strip("\n").split("\n") + + language_v1_to_language_v2 = { + "ZH": "zh", + "zh": "zh", + "JP": "ja", + "jp": "ja", + "JA": "ja", + "ja": "ja", + "EN": "en", + "en": "en", + "En": "en", + } + for line in lines[int(i_part) :: int(all_parts)]: + try: + wav_name, spk_name, language, text = line.split("|") + # todo.append([name,text,"zh"]) + todo.append( + [wav_name, text, language_v1_to_language_v2.get(language, language)] + ) + except: + print(line, traceback.format_exc()) + + process(todo, res) + opt = [] + for name, phones, word2ph, norm_text in res: + opt.append("%s\t%s\t%s\t%s" % (name, phones, word2ph, norm_text)) + with open(txt_path, "w", encoding="utf8") as f: + f.write("\n".join(opt) + "\n") diff --git a/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/prepare_datasets_2-get-hubert-wav32k.py b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/prepare_datasets_2-get-hubert-wav32k.py new file mode 100644 index 0000000..0014bbf --- /dev/null +++ b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/prepare_datasets_2-get-hubert-wav32k.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- + +import sys,os +now_dir = os.getcwd() +sys.path.append(now_dir) +inp_text= os.environ.get("inp_text") +inp_wav_dir= os.environ.get("inp_wav_dir") +exp_name= os.environ.get("exp_name") +i_part= os.environ.get("i_part") +all_parts= os.environ.get("all_parts") +os.environ["CUDA_VISIBLE_DEVICES"]= os.environ.get("_CUDA_VISIBLE_DEVICES") +opt_dir= os.environ.get("opt_dir") +from GPT_SoVITS.feature_extractor import cnhubert +cnhubert.cnhubert_base_path= os.environ.get("cnhubert_base_dir") +is_half=eval(os.environ.get("is_half","True")) +import traceback, numpy as np +import shutil +import librosa,torch +from scipy.io import wavfile +from time import time as ttime + +from my_utils import load_audio + + +def my_save(fea,path):#####fix issue: torch.save doesn't support chinese path + dir=os.path.dirname(path) + name=os.path.basename(path) + # tmp_path="%s/%s%s.pth"%(dir,ttime(),i_part) + tmp_path="%s%s.pth"%(ttime(),i_part) + torch.save(fea,tmp_path) + shutil.move(tmp_path,"%s/%s"%(dir,name)) + +hubert_dir="%s/4-cnhubert"%(opt_dir) +wav32dir="%s/5-wav32k"%(opt_dir) +os.makedirs(opt_dir,exist_ok=True) +os.makedirs(hubert_dir,exist_ok=True) +os.makedirs(wav32dir,exist_ok=True) + +maxx=0.95 +alpha=0.5 +if torch.cuda.is_available(): + device = "cuda:0" +# elif torch.backends.mps.is_available(): +# device = "mps" +else: + device = "cpu" +model=cnhubert.get_model() +# is_half=False +if(is_half==True): + model=model.half().to(device) +else: + model = model.to(device) + +nan_fails=[] +def name2go(wav_name,wav_path): + hubert_path="%s/%s.pt"%(hubert_dir,wav_name) + if(os.path.exists(hubert_path)):return + tmp_audio = load_audio(wav_path, 32000) + tmp_max = np.abs(tmp_audio).max() + if tmp_max > 2.2: + print("%s-filtered,%s" % (wav_name, tmp_max)) + return + tmp_audio32 = (tmp_audio / tmp_max * (maxx * alpha*32768)) + ((1 - alpha)*32768) * tmp_audio + tmp_audio32b = (tmp_audio / tmp_max * (maxx * alpha*1145.14)) + ((1 - alpha)*1145.14) * tmp_audio + tmp_audio = librosa.resample( + tmp_audio32b, orig_sr=32000, target_sr=16000 + )#不是重采样问题 + tensor_wav16 = torch.from_numpy(tmp_audio) + if (is_half == True): + tensor_wav16=tensor_wav16.half().to(device) + else: + tensor_wav16 = tensor_wav16.to(device) + ssl=model.model(tensor_wav16.unsqueeze(0))["last_hidden_state"].transpose(1,2).cpu()#torch.Size([1, 768, 215]) + if np.isnan(ssl.detach().numpy()).sum()!= 0: + nan_fails.append(wav_name) + print("nan filtered:%s"%wav_name) + return + wavfile.write( + "%s/%s"%(wav32dir,wav_name), + 32000, + tmp_audio32.astype("int16"), + ) + my_save(ssl,hubert_path ) + +with open(inp_text,"r",encoding="utf8")as f: + lines=f.read().strip("\n").split("\n") + +for line in lines[int(i_part)::int(all_parts)]: + try: + # wav_name,text=line.split("\t") + wav_name, spk_name, language, text = line.split("|") + if (inp_wav_dir != "" and inp_wav_dir != None): + wav_name = os.path.basename(wav_name) + wav_path = "%s/%s"%(inp_wav_dir, wav_name) + + else: + wav_path=wav_name + wav_name = os.path.basename(wav_name) + name2go(wav_name,wav_path) + except: + print(line,traceback.format_exc()) + +if(len(nan_fails)>0 and is_half==True): + is_half=False + model=model.float() + for wav_name in nan_fails: + try: + name2go(wav_name) + except: + print(wav_name,traceback.format_exc()) diff --git a/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/prepare_datasets_3-get-semantic.py b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/prepare_datasets_3-get-semantic.py new file mode 100644 index 0000000..084f9ba --- /dev/null +++ b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/prepare_datasets_3-get-semantic.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- + +import os +import sys +now_dir = os.getcwd() +sys.path.append(now_dir) +inp_text = os.environ.get("inp_text") +exp_name = os.environ.get("exp_name") +i_part = os.environ.get("i_part") +all_parts = os.environ.get("all_parts") +os.environ["CUDA_VISIBLE_DEVICES"] = os.environ.get("_CUDA_VISIBLE_DEVICES") +opt_dir = os.environ.get("opt_dir") +pretrained_s2G = os.environ.get("pretrained_s2G") +s2config_path = os.environ.get("s2config_path") +is_half = eval(os.environ.get("is_half", "True")) +import traceback +import logging, utils, torch +logging.getLogger("numba").setLevel(logging.WARNING) + +from module.models import SynthesizerTrn + + +hubert_dir = "%s/4-cnhubert" % (opt_dir) +semantic_path = "%s/6-name2semantic-%s.tsv" % (opt_dir, i_part) +if os.path.exists(semantic_path) == False: + os.makedirs(opt_dir, exist_ok=True) + + if torch.cuda.is_available(): + device = "cuda" + # elif torch.backends.mps.is_available(): + # device = "mps" + else: + device = "cpu" + hps = utils.get_hparams_from_file(s2config_path) + vq_model = SynthesizerTrn( + hps.data.filter_length // 2 + 1, + hps.train.segment_size // hps.data.hop_length, + n_speakers=hps.data.n_speakers, + **hps.model + ) + if is_half == True: + vq_model = vq_model.half().to(device) + else: + vq_model = vq_model.to(device) + vq_model.eval() + # utils.load_checkpoint(utils.latest_checkpoint_path(hps.s2_ckpt_dir, "G_*.pth"), vq_model, None, True) + # utils.load_checkpoint(pretrained_s2G, vq_model, None, True) + print( + vq_model.load_state_dict( + torch.load(pretrained_s2G, map_location="cpu")["weight"], strict=False + ) + ) + + def name2go(wav_name, lines): + hubert_path = "%s/%s.pt" % (hubert_dir, wav_name) + if os.path.exists(hubert_path) == False: + return + ssl_content = torch.load(hubert_path, map_location="cpu") + if is_half == True: + ssl_content = ssl_content.half().to(device) + else: + ssl_content = ssl_content.to(device) + codes = vq_model.extract_latent(ssl_content) + semantic = " ".join([str(i) for i in codes[0, 0, :].tolist()]) + lines.append("%s\t%s" % (wav_name, semantic)) + + with open(inp_text, "r", encoding="utf8") as f: + lines = f.read().strip("\n").split("\n") + + lines1 = [] + for line in lines[int(i_part) :: int(all_parts)]: + # print(line) + try: + # wav_name,text=line.split("\t") + wav_name, spk_name, language, text = line.split("|") + wav_name = os.path.basename(wav_name) + # name2go(name,lines1) + name2go(wav_name, lines1) + except: + print(line, traceback.format_exc()) + with open(semantic_path, "w", encoding="utf8") as f: + f.write("\n".join(lines1)) diff --git a/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/tools/i18n/i18n.py b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/tools/i18n/i18n.py new file mode 100644 index 0000000..5894492 --- /dev/null +++ b/EVT_Core/Train/GPT_SoVITS/GPT_SoVITS/tools/i18n/i18n.py @@ -0,0 +1,32 @@ +import json +import locale +import os + +from pathlib import Path + + +current_dir = Path(__file__).absolute().parent.as_posix() + + +def load_language_list(language): + with open(f"{current_dir}/locale/{language}.json", "r", encoding="utf-8") as f: + language_list = json.load(f) + return language_list + + +class I18nAuto: + def __init__(self, language=None): + if language in ["Auto", None]: + language = locale.getdefaultlocale()[ + 0 + ] # getlocale can't identify the system's language ((None, None)) + if not os.path.exists(f"{current_dir}/locale/{language}.json"): + language = "en_US" + self.language = language + self.language_map = load_language_list(language) + + def __call__(self, key): + return self.language_map.get(key, key) + + def __repr__(self): + return "Use Language: " + self.language diff --git a/EVT_Core/Train/GPT_SoVITS/Train.py b/EVT_Core/Train/GPT_SoVITS/Train.py new file mode 100644 index 0000000..3d4a4b8 --- /dev/null +++ b/EVT_Core/Train/GPT_SoVITS/Train.py @@ -0,0 +1,412 @@ +import os +import sys +import logging +logger = logging.getLogger(__name__) +import torch +torch.manual_seed(233333) +import warnings +warnings.filterwarnings("ignore") +import json, yaml +import traceback +import shutil +import platform +import psutil +import signal +from subprocess import Popen +from typing import Optional +from pathlib import Path + +from .config import python_exec#, exp_root + + +now_dir = os.getcwd() +tmp = Path(now_dir).joinpath("TEMP").as_posix() +os.makedirs(tmp, exist_ok=True) +if(Path(tmp).exists()): + for name in os.listdir(tmp): + if(name=="jieba.cache"):continue + path="%s/%s"%(tmp,name) + delete=os.remove if Path(path).is_file() else shutil.rmtree + try: + delete(path) + except Exception as e: + print(str(e)) + pass +os.environ["TEMP"] = tmp + + +current_dir = Path(__file__).absolute().parent.as_posix() +os.chdir(current_dir) +sys.path.insert(0, f"{current_dir}/GPT_SoVITS") + + +def kill_proc_tree(pid, including_parent=True): + try: + parent = psutil.Process(pid) + except psutil.NoSuchProcess: + # Process already terminated + return + + children = parent.children(recursive=True) + for child in children: + try: + os.kill(child.pid, signal.SIGTERM) # or signal.SIGKILL + except OSError: + pass + if including_parent: + try: + os.kill(parent.pid, signal.SIGTERM) # or signal.SIGKILL + except OSError: + pass + + +def kill_process(pid): + if(platform.system()=="Windows"): + cmd = "taskkill /t /f /pid %s" % pid + os.system(cmd) + else: + kill_proc_tree(pid) + + +ps1abc=[] +def open1abc( + inp_text, + inp_wav_dir, + exp_root, + exp_name, + is_half, + gpu_numbers1a, + gpu_numbers1Ba, + gpu_numbers1c, + bert_pretrained_dir, + ssl_pretrained_dir, + pretrained_s2G_path +): + global ps1abc + if (ps1abc == []): + opt_dir="%s/%s"%(exp_root,exp_name) + try: + #############################1a + path_text="%s/2-name2text.txt" % opt_dir + if(os.path.exists(path_text)==False or (os.path.exists(path_text)==True and len(open(path_text,"r",encoding="utf8").read().strip("\n").split("\n"))<2)): + config={ + "inp_text":inp_text, + "inp_wav_dir":inp_wav_dir, + "exp_name":exp_name, + "opt_dir":opt_dir, + "bert_pretrained_dir":bert_pretrained_dir, + "is_half": str(is_half) + } + gpu_names=gpu_numbers1a.split("-") + all_parts=len(gpu_names) + for i_part in range(all_parts): + config.update( + { + "i_part": str(i_part), + "all_parts": str(all_parts), + "_CUDA_VISIBLE_DEVICES": gpu_names[i_part], + } + ) + os.environ.update(config) + cmd = f'"{python_exec}" "GPT_SoVITS/prepare_datasets_1-get-text.py"' + print(cmd) + p = Popen(cmd, shell=True) + ps1abc.append(p) + print("进度:1a-ing") #yield "进度:1a-ing", {"__type__": "update", "visible": False}, {"__type__": "update", "visible": True} + for p in ps1abc:p.wait() + opt = [] + for i_part in range(all_parts):#txt_path="%s/2-name2text-%s.txt"%(opt_dir,i_part) + txt_path = "%s/2-name2text-%s.txt" % (opt_dir, i_part) + with open(txt_path, "r",encoding="utf8") as f: + opt += f.read().strip("\n").split("\n") + os.remove(txt_path) + with open(path_text, "w",encoding="utf8") as f: + f.write("\n".join(opt) + "\n") + print("进度:1a-done") #yield "进度:1a-done", {"__type__": "update", "visible": False}, {"__type__": "update", "visible": True} + ps1abc=[] + #############################1b + config={ + "inp_text":inp_text, + "inp_wav_dir":inp_wav_dir, + "exp_name":exp_name, + "opt_dir":opt_dir, + "cnhubert_base_dir":ssl_pretrained_dir, + } + gpu_names=gpu_numbers1Ba.split("-") + all_parts=len(gpu_names) + for i_part in range(all_parts): + config.update( + { + "i_part": str(i_part), + "all_parts": str(all_parts), + "_CUDA_VISIBLE_DEVICES": gpu_names[i_part], + } + ) + os.environ.update(config) + cmd = f'"{python_exec}" "GPT_SoVITS/prepare_datasets_2-get-hubert-wav32k.py"' + print(cmd) + p = Popen(cmd, shell=True) + ps1abc.append(p) + print("进度:1a-done, 1b-ing") #yield "进度:1a-done, 1b-ing", {"__type__": "update", "visible": False}, {"__type__": "update", "visible": True} + for p in ps1abc:p.wait() + print("进度:1a1b-done") #yield "进度:1a1b-done", {"__type__": "update", "visible": False}, {"__type__": "update", "visible": True} + ps1abc=[] + #############################1c + path_semantic = "%s/6-name2semantic.tsv" % opt_dir + if(os.path.exists(path_semantic)==False or (os.path.exists(path_semantic)==True and os.path.getsize(path_semantic)<31)): + config={ + "inp_text":inp_text, + "exp_name":exp_name, + "opt_dir":opt_dir, + "pretrained_s2G":pretrained_s2G_path, + "s2config_path":f"GPT_SoVITS/configs/s2.json", + } + gpu_names=gpu_numbers1c.split("-") + all_parts=len(gpu_names) + for i_part in range(all_parts): + config.update( + { + "i_part": str(i_part), + "all_parts": str(all_parts), + "_CUDA_VISIBLE_DEVICES": gpu_names[i_part], + } + ) + os.environ.update(config) + cmd = f'"{python_exec}" "GPT_SoVITS/prepare_datasets_3-get-semantic.py"' + print(cmd) + p = Popen(cmd, shell=True) + ps1abc.append(p) + print("进度:1a1b-done, 1cing") #yield "进度:1a1b-done, 1cing", {"__type__": "update", "visible": False}, {"__type__": "update", "visible": True} + for p in ps1abc:p.wait() + opt = ["item_name\tsemantic_audio"] + for i_part in range(all_parts): + semantic_path = "%s/6-name2semantic-%s.tsv" % (opt_dir, i_part) + with open(semantic_path, "r",encoding="utf8") as f: + opt += f.read().strip("\n").split("\n") + os.remove(semantic_path) + with open(path_semantic, "w",encoding="utf8") as f: + f.write("\n".join(opt) + "\n") + print("进度:all-done") #yield "进度:all-done", {"__type__": "update", "visible": False}, {"__type__": "update", "visible": True} + ps1abc = [] + print("一键三连进程结束") #yield "一键三连进程结束", {"__type__": "update", "visible": True}, {"__type__": "update", "visible": False} + except: + traceback.print_exc() + print("一键三连中途报错") #yield "一键三连中途报错", {"__type__": "update", "visible": True}, {"__type__": "update", "visible": False} + else: + print("已有正在进行的一键三连任务,需先终止才能开启下一次任务") #yield "已有正在进行的一键三连任务,需先终止才能开启下一次任务", {"__type__": "update", "visible": False}, {"__type__": "update", "visible": True} + + +gpu_infos = [] +mem = [] +if_gpu_ok = False + +# 判断是否有能用来训练和加速推理的N卡 +ngpu = torch.cuda.device_count() +if torch.cuda.is_available() or ngpu != 0: + for i in range(ngpu): + gpu_name = torch.cuda.get_device_name(i) + if any(value in gpu_name.upper()for value in ["10","16","20","30","40","A2","A3","A4","P4","A50","500","A60","70","80","90","M4","T4","TITAN","L4","4060"]): + # A10#A100#V100#A40#P40#M40#K80#A4500 + if_gpu_ok = True # 至少有一张能用的N卡 + gpu_infos.append("%s\t%s" % (i, gpu_name)) + mem.append(int(torch.cuda.get_device_properties(i).total_memory/ 1024/ 1024/ 1024+ 0.4)) +# 判断是否支持mps加速 +if torch.backends.mps.is_available(): + if_gpu_ok = True + gpu_infos.append("%s\t%s" % ("0", "Apple GPU")) + mem.append(psutil.virtual_memory().total/ 1024 / 1024 / 1024) # 实测使用系统内存作为显存不会爆显存 +os.environ['PYTORCH_ENABLE_MPS_FALLBACK'] = '1' # 当遇到mps不支持的步骤时使用cpu + +if if_gpu_ok and len(gpu_infos) > 0: + gpu_info = "\n".join(gpu_infos) + default_batch_size = min(mem) // 2 +else: + gpu_info = "很遗憾您这没有能用的显卡来支持您训练" + default_batch_size = 1 +gpus = "-".join([i[0] for i in gpu_infos]) + + +p_train_SoVITS=None +def open1Ba( + batch_size, + total_epoch, + exp_root, + exp_name, + exp_dir_weight, + is_half, + text_low_lr_rate, + if_save_latest, + if_save_every_weights, + save_every_epoch, + gpu_numbers1Ba, + pretrained_s2G, + pretrained_s2D +): + global p_train_SoVITS + if(p_train_SoVITS==None): + with open(f"GPT_SoVITS/configs/s2.json")as f: + data=f.read() + data=json.loads(data) + s2_dir="%s/%s"%(exp_root,exp_name) + os.makedirs("%s/logs_s2"%(s2_dir),exist_ok=True) + if(is_half==False): + data["train"]["fp16_run"]=False + batch_size=max(1,batch_size//2) + data["train"]["batch_size"]=batch_size + data["train"]["epochs"]=total_epoch + data["train"]["text_low_lr_rate"]=text_low_lr_rate + data["train"]["pretrained_s2G"]=pretrained_s2G + data["train"]["pretrained_s2D"]=pretrained_s2D + data["train"]["if_save_latest"]=if_save_latest + data["train"]["if_save_every_weights"]=if_save_every_weights + data["train"]["save_every_epoch"]=save_every_epoch + data["train"]["gpu_numbers"]=gpu_numbers1Ba + data["data"]["exp_dir"]=data["s2_ckpt_dir"]=s2_dir + data["save_weight_dir"]=exp_dir_weight + data["name"]=exp_name + tmp_config_path="%s/tmp_s2.json"%tmp + with open(tmp_config_path,"w")as f:f.write(json.dumps(data)) + + cmd = f'"{python_exec}" "GPT_SoVITS/s2_train.py" --config "{tmp_config_path}"' + print("SoVITS训练开始:%s"%cmd) #yield "SoVITS训练开始:%s"%cmd,{"__type__":"update","visible":False},{"__type__":"update","visible":True} + print(cmd) + p_train_SoVITS = Popen(cmd, shell=True) + p_train_SoVITS.wait() + p_train_SoVITS=None + print("SoVITS训练完成") #yield "SoVITS训练完成",{"__type__":"update","visible":True},{"__type__":"update","visible":False} + else: + print("已有正在进行的SoVITS训练任务,需先终止才能开启下一次任务") #yield "已有正在进行的SoVITS训练任务,需先终止才能开启下一次任务",{"__type__":"update","visible":False},{"__type__":"update","visible":True} + + +p_train_GPT=None +def open1Bb( + batch_size, + total_epoch, + exp_root, + exp_name, + exp_dir_weight, + is_half, + if_dpo, + if_save_latest, + if_save_every_weights, + save_every_epoch, + gpu_numbers, + pretrained_s1 +): + global p_train_GPT + if(p_train_GPT==None): + with open(f"GPT_SoVITS/configs/s1longer.yaml")as f: + data=f.read() + data=yaml.load(data, Loader=yaml.FullLoader) + s1_dir="%s/%s"%(exp_root,exp_name) + os.makedirs("%s/logs_s1"%(s1_dir),exist_ok=True) + if(is_half==False): + data["train"]["precision"]="32" + batch_size = max(1, batch_size // 2) + data["train"]["batch_size"]=batch_size + data["train"]["epochs"]=total_epoch + data["pretrained_s1"]=pretrained_s1 + data["train"]["save_every_n_epoch"]=save_every_epoch + data["train"]["if_save_every_weights"]=if_save_every_weights + data["train"]["if_save_latest"]=if_save_latest + data["train"]["if_dpo"]=if_dpo + data["train"]["half_weights_save_dir"]=exp_dir_weight + data["train"]["exp_name"]=exp_name + data["train_semantic_path"]="%s/6-name2semantic.tsv"%s1_dir + data["train_phoneme_path"]="%s/2-name2text.txt"%s1_dir + data["output_dir"]="%s/logs_s1"%s1_dir + + os.environ["_CUDA_VISIBLE_DEVICES"]=gpu_numbers.replace("-",",") + os.environ["hz"]="25hz" + tmp_config_path="%s/tmp_s1.yaml"%tmp + with open(tmp_config_path, "w") as f:f.write(yaml.dump(data, default_flow_style=False)) + + # cmd = '"%s" GPT_SoVITS/s1_train.py --config_file "%s" --train_semantic_path "%s/6-name2semantic.tsv" --train_phoneme_path "%s/2-name2text.txt" --output_dir "%s/logs_s1"'%(python_exec,tmp_config_path,s1_dir,s1_dir,s1_dir) + cmd = f'"{python_exec}" "GPT_SoVITS/s1_train.py" --config_file "{tmp_config_path}"' + print("GPT训练开始:%s"%cmd) #yield "GPT训练开始:%s"%cmd,{"__type__":"update","visible":False},{"__type__":"update","visible":True} + print(cmd) + p_train_GPT = Popen(cmd, shell=True) + p_train_GPT.wait() + p_train_GPT=None + print("GPT训练完成") #yield "GPT训练完成",{"__type__":"update","visible":True},{"__type__":"update","visible":False} + else: + print("已有正在进行的GPT训练任务,需先终止才能开启下一次任务") #yield "已有正在进行的GPT训练任务,需先终止才能开启下一次任务",{"__type__":"update","visible":False},{"__type__":"update","visible":True} + + +def Train( + FileList_Path: str = "GPT-SoVITS/raw/xxx.list", + #Set_s1_Epochs: int = 8, + #Set_s1_Save_Interval: int = 4, + #Set_s2_Epochs: int = 15, + #Set_s2_Save_Interval: int = 5, + #Set_Batch_Size: Optional[int] = None, + Set_FP16_Run: bool = False, # 16系卡没有半精度 + Model_Dir_Pretrained_bert: str = "GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large", + Model_Dir_Pretrained_ssl: str = "GPT_SoVITS/pretrained_models/chinese-hubert-base", + Model_Path_Pretrained_s1: str = "GPT_SoVITS/pretrained_models/s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt", + Model_Path_Pretrained_s2G: str = "GPT_SoVITS/pretrained_models/s2G488k.pth", + Model_Path_Pretrained_s2D: str = "GPT_SoVITS/pretrained_models/s2D488k.pth", + Output_Root: str = "SoVITS_weights&GPT_weights", + Output_DirName: str = "模型名", + Output_LogDir: str = "logs" +): + os.makedirs(Output_Root, exist_ok = True) + # To absolut audio path & get audio dir + with open(file = FileList_Path, mode = 'r', encoding = 'utf-8') as TextFile: + Lines = TextFile.readlines() + for Index, Line in enumerate(Lines): + Line_Path, Line_SpeakerText = Line.split('|', maxsplit = 1) + Line_Path = Path(FileList_Path).parent.joinpath(Line_Path).as_posix()# if not Path(Line_Path).is_absolute() else Line_Path + Line = f"{Line_Path}|{Line_SpeakerText}" + Lines[Index] = Line + FileList_Path = Path(Output_Root).joinpath(Path(FileList_Path).name).as_posix() + with open(file = FileList_Path, mode = 'w', encoding = 'utf-8') as TextFile: + TextFile.writelines(Lines) + Line_Path = Lines[0].split('|', maxsplit = 1)[0] + assert Path(Line_Path).exists(), "请检查数据集是否为相对路径格式且音频在同一目录下" + AudioDir = Path(Line_Path).parent.as_posix() + # 1A-训练集格式化 + open1abc( + inp_text = FileList_Path, + inp_wav_dir = AudioDir, + exp_root = Output_LogDir, + exp_name = Output_DirName, + is_half = Set_FP16_Run, + gpu_numbers1a = "%s-%s"%(gpus, gpus), + gpu_numbers1Ba = "%s-%s"%(gpus, gpus), + gpu_numbers1c = "%s-%s"%(gpus, gpus), + bert_pretrained_dir = Model_Dir_Pretrained_bert, + ssl_pretrained_dir = Model_Dir_Pretrained_ssl, + pretrained_s2G_path = Model_Path_Pretrained_s2G + ) + # 1B-SoVITS训练 + open1Ba( + batch_size = default_batch_size, #batch_size = default_batch_size if Set_Batch_Size is None else Set_Batch_Size, + total_epoch = 8, + exp_root = Output_LogDir, + exp_name = Output_DirName, + exp_dir_weight = Output_Root, + is_half = Set_FP16_Run, + text_low_lr_rate = 0.4, + if_save_latest = True, + if_save_every_weights = True, + save_every_epoch = 4, + gpu_numbers1Ba = "%s" % (gpus), + pretrained_s2G = Model_Path_Pretrained_s2G, + pretrained_s2D = Model_Path_Pretrained_s2D + ) + # 1B-GPT训练 + open1Bb( + batch_size = default_batch_size, #batch_size = default_batch_size if Set_Batch_Size is None else Set_Batch_Size, + total_epoch = 15, + exp_root = Output_LogDir, + exp_name = Output_DirName, + exp_dir_weight = Output_Root, + is_half = Set_FP16_Run, + if_dpo = False, + if_save_latest = True, + if_save_every_weights = True, + save_every_epoch = 5, + gpu_numbers = "%s" % (gpus), + pretrained_s1 = Model_Path_Pretrained_s1 + ) \ No newline at end of file diff --git a/EVT_Core/Train/VITS/Train.py b/EVT_Core/Train/VITS/Train.py index 519b370..e13517f 100644 --- a/EVT_Core/Train/VITS/Train.py +++ b/EVT_Core/Train/VITS/Train.py @@ -240,12 +240,14 @@ def __init__(self, Num_Workers: int = 4, Model_Path_Pretrained_G: Optional[str] = None, Model_Path_Pretrained_D: Optional[str] = None, - Keep_Original_Speakers: bool = False + Keep_Original_Speakers: bool = False, + Log_Dir: str = "./" ): self.Num_Workers = Num_Workers self.Model_Path_Pretrained_G = Model_Path_Pretrained_G self.Model_Path_Pretrained_D = Model_Path_Pretrained_D self.Keep_Original_Speakers = Keep_Original_Speakers + self.Log_Dir = Log_Dir self.UsePretrainedModel = False if None in (self.Model_Path_Pretrained_G, self.Model_Path_Pretrained_D) else True @@ -460,8 +462,8 @@ def run(self, rank, n_gpus, hps): logger = get_logger(hps.model_dir) #logger.info(hps) #check_git_hash(hps.model_dir) - writer = SummaryWriter(log_dir=hps.model_dir) - writer_eval = SummaryWriter(log_dir=Path(hps.model_dir).joinpath("eval").__str__()) + writer = SummaryWriter(log_dir = self.Log_Dir) + writer_eval = SummaryWriter(log_dir = Path(self.Log_Dir).joinpath("eval").__str__()) dist.init_process_group( backend = 'gloo' if platform.system() == 'Windows' else 'nccl', # Windows不支持NCCL backend,故使用GLOO @@ -676,8 +678,8 @@ class Voice_Training(Preprocessing, Training): def __init__(self, FileList_Path_Training: str, FileList_Path_Validation: str, - Set_Eval_Interval: int = 1000, Set_Epochs: int = 10000, + Set_Eval_Interval: int = 1000, Set_Batch_Size: int = 16, Set_FP16_Run: bool = True, Keep_Original_Speakers: bool = False, @@ -686,10 +688,13 @@ def __init__(self, Use_PretrainedModels: bool = True, Model_Path_Pretrained_G: Optional[str] = None, Model_Path_Pretrained_D: Optional[str] = None, - Dir_Output: str = './' + Output_Root: str = "./", + Output_Dir_Name: str = "", + Output_LogDir: str = "" ): + Dir_Output = Path(Output_Root).joinpath(Output_Dir_Name).as_posix() Preprocessing.__init__(self, FileList_Path_Training, FileList_Path_Validation, Dir_Output, Set_Eval_Interval, Set_Epochs, Set_Batch_Size, Set_FP16_Run, Keep_Original_Speakers, Config_Path_Load) - Training.__init__(self, Num_Workers, Model_Path_Pretrained_G if Use_PretrainedModels else None, Model_Path_Pretrained_D if Use_PretrainedModels else None, Keep_Original_Speakers) + Training.__init__(self, Num_Workers, Model_Path_Pretrained_G if Use_PretrainedModels else None, Model_Path_Pretrained_D if Use_PretrainedModels else None, Keep_Original_Speakers, Output_LogDir) self.Model_Dir_Save = Dir_Output def Preprocessing_and_Training(self): diff --git a/EVT_Core/Train/VITS/vits/Utils.py b/EVT_Core/Train/VITS/vits/Utils.py index 98317c3..a9e9f1c 100644 --- a/EVT_Core/Train/VITS/vits/Utils.py +++ b/EVT_Core/Train/VITS/vits/Utils.py @@ -1,6 +1,7 @@ import os import glob import sys +import shutil import logging logging.basicConfig(stream = sys.stdout, encoding = 'utf-8') logger = logging @@ -9,8 +10,8 @@ import matplotlib import matplotlib.pylab as plt import numpy as np -from scipy.io.wavfile import read import torch +from pathlib import Path MATPLOTLIB_FLAG = False @@ -44,12 +45,13 @@ def get_new_state_dict(state_dict, saved_state_dict, keep_speaker_emb): return model, optimizer, learning_rate, iteration -def save_checkpoint(model, optimizer, learning_rate, iteration, checkpoint_path): +def save_checkpoint(model, optimizer, learning_rate, iteration, checkpoint_path): # fix issue: torch.save doesn't support chinese path logger.info(f"Saving model and optimizer state at iteration {iteration} to {checkpoint_path}") if hasattr(model, 'module'): state_dict = model.module.state_dict() else: state_dict = model.state_dict() + checkpoint_path_tmp = Path(Path(checkpoint_path).root).joinpath("checkpoint_tmp").as_posix() torch.save( { 'model': state_dict, @@ -57,8 +59,9 @@ def save_checkpoint(model, optimizer, learning_rate, iteration, checkpoint_path) 'optimizer': optimizer.state_dict(), 'learning_rate': learning_rate }, - checkpoint_path + checkpoint_path_tmp ) + shutil.move(checkpoint_path_tmp, Path(checkpoint_path).parent.as_posix()) def summarize(writer, global_step, scalars={}, histograms={}, images={}, audios={}, audio_sampling_rate=22050): diff --git a/EVT_GUI/Functions.py b/EVT_GUI/Functions.py index 9c2acc1..9ee9717 100644 --- a/EVT_GUI/Functions.py +++ b/EVT_GUI/Functions.py @@ -7,6 +7,7 @@ from .QSimpleWidgets.Utils import * from .QSimpleWidgets.QFunctions import * from .Components import * +from .Window import * ############################################################################################################################## @@ -199,13 +200,14 @@ def Function_ConfigureCheckBox( def Function_SetURL( Button: QAbstractButton, URL: Union[str, QWidget, list], - ButtonTooltip: str = "Open" + ButtonTooltip: str = "Open", + CreateIfNotExist: bool = False ): ''' Function to open URL (through button) ''' Button.clicked.connect( - lambda: Function_OpenURL([(Function_ParamsHandler(URL, None) if isinstance(URL, QWidget) else URL) for URL in ToIterable(URL)]) + lambda: Function_OpenURL([(Function_ParamsHandler(URL, None) if isinstance(URL, QWidget) else URL) for URL in ToIterable(URL)], CreateIfNotExist) ) Button.setToolTipDuration(-1) Button.setToolTip(ButtonTooltip) @@ -241,6 +243,7 @@ def SetFileDialog(): def Function_ShowMessageBox( + WindowToMask: Optional[WindowBase] = None, MessageType: object = QMessageBox.Information, WindowTitle: str = ..., Text: str = ..., @@ -250,7 +253,7 @@ def Function_ShowMessageBox( ''' Function to pop up a msgbox ''' - MsgBox = QMessageBox() #MsgBox = MessageBoxBase() + MsgBox = MessageBoxBase(WindowToMask) MsgBox.setIcon(MessageType) MsgBox.setWindowTitle(WindowTitle) @@ -313,7 +316,8 @@ def ParamsSynchronizer(): for UI_Get, UI_Set in FromTo.items(): Param_Get = Function_ParamsHandler(UI_Get, "Get") Param_Get = Param_Get * Times if isinstance(Param_Get, (int, float, complex)) else Param_Get - Function_ParamsHandler(UI_Set, Param_Get, "Set") + for UI_Set in ToIterable(UI_Set): + Function_ParamsHandler(UI_Set, Param_Get, "Set") TriggerList = ToIterable(Trigger) diff --git a/EVT_GUI/QSimpleWidgets/ComponentsCustomizer.py b/EVT_GUI/QSimpleWidgets/ComponentsCustomizer.py index d93039e..b8f2543 100644 --- a/EVT_GUI/QSimpleWidgets/ComponentsCustomizer.py +++ b/EVT_GUI/QSimpleWidgets/ComponentsCustomizer.py @@ -192,6 +192,8 @@ class LineEditBase(QFrame): ''' textChanged = Signal(str) + rectChanged = Signal(QRect) + def __init__(self, parent: QWidget = None): super().__init__(parent) @@ -210,6 +212,27 @@ def __init__(self, parent: QWidget = None): ComponentsSignals.Signal_SetTheme.connect(self.InitDefaultStyleSheet) self.InitDefaultStyleSheet('Auto') + self.Mask = QLabel(self) + self.rectChanged.connect(self.Mask.setGeometry) + self.Mask.setStyleSheet('background-color: rgba(0, 0, 0, 111);') + self.Mask.setAlignment(Qt.AlignCenter) + self.Mask.hide() + + def mouseMoveEvent(self, event: QMouseEvent) -> None: + self.Mask.hide() + + def moveEvent(self, event: QMoveEvent) -> None: + self.rectChanged.emit(self.rect()) + + def resizeEvent(self, event: QResizeEvent) -> None: + self.rectChanged.emit(self.rect()) + + def setAlignment(self, flag: Qt.AlignmentFlag) -> None: + self.LineEdit.setAlignment(flag) + + def setReadOnly(self, arg__1: bool) -> None: + self.LineEdit.setReadOnly(arg__1) + def clear(self) -> None: self.LineEdit.clear() @@ -247,6 +270,12 @@ def InitDefaultStyleSheet(self, Theme: str) -> None: def ClearDefaultStyleSheet(self) -> None: ComponentsSignals.Signal_SetTheme.disconnect(self.InitDefaultStyleSheet) + def Alert(self, Enable: bool, MaskContent: Optional[str] = None) -> None: + AlertStyle = 'LineEditBase {border-color: red;}' + self.setStyleSheet((self.styleSheet() + AlertStyle) if Enable else self.styleSheet().replace(AlertStyle, '')) + self.Mask.setText(MaskContent) if MaskContent is not None else None + self.Mask.show() if Enable else self.Mask.hide() + ############################################################################################################################## class MediaPlayerBase(QWidget): diff --git a/EVT_GUI/QSimpleWidgets/QFunctions.py b/EVT_GUI/QSimpleWidgets/QFunctions.py index c2208e7..3a215c4 100644 --- a/EVT_GUI/QSimpleWidgets/QFunctions.py +++ b/EVT_GUI/QSimpleWidgets/QFunctions.py @@ -1,8 +1,9 @@ import os import darkdetect from typing import Union, Optional +from ctypes import c_int, byref, windll from PySide6.QtCore import Qt, QObject, QFile, QRect, QRectF, QSize, Signal, Slot, QPropertyAnimation, QParallelAnimationGroup, QEasingCurve, QUrl -from PySide6.QtGui import QColor, QRgba64, QIcon, QPainter, QDesktopServices +from PySide6.QtGui import QGuiApplication, QColor, QRgba64, QIcon, QPainter, QDesktopServices from PySide6.QtWidgets import * from .Utils import * @@ -195,7 +196,7 @@ def Function_GetFileDialog( Directory: Optional[str] = None ): os.makedirs(Directory, exist_ok = True) if Directory is not None and Path(Directory).exists() == False else None - if Mode == 'SelectDir': + if Mode == 'SelectFolder': DisplayText = QFileDialog.getExistingDirectory( caption = "选择文件夹", dir = Directory if Directory is not None else os.getcwd() @@ -215,8 +216,33 @@ def Function_GetFileDialog( return DisplayText +def GetMissingBorderPixels(hWnd: int): + MissingBorderSize = [] + + for QWindow in QGuiApplication.allWindows(): + if QWindow.winId() == hWnd: + Window = QWindow + break + + SIZEFRAME = { + win32con.SM_CXSIZEFRAME: True, + win32con.SM_CYSIZEFRAME: False + } + for BorderLengthIndex, dpiScaling in SIZEFRAME.items(): + MissingBorderPixels = GetSystemMetrics(hWnd, BorderLengthIndex, dpiScaling) + GetSystemMetrics(hWnd, 92, dpiScaling) #MissingBorderPixels = win32api.GetSystemMetrics(MissingBorderLength) + win32api.GetSystemMetrics(win32con.SM_CXPADDEDBORDER) + if not MissingBorderPixels > 0: + def IsCompositionEnabled(): + Result = windll.dwmapi.DwmIsCompositionEnabled(byref(c_int(0))) + return bool(Result.value) + MissingBorderPixels = round((6 if IsCompositionEnabled() else 3) * Window.devicePixelRatio()) + MissingBorderSize.append(MissingBorderPixels) + + return MissingBorderSize + + def Function_OpenURL( URL: Union[str, list], + CreateIfNotExist: bool = False ): ''' Function to open web/local URL @@ -224,6 +250,7 @@ def Function_OpenURL( def OpenURL(URL): QURL = QUrl().fromLocalFile(NormPath(URL)) if QURL.isValid(): + os.makedirs(NormPath(URL), exist_ok = True) if CreateIfNotExist else None IsSucceeded = QDesktopServices.openUrl(QURL) RunCMD([f'start {URL}']) if not IsSucceeded else None else: diff --git a/EVT_GUI/QSimpleWidgets/QSS/Dark/Dialog.qss b/EVT_GUI/QSimpleWidgets/QSS/Dark/Dialog.qss index 7eebbf5..ca56c7b 100644 --- a/EVT_GUI/QSimpleWidgets/QSS/Dark/Dialog.qss +++ b/EVT_GUI/QSimpleWidgets/QSS/Dark/Dialog.qss @@ -8,14 +8,14 @@ MessageBoxBase { MessageBoxBase QLabel { text-align: center; - font-size: 12px; + font-size: 9.9pt; color: rgb(210, 222, 234); background-color: transparent; } MessageBoxBase QPushButton { text-align: center; - font-size: 12pt; + font-size: 9.9pt; color: rgb(210, 222, 234); background-color: rgba(90, 90, 90, 120); border-width: 0px; diff --git a/EVT_GUI/QSimpleWidgets/QSS/Light/Dialog.qss b/EVT_GUI/QSimpleWidgets/QSS/Light/Dialog.qss index 7eebbf5..ca56c7b 100644 --- a/EVT_GUI/QSimpleWidgets/QSS/Light/Dialog.qss +++ b/EVT_GUI/QSimpleWidgets/QSS/Light/Dialog.qss @@ -8,14 +8,14 @@ MessageBoxBase { MessageBoxBase QLabel { text-align: center; - font-size: 12px; + font-size: 9.9pt; color: rgb(210, 222, 234); background-color: transparent; } MessageBoxBase QPushButton { text-align: center; - font-size: 12pt; + font-size: 9.9pt; color: rgb(210, 222, 234); background-color: rgba(90, 90, 90, 120); border-width: 0px; diff --git a/EVT_GUI/QSimpleWidgets/Utils.py b/EVT_GUI/QSimpleWidgets/Utils.py index 720541f..9a17864 100644 --- a/EVT_GUI/QSimpleWidgets/Utils.py +++ b/EVT_GUI/QSimpleWidgets/Utils.py @@ -12,6 +12,10 @@ import hashlib import urllib import platform +import win32gui +import win32con +import win32api +import win32print import configparser from pathlib import Path from github import Github @@ -19,6 +23,7 @@ from typing import Tuple, Union, Optional from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor from threading import currentThread +from ctypes import windll ############################################################################################################# @@ -160,6 +165,7 @@ def RunCMD( Log.write(Line) else: Output, Error = Subprocess.communicate() + Output, Error = b'' if Output is None else Output, b'' if Error is None else Error TotalOutput, TotalError = TotalOutput + Output, TotalError + Error else: @@ -197,6 +203,7 @@ def RunCMD( TotalError = b"Error occurred, please check the logs for full command output." else: TotalOutput, TotalError = Subprocess.communicate(TotalInput) + TotalOutput, TotalError = b'' if TotalOutput is None else TotalOutput, b'' if TotalError is None else TotalError TotalOutput, TotalError = TotalOutput.strip(), TotalError.strip() TotalOutput, TotalError = TotalOutput.decode(Encoding, errors = 'ignore') if DecodeResult else TotalOutput, TotalError.decode(Encoding, errors = 'ignore') if DecodeResult else TotalError @@ -215,7 +222,7 @@ def SetEnvVar( #Value = RawString(Value) EnvValue = os.environ.get(Variable) - if EnvValue is not None and Value not in EnvValue: + if EnvValue is not None and NormPath(Value, 'Posix') not in [NormPath(Value, 'Posix') for Value in EnvValue.split(os.pathsep)]: if Type == 'Sys': if Variable == 'PATH': RunCMD( @@ -263,6 +270,49 @@ def SetEnvVar( ############################################################################################################# +def IsWindowMaximized(hWnd: int): + WindowPlacement = win32gui.GetWindowPlacement(hWnd) + + Result = WindowPlacement[1] == win32con.SW_MAXIMIZE if WindowPlacement else False + + return Result + + +def IsWindowFullScreen(hWnd: int): + hWnd = int(hWnd) + + WindowRect = win32gui.GetWindowRect(hWnd) + + hMonitor = win32api.MonitorFromWindow(hWnd, win32con.MONITOR_DEFAULTTOPRIMARY) + MonitorInfo = win32api.GetMonitorInfo(hMonitor) + + Result = all(w == m for w, m in zip(WindowRect, MonitorInfo["Monitor"])) if WindowRect and MonitorInfo else False + + return Result + + +def GetSystemMetrics(hWnd: int, index: int, dpiScaling: bool): + if hasattr(windll.user32, 'GetSystemMetricsForDpi'): + if hasattr(windll.user32, 'GetDpiForWindow'): + dpi = windll.user32.GetDpiForWindow(hWnd) + else: + dpi = 96 + hdc = win32gui.GetDC(hWnd) + if hdc: + dpiX = win32print.GetDeviceCaps(hdc, win32con.LOGPIXELSX) + dpiY = win32print.GetDeviceCaps(hdc, win32con.LOGPIXELSY) + if dpiX > 0 and dpiScaling: + dpi = dpiX + if dpiY > 0 and not dpiScaling: + dpi = dpiY + win32gui.ReleaseDC(hWnd, hdc) + return windll.user32.GetSystemMetricsForDpi(index, dpi) + + else: + return win32api.GetSystemMetrics(index) + +############################################################################################################# + def SetRichText( Title: Optional[str] = None, TitleAlign: str = "left", diff --git a/EVT_GUI/QSimpleWidgets/WindowCustomizer.py b/EVT_GUI/QSimpleWidgets/WindowCustomizer.py index d90ae27..531ac92 100644 --- a/EVT_GUI/QSimpleWidgets/WindowCustomizer.py +++ b/EVT_GUI/QSimpleWidgets/WindowCustomizer.py @@ -2,8 +2,8 @@ import win32con from ctypes import Structure, c_int, POINTER, WinDLL, byref from ctypes.wintypes import UINT, HWND, RECT, MSG, LPRECT -from PySide6.QtCore import Qt, QPoint, QEvent -from PySide6.QtGui import QGuiApplication, QCursor, QMouseEvent, QCloseEvent, QResizeEvent +from PySide6.QtCore import Qt, QPoint, QEvent, QEventLoop +from PySide6.QtGui import QPixmap, QIcon, QFont, QCursor, QMouseEvent, QShowEvent, QCloseEvent, QMoveEvent, QResizeEvent from PySide6.QtWidgets import * from .QFunctions import * @@ -200,8 +200,11 @@ class NCCALCSIZE_PARAMS(Structure): class WindowBase: ''' ''' + showed = Signal() closed = Signal() + rectChanged = Signal(QRect) + edge_size = 3 # 窗体边缘尺寸(出现缩放标记的范围) def __init__(self, @@ -212,8 +215,15 @@ def __init__(self, self.TitleBar = TitleBarBase(self) + self.Mask = QLabel(self) + self.rectChanged.connect(self.Mask.setGeometry) + self.Mask.setStyleSheet('background-color: rgba(0, 0, 0, 111);') + self.Mask.setAlignment(Qt.AlignCenter) + self.Mask.setFont(QFont('Microsoft YaHei', int(min_height / 10), QFont.Bold)) + self.Mask.hide() + def _check_ifdraggable(self, pos) -> bool: - return 0 < pos.x() < self.width()# and 0 < pos.y() < self.TitleBar.height() + return 0 < pos.x() < self.width() and 0 < pos.y() < self.TitleBar.height() def _move_window(self, pos) -> None: self.windowHandle().startSystemMove() @@ -252,11 +262,19 @@ def mouseDoubleClickEvent(self, event: QMouseEvent) -> None: if self._check_ifdraggable(event.position()) == True and event.buttons() == Qt.MouseButton.LeftButton: self.showNormal() if self.isMaximized() else self.showMaximized() #self.setWindowState(Qt.WindowState.WindowMaximized) - def closeEvent(self, event: QCloseEvent): + def showEvent(self, event: QShowEvent) -> None: + self.showed.emit() + event.accept() + + def closeEvent(self, event: QCloseEvent) -> None: self.closed.emit() event.accept() - def resizeEvent(self, event: QResizeEvent): + def moveEvent(self, event: QMoveEvent) -> None: + self.rectChanged.emit(self.rect()) + + def resizeEvent(self, event: QResizeEvent) -> None: + self.rectChanged.emit(self.rect()) self.setCursor(Qt.CursorShape.ArrowCursor) def nativeEvent(self, eventType, message): @@ -264,35 +282,21 @@ def nativeEvent(self, eventType, message): if Message.message == win32con.WM_NCCALCSIZE: if Message.wParam != 0: Rect = NCCALCSIZE_PARAMS.from_address(Message.lParam).rgrc[0] - ''' - def GetMissingBorderPixels(hWnd: int): - for Window in QGuiApplication.allWindows(): - if Window.winId() == hWnd: - MissingBorderSize = [win32con.SM_CXSIZEFRAME, win32con.SM_CYSIZEFRAME] - for Index, MissingBorderLength in enumerate(MissingBorderSize): - MissingBorderPixels = win32api.GetSystemMetrics(MissingBorderLength) + win32api.GetSystemMetrics(win32con.SM_CXPADDEDBORDER) - if MissingBorderPixels > 0: - MissingBorderSize[Index] = MissingBorderPixels - else: - def IsCompositionEnabled(): - Result = windll.dwmapi.DwmIsCompositionEnabled(byref(c_int(0))) - return bool(Result.value) - MissingBorderSize[Index] = round((6 if IsCompositionEnabled() else 3) * Window.devicePixelRatio()) - return MissingBorderSize - MissingHBorderPixels, MissingVBorderPixels = GetMissingBorderPixels(Message.hWnd) - ''' - MissingHBorderPixels = MissingVBorderPixels = round(6 * self.devicePixelRatio()) - Rect.left -= MissingHBorderPixels - Rect.top -= MissingVBorderPixels - Rect.right += MissingHBorderPixels - Rect.bottom += MissingVBorderPixels + MissingHBorderPixels, MissingVBorderPixels = GetMissingBorderPixels(Message.hWnd) if IsWindowMaximized(Message.hWnd) and not IsWindowFullScreen(Message.hWnd) else (0, 0) + Rect.left += MissingHBorderPixels + Rect.top += MissingVBorderPixels + Rect.right -= MissingHBorderPixels + Rect.bottom -= MissingVBorderPixels + return True, win32con.WVR_REDRAW else: Rect = LPRECT.from_address(Message.lParam) + return True, 0 if Message.message == win32con.WM_NCHITTEST: - left = QCursor.pos().x() - self.x() < self.edge_size - top = QCursor.pos().y() - self.y() < self.edge_size - right = QCursor.pos().x() - self.x() > self.width() - self.edge_size - bottom = QCursor.pos().y() - self.y() > self.height() - self.edge_size + border_width = self.edge_size if not IsWindowMaximized(Message.hWnd) and not IsWindowFullScreen(Message.hWnd) else 0 + left = QCursor.pos().x() - self.x() < border_width + top = QCursor.pos().y() - self.y() < border_width + right = QCursor.pos().x() - self.x() > self.frameGeometry().width() - border_width + bottom = QCursor.pos().y() - self.y() > self.frameGeometry().height() - border_width if True not in (left, top, right, bottom): pass elif left and top: @@ -318,7 +322,7 @@ def setFrameless(self, SetStrechable: bool = True, SetDropShadowEffect: bool = T hWnd = self.winId() Index = win32con.GWL_STYLE Value = win32gui.GetWindowLong(hWnd, Index) - win32gui.SetWindowLong(hWnd, Index, Value | win32con.WS_THICKFRAME & ~win32con.WS_CAPTION) + win32gui.SetWindowLong(hWnd, Index, Value | win32con.WS_THICKFRAME | win32con.WS_CAPTION) if not SetStrechable: self.edge_size = 0 if SetDropShadowEffect: @@ -340,6 +344,15 @@ def setTitleBar(self, TitleBar: Optional[QWidget]) -> None: self.TitleBar.setParent(self) if self.TitleBar.parent() is None else None self.TitleBar.raise_() if self.TitleBar.isHidden() else None + def ShowMask(self, SetVisible: bool, MaskContent: Optional[str] = None) -> None: + if SetVisible: + self.Mask.raise_() if self.Mask.isHidden() else None + self.Mask.setText(MaskContent) if MaskContent is not None else self.Mask.clear() + self.Mask.show() + else: + self.Mask.clear() + self.Mask.hide() + class MainWindowBase(WindowBase, QMainWindow): ''' @@ -393,11 +406,28 @@ def __init__(self, min_width: int = 630, min_height: int = 420 ): - QWidget.__init__(self, parent, f) + QWidget.__init__(self, None, f) #QWidget.__init__(self, parent, f) WindowBase.__init__(self, min_width, min_height) self.setFrameless() + self.setWindowModality(Qt.ApplicationModal) + + self.EventLoop = QEventLoop(self) + + self.showed.connect(lambda: parent.ShowMask(True)) if isinstance(parent, WindowBase) else None + self.closed.connect(lambda: parent.ShowMask(False)) if isinstance(parent, WindowBase) else None + + def exec(self) -> int: + self.show() + Result = self.EventLoop.exec() + self.closed.emit() + return Result + + def closeEvent(self, event: QCloseEvent) -> None: + Result = self.EventLoop.exit() + super().closeEvent(event) + class DialogBase(WindowBase, QDialog): ''' @@ -408,7 +438,7 @@ def __init__(self, min_width: int = 630, min_height: int = 420 ): - QDialog.__init__(self, parent, f) + QDialog.__init__(self, None, f) #QDialog.__init__(self, parent, f) WindowBase.__init__(self, min_width, min_height) self.setFrameless(SetStrechable = False) @@ -421,6 +451,14 @@ def __init__(self, self.TitleBar.MaximizeButton.hide() self.TitleBar.MaximizeButton.deleteLater() + self.showed.connect(lambda: parent.ShowMask(True)) if isinstance(parent, WindowBase) else None + self.closed.connect(lambda: parent.ShowMask(False)) if isinstance(parent, WindowBase) else None + + def exec(self) -> int: + Result = super().exec() + self.closed.emit() + return Result + def mouseDoubleClickEvent(self, event: QMouseEvent) -> None: return @@ -430,4 +468,112 @@ def InitDefaultStyleSheet(self, Theme: str) -> None: def ClearDefaultStyleSheet(self) -> None: ComponentsSignals.Signal_SetTheme.disconnect(self.InitDefaultStyleSheet) +############################################################################################################################## + +class MessageBoxBase(DialogBase): + ''' + ''' + ClickedButton = None + + StandardButtonDict = { + QMessageBox.NoButton: QDialogButtonBox.NoButton, + QMessageBox.Ok: QDialogButtonBox.Ok, + QMessageBox.Cancel: QDialogButtonBox.Cancel, + QMessageBox.Yes: QDialogButtonBox.Yes, + QMessageBox.No: QDialogButtonBox.No, + QMessageBox.Retry: QDialogButtonBox.Retry, + QMessageBox.Ignore: QDialogButtonBox.Ignore, + QMessageBox.Open: QDialogButtonBox.Open, + QMessageBox.Close: QDialogButtonBox.Close, + QMessageBox.Save: QDialogButtonBox.Save, + QMessageBox.Discard: QDialogButtonBox.Discard, + QMessageBox.Apply: QDialogButtonBox.Apply, + QMessageBox.RestoreDefaults: QDialogButtonBox.RestoreDefaults, + QMessageBox.Ok | QMessageBox.Cancel: QDialogButtonBox.Ok | QDialogButtonBox.Cancel, + QMessageBox.Yes | QMessageBox.No: QDialogButtonBox.Yes | QDialogButtonBox.No, + QMessageBox.Retry | QMessageBox.Ignore: QDialogButtonBox.Retry | QDialogButtonBox.Ignore, + QMessageBox.Open | QMessageBox.Close: QDialogButtonBox.Open | QDialogButtonBox.Close, + QMessageBox.Save | QMessageBox.Discard: QDialogButtonBox.Save | QDialogButtonBox.Discard, + QMessageBox.Apply | QMessageBox.RestoreDefaults: QDialogButtonBox.Apply | QDialogButtonBox.RestoreDefaults + } + + StandardIconDict = { + QMessageBox.Question: QStyle.SP_MessageBoxQuestion, + QMessageBox.Information: QStyle.SP_MessageBoxInformation, + QMessageBox.Warning: QStyle.SP_MessageBoxWarning, + QMessageBox.Critical: QStyle.SP_MessageBoxCritical + } + + def __init__(self, + parent: Optional[QWidget] = None, + min_width = 360, + min_height = 210 + ): + super().__init__(parent, Qt.Dialog, min_width, min_height) + + self.PicLabel = QLabel() + self.TextLabel = QLabel() + PicTextLayout = QHBoxLayout() + PicTextLayout.setContentsMargins(0, 0, 0, 0) + PicTextLayout.setSpacing(0) + PicTextLayout.addWidget(self.PicLabel, stretch = 0) + PicTextLayout.addWidget(self.TextLabel, stretch = 1) + + self.ButtonBox = QDialogButtonBox() + self.ButtonBox.clicked.connect(self.updateClickedButton) + self.ButtonBox.accepted.connect(self.accept) + self.ButtonBox.rejected.connect(self.reject) + self.ButtonBox.setOrientation(Qt.Horizontal) + self.ButtonBox.setStyleSheet("padding: 6px 18px 6px 18px;") + + self.Layout = QVBoxLayout(self) + self.Layout.setContentsMargins(21, 12, 21, 12) + self.Layout.setSpacing(12) + self.Layout.addLayout(PicTextLayout) + self.Layout.addWidget(self.ButtonBox) + + def updateClickedButton(self, button: QAbstractButton): + self.ClickedButton = FindKey(self.StandardButtonDict, self.ButtonBox.standardButton(button)) + + def exec(self) -> int: + Result = super().exec() + return self.ClickedButton# if self.ClickedButton is not None else Result + + def setStandardButtons(self, buttons: QMessageBox.StandardButton) -> None: + buttons = self.StandardButtonDict.get(buttons, buttons) + if isinstance(buttons, QMessageBox.StandardButton): + pass + self.ButtonBox.setStandardButtons(buttons) + + def setWindowIcon(self, icon: Union[QIcon, QPixmap, QStyle.StandardPixmap]) -> None: + icon = self.StandardIconDict.get(icon, icon) + if isinstance(icon, QStyle.StandardPixmap): + icon = QApplication.style().standardIcon(icon) + if isinstance(icon, (QIcon, QPixmap)): + pass + super().setWindowIcon(icon) + + def setIcon(self, icon: Union[QIcon, QPixmap, QStyle.StandardPixmap]) -> None: + icon = self.StandardIconDict.get(icon, icon) + Length = int(min(self.width(), self.height()) / 6) + if isinstance(icon, QStyle.StandardPixmap): + standardIcon = QApplication.style().standardIcon(icon) + icon = standardIcon.pixmap(standardIcon.actualSize(QSize(Length, Length))) + if isinstance(icon, QIcon): + icon = icon.pixmap(icon.actualSize(QSize(Length, Length))) + if isinstance(icon, QPixmap): + pass + self.PicLabel.setPixmap(icon) + + def setText(self, text: str, textsize: float = 11.1, textweight: int = 420): + Function_SetText( + Widget = self.TextLabel, + Text = SetRichText( + Title = text, + TitleSize = textsize, + TitleWeight = textweight, + TitleAlign = 'center' + ) + ) + ############################################################################################################################## \ No newline at end of file diff --git a/EVT_GUI/UI_MainWindow.py b/EVT_GUI/UI_MainWindow.py index 47dd939..c01975b 100644 --- a/EVT_GUI/UI_MainWindow.py +++ b/EVT_GUI/UI_MainWindow.py @@ -2310,10 +2310,59 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - self.horizontalLayout_99 = QHBoxLayout(self.Frame_Models_Top) - self.horizontalLayout_99.setSpacing(0) - self.horizontalLayout_99.setObjectName(u"horizontalLayout_99") - self.horizontalLayout_99.setContentsMargins(0, 0, 0, 0) + self.horizontalLayout_18 = QHBoxLayout(self.Frame_Models_Top) + self.horizontalLayout_18.setSpacing(0) + self.horizontalLayout_18.setObjectName(u"horizontalLayout_18") + self.horizontalLayout_18.setContentsMargins(0, 0, 0, 0) + self.ToolButton_Models_Process_Title = QToolButton(self.Frame_Models_Top) + self.ToolButton_Models_Process_Title.setObjectName(u"ToolButton_Models_Process_Title") + sizePolicy1.setHeightForWidth(self.ToolButton_Models_Process_Title.sizePolicy().hasHeightForWidth()) + self.ToolButton_Models_Process_Title.setSizePolicy(sizePolicy1) + self.ToolButton_Models_Process_Title.setStyleSheet(u"QToolButton {\n" +" font-size: 24px;\n" +" /*text-align: center;*/\n" +" color: rgba(201, 210, 222, 210);\n" +" padding-left: 12px;\n" +" padding-right: 12px;\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QToolButton:hover {\n" +" color: rgba(210, 222, 234, 234);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 123);\n" +"}\n" +"QToolButton:checked {\n" +" color: rgba(210, 222, 234, 255);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 210);\n" +"}\n" +"\n" +"QToolTip {\n" +" color:" + " rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.horizontalLayout_18.addWidget(self.ToolButton_Models_Process_Title) + self.ToolButton_Models_ASR_Title = QToolButton(self.Frame_Models_Top) self.ToolButton_Models_ASR_Title.setObjectName(u"ToolButton_Models_ASR_Title") sizePolicy1.setHeightForWidth(self.ToolButton_Models_ASR_Title.sizePolicy().hasHeightForWidth()) @@ -2361,7 +2410,7 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_99.addWidget(self.ToolButton_Models_ASR_Title) + self.horizontalLayout_18.addWidget(self.ToolButton_Models_ASR_Title) self.ToolButton_Models_STT_Title = QToolButton(self.Frame_Models_Top) self.ToolButton_Models_STT_Title.setObjectName(u"ToolButton_Models_STT_Title") @@ -2410,7 +2459,7 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_99.addWidget(self.ToolButton_Models_STT_Title) + self.horizontalLayout_18.addWidget(self.ToolButton_Models_STT_Title) self.ToolButton_Models_TTS_Title = QToolButton(self.Frame_Models_Top) self.ToolButton_Models_TTS_Title.setObjectName(u"ToolButton_Models_TTS_Title") @@ -2459,7 +2508,7 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_99.addWidget(self.ToolButton_Models_TTS_Title) + self.horizontalLayout_18.addWidget(self.ToolButton_Models_TTS_Title) self.Frame_Models_Title_Spacer = QLabel(self.Frame_Models_Top) self.Frame_Models_Title_Spacer.setObjectName(u"Frame_Models_Title_Spacer") @@ -2480,7 +2529,7 @@ def setupUi(self, MainWindow): " border-bottom-color: rgba(123, 123, 123, 123);\n" "}") - self.horizontalLayout_99.addWidget(self.Frame_Models_Title_Spacer) + self.horizontalLayout_18.addWidget(self.Frame_Models_Title_Spacer) self.verticalLayout_244.addWidget(self.Frame_Models_Top) @@ -2530,6 +2579,58 @@ def setupUi(self, MainWindow): "QTabBar QToolButton:hover {\n" "}\n" "*/") + self.SubPage_Models_Process = QWidget() + self.SubPage_Models_Process.setObjectName(u"SubPage_Models_Process") + self.gridLayout_102 = QGridLayout(self.SubPage_Models_Process) + self.gridLayout_102.setSpacing(12) + self.gridLayout_102.setObjectName(u"gridLayout_102") + self.gridLayout_102.setContentsMargins(0, 0, 0, 0) + self.TabWidget_Models_Process = QTabWidget(self.SubPage_Models_Process) + self.TabWidget_Models_Process.setObjectName(u"TabWidget_Models_Process") + self.TabWidget_Models_Process.setStyleSheet(u"QTabBar::tab {\n" +" min-width: 84px;\n" +" min-height: 42px;\n" +" font-size: 21px;\n" +" /*text-align: center;*/\n" +" color: rgba(201, 210, 222, 210);\n" +" padding-left: 12px;\n" +" padding-right: 12px;\n" +" background-color: transparent;\n" +" border-width: 1.2px;\n" +" border-style: solid;\n" +" border-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QTabBar::tab:hover, QTabBar::tab:selected {\n" +" color: rgba(210, 222, 234, 234);\n" +" background-color: rgba(36, 36, 36, 123);\n" +"}\n" +"\n" +"\n" +"QTabWidget::tab-bar {\n" +" alignment: left;\n" +"}\n" +"QTabWidget::pane {\n" +" background: rgba(36, 36, 36, 123);;\n" +" border-width: 1.2px;\n" +" border-style: solid;\n" +" border-color: rgba(123, 123, 123, 123);\n" +"}") + self.Tab_Models_Process_UVR = QWidget() + self.Tab_Models_Process_UVR.setObjectName(u"Tab_Models_Process_UVR") + self.verticalLayout_75 = QVBoxLayout(self.Tab_Models_Process_UVR) + self.verticalLayout_75.setSpacing(0) + self.verticalLayout_75.setObjectName(u"verticalLayout_75") + self.verticalLayout_75.setContentsMargins(0, 0, 0, 0) + self.Table_Models_Process_UVR = Table_ViewModels(self.Tab_Models_Process_UVR) + self.Table_Models_Process_UVR.setObjectName(u"Table_Models_Process_UVR") + + self.verticalLayout_75.addWidget(self.Table_Models_Process_UVR) + + self.TabWidget_Models_Process.addTab(self.Tab_Models_Process_UVR, "") + + self.gridLayout_102.addWidget(self.TabWidget_Models_Process, 0, 0, 1, 1) + + self.StackedWidget_Pages_Models.addWidget(self.SubPage_Models_Process) self.SubPage_Models_ASR = QWidget() self.SubPage_Models_ASR.setObjectName(u"SubPage_Models_ASR") self.gridLayout_7 = QGridLayout(self.SubPage_Models_ASR) @@ -2670,6 +2771,18 @@ def setupUi(self, MainWindow): " border-style: solid;\n" " border-color: rgba(123, 123, 123, 123);\n" "}") + self.Tab_Models_TTS_GPTSoVITS = QWidget() + self.Tab_Models_TTS_GPTSoVITS.setObjectName(u"Tab_Models_TTS_GPTSoVITS") + self.verticalLayout_72 = QVBoxLayout(self.Tab_Models_TTS_GPTSoVITS) + self.verticalLayout_72.setSpacing(0) + self.verticalLayout_72.setObjectName(u"verticalLayout_72") + self.verticalLayout_72.setContentsMargins(0, 0, 0, 0) + self.Table_Models_TTS_GPTSoVITS = Table_ViewModels(self.Tab_Models_TTS_GPTSoVITS) + self.Table_Models_TTS_GPTSoVITS.setObjectName(u"Table_Models_TTS_GPTSoVITS") + + self.verticalLayout_72.addWidget(self.Table_Models_TTS_GPTSoVITS) + + self.TabWidget_Models_TTS.addTab(self.Tab_Models_TTS_GPTSoVITS, "") self.Tab_Models_TTS_VITS = QWidget() self.Tab_Models_TTS_VITS.setObjectName(u"Tab_Models_TTS_VITS") self.verticalLayout_38 = QVBoxLayout(self.Tab_Models_TTS_VITS) @@ -3049,7 +3162,7 @@ def setupUi(self, MainWindow): self.ScrollArea_Middle_Process.setWidgetResizable(True) self.ScrollArea_Middle_WidgetContents_Process = QWidget() self.ScrollArea_Middle_WidgetContents_Process.setObjectName(u"ScrollArea_Middle_WidgetContents_Process") - self.ScrollArea_Middle_WidgetContents_Process.setGeometry(QRect(0, 0, 591, 1484)) + self.ScrollArea_Middle_WidgetContents_Process.setGeometry(QRect(0, 0, 591, 1867)) self.verticalLayout_14 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_Process) self.verticalLayout_14.setSpacing(12) self.verticalLayout_14.setObjectName(u"verticalLayout_14") @@ -3163,9 +3276,9 @@ def setupUi(self, MainWindow): self.verticalLayout_14.addWidget(self.GroupBox_Process_InputParams) - self.GroupBox_Process_AudioSlicerParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Process) - self.GroupBox_Process_AudioSlicerParams.setObjectName(u"GroupBox_Process_AudioSlicerParams") - self.GroupBox_Process_AudioSlicerParams.setStyleSheet(u"QGroupBox {\n" + self.GroupBox_Process_DenoiserParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Process) + self.GroupBox_Process_DenoiserParams.setObjectName(u"GroupBox_Process_DenoiserParams") + self.GroupBox_Process_DenoiserParams.setStyleSheet(u"QGroupBox {\n" " font-size: 15px;\n" " margin-top: 1.5ex;\n" " color: rgb(255, 255, 255);\n" @@ -3181,20 +3294,20 @@ def setupUi(self, MainWindow): " subcontrol-position: top left;\n" " padding: 3px;\n" "}") - self.verticalLayout_186 = QVBoxLayout(self.GroupBox_Process_AudioSlicerParams) - self.verticalLayout_186.setSpacing(0) - self.verticalLayout_186.setObjectName(u"verticalLayout_186") - self.verticalLayout_186.setContentsMargins(0, 12, 0, 12) - self.Frame_Process_AudioSlicerParams_BasicSettings = QFrame(self.GroupBox_Process_AudioSlicerParams) - self.Frame_Process_AudioSlicerParams_BasicSettings.setObjectName(u"Frame_Process_AudioSlicerParams_BasicSettings") - self.verticalLayout_51 = QVBoxLayout(self.Frame_Process_AudioSlicerParams_BasicSettings) - self.verticalLayout_51.setSpacing(0) - self.verticalLayout_51.setObjectName(u"verticalLayout_51") - self.verticalLayout_51.setContentsMargins(0, 0, 0, 0) - self.Frame_Process_SliceAudio = QFrame(self.Frame_Process_AudioSlicerParams_BasicSettings) - self.Frame_Process_SliceAudio.setObjectName(u"Frame_Process_SliceAudio") - self.Frame_Process_SliceAudio.setMinimumSize(QSize(0, 105)) - self.Frame_Process_SliceAudio.setStyleSheet(u"QFrame {\n" + self.verticalLayout_74 = QVBoxLayout(self.GroupBox_Process_DenoiserParams) + self.verticalLayout_74.setSpacing(0) + self.verticalLayout_74.setObjectName(u"verticalLayout_74") + self.verticalLayout_74.setContentsMargins(0, 12, 0, 12) + self.Frame_Process_DenoiserParams_BasicSettings = QFrame(self.GroupBox_Process_DenoiserParams) + self.Frame_Process_DenoiserParams_BasicSettings.setObjectName(u"Frame_Process_DenoiserParams_BasicSettings") + self.verticalLayout_73 = QVBoxLayout(self.Frame_Process_DenoiserParams_BasicSettings) + self.verticalLayout_73.setSpacing(0) + self.verticalLayout_73.setObjectName(u"verticalLayout_73") + self.verticalLayout_73.setContentsMargins(0, 0, 0, 0) + self.Frame_Process_DenoiseAudio = QFrame(self.Frame_Process_DenoiserParams_BasicSettings) + self.Frame_Process_DenoiseAudio.setObjectName(u"Frame_Process_DenoiseAudio") + self.Frame_Process_DenoiseAudio.setMinimumSize(QSize(0, 105)) + self.Frame_Process_DenoiseAudio.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -3203,15 +3316,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_13 = QGridLayout(self.Frame_Process_SliceAudio) - self.gridLayout_13.setSpacing(12) - self.gridLayout_13.setObjectName(u"gridLayout_13") - self.gridLayout_13.setContentsMargins(21, 12, 21, 12) - self.Label_Process_SliceAudio = QLabel(self.Frame_Process_SliceAudio) - self.Label_Process_SliceAudio.setObjectName(u"Label_Process_SliceAudio") - sizePolicy5.setHeightForWidth(self.Label_Process_SliceAudio.sizePolicy().hasHeightForWidth()) - self.Label_Process_SliceAudio.setSizePolicy(sizePolicy5) - self.Label_Process_SliceAudio.setStyleSheet(u"QLabel {\n" + self.gridLayout_90 = QGridLayout(self.Frame_Process_DenoiseAudio) + self.gridLayout_90.setSpacing(12) + self.gridLayout_90.setObjectName(u"gridLayout_90") + self.gridLayout_90.setContentsMargins(21, 12, 21, 12) + self.Label_Process_DenoiseAudio = QLabel(self.Frame_Process_DenoiseAudio) + self.Label_Process_DenoiseAudio.setObjectName(u"Label_Process_DenoiseAudio") + sizePolicy5.setHeightForWidth(self.Label_Process_DenoiseAudio.sizePolicy().hasHeightForWidth()) + self.Label_Process_DenoiseAudio.setSizePolicy(sizePolicy5) + self.Label_Process_DenoiseAudio.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -3221,17 +3334,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_13.addWidget(self.Label_Process_SliceAudio, 0, 0, 1, 1) + self.gridLayout_90.addWidget(self.Label_Process_DenoiseAudio, 0, 0, 1, 1) - self.HorizontalSpacer_Process_SliceAudio = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_DenoiseAudio = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_13.addItem(self.HorizontalSpacer_Process_SliceAudio, 0, 1, 1, 1) + self.gridLayout_90.addItem(self.HorizontalSpacer_Process_DenoiseAudio, 0, 1, 1, 1) - self.Button_Process_SliceAudio_Undo = QPushButton(self.Frame_Process_SliceAudio) - self.Button_Process_SliceAudio_Undo.setObjectName(u"Button_Process_SliceAudio_Undo") - self.Button_Process_SliceAudio_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_SliceAudio_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_SliceAudio_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_DenoiseAudio_Undo = QPushButton(self.Frame_Process_DenoiseAudio) + self.Button_Process_DenoiseAudio_Undo.setObjectName(u"Button_Process_DenoiseAudio_Undo") + self.Button_Process_DenoiseAudio_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_DenoiseAudio_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_DenoiseAudio_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -3252,12 +3365,12 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_13.addWidget(self.Button_Process_SliceAudio_Undo, 0, 2, 1, 1) + self.gridLayout_90.addWidget(self.Button_Process_DenoiseAudio_Undo, 0, 2, 1, 1) - self.CheckBox_Process_SliceAudio = QCheckBox(self.Frame_Process_SliceAudio) - self.CheckBox_Process_SliceAudio.setObjectName(u"CheckBox_Process_SliceAudio") - self.CheckBox_Process_SliceAudio.setMinimumSize(QSize(0, 27)) - self.CheckBox_Process_SliceAudio.setStyleSheet(u"QCheckBox {\n" + self.CheckBox_Process_DenoiseAudio = QCheckBox(self.Frame_Process_DenoiseAudio) + self.CheckBox_Process_DenoiseAudio.setObjectName(u"CheckBox_Process_DenoiseAudio") + self.CheckBox_Process_DenoiseAudio.setMinimumSize(QSize(0, 27)) + self.CheckBox_Process_DenoiseAudio.setStyleSheet(u"QCheckBox {\n" " font-size: 12px;\n" " spacing: 12.3px;\n" " color: rgba(255, 255, 255, 210);\n" @@ -3298,70 +3411,15 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_13.addWidget(self.CheckBox_Process_SliceAudio, 1, 0, 1, 3) - - - self.verticalLayout_51.addWidget(self.Frame_Process_SliceAudio) - + self.gridLayout_90.addWidget(self.CheckBox_Process_DenoiseAudio, 1, 0, 1, 3) - self.verticalLayout_186.addWidget(self.Frame_Process_AudioSlicerParams_BasicSettings) - - self.CheckBox_Process_AudioSlicerParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_Process_AudioSlicerParams) - self.CheckBox_Process_AudioSlicerParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_Process_AudioSlicerParams_Toggle_AdvanceSettings") - self.CheckBox_Process_AudioSlicerParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" font-weight: 630;\n" -" spacing: 12px;\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" padding-top: 9px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" -"}\n" -"\n" -"QCheckBox::indicator {\n" -" width: 12px;\n" -" height: 12px;\n" -" background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"QCheckBox::indicator:hover {\n" -" background-color: transparent;\n" -"}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" -"}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - self.verticalLayout_186.addWidget(self.CheckBox_Process_AudioSlicerParams_Toggle_AdvanceSettings) + self.verticalLayout_73.addWidget(self.Frame_Process_DenoiseAudio) - self.Frame_Process_AudioSlicerParams_AdvanceSettings = QFrame(self.GroupBox_Process_AudioSlicerParams) - self.Frame_Process_AudioSlicerParams_AdvanceSettings.setObjectName(u"Frame_Process_AudioSlicerParams_AdvanceSettings") - self.verticalLayout_54 = QVBoxLayout(self.Frame_Process_AudioSlicerParams_AdvanceSettings) - self.verticalLayout_54.setSpacing(0) - self.verticalLayout_54.setObjectName(u"verticalLayout_54") - self.verticalLayout_54.setContentsMargins(0, 0, 0, 0) - self.Frame_Process_RMSThreshold = QFrame(self.Frame_Process_AudioSlicerParams_AdvanceSettings) - self.Frame_Process_RMSThreshold.setObjectName(u"Frame_Process_RMSThreshold") - self.Frame_Process_RMSThreshold.setMinimumSize(QSize(0, 105)) - self.Frame_Process_RMSThreshold.setStyleSheet(u"QFrame {\n" + self.Frame_Process_DenoiseModelPath = QFrame(self.Frame_Process_DenoiserParams_BasicSettings) + self.Frame_Process_DenoiseModelPath.setObjectName(u"Frame_Process_DenoiseModelPath") + self.Frame_Process_DenoiseModelPath.setMinimumSize(QSize(0, 105)) + self.Frame_Process_DenoiseModelPath.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -3370,15 +3428,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_17 = QGridLayout(self.Frame_Process_RMSThreshold) - self.gridLayout_17.setSpacing(12) - self.gridLayout_17.setObjectName(u"gridLayout_17") - self.gridLayout_17.setContentsMargins(21, 12, 21, 12) - self.Label_Process_RMSThreshold = QLabel(self.Frame_Process_RMSThreshold) - self.Label_Process_RMSThreshold.setObjectName(u"Label_Process_RMSThreshold") - sizePolicy5.setHeightForWidth(self.Label_Process_RMSThreshold.sizePolicy().hasHeightForWidth()) - self.Label_Process_RMSThreshold.setSizePolicy(sizePolicy5) - self.Label_Process_RMSThreshold.setStyleSheet(u"QLabel {\n" + self.gridLayout_92 = QGridLayout(self.Frame_Process_DenoiseModelPath) + self.gridLayout_92.setSpacing(12) + self.gridLayout_92.setObjectName(u"gridLayout_92") + self.gridLayout_92.setContentsMargins(21, 12, 21, 12) + self.Label_Process_DenoiseModelPath = QLabel(self.Frame_Process_DenoiseModelPath) + self.Label_Process_DenoiseModelPath.setObjectName(u"Label_Process_DenoiseModelPath") + sizePolicy5.setHeightForWidth(self.Label_Process_DenoiseModelPath.sizePolicy().hasHeightForWidth()) + self.Label_Process_DenoiseModelPath.setSizePolicy(sizePolicy5) + self.Label_Process_DenoiseModelPath.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -3388,17 +3446,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_17.addWidget(self.Label_Process_RMSThreshold, 0, 0, 1, 1) + self.gridLayout_92.addWidget(self.Label_Process_DenoiseModelPath, 0, 0, 1, 1) - self.HorizontalSpacer_Process_RMSThreshold = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_DenoiseModelPath = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_17.addItem(self.HorizontalSpacer_Process_RMSThreshold, 0, 1, 1, 1) + self.gridLayout_92.addItem(self.HorizontalSpacer_Process_DenoiseModelPath, 0, 1, 1, 1) - self.Button_Process_RMSThreshold_Undo = QPushButton(self.Frame_Process_RMSThreshold) - self.Button_Process_RMSThreshold_Undo.setObjectName(u"Button_Process_RMSThreshold_Undo") - self.Button_Process_RMSThreshold_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_RMSThreshold_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_RMSThreshold_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_DenoiseModelPath_Undo = QPushButton(self.Frame_Process_DenoiseModelPath) + self.Button_Process_DenoiseModelPath_Undo.setObjectName(u"Button_Process_DenoiseModelPath_Undo") + self.Button_Process_DenoiseModelPath_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_DenoiseModelPath_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_DenoiseModelPath_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -3419,75 +3477,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_17.addWidget(self.Button_Process_RMSThreshold_Undo, 0, 2, 1, 1) + self.gridLayout_92.addWidget(self.Button_Process_DenoiseModelPath_Undo, 0, 2, 1, 1) - self.DoubleSpinBox_Process_RMSThreshold = QDoubleSpinBox(self.Frame_Process_RMSThreshold) - self.DoubleSpinBox_Process_RMSThreshold.setObjectName(u"DoubleSpinBox_Process_RMSThreshold") - self.DoubleSpinBox_Process_RMSThreshold.setEnabled(True) - self.DoubleSpinBox_Process_RMSThreshold.setMinimumSize(QSize(0, 27)) - self.DoubleSpinBox_Process_RMSThreshold.setStyleSheet(u"QDoubleSpinBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QDoubleSpinBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" -"}\n" -"\n" -"QDoubleSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" -"}\n" -"QDoubleSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" -"}\n" -"\n" -"QDoubleSpinBox::down-button {\n" -" /*width: 9px;\n" -" /*height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" -"}\n" -"QDoubleSpinBox::down-arr" - "ow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - self.DoubleSpinBox_Process_RMSThreshold.setMinimum(-999999.000000000000000) - self.DoubleSpinBox_Process_RMSThreshold.setMaximum(999999.000000000000000) + self.LineEdit_Process_DenoiseModelPath = LineEditBase(self.Frame_Process_DenoiseModelPath) + self.LineEdit_Process_DenoiseModelPath.setObjectName(u"LineEdit_Process_DenoiseModelPath") + self.LineEdit_Process_DenoiseModelPath.setMinimumSize(QSize(0, 27)) - self.gridLayout_17.addWidget(self.DoubleSpinBox_Process_RMSThreshold, 1, 0, 1, 3) + self.gridLayout_92.addWidget(self.LineEdit_Process_DenoiseModelPath, 1, 0, 1, 3) - self.verticalLayout_54.addWidget(self.Frame_Process_RMSThreshold) + self.verticalLayout_73.addWidget(self.Frame_Process_DenoiseModelPath) - self.Frame_Process_AudioLengthMin = QFrame(self.Frame_Process_AudioSlicerParams_AdvanceSettings) - self.Frame_Process_AudioLengthMin.setObjectName(u"Frame_Process_AudioLengthMin") - self.Frame_Process_AudioLengthMin.setMinimumSize(QSize(0, 105)) - self.Frame_Process_AudioLengthMin.setStyleSheet(u"QFrame {\n" + self.Frame_Process_DenoiseTarget = QFrame(self.Frame_Process_DenoiserParams_BasicSettings) + self.Frame_Process_DenoiseTarget.setObjectName(u"Frame_Process_DenoiseTarget") + self.Frame_Process_DenoiseTarget.setMinimumSize(QSize(0, 105)) + self.Frame_Process_DenoiseTarget.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -3496,15 +3500,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_23 = QGridLayout(self.Frame_Process_AudioLengthMin) - self.gridLayout_23.setSpacing(12) - self.gridLayout_23.setObjectName(u"gridLayout_23") - self.gridLayout_23.setContentsMargins(21, 12, 21, 12) - self.Label_Process_AudioLengthMin = QLabel(self.Frame_Process_AudioLengthMin) - self.Label_Process_AudioLengthMin.setObjectName(u"Label_Process_AudioLengthMin") - sizePolicy5.setHeightForWidth(self.Label_Process_AudioLengthMin.sizePolicy().hasHeightForWidth()) - self.Label_Process_AudioLengthMin.setSizePolicy(sizePolicy5) - self.Label_Process_AudioLengthMin.setStyleSheet(u"QLabel {\n" + self.gridLayout_94 = QGridLayout(self.Frame_Process_DenoiseTarget) + self.gridLayout_94.setSpacing(12) + self.gridLayout_94.setObjectName(u"gridLayout_94") + self.gridLayout_94.setContentsMargins(21, 12, 21, 12) + self.Label_Process_DenoiseTarget = QLabel(self.Frame_Process_DenoiseTarget) + self.Label_Process_DenoiseTarget.setObjectName(u"Label_Process_DenoiseTarget") + sizePolicy5.setHeightForWidth(self.Label_Process_DenoiseTarget.sizePolicy().hasHeightForWidth()) + self.Label_Process_DenoiseTarget.setSizePolicy(sizePolicy5) + self.Label_Process_DenoiseTarget.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -3514,17 +3518,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_23.addWidget(self.Label_Process_AudioLengthMin, 0, 0, 1, 1) + self.gridLayout_94.addWidget(self.Label_Process_DenoiseTarget, 0, 0, 1, 1) - self.HorizontalSpacer_Process_AudioLengthMin = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_DenoiseTarget = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_23.addItem(self.HorizontalSpacer_Process_AudioLengthMin, 0, 1, 1, 1) + self.gridLayout_94.addItem(self.HorizontalSpacer_Process_DenoiseTarget, 0, 1, 1, 1) - self.Button_Process_AudioLengthMin_Undo = QPushButton(self.Frame_Process_AudioLengthMin) - self.Button_Process_AudioLengthMin_Undo.setObjectName(u"Button_Process_AudioLengthMin_Undo") - self.Button_Process_AudioLengthMin_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_AudioLengthMin_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_AudioLengthMin_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_DenoiseTarget_Undo = QPushButton(self.Frame_Process_DenoiseTarget) + self.Button_Process_DenoiseTarget_Undo.setObjectName(u"Button_Process_DenoiseTarget_Undo") + self.Button_Process_DenoiseTarget_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_DenoiseTarget_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_DenoiseTarget_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -3545,16 +3549,14 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_23.addWidget(self.Button_Process_AudioLengthMin_Undo, 0, 2, 1, 1) + self.gridLayout_94.addWidget(self.Button_Process_DenoiseTarget_Undo, 0, 2, 1, 1) - self.SpinBox_Process_AudioLengthMin = QSpinBox(self.Frame_Process_AudioLengthMin) - self.SpinBox_Process_AudioLengthMin.setObjectName(u"SpinBox_Process_AudioLengthMin") - self.SpinBox_Process_AudioLengthMin.setMinimumSize(QSize(0, 27)) - self.SpinBox_Process_AudioLengthMin.setStyleSheet(u"QSpinBox {\n" + self.ComboBox_Process_DenoiseTarget = QComboBox(self.Frame_Process_DenoiseTarget) + self.ComboBox_Process_DenoiseTarget.setObjectName(u"ComboBox_Process_DenoiseTarget") + self.ComboBox_Process_DenoiseTarget.setMinimumSize(QSize(0, 27)) + self.ComboBox_Process_DenoiseTarget.setStyleSheet(u"QComboBox {\n" " /*font-size: 12px;*/\n" " text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" " background-color: transparent;\n" " padding-top: 3px;\n" " padding-left: 6px;\n" @@ -3565,33 +3567,154 @@ def setupUi(self, MainWindow): " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QSpinBox:hover {\n" +"QComboBox:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" +"QComboBox::drop-down {\n" +" /*width: 12px;\n" +" height: 12px;*/\n" " subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" +" subcontrol-position: right;\n" +" margin-right: 6px;\n" +" border: none;\n" +"}\n" +"\n" +"QComboBox::down-arrow {\n" +" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"QComboBox::down-arrow:on {\n" +" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractItemView {\n" +" outline: none;\n" +" background-color: transparent;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"\n" +"QCom" + "boBox QAbstractItemView::item {\n" +" /* height: 30px; */\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border: none;\n" +"}\n" +"QComboBox QAbstractItemView::item:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"QComboBox QAbstractItemView::item:selected {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +"" + " border-style: solid;\n" "}\n" -"QSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" "\n" -"QSpinBox::down-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" -"QSpinBox::down-arrow {\n" -" border-image: url(:/(Double)" - "SpinBox_Icon/Sources/DownArrow.png);\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" borde" + "r-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" " + "border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" @@ -3601,18 +3724,48 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - self.SpinBox_Process_AudioLengthMin.setMinimum(-999999) - self.SpinBox_Process_AudioLengthMin.setMaximum(999999) - self.gridLayout_23.addWidget(self.SpinBox_Process_AudioLengthMin, 1, 0, 1, 3) + self.gridLayout_94.addWidget(self.ComboBox_Process_DenoiseTarget, 1, 0, 1, 3) - self.verticalLayout_54.addWidget(self.Frame_Process_AudioLengthMin) + self.verticalLayout_73.addWidget(self.Frame_Process_DenoiseTarget) - self.Frame_Process_SilentIntervalMin = QFrame(self.Frame_Process_AudioSlicerParams_AdvanceSettings) - self.Frame_Process_SilentIntervalMin.setObjectName(u"Frame_Process_SilentIntervalMin") - self.Frame_Process_SilentIntervalMin.setMinimumSize(QSize(0, 105)) - self.Frame_Process_SilentIntervalMin.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_74.addWidget(self.Frame_Process_DenoiserParams_BasicSettings) + + + self.verticalLayout_14.addWidget(self.GroupBox_Process_DenoiserParams) + + self.GroupBox_Process_SlicerParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Process) + self.GroupBox_Process_SlicerParams.setObjectName(u"GroupBox_Process_SlicerParams") + self.GroupBox_Process_SlicerParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_186 = QVBoxLayout(self.GroupBox_Process_SlicerParams) + self.verticalLayout_186.setSpacing(0) + self.verticalLayout_186.setObjectName(u"verticalLayout_186") + self.verticalLayout_186.setContentsMargins(0, 12, 0, 12) + self.Frame_Process_SlicerParams_BasicSettings = QFrame(self.GroupBox_Process_SlicerParams) + self.Frame_Process_SlicerParams_BasicSettings.setObjectName(u"Frame_Process_SlicerParams_BasicSettings") + self.verticalLayout_51 = QVBoxLayout(self.Frame_Process_SlicerParams_BasicSettings) + self.verticalLayout_51.setObjectName(u"verticalLayout_51") + self.Frame_Process_SliceAudio = QFrame(self.Frame_Process_SlicerParams_BasicSettings) + self.Frame_Process_SliceAudio.setObjectName(u"Frame_Process_SliceAudio") + self.Frame_Process_SliceAudio.setMinimumSize(QSize(0, 105)) + self.Frame_Process_SliceAudio.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -3621,15 +3774,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_24 = QGridLayout(self.Frame_Process_SilentIntervalMin) - self.gridLayout_24.setSpacing(12) - self.gridLayout_24.setObjectName(u"gridLayout_24") - self.gridLayout_24.setContentsMargins(21, 12, 21, 12) - self.Label_Process_SilentIntervalMin = QLabel(self.Frame_Process_SilentIntervalMin) - self.Label_Process_SilentIntervalMin.setObjectName(u"Label_Process_SilentIntervalMin") - sizePolicy5.setHeightForWidth(self.Label_Process_SilentIntervalMin.sizePolicy().hasHeightForWidth()) - self.Label_Process_SilentIntervalMin.setSizePolicy(sizePolicy5) - self.Label_Process_SilentIntervalMin.setStyleSheet(u"QLabel {\n" + self.gridLayout_13 = QGridLayout(self.Frame_Process_SliceAudio) + self.gridLayout_13.setSpacing(12) + self.gridLayout_13.setObjectName(u"gridLayout_13") + self.gridLayout_13.setContentsMargins(21, 12, 21, 12) + self.Label_Process_SliceAudio = QLabel(self.Frame_Process_SliceAudio) + self.Label_Process_SliceAudio.setObjectName(u"Label_Process_SliceAudio") + sizePolicy5.setHeightForWidth(self.Label_Process_SliceAudio.sizePolicy().hasHeightForWidth()) + self.Label_Process_SliceAudio.setSizePolicy(sizePolicy5) + self.Label_Process_SliceAudio.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -3639,17 +3792,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_24.addWidget(self.Label_Process_SilentIntervalMin, 0, 0, 1, 1) + self.gridLayout_13.addWidget(self.Label_Process_SliceAudio, 0, 0, 1, 1) - self.HorizontalSpacer_Process_SilentIntervalMin = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_SliceAudio = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_24.addItem(self.HorizontalSpacer_Process_SilentIntervalMin, 0, 1, 1, 1) + self.gridLayout_13.addItem(self.HorizontalSpacer_Process_SliceAudio, 0, 1, 1, 1) - self.Button_Process_SilentIntervalMin_Undo = QPushButton(self.Frame_Process_SilentIntervalMin) - self.Button_Process_SilentIntervalMin_Undo.setObjectName(u"Button_Process_SilentIntervalMin_Undo") - self.Button_Process_SilentIntervalMin_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_SilentIntervalMin_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_SilentIntervalMin_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_SliceAudio_Undo = QPushButton(self.Frame_Process_SliceAudio) + self.Button_Process_SliceAudio_Undo.setObjectName(u"Button_Process_SliceAudio_Undo") + self.Button_Process_SliceAudio_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_SliceAudio_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_SliceAudio_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -3670,53 +3823,42 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_24.addWidget(self.Button_Process_SilentIntervalMin_Undo, 0, 2, 1, 1) + self.gridLayout_13.addWidget(self.Button_Process_SliceAudio_Undo, 0, 2, 1, 1) - self.SpinBox_Process_SilentIntervalMin = QSpinBox(self.Frame_Process_SilentIntervalMin) - self.SpinBox_Process_SilentIntervalMin.setObjectName(u"SpinBox_Process_SilentIntervalMin") - self.SpinBox_Process_SilentIntervalMin.setMinimumSize(QSize(0, 27)) - self.SpinBox_Process_SilentIntervalMin.setStyleSheet(u"QSpinBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" + self.CheckBox_Process_SliceAudio = QCheckBox(self.Frame_Process_SliceAudio) + self.CheckBox_Process_SliceAudio.setObjectName(u"CheckBox_Process_SliceAudio") + self.CheckBox_Process_SliceAudio.setMinimumSize(QSize(0, 27)) + self.CheckBox_Process_SliceAudio.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" spacing: 12.3px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" +" padding: 0px;\n" +" border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QSpinBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" "}\n" "\n" -"QSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" +"QCheckBox::indicator {\n" +" width: 24px;\n" +" height: 24px;\n" +" background-color: transparent;\n" +" padding: 1.2px;\n" " border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" "}\n" -"QSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" "}\n" -"\n" -"QSpinBox::down-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" "}\n" -"QSpinBox::down-arrow {\n" -" border-image: url(:/(Double)" - "SpinBox_Icon/Sources/DownArrow.png);\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" "}\n" "\n" "\n" @@ -3726,18 +3868,71 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - self.SpinBox_Process_SilentIntervalMin.setMinimum(-999999) - self.SpinBox_Process_SilentIntervalMin.setMaximum(999999) - self.gridLayout_24.addWidget(self.SpinBox_Process_SilentIntervalMin, 1, 0, 1, 3) + self.gridLayout_13.addWidget(self.CheckBox_Process_SliceAudio, 1, 0, 1, 3) - self.verticalLayout_54.addWidget(self.Frame_Process_SilentIntervalMin) + self.verticalLayout_51.addWidget(self.Frame_Process_SliceAudio) - self.Frame_Process_HopSize = QFrame(self.Frame_Process_AudioSlicerParams_AdvanceSettings) - self.Frame_Process_HopSize.setObjectName(u"Frame_Process_HopSize") - self.Frame_Process_HopSize.setMinimumSize(QSize(0, 105)) - self.Frame_Process_HopSize.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_186.addWidget(self.Frame_Process_SlicerParams_BasicSettings) + + self.CheckBox_Process_SlicerParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_Process_SlicerParams) + self.CheckBox_Process_SlicerParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_Process_SlicerParams_Toggle_AdvanceSettings") + self.CheckBox_Process_SlicerParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding-top: 9px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: transparent;\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_186.addWidget(self.CheckBox_Process_SlicerParams_Toggle_AdvanceSettings) + + self.Frame_Process_SlicerParams_AdvanceSettings = QFrame(self.GroupBox_Process_SlicerParams) + self.Frame_Process_SlicerParams_AdvanceSettings.setObjectName(u"Frame_Process_SlicerParams_AdvanceSettings") + self.verticalLayout_54 = QVBoxLayout(self.Frame_Process_SlicerParams_AdvanceSettings) + self.verticalLayout_54.setSpacing(0) + self.verticalLayout_54.setObjectName(u"verticalLayout_54") + self.verticalLayout_54.setContentsMargins(0, 0, 0, 0) + self.Frame_Process_RMSThreshold = QFrame(self.Frame_Process_SlicerParams_AdvanceSettings) + self.Frame_Process_RMSThreshold.setObjectName(u"Frame_Process_RMSThreshold") + self.Frame_Process_RMSThreshold.setMinimumSize(QSize(0, 105)) + self.Frame_Process_RMSThreshold.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -3746,15 +3941,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_25 = QGridLayout(self.Frame_Process_HopSize) - self.gridLayout_25.setSpacing(12) - self.gridLayout_25.setObjectName(u"gridLayout_25") - self.gridLayout_25.setContentsMargins(21, 12, 21, 12) - self.Label_Process_HopSize = QLabel(self.Frame_Process_HopSize) - self.Label_Process_HopSize.setObjectName(u"Label_Process_HopSize") - sizePolicy5.setHeightForWidth(self.Label_Process_HopSize.sizePolicy().hasHeightForWidth()) - self.Label_Process_HopSize.setSizePolicy(sizePolicy5) - self.Label_Process_HopSize.setStyleSheet(u"QLabel {\n" + self.gridLayout_17 = QGridLayout(self.Frame_Process_RMSThreshold) + self.gridLayout_17.setSpacing(12) + self.gridLayout_17.setObjectName(u"gridLayout_17") + self.gridLayout_17.setContentsMargins(21, 12, 21, 12) + self.Label_Process_RMSThreshold = QLabel(self.Frame_Process_RMSThreshold) + self.Label_Process_RMSThreshold.setObjectName(u"Label_Process_RMSThreshold") + sizePolicy5.setHeightForWidth(self.Label_Process_RMSThreshold.sizePolicy().hasHeightForWidth()) + self.Label_Process_RMSThreshold.setSizePolicy(sizePolicy5) + self.Label_Process_RMSThreshold.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -3764,17 +3959,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_25.addWidget(self.Label_Process_HopSize, 0, 0, 1, 1) + self.gridLayout_17.addWidget(self.Label_Process_RMSThreshold, 0, 0, 1, 1) - self.HorizontalSpacer_Process_HopSize = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_RMSThreshold = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_25.addItem(self.HorizontalSpacer_Process_HopSize, 0, 1, 1, 1) + self.gridLayout_17.addItem(self.HorizontalSpacer_Process_RMSThreshold, 0, 1, 1, 1) - self.Button_Process_HopSize_Undo = QPushButton(self.Frame_Process_HopSize) - self.Button_Process_HopSize_Undo.setObjectName(u"Button_Process_HopSize_Undo") - self.Button_Process_HopSize_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_HopSize_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_HopSize_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_RMSThreshold_Undo = QPushButton(self.Frame_Process_RMSThreshold) + self.Button_Process_RMSThreshold_Undo.setObjectName(u"Button_Process_RMSThreshold_Undo") + self.Button_Process_RMSThreshold_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_RMSThreshold_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_RMSThreshold_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -3795,12 +3990,13 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_25.addWidget(self.Button_Process_HopSize_Undo, 0, 2, 1, 1) + self.gridLayout_17.addWidget(self.Button_Process_RMSThreshold_Undo, 0, 2, 1, 1) - self.SpinBox_Process_HopSize = QSpinBox(self.Frame_Process_HopSize) - self.SpinBox_Process_HopSize.setObjectName(u"SpinBox_Process_HopSize") - self.SpinBox_Process_HopSize.setMinimumSize(QSize(0, 27)) - self.SpinBox_Process_HopSize.setStyleSheet(u"QSpinBox {\n" + self.DoubleSpinBox_Process_RMSThreshold = QDoubleSpinBox(self.Frame_Process_RMSThreshold) + self.DoubleSpinBox_Process_RMSThreshold.setObjectName(u"DoubleSpinBox_Process_RMSThreshold") + self.DoubleSpinBox_Process_RMSThreshold.setEnabled(True) + self.DoubleSpinBox_Process_RMSThreshold.setMinimumSize(QSize(0, 27)) + self.DoubleSpinBox_Process_RMSThreshold.setStyleSheet(u"QDoubleSpinBox {\n" " /*font-size: 12px;*/\n" " text-align: left;\n" " color: rgb(255, 255, 255);\n" @@ -3815,11 +4011,11 @@ def setupUi(self, MainWindow): " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QSpinBox:hover {\n" +"QDoubleSpinBox:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QSpinBox::up-button {\n" +"QDoubleSpinBox::up-button {\n" " /*width: 9px;\n" " height: 9px;*/\n" " subcontrol-origin: padding;\n" @@ -3827,21 +4023,21 @@ def setupUi(self, MainWindow): " margin-right: 4.5px;\n" " border-width: 0px;\n" "}\n" -"QSpinBox::up-arrow {\n" +"QDoubleSpinBox::up-arrow {\n" " border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" "}\n" "\n" -"QSpinBox::down-button {\n" +"QDoubleSpinBox::down-button {\n" " /*width: 9px;\n" -" height: 9px;*/\n" +" /*height: 9px;*/\n" " subcontrol-origin: padding;\n" " subcontrol-position: bottom right;\n" " margin-right: 4.5px;\n" " border-width: 0px;\n" "}\n" -"QSpinBox::down-arrow {\n" -" border-image: url(:/(Double)" - "SpinBox_Icon/Sources/DownArrow.png);\n" +"QDoubleSpinBox::down-arr" + "ow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" "}\n" "\n" "\n" @@ -3851,18 +4047,18 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - self.SpinBox_Process_HopSize.setMinimum(-999999) - self.SpinBox_Process_HopSize.setMaximum(999999) + self.DoubleSpinBox_Process_RMSThreshold.setMinimum(-999999.000000000000000) + self.DoubleSpinBox_Process_RMSThreshold.setMaximum(999999.000000000000000) - self.gridLayout_25.addWidget(self.SpinBox_Process_HopSize, 1, 0, 1, 3) + self.gridLayout_17.addWidget(self.DoubleSpinBox_Process_RMSThreshold, 1, 0, 1, 3) - self.verticalLayout_54.addWidget(self.Frame_Process_HopSize) + self.verticalLayout_54.addWidget(self.Frame_Process_RMSThreshold) - self.Frame_Process_SilenceKeptMax = QFrame(self.Frame_Process_AudioSlicerParams_AdvanceSettings) - self.Frame_Process_SilenceKeptMax.setObjectName(u"Frame_Process_SilenceKeptMax") - self.Frame_Process_SilenceKeptMax.setMinimumSize(QSize(0, 105)) - self.Frame_Process_SilenceKeptMax.setStyleSheet(u"QFrame {\n" + self.Frame_Process_AudioLengthMin = QFrame(self.Frame_Process_SlicerParams_AdvanceSettings) + self.Frame_Process_AudioLengthMin.setObjectName(u"Frame_Process_AudioLengthMin") + self.Frame_Process_AudioLengthMin.setMinimumSize(QSize(0, 105)) + self.Frame_Process_AudioLengthMin.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -3871,15 +4067,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_26 = QGridLayout(self.Frame_Process_SilenceKeptMax) - self.gridLayout_26.setSpacing(12) - self.gridLayout_26.setObjectName(u"gridLayout_26") - self.gridLayout_26.setContentsMargins(21, 12, 21, 12) - self.Label_Process_SilenceKeptMax = QLabel(self.Frame_Process_SilenceKeptMax) - self.Label_Process_SilenceKeptMax.setObjectName(u"Label_Process_SilenceKeptMax") - sizePolicy5.setHeightForWidth(self.Label_Process_SilenceKeptMax.sizePolicy().hasHeightForWidth()) - self.Label_Process_SilenceKeptMax.setSizePolicy(sizePolicy5) - self.Label_Process_SilenceKeptMax.setStyleSheet(u"QLabel {\n" + self.gridLayout_23 = QGridLayout(self.Frame_Process_AudioLengthMin) + self.gridLayout_23.setSpacing(12) + self.gridLayout_23.setObjectName(u"gridLayout_23") + self.gridLayout_23.setContentsMargins(21, 12, 21, 12) + self.Label_Process_AudioLengthMin = QLabel(self.Frame_Process_AudioLengthMin) + self.Label_Process_AudioLengthMin.setObjectName(u"Label_Process_AudioLengthMin") + sizePolicy5.setHeightForWidth(self.Label_Process_AudioLengthMin.sizePolicy().hasHeightForWidth()) + self.Label_Process_AudioLengthMin.setSizePolicy(sizePolicy5) + self.Label_Process_AudioLengthMin.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -3889,17 +4085,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_26.addWidget(self.Label_Process_SilenceKeptMax, 0, 0, 1, 1) + self.gridLayout_23.addWidget(self.Label_Process_AudioLengthMin, 0, 0, 1, 1) - self.HorizontalSpacer_Process_SilenceKeptMax = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_AudioLengthMin = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_26.addItem(self.HorizontalSpacer_Process_SilenceKeptMax, 0, 1, 1, 1) + self.gridLayout_23.addItem(self.HorizontalSpacer_Process_AudioLengthMin, 0, 1, 1, 1) - self.Button_Process_SilenceKeptMax_Undo = QPushButton(self.Frame_Process_SilenceKeptMax) - self.Button_Process_SilenceKeptMax_Undo.setObjectName(u"Button_Process_SilenceKeptMax_Undo") - self.Button_Process_SilenceKeptMax_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_SilenceKeptMax_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_SilenceKeptMax_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_AudioLengthMin_Undo = QPushButton(self.Frame_Process_AudioLengthMin) + self.Button_Process_AudioLengthMin_Undo.setObjectName(u"Button_Process_AudioLengthMin_Undo") + self.Button_Process_AudioLengthMin_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_AudioLengthMin_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_AudioLengthMin_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -3920,12 +4116,12 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_26.addWidget(self.Button_Process_SilenceKeptMax_Undo, 0, 2, 1, 1) + self.gridLayout_23.addWidget(self.Button_Process_AudioLengthMin_Undo, 0, 2, 1, 1) - self.SpinBox_Process_SilenceKeptMax = QSpinBox(self.Frame_Process_SilenceKeptMax) - self.SpinBox_Process_SilenceKeptMax.setObjectName(u"SpinBox_Process_SilenceKeptMax") - self.SpinBox_Process_SilenceKeptMax.setMinimumSize(QSize(0, 27)) - self.SpinBox_Process_SilenceKeptMax.setStyleSheet(u"QSpinBox {\n" + self.SpinBox_Process_AudioLengthMin = QSpinBox(self.Frame_Process_AudioLengthMin) + self.SpinBox_Process_AudioLengthMin.setObjectName(u"SpinBox_Process_AudioLengthMin") + self.SpinBox_Process_AudioLengthMin.setMinimumSize(QSize(0, 27)) + self.SpinBox_Process_AudioLengthMin.setStyleSheet(u"QSpinBox {\n" " /*font-size: 12px;*/\n" " text-align: left;\n" " color: rgb(255, 255, 255);\n" @@ -3976,69 +4172,35 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - self.SpinBox_Process_SilenceKeptMax.setMinimum(-999999) - self.SpinBox_Process_SilenceKeptMax.setMaximum(999999) - - self.gridLayout_26.addWidget(self.SpinBox_Process_SilenceKeptMax, 1, 0, 1, 3) - - - self.verticalLayout_54.addWidget(self.Frame_Process_SilenceKeptMax) - + self.SpinBox_Process_AudioLengthMin.setMinimum(-999999) + self.SpinBox_Process_AudioLengthMin.setMaximum(999999) - self.verticalLayout_186.addWidget(self.Frame_Process_AudioSlicerParams_AdvanceSettings) + self.gridLayout_23.addWidget(self.SpinBox_Process_AudioLengthMin, 1, 0, 1, 3) - self.verticalLayout_14.addWidget(self.GroupBox_Process_AudioSlicerParams) + self.verticalLayout_54.addWidget(self.Frame_Process_AudioLengthMin) - self.GroupBox_Process_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Process) - self.GroupBox_Process_OutputParams.setObjectName(u"GroupBox_Process_OutputParams") - self.GroupBox_Process_OutputParams.setStyleSheet(u"QGroupBox {\n" -" font-size: 15px;\n" -" margin-top: 1.5ex;\n" + self.Frame_Process_SilentIntervalMin = QFrame(self.Frame_Process_SlicerParams_AdvanceSettings) + self.Frame_Process_SilentIntervalMin.setObjectName(u"Frame_Process_SilentIntervalMin") + self.Frame_Process_SilentIntervalMin.setMinimumSize(QSize(0, 105)) + self.Frame_Process_SilentIntervalMin.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" border-width: 1px;\n" +" border-width: 0px;\n" " border-style: solid;\n" -" border-color: transparent;\n" "}\n" -"QGroupBox::title {\n" -" left: 9px;\n" -" margin-left: 0px;\n" -" subcontrol-origin: margin;\n" -" subcontrol-position: top left;\n" -" padding: 3px;\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" "}") - self.verticalLayout_197 = QVBoxLayout(self.GroupBox_Process_OutputParams) - self.verticalLayout_197.setSpacing(0) - self.verticalLayout_197.setObjectName(u"verticalLayout_197") - self.verticalLayout_197.setContentsMargins(0, 12, 0, 12) - self.Frame_Process_OutputParams_BasicSettings = QFrame(self.GroupBox_Process_OutputParams) - self.Frame_Process_OutputParams_BasicSettings.setObjectName(u"Frame_Process_OutputParams_BasicSettings") - self.verticalLayout_61 = QVBoxLayout(self.Frame_Process_OutputParams_BasicSettings) - self.verticalLayout_61.setSpacing(0) - self.verticalLayout_61.setObjectName(u"verticalLayout_61") - self.verticalLayout_61.setContentsMargins(0, 0, 0, 0) - self.Frame_Process_MediaFormatOutput = QFrame(self.Frame_Process_OutputParams_BasicSettings) - self.Frame_Process_MediaFormatOutput.setObjectName(u"Frame_Process_MediaFormatOutput") - self.Frame_Process_MediaFormatOutput.setMinimumSize(QSize(0, 105)) - self.Frame_Process_MediaFormatOutput.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_27 = QGridLayout(self.Frame_Process_MediaFormatOutput) - self.gridLayout_27.setSpacing(12) - self.gridLayout_27.setObjectName(u"gridLayout_27") - self.gridLayout_27.setContentsMargins(21, 12, 21, 12) - self.Label_Process_MediaFormatOutput = QLabel(self.Frame_Process_MediaFormatOutput) - self.Label_Process_MediaFormatOutput.setObjectName(u"Label_Process_MediaFormatOutput") - sizePolicy5.setHeightForWidth(self.Label_Process_MediaFormatOutput.sizePolicy().hasHeightForWidth()) - self.Label_Process_MediaFormatOutput.setSizePolicy(sizePolicy5) - self.Label_Process_MediaFormatOutput.setStyleSheet(u"QLabel {\n" + self.gridLayout_24 = QGridLayout(self.Frame_Process_SilentIntervalMin) + self.gridLayout_24.setSpacing(12) + self.gridLayout_24.setObjectName(u"gridLayout_24") + self.gridLayout_24.setContentsMargins(21, 12, 21, 12) + self.Label_Process_SilentIntervalMin = QLabel(self.Frame_Process_SilentIntervalMin) + self.Label_Process_SilentIntervalMin.setObjectName(u"Label_Process_SilentIntervalMin") + sizePolicy5.setHeightForWidth(self.Label_Process_SilentIntervalMin.sizePolicy().hasHeightForWidth()) + self.Label_Process_SilentIntervalMin.setSizePolicy(sizePolicy5) + self.Label_Process_SilentIntervalMin.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -4048,17 +4210,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_27.addWidget(self.Label_Process_MediaFormatOutput, 0, 0, 1, 1) + self.gridLayout_24.addWidget(self.Label_Process_SilentIntervalMin, 0, 0, 1, 1) - self.HorizontalSpacer_Process_MediaFormatOutput = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_SilentIntervalMin = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_27.addItem(self.HorizontalSpacer_Process_MediaFormatOutput, 0, 1, 1, 1) + self.gridLayout_24.addItem(self.HorizontalSpacer_Process_SilentIntervalMin, 0, 1, 1, 1) - self.Button_Process_MediaFormatOutput_Undo = QPushButton(self.Frame_Process_MediaFormatOutput) - self.Button_Process_MediaFormatOutput_Undo.setObjectName(u"Button_Process_MediaFormatOutput_Undo") - self.Button_Process_MediaFormatOutput_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_MediaFormatOutput_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_MediaFormatOutput_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_SilentIntervalMin_Undo = QPushButton(self.Frame_Process_SilentIntervalMin) + self.Button_Process_SilentIntervalMin_Undo.setObjectName(u"Button_Process_SilentIntervalMin_Undo") + self.Button_Process_SilentIntervalMin_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_SilentIntervalMin_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_SilentIntervalMin_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -4079,14 +4241,16 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_27.addWidget(self.Button_Process_MediaFormatOutput_Undo, 0, 2, 1, 1) + self.gridLayout_24.addWidget(self.Button_Process_SilentIntervalMin_Undo, 0, 2, 1, 1) - self.ComboBox_Process_MediaFormatOutput = QComboBox(self.Frame_Process_MediaFormatOutput) - self.ComboBox_Process_MediaFormatOutput.setObjectName(u"ComboBox_Process_MediaFormatOutput") - self.ComboBox_Process_MediaFormatOutput.setMinimumSize(QSize(0, 27)) - self.ComboBox_Process_MediaFormatOutput.setStyleSheet(u"QComboBox {\n" + self.SpinBox_Process_SilentIntervalMin = QSpinBox(self.Frame_Process_SilentIntervalMin) + self.SpinBox_Process_SilentIntervalMin.setObjectName(u"SpinBox_Process_SilentIntervalMin") + self.SpinBox_Process_SilentIntervalMin.setMinimumSize(QSize(0, 27)) + self.SpinBox_Process_SilentIntervalMin.setStyleSheet(u"QSpinBox {\n" " /*font-size: 12px;*/\n" " text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" " background-color: transparent;\n" " padding-top: 3px;\n" " padding-left: 6px;\n" @@ -4097,154 +4261,33 @@ def setupUi(self, MainWindow): " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QComboBox:hover {\n" +"QSpinBox:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QComboBox::drop-down {\n" -" /*width: 12px;\n" -" height: 12px;*/\n" +"QSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" " subcontrol-origin: padding;\n" -" subcontrol-position: right;\n" -" margin-right: 6px;\n" -" border: none;\n" -"}\n" -"\n" -"QComboBox::down-arrow {\n" -" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" -"}\n" -"QComboBox::down-arrow:on {\n" -" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractItemView {\n" -" outline: none;\n" -" background-color: transparent;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"\n" -"QCom" - "boBox QAbstractItemView::item {\n" -" /* height: 30px; */\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border: none;\n" -"}\n" -"QComboBox QAbstractItemView::item:hover {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"QComboBox QAbstractItemView::item:selected {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" -" width: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" -" background-color: rgb(60, 60, 60);\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -"" - " border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" -" background-color: transparent;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" -" height: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" borde" - "r-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" -" background-color: rgb(60, 60, 60);\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" +"QSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" +"QSpinBox::down-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" -" background-color: transparent;\n" -" " - "border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" +"QSpinBox::down-arrow {\n" +" border-image: url(:/(Double)" + "SpinBox_Icon/Sources/DownArrow.png);\n" "}\n" "\n" "\n" @@ -4254,16 +4297,18 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") + self.SpinBox_Process_SilentIntervalMin.setMinimum(-999999) + self.SpinBox_Process_SilentIntervalMin.setMaximum(999999) - self.gridLayout_27.addWidget(self.ComboBox_Process_MediaFormatOutput, 1, 0, 1, 3) + self.gridLayout_24.addWidget(self.SpinBox_Process_SilentIntervalMin, 1, 0, 1, 3) - self.verticalLayout_61.addWidget(self.Frame_Process_MediaFormatOutput) + self.verticalLayout_54.addWidget(self.Frame_Process_SilentIntervalMin) - self.Frame_Process_MediaDirOutput = QFrame(self.Frame_Process_OutputParams_BasicSettings) - self.Frame_Process_MediaDirOutput.setObjectName(u"Frame_Process_MediaDirOutput") - self.Frame_Process_MediaDirOutput.setMinimumSize(QSize(0, 105)) - self.Frame_Process_MediaDirOutput.setStyleSheet(u"QFrame {\n" + self.Frame_Process_HopSize = QFrame(self.Frame_Process_SlicerParams_AdvanceSettings) + self.Frame_Process_HopSize.setObjectName(u"Frame_Process_HopSize") + self.Frame_Process_HopSize.setMinimumSize(QSize(0, 105)) + self.Frame_Process_HopSize.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -4272,15 +4317,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_28 = QGridLayout(self.Frame_Process_MediaDirOutput) - self.gridLayout_28.setSpacing(12) - self.gridLayout_28.setObjectName(u"gridLayout_28") - self.gridLayout_28.setContentsMargins(21, 12, 21, 12) - self.Label_Process_MediaDirOutput = QLabel(self.Frame_Process_MediaDirOutput) - self.Label_Process_MediaDirOutput.setObjectName(u"Label_Process_MediaDirOutput") - sizePolicy5.setHeightForWidth(self.Label_Process_MediaDirOutput.sizePolicy().hasHeightForWidth()) - self.Label_Process_MediaDirOutput.setSizePolicy(sizePolicy5) - self.Label_Process_MediaDirOutput.setStyleSheet(u"QLabel {\n" + self.gridLayout_25 = QGridLayout(self.Frame_Process_HopSize) + self.gridLayout_25.setSpacing(12) + self.gridLayout_25.setObjectName(u"gridLayout_25") + self.gridLayout_25.setContentsMargins(21, 12, 21, 12) + self.Label_Process_HopSize = QLabel(self.Frame_Process_HopSize) + self.Label_Process_HopSize.setObjectName(u"Label_Process_HopSize") + sizePolicy5.setHeightForWidth(self.Label_Process_HopSize.sizePolicy().hasHeightForWidth()) + self.Label_Process_HopSize.setSizePolicy(sizePolicy5) + self.Label_Process_HopSize.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -4290,17 +4335,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_28.addWidget(self.Label_Process_MediaDirOutput, 0, 0, 1, 1) + self.gridLayout_25.addWidget(self.Label_Process_HopSize, 0, 0, 1, 1) - self.HorizontalSpacer_Process_MediaDirOutput = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_HopSize = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_28.addItem(self.HorizontalSpacer_Process_MediaDirOutput, 0, 1, 1, 1) + self.gridLayout_25.addItem(self.HorizontalSpacer_Process_HopSize, 0, 1, 1, 1) - self.Button_Process_MediaDirOutput_Undo = QPushButton(self.Frame_Process_MediaDirOutput) - self.Button_Process_MediaDirOutput_Undo.setObjectName(u"Button_Process_MediaDirOutput_Undo") - self.Button_Process_MediaDirOutput_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_MediaDirOutput_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_MediaDirOutput_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_HopSize_Undo = QPushButton(self.Frame_Process_HopSize) + self.Button_Process_HopSize_Undo.setObjectName(u"Button_Process_HopSize_Undo") + self.Button_Process_HopSize_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_HopSize_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_HopSize_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -4321,54 +4366,53 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_28.addWidget(self.Button_Process_MediaDirOutput_Undo, 0, 2, 1, 1) - - self.LineEdit_Process_MediaDirOutput = LineEditBase(self.Frame_Process_MediaDirOutput) - self.LineEdit_Process_MediaDirOutput.setObjectName(u"LineEdit_Process_MediaDirOutput") - self.LineEdit_Process_MediaDirOutput.setMinimumSize(QSize(0, 27)) - - self.gridLayout_28.addWidget(self.LineEdit_Process_MediaDirOutput, 1, 0, 1, 3) - - - self.verticalLayout_61.addWidget(self.Frame_Process_MediaDirOutput) - - - self.verticalLayout_197.addWidget(self.Frame_Process_OutputParams_BasicSettings) + self.gridLayout_25.addWidget(self.Button_Process_HopSize_Undo, 0, 2, 1, 1) - self.CheckBox_Process_OutputParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_Process_OutputParams) - self.CheckBox_Process_OutputParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_Process_OutputParams_Toggle_AdvanceSettings") - self.CheckBox_Process_OutputParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" font-weight: 630;\n" -" spacing: 12px;\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" padding-top: 9px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" + self.SpinBox_Process_HopSize = QSpinBox(self.Frame_Process_HopSize) + self.SpinBox_Process_HopSize.setObjectName(u"SpinBox_Process_HopSize") + self.SpinBox_Process_HopSize.setMinimumSize(QSize(0, 27)) + self.SpinBox_Process_HopSize.setStyleSheet(u"QSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" +"QSpinBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QCheckBox::indicator {\n" -" width: 12px;\n" -" height: 12px;\n" -" background-color: transparent;\n" -" padding: 0px;\n" +"QSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" "}\n" -"QCheckBox::indicator:hover {\n" -" background-color: transparent;\n" +"QSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" "}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" +"\n" +"QSpinBox::down-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" "}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" +"QSpinBox::down-arrow {\n" +" border-image: url(:/(Double)" + "SpinBox_Icon/Sources/DownArrow.png);\n" "}\n" "\n" "\n" @@ -4378,19 +4422,18 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") + self.SpinBox_Process_HopSize.setMinimum(-999999) + self.SpinBox_Process_HopSize.setMaximum(999999) - self.verticalLayout_197.addWidget(self.CheckBox_Process_OutputParams_Toggle_AdvanceSettings) + self.gridLayout_25.addWidget(self.SpinBox_Process_HopSize, 1, 0, 1, 3) - self.Frame_Process_OutputParams_AdvanceSettings = QFrame(self.GroupBox_Process_OutputParams) - self.Frame_Process_OutputParams_AdvanceSettings.setObjectName(u"Frame_Process_OutputParams_AdvanceSettings") - self.verticalLayout_67 = QVBoxLayout(self.Frame_Process_OutputParams_AdvanceSettings) - self.verticalLayout_67.setSpacing(0) - self.verticalLayout_67.setObjectName(u"verticalLayout_67") - self.verticalLayout_67.setContentsMargins(0, 0, 0, 0) - self.Frame_Process_SampleRate = QFrame(self.Frame_Process_OutputParams_AdvanceSettings) - self.Frame_Process_SampleRate.setObjectName(u"Frame_Process_SampleRate") - self.Frame_Process_SampleRate.setMinimumSize(QSize(0, 105)) - self.Frame_Process_SampleRate.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_54.addWidget(self.Frame_Process_HopSize) + + self.Frame_Process_SilenceKeptMax = QFrame(self.Frame_Process_SlicerParams_AdvanceSettings) + self.Frame_Process_SilenceKeptMax.setObjectName(u"Frame_Process_SilenceKeptMax") + self.Frame_Process_SilenceKeptMax.setMinimumSize(QSize(0, 105)) + self.Frame_Process_SilenceKeptMax.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -4399,15 +4442,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_29 = QGridLayout(self.Frame_Process_SampleRate) - self.gridLayout_29.setSpacing(12) - self.gridLayout_29.setObjectName(u"gridLayout_29") - self.gridLayout_29.setContentsMargins(21, 12, 21, 12) - self.Label_Process_SampleRate = QLabel(self.Frame_Process_SampleRate) - self.Label_Process_SampleRate.setObjectName(u"Label_Process_SampleRate") - sizePolicy5.setHeightForWidth(self.Label_Process_SampleRate.sizePolicy().hasHeightForWidth()) - self.Label_Process_SampleRate.setSizePolicy(sizePolicy5) - self.Label_Process_SampleRate.setStyleSheet(u"QLabel {\n" + self.gridLayout_26 = QGridLayout(self.Frame_Process_SilenceKeptMax) + self.gridLayout_26.setSpacing(12) + self.gridLayout_26.setObjectName(u"gridLayout_26") + self.gridLayout_26.setContentsMargins(21, 12, 21, 12) + self.Label_Process_SilenceKeptMax = QLabel(self.Frame_Process_SilenceKeptMax) + self.Label_Process_SilenceKeptMax.setObjectName(u"Label_Process_SilenceKeptMax") + sizePolicy5.setHeightForWidth(self.Label_Process_SilenceKeptMax.sizePolicy().hasHeightForWidth()) + self.Label_Process_SilenceKeptMax.setSizePolicy(sizePolicy5) + self.Label_Process_SilenceKeptMax.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -4417,17 +4460,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_29.addWidget(self.Label_Process_SampleRate, 0, 0, 1, 1) + self.gridLayout_26.addWidget(self.Label_Process_SilenceKeptMax, 0, 0, 1, 1) - self.HorizontalSpacer_Process_SampleRate = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_SilenceKeptMax = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_29.addItem(self.HorizontalSpacer_Process_SampleRate, 0, 1, 1, 1) + self.gridLayout_26.addItem(self.HorizontalSpacer_Process_SilenceKeptMax, 0, 1, 1, 1) - self.Button_Process_SampleRate_Undo = QPushButton(self.Frame_Process_SampleRate) - self.Button_Process_SampleRate_Undo.setObjectName(u"Button_Process_SampleRate_Undo") - self.Button_Process_SampleRate_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_SampleRate_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_SampleRate_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_SilenceKeptMax_Undo = QPushButton(self.Frame_Process_SilenceKeptMax) + self.Button_Process_SilenceKeptMax_Undo.setObjectName(u"Button_Process_SilenceKeptMax_Undo") + self.Button_Process_SilenceKeptMax_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_SilenceKeptMax_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_SilenceKeptMax_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -4448,14 +4491,16 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_29.addWidget(self.Button_Process_SampleRate_Undo, 0, 2, 1, 1) + self.gridLayout_26.addWidget(self.Button_Process_SilenceKeptMax_Undo, 0, 2, 1, 1) - self.ComboBox_Process_SampleRate = QComboBox(self.Frame_Process_SampleRate) - self.ComboBox_Process_SampleRate.setObjectName(u"ComboBox_Process_SampleRate") - self.ComboBox_Process_SampleRate.setMinimumSize(QSize(0, 27)) - self.ComboBox_Process_SampleRate.setStyleSheet(u"QComboBox {\n" + self.SpinBox_Process_SilenceKeptMax = QSpinBox(self.Frame_Process_SilenceKeptMax) + self.SpinBox_Process_SilenceKeptMax.setObjectName(u"SpinBox_Process_SilenceKeptMax") + self.SpinBox_Process_SilenceKeptMax.setMinimumSize(QSize(0, 27)) + self.SpinBox_Process_SilenceKeptMax.setStyleSheet(u"QSpinBox {\n" " /*font-size: 12px;*/\n" " text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" " background-color: transparent;\n" " padding-top: 3px;\n" " padding-left: 6px;\n" @@ -4466,210 +4511,125 @@ def setupUi(self, MainWindow): " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QComboBox:hover {\n" +"QSpinBox:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QComboBox::drop-down {\n" -" /*width: 12px;\n" -" height: 12px;*/\n" +"QSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" " subcontrol-origin: padding;\n" -" subcontrol-position: right;\n" -" margin-right: 6px;\n" -" border: none;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" "}\n" "\n" -"QComboBox::down-arrow {\n" -" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" +"QSpinBox::down-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" "}\n" -"QComboBox::down-arrow:on {\n" -" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" +"QSpinBox::down-arrow {\n" +" border-image: url(:/(Double)" + "SpinBox_Icon/Sources/DownArrow.png);\n" "}\n" "\n" "\n" -"QComboBox QAbstractItemView {\n" -" outline: none;\n" -" background-color: transparent;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"\n" -"QCom" - "boBox QAbstractItemView::item {\n" -" /* height: 30px; */\n" +"}") + self.SpinBox_Process_SilenceKeptMax.setMinimum(-999999) + self.SpinBox_Process_SilenceKeptMax.setMaximum(999999) + + self.gridLayout_26.addWidget(self.SpinBox_Process_SilenceKeptMax, 1, 0, 1, 3) + + + self.verticalLayout_54.addWidget(self.Frame_Process_SilenceKeptMax) + + + self.verticalLayout_186.addWidget(self.Frame_Process_SlicerParams_AdvanceSettings) + + + self.verticalLayout_14.addWidget(self.GroupBox_Process_SlicerParams) + + self.GroupBox_Process_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Process) + self.GroupBox_Process_OutputParams.setObjectName(u"GroupBox_Process_OutputParams") + self.GroupBox_Process_OutputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border: none;\n" -"}\n" -"QComboBox QAbstractItemView::item:hover {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"QComboBox QAbstractItemView::item:selected {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" -" width: 9px;\n" -" background-color: rgb(45, 45, 45);\n" " border-width: 1px;\n" -" border-radius: 6px;\n" " border-style: solid;\n" " border-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" -" background-color: rgb(60, 60, 60);\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" " subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_197 = QVBoxLayout(self.GroupBox_Process_OutputParams) + self.verticalLayout_197.setSpacing(0) + self.verticalLayout_197.setObjectName(u"verticalLayout_197") + self.verticalLayout_197.setContentsMargins(0, 12, 0, 12) + self.Frame_Process_OutputParams_BasicSettings = QFrame(self.GroupBox_Process_OutputParams) + self.Frame_Process_OutputParams_BasicSettings.setObjectName(u"Frame_Process_OutputParams_BasicSettings") + self.verticalLayout_61 = QVBoxLayout(self.Frame_Process_OutputParams_BasicSettings) + self.verticalLayout_61.setSpacing(0) + self.verticalLayout_61.setObjectName(u"verticalLayout_61") + self.verticalLayout_61.setContentsMargins(0, 0, 0, 0) + self.Frame_Process_MediaFormatOutput = QFrame(self.Frame_Process_OutputParams_BasicSettings) + self.Frame_Process_MediaFormatOutput.setObjectName(u"Frame_Process_MediaFormatOutput") + self.Frame_Process_MediaFormatOutput.setMinimumSize(QSize(0, 105)) + self.Frame_Process_MediaFormatOutput.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" -"" - " border-style: solid;\n" +" border-style: solid;\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" -" height: 0px;\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_27 = QGridLayout(self.Frame_Process_MediaFormatOutput) + self.gridLayout_27.setSpacing(12) + self.gridLayout_27.setObjectName(u"gridLayout_27") + self.gridLayout_27.setContentsMargins(21, 12, 21, 12) + self.Label_Process_MediaFormatOutput = QLabel(self.Frame_Process_MediaFormatOutput) + self.Label_Process_MediaFormatOutput.setObjectName(u"Label_Process_MediaFormatOutput") + sizePolicy5.setHeightForWidth(self.Label_Process_MediaFormatOutput.sizePolicy().hasHeightForWidth()) + self.Label_Process_MediaFormatOutput.setSizePolicy(sizePolicy5) + self.Label_Process_MediaFormatOutput.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" -" height: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" borde" - "r-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" -" background-color: rgb(60, 60, 60);\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" -" background-color: transparent;\n" -" " - "border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - - self.gridLayout_29.addWidget(self.ComboBox_Process_SampleRate, 1, 0, 1, 3) - - - self.verticalLayout_67.addWidget(self.Frame_Process_SampleRate) - - self.Frame_Process_SampleWidth = QFrame(self.Frame_Process_OutputParams_AdvanceSettings) - self.Frame_Process_SampleWidth.setObjectName(u"Frame_Process_SampleWidth") - self.Frame_Process_SampleWidth.setMinimumSize(QSize(0, 105)) - self.Frame_Process_SampleWidth.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_30 = QGridLayout(self.Frame_Process_SampleWidth) - self.gridLayout_30.setSpacing(12) - self.gridLayout_30.setObjectName(u"gridLayout_30") - self.gridLayout_30.setContentsMargins(21, 12, 21, 12) - self.Label_Process_SampleWidth = QLabel(self.Frame_Process_SampleWidth) - self.Label_Process_SampleWidth.setObjectName(u"Label_Process_SampleWidth") - sizePolicy5.setHeightForWidth(self.Label_Process_SampleWidth.sizePolicy().hasHeightForWidth()) - self.Label_Process_SampleWidth.setSizePolicy(sizePolicy5) - self.Label_Process_SampleWidth.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" -" background-color: transparent;\n" -" padding: 0px;\n" +" padding: 0px;\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" "}") - self.gridLayout_30.addWidget(self.Label_Process_SampleWidth, 0, 0, 1, 1) + self.gridLayout_27.addWidget(self.Label_Process_MediaFormatOutput, 0, 0, 1, 1) - self.HorizontalSpacer_Process_SampleWidth = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_MediaFormatOutput = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_30.addItem(self.HorizontalSpacer_Process_SampleWidth, 0, 1, 1, 1) + self.gridLayout_27.addItem(self.HorizontalSpacer_Process_MediaFormatOutput, 0, 1, 1, 1) - self.Button_Process_SampleWidth_Undo = QPushButton(self.Frame_Process_SampleWidth) - self.Button_Process_SampleWidth_Undo.setObjectName(u"Button_Process_SampleWidth_Undo") - self.Button_Process_SampleWidth_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_SampleWidth_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_SampleWidth_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_MediaFormatOutput_Undo = QPushButton(self.Frame_Process_MediaFormatOutput) + self.Button_Process_MediaFormatOutput_Undo.setObjectName(u"Button_Process_MediaFormatOutput_Undo") + self.Button_Process_MediaFormatOutput_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_MediaFormatOutput_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_MediaFormatOutput_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -4690,12 +4650,12 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_30.addWidget(self.Button_Process_SampleWidth_Undo, 0, 2, 1, 1) + self.gridLayout_27.addWidget(self.Button_Process_MediaFormatOutput_Undo, 0, 2, 1, 1) - self.ComboBox_Process_SampleWidth = QComboBox(self.Frame_Process_SampleWidth) - self.ComboBox_Process_SampleWidth.setObjectName(u"ComboBox_Process_SampleWidth") - self.ComboBox_Process_SampleWidth.setMinimumSize(QSize(0, 27)) - self.ComboBox_Process_SampleWidth.setStyleSheet(u"QComboBox {\n" + self.ComboBox_Process_MediaFormatOutput = QComboBox(self.Frame_Process_MediaFormatOutput) + self.ComboBox_Process_MediaFormatOutput.setObjectName(u"ComboBox_Process_MediaFormatOutput") + self.ComboBox_Process_MediaFormatOutput.setMinimumSize(QSize(0, 27)) + self.ComboBox_Process_MediaFormatOutput.setStyleSheet(u"QComboBox {\n" " /*font-size: 12px;*/\n" " text-align: left;\n" " background-color: transparent;\n" @@ -4866,15 +4826,15 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_30.addWidget(self.ComboBox_Process_SampleWidth, 1, 0, 1, 3) + self.gridLayout_27.addWidget(self.ComboBox_Process_MediaFormatOutput, 1, 0, 1, 3) - self.verticalLayout_67.addWidget(self.Frame_Process_SampleWidth) + self.verticalLayout_61.addWidget(self.Frame_Process_MediaFormatOutput) - self.Frame_Process_ToMono = QFrame(self.Frame_Process_OutputParams_AdvanceSettings) - self.Frame_Process_ToMono.setObjectName(u"Frame_Process_ToMono") - self.Frame_Process_ToMono.setMinimumSize(QSize(0, 105)) - self.Frame_Process_ToMono.setStyleSheet(u"QFrame {\n" + self.Frame_Process_OutputDirName = QFrame(self.Frame_Process_OutputParams_BasicSettings) + self.Frame_Process_OutputDirName.setObjectName(u"Frame_Process_OutputDirName") + self.Frame_Process_OutputDirName.setMinimumSize(QSize(0, 105)) + self.Frame_Process_OutputDirName.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -4883,15 +4843,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_31 = QGridLayout(self.Frame_Process_ToMono) - self.gridLayout_31.setSpacing(12) - self.gridLayout_31.setObjectName(u"gridLayout_31") - self.gridLayout_31.setContentsMargins(21, 12, 21, 12) - self.Label_Process_ToMono = QLabel(self.Frame_Process_ToMono) - self.Label_Process_ToMono.setObjectName(u"Label_Process_ToMono") - sizePolicy5.setHeightForWidth(self.Label_Process_ToMono.sizePolicy().hasHeightForWidth()) - self.Label_Process_ToMono.setSizePolicy(sizePolicy5) - self.Label_Process_ToMono.setStyleSheet(u"QLabel {\n" + self.gridLayout_28 = QGridLayout(self.Frame_Process_OutputDirName) + self.gridLayout_28.setSpacing(12) + self.gridLayout_28.setObjectName(u"gridLayout_28") + self.gridLayout_28.setContentsMargins(21, 12, 21, 12) + self.Label_Process_OutputDirName = QLabel(self.Frame_Process_OutputDirName) + self.Label_Process_OutputDirName.setObjectName(u"Label_Process_OutputDirName") + sizePolicy5.setHeightForWidth(self.Label_Process_OutputDirName.sizePolicy().hasHeightForWidth()) + self.Label_Process_OutputDirName.setSizePolicy(sizePolicy5) + self.Label_Process_OutputDirName.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -4901,17 +4861,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_31.addWidget(self.Label_Process_ToMono, 0, 0, 1, 1) + self.gridLayout_28.addWidget(self.Label_Process_OutputDirName, 0, 0, 1, 1) - self.HorizontalSpacer_Process_ToMono = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Process_OutputDirName = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_31.addItem(self.HorizontalSpacer_Process_ToMono, 0, 1, 1, 1) + self.gridLayout_28.addItem(self.HorizontalSpacer_Process_OutputDirName, 0, 1, 1, 1) - self.Button_Process_ToMono_Undo = QPushButton(self.Frame_Process_ToMono) - self.Button_Process_ToMono_Undo.setObjectName(u"Button_Process_ToMono_Undo") - self.Button_Process_ToMono_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Process_ToMono_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Process_ToMono_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Process_OutputDirName_Undo = QPushButton(self.Frame_Process_OutputDirName) + self.Button_Process_OutputDirName_Undo.setObjectName(u"Button_Process_OutputDirName_Undo") + self.Button_Process_OutputDirName_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_OutputDirName_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_OutputDirName_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -4932,17 +4892,29 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_31.addWidget(self.Button_Process_ToMono_Undo, 0, 2, 1, 1) + self.gridLayout_28.addWidget(self.Button_Process_OutputDirName_Undo, 0, 2, 1, 1) - self.CheckBox_Process_ToMono = QCheckBox(self.Frame_Process_ToMono) - self.CheckBox_Process_ToMono.setObjectName(u"CheckBox_Process_ToMono") - self.CheckBox_Process_ToMono.setMinimumSize(QSize(0, 27)) - self.CheckBox_Process_ToMono.setStyleSheet(u"QCheckBox {\n" + self.LineEdit_Process_OutputDirName = LineEditBase(self.Frame_Process_OutputDirName) + self.LineEdit_Process_OutputDirName.setObjectName(u"LineEdit_Process_OutputDirName") + self.LineEdit_Process_OutputDirName.setMinimumSize(QSize(0, 27)) + + self.gridLayout_28.addWidget(self.LineEdit_Process_OutputDirName, 1, 0, 1, 3) + + + self.verticalLayout_61.addWidget(self.Frame_Process_OutputDirName) + + + self.verticalLayout_197.addWidget(self.Frame_Process_OutputParams_BasicSettings) + + self.CheckBox_Process_OutputParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_Process_OutputParams) + self.CheckBox_Process_OutputParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_Process_OutputParams_Toggle_AdvanceSettings") + self.CheckBox_Process_OutputParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" " font-size: 12px;\n" -" spacing: 12.3px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" " color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" padding: 0px;\n" +" padding-top: 9px;\n" " border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" @@ -4952,22 +4924,22 @@ def setupUi(self, MainWindow): "}\n" "\n" "QCheckBox::indicator {\n" -" width: 24px;\n" -" height: 24px;\n" +" width: 12px;\n" +" height: 12px;\n" " background-color: transparent;\n" -" padding: 1.2px;\n" +" padding: 0px;\n" " border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" "}\n" "QCheckBox::indicator:hover {\n" -" background-color: rgba(255, 255, 255, 21);\n" +" background-color: transparent;\n" "}\n" "QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" "}\n" "QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" "}\n" "\n" "\n" @@ -4978,56 +4950,143 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_31.addWidget(self.CheckBox_Process_ToMono, 1, 0, 1, 3) - - - self.verticalLayout_67.addWidget(self.Frame_Process_ToMono) - - - self.verticalLayout_197.addWidget(self.Frame_Process_OutputParams_AdvanceSettings) - - - self.verticalLayout_14.addWidget(self.GroupBox_Process_OutputParams) - - self.VerticalSpacer_Process = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - - self.verticalLayout_14.addItem(self.VerticalSpacer_Process) - - self.ScrollArea_Middle_Process.setWidget(self.ScrollArea_Middle_WidgetContents_Process) - - self.gridLayout_6.addWidget(self.ScrollArea_Middle_Process, 0, 1, 1, 1) + self.verticalLayout_197.addWidget(self.CheckBox_Process_OutputParams_Toggle_AdvanceSettings) - self.Widget_Right_Process = QWidget(self.Subpage_Process) - self.Widget_Right_Process.setObjectName(u"Widget_Right_Process") - self.Widget_Right_Process.setStyleSheet(u"QWidget {\n" -" background-color: rgba(36, 36, 36, 123);\n" + self.Frame_Process_OutputParams_AdvanceSettings = QFrame(self.GroupBox_Process_OutputParams) + self.Frame_Process_OutputParams_AdvanceSettings.setObjectName(u"Frame_Process_OutputParams_AdvanceSettings") + self.verticalLayout_67 = QVBoxLayout(self.Frame_Process_OutputParams_AdvanceSettings) + self.verticalLayout_67.setSpacing(0) + self.verticalLayout_67.setObjectName(u"verticalLayout_67") + self.verticalLayout_67.setContentsMargins(0, 0, 0, 0) + self.Frame_Process_SampleRate = QFrame(self.Frame_Process_OutputParams_AdvanceSettings) + self.Frame_Process_SampleRate.setObjectName(u"Frame_Process_SampleRate") + self.Frame_Process_SampleRate.setMinimumSize(QSize(0, 105)) + self.Frame_Process_SampleRate.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" -"QWidget:hover {\n" -"}") - self.gridLayout_9 = QGridLayout(self.Widget_Right_Process) - self.gridLayout_9.setSpacing(12) - self.gridLayout_9.setObjectName(u"gridLayout_9") - self.gridLayout_9.setContentsMargins(12, 12, 12, 12) - self.TextBrowser_Params_Process = QTextBrowser(self.Widget_Right_Process) - self.TextBrowser_Params_Process.setObjectName(u"TextBrowser_Params_Process") - sizePolicy1.setHeightForWidth(self.TextBrowser_Params_Process.sizePolicy().hasHeightForWidth()) - self.TextBrowser_Params_Process.setSizePolicy(sizePolicy1) - self.TextBrowser_Params_Process.setStyleSheet(u"QTextBrowser {\n" +"QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" -" /*padding-top: 1.5px;*/\n" -" /*padding-bottom: 1.5px;*/\n" -" padding-left: 15px;\n" -" padding-right: 6px;\n" -" border-width: 1px;\n" -" border-style: solid;\n" -" border-color:transparent;\n" -"}\n" -"\n" -"\n" -"QScrollBar::vertical {\n" -" width: 9px;\n" +"}") + self.gridLayout_29 = QGridLayout(self.Frame_Process_SampleRate) + self.gridLayout_29.setSpacing(12) + self.gridLayout_29.setObjectName(u"gridLayout_29") + self.gridLayout_29.setContentsMargins(21, 12, 21, 12) + self.Label_Process_SampleRate = QLabel(self.Frame_Process_SampleRate) + self.Label_Process_SampleRate.setObjectName(u"Label_Process_SampleRate") + sizePolicy5.setHeightForWidth(self.Label_Process_SampleRate.sizePolicy().hasHeightForWidth()) + self.Label_Process_SampleRate.setSizePolicy(sizePolicy5) + self.Label_Process_SampleRate.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_29.addWidget(self.Label_Process_SampleRate, 0, 0, 1, 1) + + self.HorizontalSpacer_Process_SampleRate = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_29.addItem(self.HorizontalSpacer_Process_SampleRate, 0, 1, 1, 1) + + self.Button_Process_SampleRate_Undo = QPushButton(self.Frame_Process_SampleRate) + self.Button_Process_SampleRate_Undo.setObjectName(u"Button_Process_SampleRate_Undo") + self.Button_Process_SampleRate_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_SampleRate_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_SampleRate_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_29.addWidget(self.Button_Process_SampleRate_Undo, 0, 2, 1, 1) + + self.ComboBox_Process_SampleRate = QComboBox(self.Frame_Process_SampleRate) + self.ComboBox_Process_SampleRate.setObjectName(u"ComboBox_Process_SampleRate") + self.ComboBox_Process_SampleRate.setMinimumSize(QSize(0, 27)) + self.ComboBox_Process_SampleRate.setStyleSheet(u"QComboBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QComboBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"QComboBox::drop-down {\n" +" /*width: 12px;\n" +" height: 12px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: right;\n" +" margin-right: 6px;\n" +" border: none;\n" +"}\n" +"\n" +"QComboBox::down-arrow {\n" +" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"QComboBox::down-arrow:on {\n" +" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractItemView {\n" +" outline: none;\n" +" background-color: transparent;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"\n" +"QCom" + "boBox QAbstractItemView::item {\n" +" /* height: 30px; */\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border: none;\n" +"}\n" +"QComboBox QAbstractItemView::item:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"QComboBox QAbstractItemView::item:selected {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" +" width: 9px;\n" " background-color: rgb(45, 45, 45);\n" " border-width: 1px;\n" " border-radius: 6px;\n" @@ -5035,62 +5094,63 @@ def setupUi(self, MainWindow): " border-color: transparent;\n" " margin: 0px;\n" "}\n" -"QScrollBar::vertical:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" "}\n" "\n" -"QScrollBar::add-line:vertical {\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" " height: 0px;\n" " background-color: transparent;\n" -" subcontrol-position: bottom;\n" +" subcontrol-position: left;\n" " subcontrol-origin: margin;\n" " border-width: 0px;\n" " border-radius: 0px;\n" -" border-style: solid;\n" +"" + " border-style: solid;\n" "}\n" "\n" -"QScrollBar::sub-line:vertical {\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" " height: 0px;\n" " background-color: transparent;\n" -" subcontrol-position: top;\n" +" subcontrol-position: right;\n" " subcontrol-origin: margin;\n" " border-width: 0px;\n" " border-radius: 0px;\n" -" bord" - "er-style: solid;\n" +" border-style: solid;\n" "}\n" "\n" -"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" " width: 0px;\n" " height: 0px;\n" " background-color: transparent;\n" "}\n" "\n" -"QScrollBar::handle:vertical {\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" " background-color: transparent;\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"QScrollBar::handle:vertical:hover {\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" " background-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" -"QScrollBar::horizontal {\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" " height: 9px;\n" " background-color: rgb(45, 45, 45);\n" " border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: transparent;\n" +" borde" + "r-color: transparent;\n" " margin: 0px;\n" "}\n" -"QScrollBar::horizontal:hover {\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" " background-color: rgb(60, 60, 60);\n" "}\n" "\n" -"QScrollBar::add-line:horizontal {\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" " width: 0px;\n" " background-color: transparent;\n" " subcontrol-position: left;\n" @@ -5100,9 +5160,8 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}\n" "\n" -"QScrollBar::sub-line:horizontal {\n" -" width: 0px" - ";\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" " background-color: transparent;\n" " subcontrol-position: right;\n" " subcontrol-origin: margin;\n" @@ -5111,38 +5170,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}\n" "\n" -"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" " width: 0px;\n" " height: 0px;\n" " background-color: transparent;\n" "}\n" "\n" -"QScrollBar::handle:horizontal {\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" " background-color: transparent;\n" -" border-width: 0px;\n" +" " + "border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"QScrollBar::handle:horizontal:hover {\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" " background-color: rgb(120, 120, 120);\n" -"}") - - self.gridLayout_9.addWidget(self.TextBrowser_Params_Process, 0, 0, 1, 1) - - self.Button_CheckOutput_Process = QPushButton(self.Widget_Right_Process) - self.Button_CheckOutput_Process.setObjectName(u"Button_CheckOutput_Process") - self.Button_CheckOutput_Process.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" font-size: 12px;\n" -" background-color: transparent;\n" -" padding: 9.9px;\n" -" border-width: 1.5px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" @@ -5153,107 +5195,5154 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_9.addWidget(self.Button_CheckOutput_Process, 1, 0, 1, 1) + self.gridLayout_29.addWidget(self.ComboBox_Process_SampleRate, 1, 0, 1, 3) - self.gridLayout_6.addWidget(self.Widget_Right_Process, 0, 2, 1, 1) + self.verticalLayout_67.addWidget(self.Frame_Process_SampleRate) - self.ProgressBar_Process = QProgressBar(self.Subpage_Process) - self.ProgressBar_Process.setObjectName(u"ProgressBar_Process") - self.ProgressBar_Process.setMinimumSize(QSize(0, 30)) - self.ProgressBar_Process.setStyleSheet(u"QProgressBar {\n" -" text-align: center;\n" + self.Frame_Process_SampleWidth = QFrame(self.Frame_Process_OutputParams_AdvanceSettings) + self.Frame_Process_SampleWidth.setObjectName(u"Frame_Process_SampleWidth") + self.Frame_Process_SampleWidth.setMinimumSize(QSize(0, 105)) + self.Frame_Process_SampleWidth.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" -" background-color: rgb(60, 60, 60);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_30 = QGridLayout(self.Frame_Process_SampleWidth) + self.gridLayout_30.setSpacing(12) + self.gridLayout_30.setObjectName(u"gridLayout_30") + self.gridLayout_30.setContentsMargins(21, 12, 21, 12) + self.Label_Process_SampleWidth = QLabel(self.Frame_Process_SampleWidth) + self.Label_Process_SampleWidth.setObjectName(u"Label_Process_SampleWidth") + sizePolicy5.setHeightForWidth(self.Label_Process_SampleWidth.sizePolicy().hasHeightForWidth()) + self.Label_Process_SampleWidth.setSizePolicy(sizePolicy5) + self.Label_Process_SampleWidth.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" " padding: 0px;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_30.addWidget(self.Label_Process_SampleWidth, 0, 0, 1, 1) + + self.HorizontalSpacer_Process_SampleWidth = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_30.addItem(self.HorizontalSpacer_Process_SampleWidth, 0, 1, 1, 1) + + self.Button_Process_SampleWidth_Undo = QPushButton(self.Frame_Process_SampleWidth) + self.Button_Process_SampleWidth_Undo.setObjectName(u"Button_Process_SampleWidth_Undo") + self.Button_Process_SampleWidth_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_SampleWidth_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_SampleWidth_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QProgressBar:chunk {\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" " border-style: solid;\n" -" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" "}") - self.ProgressBar_Process.setValue(0) - self.ProgressBar_Process.setTextVisible(False) - self.verticalLayout_24 = QVBoxLayout(self.ProgressBar_Process) - self.verticalLayout_24.setSpacing(0) - self.verticalLayout_24.setObjectName(u"verticalLayout_24") - self.verticalLayout_24.setContentsMargins(0, 0, 0, 0) - self.StackedWidget_Process = QStackedWidget(self.ProgressBar_Process) - self.StackedWidget_Process.setObjectName(u"StackedWidget_Process") - self.StackedWidget_Process.setMinimumSize(QSize(0, 30)) - self.StackedWidget_Process.setMaximumSize(QSize(16777215, 30)) + + self.gridLayout_30.addWidget(self.Button_Process_SampleWidth_Undo, 0, 2, 1, 1) + + self.ComboBox_Process_SampleWidth = QComboBox(self.Frame_Process_SampleWidth) + self.ComboBox_Process_SampleWidth.setObjectName(u"ComboBox_Process_SampleWidth") + self.ComboBox_Process_SampleWidth.setMinimumSize(QSize(0, 27)) + self.ComboBox_Process_SampleWidth.setStyleSheet(u"QComboBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QComboBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"QComboBox::drop-down {\n" +" /*width: 12px;\n" +" height: 12px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: right;\n" +" margin-right: 6px;\n" +" border: none;\n" +"}\n" +"\n" +"QComboBox::down-arrow {\n" +" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"QComboBox::down-arrow:on {\n" +" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractItemView {\n" +" outline: none;\n" +" background-color: transparent;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"\n" +"QCom" + "boBox QAbstractItemView::item {\n" +" /* height: 30px; */\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border: none;\n" +"}\n" +"QComboBox QAbstractItemView::item:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"QComboBox QAbstractItemView::item:selected {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +"" + " border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" borde" + "r-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" " + "border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_30.addWidget(self.ComboBox_Process_SampleWidth, 1, 0, 1, 3) + + + self.verticalLayout_67.addWidget(self.Frame_Process_SampleWidth) + + self.Frame_Process_ToMono = QFrame(self.Frame_Process_OutputParams_AdvanceSettings) + self.Frame_Process_ToMono.setObjectName(u"Frame_Process_ToMono") + self.Frame_Process_ToMono.setMinimumSize(QSize(0, 105)) + self.Frame_Process_ToMono.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_31 = QGridLayout(self.Frame_Process_ToMono) + self.gridLayout_31.setSpacing(12) + self.gridLayout_31.setObjectName(u"gridLayout_31") + self.gridLayout_31.setContentsMargins(21, 12, 21, 12) + self.Label_Process_ToMono = QLabel(self.Frame_Process_ToMono) + self.Label_Process_ToMono.setObjectName(u"Label_Process_ToMono") + sizePolicy5.setHeightForWidth(self.Label_Process_ToMono.sizePolicy().hasHeightForWidth()) + self.Label_Process_ToMono.setSizePolicy(sizePolicy5) + self.Label_Process_ToMono.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_31.addWidget(self.Label_Process_ToMono, 0, 0, 1, 1) + + self.HorizontalSpacer_Process_ToMono = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_31.addItem(self.HorizontalSpacer_Process_ToMono, 0, 1, 1, 1) + + self.Button_Process_ToMono_Undo = QPushButton(self.Frame_Process_ToMono) + self.Button_Process_ToMono_Undo.setObjectName(u"Button_Process_ToMono_Undo") + self.Button_Process_ToMono_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Process_ToMono_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Process_ToMono_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_31.addWidget(self.Button_Process_ToMono_Undo, 0, 2, 1, 1) + + self.CheckBox_Process_ToMono = QCheckBox(self.Frame_Process_ToMono) + self.CheckBox_Process_ToMono.setObjectName(u"CheckBox_Process_ToMono") + self.CheckBox_Process_ToMono.setMinimumSize(QSize(0, 27)) + self.CheckBox_Process_ToMono.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" spacing: 12.3px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 24px;\n" +" height: 24px;\n" +" background-color: transparent;\n" +" padding: 1.2px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_31.addWidget(self.CheckBox_Process_ToMono, 1, 0, 1, 3) + + + self.verticalLayout_67.addWidget(self.Frame_Process_ToMono) + + + self.verticalLayout_197.addWidget(self.Frame_Process_OutputParams_AdvanceSettings) + + + self.verticalLayout_14.addWidget(self.GroupBox_Process_OutputParams) + + self.VerticalSpacer_Process = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_14.addItem(self.VerticalSpacer_Process) + + self.ScrollArea_Middle_Process.setWidget(self.ScrollArea_Middle_WidgetContents_Process) + + self.gridLayout_6.addWidget(self.ScrollArea_Middle_Process, 0, 1, 1, 1) + + self.Widget_Right_Process = QWidget(self.Subpage_Process) + self.Widget_Right_Process.setObjectName(u"Widget_Right_Process") + self.Widget_Right_Process.setStyleSheet(u"QWidget {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QWidget:hover {\n" +"}") + self.gridLayout_9 = QGridLayout(self.Widget_Right_Process) + self.gridLayout_9.setSpacing(12) + self.gridLayout_9.setObjectName(u"gridLayout_9") + self.gridLayout_9.setContentsMargins(12, 12, 12, 12) + self.TextBrowser_Params_Process = QTextBrowser(self.Widget_Right_Process) + self.TextBrowser_Params_Process.setObjectName(u"TextBrowser_Params_Process") + sizePolicy1.setHeightForWidth(self.TextBrowser_Params_Process.sizePolicy().hasHeightForWidth()) + self.TextBrowser_Params_Process.setSizePolicy(sizePolicy1) + self.TextBrowser_Params_Process.setStyleSheet(u"QTextBrowser {\n" +" background-color: rgba(33, 33, 33, 99);\n" +" /*padding-top: 1.5px;*/\n" +" /*padding-bottom: 1.5px;*/\n" +" padding-left: 15px;\n" +" padding-right: 6px;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color:transparent;\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" bord" + "er-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px" + ";\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}") + + self.gridLayout_9.addWidget(self.TextBrowser_Params_Process, 0, 0, 1, 1) + + self.Button_CheckOutput_Process = QPushButton(self.Widget_Right_Process) + self.Button_CheckOutput_Process.setObjectName(u"Button_CheckOutput_Process") + self.Button_CheckOutput_Process.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" font-size: 12px;\n" +" background-color: transparent;\n" +" padding: 9.9px;\n" +" border-width: 1.5px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_9.addWidget(self.Button_CheckOutput_Process, 1, 0, 1, 1) + + + self.gridLayout_6.addWidget(self.Widget_Right_Process, 0, 2, 1, 1) + + self.ProgressBar_Process = QProgressBar(self.Subpage_Process) + self.ProgressBar_Process.setObjectName(u"ProgressBar_Process") + self.ProgressBar_Process.setMinimumSize(QSize(0, 30)) + self.ProgressBar_Process.setStyleSheet(u"QProgressBar {\n" +" text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" background-color: rgb(60, 60, 60);\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QProgressBar:chunk {\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" +"}") + self.ProgressBar_Process.setValue(0) + self.ProgressBar_Process.setTextVisible(False) + self.verticalLayout_24 = QVBoxLayout(self.ProgressBar_Process) + self.verticalLayout_24.setSpacing(0) + self.verticalLayout_24.setObjectName(u"verticalLayout_24") + self.verticalLayout_24.setContentsMargins(0, 0, 0, 0) + self.StackedWidget_Process = QStackedWidget(self.ProgressBar_Process) + self.StackedWidget_Process.setObjectName(u"StackedWidget_Process") + self.StackedWidget_Process.setMinimumSize(QSize(0, 30)) + self.StackedWidget_Process.setMaximumSize(QSize(16777215, 30)) self.StackedWidget_Process.setStyleSheet(u"QWidget {\n" " background-color: rgba(90, 90, 90, 45);\n" "}\n" -"QWidget:hover {\n" -" background-color: rgba(120, 120, 120, 60);\n" -"}") - self.Page_Process_Execute = QWidget() - self.Page_Process_Execute.setObjectName(u"Page_Process_Execute") - self.verticalLayout_86 = QVBoxLayout(self.Page_Process_Execute) - self.verticalLayout_86.setSpacing(0) - self.verticalLayout_86.setObjectName(u"verticalLayout_86") - self.verticalLayout_86.setContentsMargins(0, 0, 0, 0) - self.Button_Process_Execute = QPushButton(self.Page_Process_Execute) - self.Button_Process_Execute.setObjectName(u"Button_Process_Execute") - sizePolicy3.setHeightForWidth(self.Button_Process_Execute.sizePolicy().hasHeightForWidth()) - self.Button_Process_Execute.setSizePolicy(sizePolicy3) - self.Button_Process_Execute.setMinimumSize(QSize(0, 30)) - self.Button_Process_Execute.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" color: rgba(255, 255, 255, 210);\n" -" /*background-color: rgba(90, 90, 90, 45);*/\n" -" padding: 0px;\n" +"QWidget:hover {\n" +" background-color: rgba(120, 120, 120, 60);\n" +"}") + self.Page_Process_Execute = QWidget() + self.Page_Process_Execute.setObjectName(u"Page_Process_Execute") + self.verticalLayout_86 = QVBoxLayout(self.Page_Process_Execute) + self.verticalLayout_86.setSpacing(0) + self.verticalLayout_86.setObjectName(u"verticalLayout_86") + self.verticalLayout_86.setContentsMargins(0, 0, 0, 0) + self.Button_Process_Execute = QPushButton(self.Page_Process_Execute) + self.Button_Process_Execute.setObjectName(u"Button_Process_Execute") + sizePolicy3.setHeightForWidth(self.Button_Process_Execute.sizePolicy().hasHeightForWidth()) + self.Button_Process_Execute.setSizePolicy(sizePolicy3) + self.Button_Process_Execute.setMinimumSize(QSize(0, 30)) + self.Button_Process_Execute.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_86.addWidget(self.Button_Process_Execute) + + self.StackedWidget_Process.addWidget(self.Page_Process_Execute) + self.Page_Process_Terminate = QWidget() + self.Page_Process_Terminate.setObjectName(u"Page_Process_Terminate") + self.verticalLayout_87 = QVBoxLayout(self.Page_Process_Terminate) + self.verticalLayout_87.setSpacing(0) + self.verticalLayout_87.setObjectName(u"verticalLayout_87") + self.verticalLayout_87.setContentsMargins(0, 0, 0, 0) + self.Button_Process_Terminate = QPushButton(self.Page_Process_Terminate) + self.Button_Process_Terminate.setObjectName(u"Button_Process_Terminate") + sizePolicy3.setHeightForWidth(self.Button_Process_Terminate.sizePolicy().hasHeightForWidth()) + self.Button_Process_Terminate.setSizePolicy(sizePolicy3) + self.Button_Process_Terminate.setMinimumSize(QSize(0, 30)) + self.Button_Process_Terminate.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 6px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_87.addWidget(self.Button_Process_Terminate) + + self.StackedWidget_Process.addWidget(self.Page_Process_Terminate) + + self.verticalLayout_24.addWidget(self.StackedWidget_Process) + + + self.gridLayout_6.addWidget(self.ProgressBar_Process, 1, 0, 1, 3) + + self.gridLayout_6.setColumnStretch(0, 3) + self.gridLayout_6.setColumnStretch(1, 10) + self.gridLayout_6.setColumnStretch(2, 7) + self.StackedWidget_Pages_Process.addWidget(self.Subpage_Process) + + self.verticalLayout_40.addWidget(self.StackedWidget_Pages_Process) + + self.StackedWidget_Pages.addWidget(self.Page_Process) + self.Page_ASR = QWidget() + self.Page_ASR.setObjectName(u"Page_ASR") + self.verticalLayout_44 = QVBoxLayout(self.Page_ASR) + self.verticalLayout_44.setSpacing(21) + self.verticalLayout_44.setObjectName(u"verticalLayout_44") + self.verticalLayout_44.setContentsMargins(21, 12, 21, 12) + self.Frame_ASR_Top = QFrame(self.Page_ASR) + self.Frame_ASR_Top.setObjectName(u"Frame_ASR_Top") + self.Frame_ASR_Top.setMinimumSize(QSize(0, 60)) + self.Frame_ASR_Top.setStyleSheet(u"QFrame {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + self.horizontalLayout_69 = QHBoxLayout(self.Frame_ASR_Top) + self.horizontalLayout_69.setSpacing(0) + self.horizontalLayout_69.setObjectName(u"horizontalLayout_69") + self.horizontalLayout_69.setContentsMargins(0, 0, 0, 0) + self.ToolButton_VoiceIdentifier_Title = QToolButton(self.Frame_ASR_Top) + self.ToolButton_VoiceIdentifier_Title.setObjectName(u"ToolButton_VoiceIdentifier_Title") + sizePolicy1.setHeightForWidth(self.ToolButton_VoiceIdentifier_Title.sizePolicy().hasHeightForWidth()) + self.ToolButton_VoiceIdentifier_Title.setSizePolicy(sizePolicy1) + self.ToolButton_VoiceIdentifier_Title.setStyleSheet(u"QToolButton {\n" +" font-size: 24px;\n" +" /*text-align: center;*/\n" +" color: rgba(201, 210, 222, 210);\n" +" padding-left: 12px;\n" +" padding-right: 12px;\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QToolButton:hover {\n" +" color: rgba(210, 222, 234, 234);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 123);\n" +"}\n" +"QToolButton:checked {\n" +" color: rgba(210, 222, 234, 255);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 210);\n" +"}\n" +"\n" +"QToolTip {\n" +" color:" + " rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.horizontalLayout_69.addWidget(self.ToolButton_VoiceIdentifier_Title) + + self.Frame_ASR_Title_Spacer = QLabel(self.Frame_ASR_Top) + self.Frame_ASR_Title_Spacer.setObjectName(u"Frame_ASR_Title_Spacer") + sizePolicy4.setHeightForWidth(self.Frame_ASR_Title_Spacer.sizePolicy().hasHeightForWidth()) + self.Frame_ASR_Title_Spacer.setSizePolicy(sizePolicy4) + self.Frame_ASR_Title_Spacer.setStyleSheet(u"QLabel {\n" +" font-size: 24px;\n" +" /*text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" padding-left: 12px;\n" +" padding-right: 12px;*/\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}") + + self.horizontalLayout_69.addWidget(self.Frame_ASR_Title_Spacer) + + + self.verticalLayout_44.addWidget(self.Frame_ASR_Top) + + self.StackedWidget_Pages_ASR = QStackedWidget(self.Page_ASR) + self.StackedWidget_Pages_ASR.setObjectName(u"StackedWidget_Pages_ASR") + self.StackedWidget_Pages_ASR.setStyleSheet(u"QWidget {\n" +" background-color: transparent;\n" +"}\n" +"\n" +"\n" +"/*\n" +"QTabWidget {\n" +" background-color: transparent;\n" +"}\n" +"QTabWidget::tab-bar {\n" +"}\n" +"QTabWidget::pane {\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"\n" +"QTabBar::tab {\n" +" font-size: 18px;\n" +" font-weight: 420;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding: 12px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QTabBar::tab:selected {\n" +" color: rgba(255, 255, 255, 255);\n" +"}\n" +"QTabBar::tab:hover:!selected {\n" +"}\n" +"\n" +"\n" +"QTabBar QToolButton {\n" +"}\n" +"QTabBar QToolButton:hover {\n" +"}\n" +"*/") + self.Subpage_ASR_VPR = QWidget() + self.Subpage_ASR_VPR.setObjectName(u"Subpage_ASR_VPR") + self.gridLayout_21 = QGridLayout(self.Subpage_ASR_VPR) + self.gridLayout_21.setSpacing(12) + self.gridLayout_21.setObjectName(u"gridLayout_21") + self.gridLayout_21.setContentsMargins(0, 0, 0, 0) + self.Widget_Left_ASR_VPR = QWidget(self.Subpage_ASR_VPR) + self.Widget_Left_ASR_VPR.setObjectName(u"Widget_Left_ASR_VPR") + self.Widget_Left_ASR_VPR.setMinimumSize(QSize(150, 0)) + self.Widget_Left_ASR_VPR.setStyleSheet(u"QWidget {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QWidget:hover {\n" +"}") + self.verticalLayout_4 = QVBoxLayout(self.Widget_Left_ASR_VPR) + self.verticalLayout_4.setSpacing(12) + self.verticalLayout_4.setObjectName(u"verticalLayout_4") + self.verticalLayout_4.setContentsMargins(12, 12, 12, 12) + self.TreeWidget_Catalogue_ASR_VPR = QTreeWidget(self.Widget_Left_ASR_VPR) + __qtreewidgetitem1 = QTreeWidgetItem(self.TreeWidget_Catalogue_ASR_VPR) + QTreeWidgetItem(__qtreewidgetitem1) + self.TreeWidget_Catalogue_ASR_VPR.setObjectName(u"TreeWidget_Catalogue_ASR_VPR") + self.TreeWidget_Catalogue_ASR_VPR.setStyleSheet(u"QTreeView {\n" +" /*font-size: 12px;\n" +" text-align: center;*/\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QTreeView::item {\n" +" background-color: transparent;\n" +" padding: 2.4px;\n" +"}\n" +"QTreeView::item:hover {\n" +" background-color: rgba(66, 66, 66, 198);\n" +"}\n" +"QTreeView::item:selected {\n" +" background-color: ;\n" +"}\n" +"\n" +"QTreeView::branch {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QTreeView::branch:open:has-children {\n" +" image: ;\n" +"}\n" +"QTreeView::branch:closed:has-children {\n" +" image: ;\n" +"}\n" +"QTreeWidget::branch:adjoins-item {\n" +" background-color: ;\n" +"}\n" +"\n" +"\n" +"QScrollBar {\n" +" background-color: rgba(45, 45, 45, 135);\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar:hover {\n" +" background-color: r" + "gba(33, 33, 33, 99);\n" +"}\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +"}\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +"}\n" +"\n" +"QScrollBar::sub-line, QScrollBar::add-line {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-page, QScrollBar::add-page {\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle {\n" +" background-color: rgba(90, 90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}") + + self.verticalLayout_4.addWidget(self.TreeWidget_Catalogue_ASR_VPR) + + + self.gridLayout_21.addWidget(self.Widget_Left_ASR_VPR, 0, 0, 1, 1) + + self.ScrollArea_Middle_ASR_VPR = QScrollArea(self.Subpage_ASR_VPR) + self.ScrollArea_Middle_ASR_VPR.setObjectName(u"ScrollArea_Middle_ASR_VPR") + self.ScrollArea_Middle_ASR_VPR.setMinimumSize(QSize(600, 0)) + self.ScrollArea_Middle_ASR_VPR.setStyleSheet(u"QScrollArea {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollArea:hover {\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" " + "height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: rgb(90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" borde" + "r-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:horizontal {\n" +" background-color: rgb(90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}") + self.ScrollArea_Middle_ASR_VPR.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) + self.ScrollArea_Middle_ASR_VPR.setWidgetResizable(True) + self.ScrollArea_Middle_WidgetContents_ASR_VPR = QWidget() + self.ScrollArea_Middle_WidgetContents_ASR_VPR.setObjectName(u"ScrollArea_Middle_WidgetContents_ASR_VPR") + self.ScrollArea_Middle_WidgetContents_ASR_VPR.setGeometry(QRect(0, 0, 591, 1276)) + self.verticalLayout_7 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_ASR_VPR) + self.verticalLayout_7.setSpacing(12) + self.verticalLayout_7.setObjectName(u"verticalLayout_7") + self.verticalLayout_7.setContentsMargins(12, 12, 12, 12) + self.GroupBox_ASR_VPR_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_ASR_VPR) + self.GroupBox_ASR_VPR_InputParams.setObjectName(u"GroupBox_ASR_VPR_InputParams") + self.GroupBox_ASR_VPR_InputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_33 = QVBoxLayout(self.GroupBox_ASR_VPR_InputParams) + self.verticalLayout_33.setSpacing(0) + self.verticalLayout_33.setObjectName(u"verticalLayout_33") + self.verticalLayout_33.setContentsMargins(0, 12, 0, 12) + self.Frame_ASR_VPR_InputParams_BasicSettings = QFrame(self.GroupBox_ASR_VPR_InputParams) + self.Frame_ASR_VPR_InputParams_BasicSettings.setObjectName(u"Frame_ASR_VPR_InputParams_BasicSettings") + self.verticalLayout_137 = QVBoxLayout(self.Frame_ASR_VPR_InputParams_BasicSettings) + self.verticalLayout_137.setSpacing(0) + self.verticalLayout_137.setObjectName(u"verticalLayout_137") + self.verticalLayout_137.setContentsMargins(0, 0, 0, 0) + self.Frame_ASR_VPR_AudioDirInput = QFrame(self.Frame_ASR_VPR_InputParams_BasicSettings) + self.Frame_ASR_VPR_AudioDirInput.setObjectName(u"Frame_ASR_VPR_AudioDirInput") + self.Frame_ASR_VPR_AudioDirInput.setMinimumSize(QSize(0, 105)) + self.Frame_ASR_VPR_AudioDirInput.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_32 = QGridLayout(self.Frame_ASR_VPR_AudioDirInput) + self.gridLayout_32.setSpacing(12) + self.gridLayout_32.setObjectName(u"gridLayout_32") + self.gridLayout_32.setContentsMargins(21, 12, 21, 12) + self.Label_ASR_VPR_AudioDirInput = QLabel(self.Frame_ASR_VPR_AudioDirInput) + self.Label_ASR_VPR_AudioDirInput.setObjectName(u"Label_ASR_VPR_AudioDirInput") + sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_AudioDirInput.sizePolicy().hasHeightForWidth()) + self.Label_ASR_VPR_AudioDirInput.setSizePolicy(sizePolicy5) + self.Label_ASR_VPR_AudioDirInput.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_32.addWidget(self.Label_ASR_VPR_AudioDirInput, 0, 0, 1, 1) + + self.HorizontalSpacer_ASR_VPR_AudioDirInput = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_32.addItem(self.HorizontalSpacer_ASR_VPR_AudioDirInput, 0, 1, 1, 1) + + self.Button_ASR_VPR_AudioDirInput_Undo = QPushButton(self.Frame_ASR_VPR_AudioDirInput) + self.Button_ASR_VPR_AudioDirInput_Undo.setObjectName(u"Button_ASR_VPR_AudioDirInput_Undo") + self.Button_ASR_VPR_AudioDirInput_Undo.setMinimumSize(QSize(27, 27)) + self.Button_ASR_VPR_AudioDirInput_Undo.setMaximumSize(QSize(27, 27)) + self.Button_ASR_VPR_AudioDirInput_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_32.addWidget(self.Button_ASR_VPR_AudioDirInput_Undo, 0, 2, 1, 1) + + self.LineEdit_ASR_VPR_AudioDirInput = LineEditBase(self.Frame_ASR_VPR_AudioDirInput) + self.LineEdit_ASR_VPR_AudioDirInput.setObjectName(u"LineEdit_ASR_VPR_AudioDirInput") + self.LineEdit_ASR_VPR_AudioDirInput.setMinimumSize(QSize(0, 27)) + + self.gridLayout_32.addWidget(self.LineEdit_ASR_VPR_AudioDirInput, 1, 0, 1, 3) + + + self.verticalLayout_137.addWidget(self.Frame_ASR_VPR_AudioDirInput) + + self.Frame_ASR_VPR_StdAudioSpeaker = QFrame(self.Frame_ASR_VPR_InputParams_BasicSettings) + self.Frame_ASR_VPR_StdAudioSpeaker.setObjectName(u"Frame_ASR_VPR_StdAudioSpeaker") + self.Frame_ASR_VPR_StdAudioSpeaker.setMinimumSize(QSize(0, 222)) + self.Frame_ASR_VPR_StdAudioSpeaker.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.verticalLayout_12 = QVBoxLayout(self.Frame_ASR_VPR_StdAudioSpeaker) + self.verticalLayout_12.setSpacing(12) + self.verticalLayout_12.setObjectName(u"verticalLayout_12") + self.verticalLayout_12.setContentsMargins(21, 12, 21, 12) + self.Label_ASR_VPR_StdAudioSpeaker = QLabel(self.Frame_ASR_VPR_StdAudioSpeaker) + self.Label_ASR_VPR_StdAudioSpeaker.setObjectName(u"Label_ASR_VPR_StdAudioSpeaker") + sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_StdAudioSpeaker.sizePolicy().hasHeightForWidth()) + self.Label_ASR_VPR_StdAudioSpeaker.setSizePolicy(sizePolicy5) + self.Label_ASR_VPR_StdAudioSpeaker.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_12.addWidget(self.Label_ASR_VPR_StdAudioSpeaker) + + self.Table_ASR_VPR_StdAudioSpeaker = Table_EditAudioSpeaker(self.Frame_ASR_VPR_StdAudioSpeaker) + self.Table_ASR_VPR_StdAudioSpeaker.setObjectName(u"Table_ASR_VPR_StdAudioSpeaker") + + self.verticalLayout_12.addWidget(self.Table_ASR_VPR_StdAudioSpeaker) + + + self.verticalLayout_137.addWidget(self.Frame_ASR_VPR_StdAudioSpeaker) + + + self.verticalLayout_33.addWidget(self.Frame_ASR_VPR_InputParams_BasicSettings) + + + self.verticalLayout_7.addWidget(self.GroupBox_ASR_VPR_InputParams) + + self.GroupBox_ASR_VPR_VPRParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_ASR_VPR) + self.GroupBox_ASR_VPR_VPRParams.setObjectName(u"GroupBox_ASR_VPR_VPRParams") + self.GroupBox_ASR_VPR_VPRParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_47 = QVBoxLayout(self.GroupBox_ASR_VPR_VPRParams) + self.verticalLayout_47.setSpacing(0) + self.verticalLayout_47.setObjectName(u"verticalLayout_47") + self.verticalLayout_47.setContentsMargins(0, 12, 0, 12) + self.Frame_ASR_VPR_VPRParams_BasicSettings = QFrame(self.GroupBox_ASR_VPR_VPRParams) + self.Frame_ASR_VPR_VPRParams_BasicSettings.setObjectName(u"Frame_ASR_VPR_VPRParams_BasicSettings") + self.verticalLayout_45 = QVBoxLayout(self.Frame_ASR_VPR_VPRParams_BasicSettings) + self.verticalLayout_45.setSpacing(0) + self.verticalLayout_45.setObjectName(u"verticalLayout_45") + self.verticalLayout_45.setContentsMargins(0, 0, 0, 0) + self.Frame_ASR_VPR_DecisionThreshold = QFrame(self.Frame_ASR_VPR_VPRParams_BasicSettings) + self.Frame_ASR_VPR_DecisionThreshold.setObjectName(u"Frame_ASR_VPR_DecisionThreshold") + self.Frame_ASR_VPR_DecisionThreshold.setMinimumSize(QSize(0, 105)) + self.Frame_ASR_VPR_DecisionThreshold.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_33 = QGridLayout(self.Frame_ASR_VPR_DecisionThreshold) + self.gridLayout_33.setSpacing(12) + self.gridLayout_33.setObjectName(u"gridLayout_33") + self.gridLayout_33.setContentsMargins(21, 12, 21, 12) + self.Label_ASR_VPR_DecisionThreshold = QLabel(self.Frame_ASR_VPR_DecisionThreshold) + self.Label_ASR_VPR_DecisionThreshold.setObjectName(u"Label_ASR_VPR_DecisionThreshold") + sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_DecisionThreshold.sizePolicy().hasHeightForWidth()) + self.Label_ASR_VPR_DecisionThreshold.setSizePolicy(sizePolicy5) + self.Label_ASR_VPR_DecisionThreshold.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_33.addWidget(self.Label_ASR_VPR_DecisionThreshold, 0, 0, 1, 1) + + self.DoubleSpinBox_ASR_VPR_DecisionThreshold = QDoubleSpinBox(self.Frame_ASR_VPR_DecisionThreshold) + self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setObjectName(u"DoubleSpinBox_ASR_VPR_DecisionThreshold") + self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setEnabled(True) + self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setMinimumSize(QSize(0, 27)) + self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setStyleSheet(u"QDoubleSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QDoubleSpinBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"QDoubleSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QDoubleSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"QDoubleSpinBox::down-button {\n" +" /*width: 9px;\n" +" /*height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QDoubleSpinBox::down-arr" + "ow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setMinimum(-999999.000000000000000) + self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setMaximum(999999.000000000000000) + + self.gridLayout_33.addWidget(self.DoubleSpinBox_ASR_VPR_DecisionThreshold, 1, 0, 1, 3) + + self.Button_ASR_VPR_DecisionThreshold_Undo = QPushButton(self.Frame_ASR_VPR_DecisionThreshold) + self.Button_ASR_VPR_DecisionThreshold_Undo.setObjectName(u"Button_ASR_VPR_DecisionThreshold_Undo") + self.Button_ASR_VPR_DecisionThreshold_Undo.setMinimumSize(QSize(27, 27)) + self.Button_ASR_VPR_DecisionThreshold_Undo.setMaximumSize(QSize(27, 27)) + self.Button_ASR_VPR_DecisionThreshold_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_33.addWidget(self.Button_ASR_VPR_DecisionThreshold_Undo, 0, 2, 1, 1) + + self.HorizontalSpacer_ASR_VPR_DecisionThreshold = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_33.addItem(self.HorizontalSpacer_ASR_VPR_DecisionThreshold, 0, 1, 1, 1) + + + self.verticalLayout_45.addWidget(self.Frame_ASR_VPR_DecisionThreshold) + + self.Frame_ASR_VPR_ModelPath = QFrame(self.Frame_ASR_VPR_VPRParams_BasicSettings) + self.Frame_ASR_VPR_ModelPath.setObjectName(u"Frame_ASR_VPR_ModelPath") + self.Frame_ASR_VPR_ModelPath.setMinimumSize(QSize(0, 105)) + self.Frame_ASR_VPR_ModelPath.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_34 = QGridLayout(self.Frame_ASR_VPR_ModelPath) + self.gridLayout_34.setSpacing(12) + self.gridLayout_34.setObjectName(u"gridLayout_34") + self.gridLayout_34.setContentsMargins(21, 12, 21, 12) + self.Label_ASR_VPR_ModelPath = QLabel(self.Frame_ASR_VPR_ModelPath) + self.Label_ASR_VPR_ModelPath.setObjectName(u"Label_ASR_VPR_ModelPath") + sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_ModelPath.sizePolicy().hasHeightForWidth()) + self.Label_ASR_VPR_ModelPath.setSizePolicy(sizePolicy5) + self.Label_ASR_VPR_ModelPath.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_34.addWidget(self.Label_ASR_VPR_ModelPath, 0, 0, 1, 1) + + self.HorizontalSpacer_ASR_VPR_ModelPath = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_34.addItem(self.HorizontalSpacer_ASR_VPR_ModelPath, 0, 1, 1, 1) + + self.Button_ASR_VPR_ModelPath_Undo = QPushButton(self.Frame_ASR_VPR_ModelPath) + self.Button_ASR_VPR_ModelPath_Undo.setObjectName(u"Button_ASR_VPR_ModelPath_Undo") + self.Button_ASR_VPR_ModelPath_Undo.setMinimumSize(QSize(27, 27)) + self.Button_ASR_VPR_ModelPath_Undo.setMaximumSize(QSize(27, 27)) + self.Button_ASR_VPR_ModelPath_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_34.addWidget(self.Button_ASR_VPR_ModelPath_Undo, 0, 2, 1, 1) + + self.LineEdit_ASR_VPR_ModelPath = LineEditBase(self.Frame_ASR_VPR_ModelPath) + self.LineEdit_ASR_VPR_ModelPath.setObjectName(u"LineEdit_ASR_VPR_ModelPath") + self.LineEdit_ASR_VPR_ModelPath.setMinimumSize(QSize(0, 27)) + + self.gridLayout_34.addWidget(self.LineEdit_ASR_VPR_ModelPath, 1, 0, 1, 3) + + + self.verticalLayout_45.addWidget(self.Frame_ASR_VPR_ModelPath) + + + self.verticalLayout_47.addWidget(self.Frame_ASR_VPR_VPRParams_BasicSettings) + + self.CheckBox_ASR_VPR_VPRParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_ASR_VPR_VPRParams) + self.CheckBox_ASR_VPR_VPRParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_ASR_VPR_VPRParams_Toggle_AdvanceSettings") + self.CheckBox_ASR_VPR_VPRParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding-top: 9px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: transparent;\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_47.addWidget(self.CheckBox_ASR_VPR_VPRParams_Toggle_AdvanceSettings) + + self.Frame_ASR_VPR_VPRParams_AdvanceSettings = QFrame(self.GroupBox_ASR_VPR_VPRParams) + self.Frame_ASR_VPR_VPRParams_AdvanceSettings.setObjectName(u"Frame_ASR_VPR_VPRParams_AdvanceSettings") + self.verticalLayout_21 = QVBoxLayout(self.Frame_ASR_VPR_VPRParams_AdvanceSettings) + self.verticalLayout_21.setSpacing(0) + self.verticalLayout_21.setObjectName(u"verticalLayout_21") + self.verticalLayout_21.setContentsMargins(0, 0, 0, 0) + self.Frame_ASR_VPR_ModelType = QFrame(self.Frame_ASR_VPR_VPRParams_AdvanceSettings) + self.Frame_ASR_VPR_ModelType.setObjectName(u"Frame_ASR_VPR_ModelType") + self.Frame_ASR_VPR_ModelType.setMinimumSize(QSize(0, 105)) + self.Frame_ASR_VPR_ModelType.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_35 = QGridLayout(self.Frame_ASR_VPR_ModelType) + self.gridLayout_35.setSpacing(12) + self.gridLayout_35.setObjectName(u"gridLayout_35") + self.gridLayout_35.setContentsMargins(21, 12, 21, 12) + self.Label_ASR_VPR_ModelType = QLabel(self.Frame_ASR_VPR_ModelType) + self.Label_ASR_VPR_ModelType.setObjectName(u"Label_ASR_VPR_ModelType") + sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_ModelType.sizePolicy().hasHeightForWidth()) + self.Label_ASR_VPR_ModelType.setSizePolicy(sizePolicy5) + self.Label_ASR_VPR_ModelType.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_35.addWidget(self.Label_ASR_VPR_ModelType, 0, 0, 1, 1) + + self.HorizontalSpacer_ASR_VPR_ModelType = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_35.addItem(self.HorizontalSpacer_ASR_VPR_ModelType, 0, 1, 1, 1) + + self.Button_ASR_VPR_ModelType_Undo = QPushButton(self.Frame_ASR_VPR_ModelType) + self.Button_ASR_VPR_ModelType_Undo.setObjectName(u"Button_ASR_VPR_ModelType_Undo") + self.Button_ASR_VPR_ModelType_Undo.setMinimumSize(QSize(27, 27)) + self.Button_ASR_VPR_ModelType_Undo.setMaximumSize(QSize(27, 27)) + self.Button_ASR_VPR_ModelType_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_35.addWidget(self.Button_ASR_VPR_ModelType_Undo, 0, 2, 1, 1) + + self.ComboBox_ASR_VPR_ModelType = QComboBox(self.Frame_ASR_VPR_ModelType) + self.ComboBox_ASR_VPR_ModelType.setObjectName(u"ComboBox_ASR_VPR_ModelType") + self.ComboBox_ASR_VPR_ModelType.setMinimumSize(QSize(0, 27)) + self.ComboBox_ASR_VPR_ModelType.setStyleSheet(u"QComboBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QComboBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"QComboBox::drop-down {\n" +" /*width: 12px;\n" +" height: 12px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: right;\n" +" margin-right: 6px;\n" +" border: none;\n" +"}\n" +"\n" +"QComboBox::down-arrow {\n" +" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"QComboBox::down-arrow:on {\n" +" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractItemView {\n" +" outline: none;\n" +" background-color: transparent;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"\n" +"QCom" + "boBox QAbstractItemView::item {\n" +" /* height: 30px; */\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border: none;\n" +"}\n" +"QComboBox QAbstractItemView::item:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"QComboBox QAbstractItemView::item:selected {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +"" + " border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" borde" + "r-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" " + "border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_35.addWidget(self.ComboBox_ASR_VPR_ModelType, 1, 0, 1, 3) + + + self.verticalLayout_21.addWidget(self.Frame_ASR_VPR_ModelType) + + self.Frame_ASR_VPR_FeatureMethod = QFrame(self.Frame_ASR_VPR_VPRParams_AdvanceSettings) + self.Frame_ASR_VPR_FeatureMethod.setObjectName(u"Frame_ASR_VPR_FeatureMethod") + self.Frame_ASR_VPR_FeatureMethod.setMinimumSize(QSize(0, 105)) + self.Frame_ASR_VPR_FeatureMethod.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_36 = QGridLayout(self.Frame_ASR_VPR_FeatureMethod) + self.gridLayout_36.setSpacing(12) + self.gridLayout_36.setObjectName(u"gridLayout_36") + self.gridLayout_36.setContentsMargins(21, 12, 21, 12) + self.Label_ASR_VPR_FeatureMethod = QLabel(self.Frame_ASR_VPR_FeatureMethod) + self.Label_ASR_VPR_FeatureMethod.setObjectName(u"Label_ASR_VPR_FeatureMethod") + sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_FeatureMethod.sizePolicy().hasHeightForWidth()) + self.Label_ASR_VPR_FeatureMethod.setSizePolicy(sizePolicy5) + self.Label_ASR_VPR_FeatureMethod.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_36.addWidget(self.Label_ASR_VPR_FeatureMethod, 0, 0, 1, 1) + + self.HorizontalSpacer_ASR_VPR_FeatureMethod = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_36.addItem(self.HorizontalSpacer_ASR_VPR_FeatureMethod, 0, 1, 1, 1) + + self.Button_ASR_VPR_FeatureMethod_Undo = QPushButton(self.Frame_ASR_VPR_FeatureMethod) + self.Button_ASR_VPR_FeatureMethod_Undo.setObjectName(u"Button_ASR_VPR_FeatureMethod_Undo") + self.Button_ASR_VPR_FeatureMethod_Undo.setMinimumSize(QSize(27, 27)) + self.Button_ASR_VPR_FeatureMethod_Undo.setMaximumSize(QSize(27, 27)) + self.Button_ASR_VPR_FeatureMethod_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_36.addWidget(self.Button_ASR_VPR_FeatureMethod_Undo, 0, 2, 1, 1) + + self.ComboBox_ASR_VPR_FeatureMethod = QComboBox(self.Frame_ASR_VPR_FeatureMethod) + self.ComboBox_ASR_VPR_FeatureMethod.setObjectName(u"ComboBox_ASR_VPR_FeatureMethod") + self.ComboBox_ASR_VPR_FeatureMethod.setMinimumSize(QSize(0, 27)) + self.ComboBox_ASR_VPR_FeatureMethod.setStyleSheet(u"QComboBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QComboBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"QComboBox::drop-down {\n" +" /*width: 12px;\n" +" height: 12px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: right;\n" +" margin-right: 6px;\n" +" border: none;\n" +"}\n" +"\n" +"QComboBox::down-arrow {\n" +" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"QComboBox::down-arrow:on {\n" +" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractItemView {\n" +" outline: none;\n" +" background-color: transparent;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"\n" +"QCom" + "boBox QAbstractItemView::item {\n" +" /* height: 30px; */\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border: none;\n" +"}\n" +"QComboBox QAbstractItemView::item:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"QComboBox QAbstractItemView::item:selected {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +"" + " border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" borde" + "r-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" " + "border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_36.addWidget(self.ComboBox_ASR_VPR_FeatureMethod, 1, 0, 1, 3) + + + self.verticalLayout_21.addWidget(self.Frame_ASR_VPR_FeatureMethod) + + self.Frame_ASR_VPR_DurationOfAudio = QFrame(self.Frame_ASR_VPR_VPRParams_AdvanceSettings) + self.Frame_ASR_VPR_DurationOfAudio.setObjectName(u"Frame_ASR_VPR_DurationOfAudio") + self.Frame_ASR_VPR_DurationOfAudio.setMinimumSize(QSize(0, 105)) + self.Frame_ASR_VPR_DurationOfAudio.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_37 = QGridLayout(self.Frame_ASR_VPR_DurationOfAudio) + self.gridLayout_37.setSpacing(12) + self.gridLayout_37.setObjectName(u"gridLayout_37") + self.gridLayout_37.setContentsMargins(21, 12, 21, 12) + self.Label_ASR_VPR_DurationOfAudio = QLabel(self.Frame_ASR_VPR_DurationOfAudio) + self.Label_ASR_VPR_DurationOfAudio.setObjectName(u"Label_ASR_VPR_DurationOfAudio") + sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_DurationOfAudio.sizePolicy().hasHeightForWidth()) + self.Label_ASR_VPR_DurationOfAudio.setSizePolicy(sizePolicy5) + self.Label_ASR_VPR_DurationOfAudio.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_37.addWidget(self.Label_ASR_VPR_DurationOfAudio, 0, 0, 1, 1) + + self.HorizontalSpacer_ASR_VPR_DurationOfAudio = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_37.addItem(self.HorizontalSpacer_ASR_VPR_DurationOfAudio, 0, 1, 1, 1) + + self.Button_ASR_VPR_DurationOfAudio_Undo = QPushButton(self.Frame_ASR_VPR_DurationOfAudio) + self.Button_ASR_VPR_DurationOfAudio_Undo.setObjectName(u"Button_ASR_VPR_DurationOfAudio_Undo") + self.Button_ASR_VPR_DurationOfAudio_Undo.setMinimumSize(QSize(27, 27)) + self.Button_ASR_VPR_DurationOfAudio_Undo.setMaximumSize(QSize(27, 27)) + self.Button_ASR_VPR_DurationOfAudio_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_37.addWidget(self.Button_ASR_VPR_DurationOfAudio_Undo, 0, 2, 1, 1) + + self.DoubleSpinBox_ASR_VPR_DurationOfAudio = QDoubleSpinBox(self.Frame_ASR_VPR_DurationOfAudio) + self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setObjectName(u"DoubleSpinBox_ASR_VPR_DurationOfAudio") + self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setEnabled(True) + self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setMinimumSize(QSize(0, 27)) + self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setStyleSheet(u"QDoubleSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QDoubleSpinBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"QDoubleSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QDoubleSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"QDoubleSpinBox::down-button {\n" +" /*width: 9px;\n" +" /*height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QDoubleSpinBox::down-arr" + "ow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setMinimum(-999999.000000000000000) + self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setMaximum(999999.000000000000000) + + self.gridLayout_37.addWidget(self.DoubleSpinBox_ASR_VPR_DurationOfAudio, 1, 0, 1, 3) + + + self.verticalLayout_21.addWidget(self.Frame_ASR_VPR_DurationOfAudio) + + + self.verticalLayout_47.addWidget(self.Frame_ASR_VPR_VPRParams_AdvanceSettings) + + + self.verticalLayout_7.addWidget(self.GroupBox_ASR_VPR_VPRParams) + + self.GroupBox_ASR_VPR_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_ASR_VPR) + self.GroupBox_ASR_VPR_OutputParams.setObjectName(u"GroupBox_ASR_VPR_OutputParams") + self.GroupBox_ASR_VPR_OutputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_48 = QVBoxLayout(self.GroupBox_ASR_VPR_OutputParams) + self.verticalLayout_48.setSpacing(0) + self.verticalLayout_48.setObjectName(u"verticalLayout_48") + self.verticalLayout_48.setContentsMargins(0, 12, 0, 12) + self.Frame_ASR_VPR_OutputParams_BasicSettings = QFrame(self.GroupBox_ASR_VPR_OutputParams) + self.Frame_ASR_VPR_OutputParams_BasicSettings.setObjectName(u"Frame_ASR_VPR_OutputParams_BasicSettings") + self.verticalLayout_139 = QVBoxLayout(self.Frame_ASR_VPR_OutputParams_BasicSettings) + self.verticalLayout_139.setSpacing(0) + self.verticalLayout_139.setObjectName(u"verticalLayout_139") + self.verticalLayout_139.setContentsMargins(0, 0, 0, 0) + self.Frame_ASR_VPR_OutputDirName = QFrame(self.Frame_ASR_VPR_OutputParams_BasicSettings) + self.Frame_ASR_VPR_OutputDirName.setObjectName(u"Frame_ASR_VPR_OutputDirName") + self.Frame_ASR_VPR_OutputDirName.setMinimumSize(QSize(0, 105)) + self.Frame_ASR_VPR_OutputDirName.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_38 = QGridLayout(self.Frame_ASR_VPR_OutputDirName) + self.gridLayout_38.setSpacing(12) + self.gridLayout_38.setObjectName(u"gridLayout_38") + self.gridLayout_38.setContentsMargins(21, 12, 21, 12) + self.Label_ASR_VPR_OutputDirName = QLabel(self.Frame_ASR_VPR_OutputDirName) + self.Label_ASR_VPR_OutputDirName.setObjectName(u"Label_ASR_VPR_OutputDirName") + sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_OutputDirName.sizePolicy().hasHeightForWidth()) + self.Label_ASR_VPR_OutputDirName.setSizePolicy(sizePolicy5) + self.Label_ASR_VPR_OutputDirName.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_38.addWidget(self.Label_ASR_VPR_OutputDirName, 0, 0, 1, 1) + + self.HorizontalSpacer_ASR_VPR_OutputDirName = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_38.addItem(self.HorizontalSpacer_ASR_VPR_OutputDirName, 0, 1, 1, 1) + + self.Button_ASR_VPR_OutputDirName_Undo = QPushButton(self.Frame_ASR_VPR_OutputDirName) + self.Button_ASR_VPR_OutputDirName_Undo.setObjectName(u"Button_ASR_VPR_OutputDirName_Undo") + self.Button_ASR_VPR_OutputDirName_Undo.setMinimumSize(QSize(27, 27)) + self.Button_ASR_VPR_OutputDirName_Undo.setMaximumSize(QSize(27, 27)) + self.Button_ASR_VPR_OutputDirName_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_38.addWidget(self.Button_ASR_VPR_OutputDirName_Undo, 0, 2, 1, 1) + + self.LineEdit_ASR_VPR_OutputDirName = LineEditBase(self.Frame_ASR_VPR_OutputDirName) + self.LineEdit_ASR_VPR_OutputDirName.setObjectName(u"LineEdit_ASR_VPR_OutputDirName") + self.LineEdit_ASR_VPR_OutputDirName.setMinimumSize(QSize(0, 27)) + + self.gridLayout_38.addWidget(self.LineEdit_ASR_VPR_OutputDirName, 1, 0, 1, 3) + + + self.verticalLayout_139.addWidget(self.Frame_ASR_VPR_OutputDirName) + + + self.verticalLayout_48.addWidget(self.Frame_ASR_VPR_OutputParams_BasicSettings) + + self.CheckBox_ASR_VPR_OutputParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_ASR_VPR_OutputParams) + self.CheckBox_ASR_VPR_OutputParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_ASR_VPR_OutputParams_Toggle_AdvanceSettings") + self.CheckBox_ASR_VPR_OutputParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding-top: 9px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: transparent;\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_48.addWidget(self.CheckBox_ASR_VPR_OutputParams_Toggle_AdvanceSettings) + + self.Frame_ASR_VPR_OutputParams_AdvanceSettings = QFrame(self.GroupBox_ASR_VPR_OutputParams) + self.Frame_ASR_VPR_OutputParams_AdvanceSettings.setObjectName(u"Frame_ASR_VPR_OutputParams_AdvanceSettings") + self.Frame_ASR_VPR_OutputParams_AdvanceSettings.setFrameShape(QFrame.StyledPanel) + self.Frame_ASR_VPR_OutputParams_AdvanceSettings.setFrameShadow(QFrame.Raised) + self.verticalLayout_110 = QVBoxLayout(self.Frame_ASR_VPR_OutputParams_AdvanceSettings) + self.verticalLayout_110.setSpacing(0) + self.verticalLayout_110.setObjectName(u"verticalLayout_110") + self.verticalLayout_110.setContentsMargins(0, 0, 0, 0) + self.Frame_ASR_VPR_AudioSpeakersDataName = QFrame(self.Frame_ASR_VPR_OutputParams_AdvanceSettings) + self.Frame_ASR_VPR_AudioSpeakersDataName.setObjectName(u"Frame_ASR_VPR_AudioSpeakersDataName") + self.Frame_ASR_VPR_AudioSpeakersDataName.setMinimumSize(QSize(0, 105)) + self.Frame_ASR_VPR_AudioSpeakersDataName.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_112 = QGridLayout(self.Frame_ASR_VPR_AudioSpeakersDataName) + self.gridLayout_112.setSpacing(12) + self.gridLayout_112.setObjectName(u"gridLayout_112") + self.gridLayout_112.setContentsMargins(21, 12, 21, 12) + self.Button_ASR_VPR_AudioSpeakersDataName_Undo = QPushButton(self.Frame_ASR_VPR_AudioSpeakersDataName) + self.Button_ASR_VPR_AudioSpeakersDataName_Undo.setObjectName(u"Button_ASR_VPR_AudioSpeakersDataName_Undo") + self.Button_ASR_VPR_AudioSpeakersDataName_Undo.setMinimumSize(QSize(27, 27)) + self.Button_ASR_VPR_AudioSpeakersDataName_Undo.setMaximumSize(QSize(27, 27)) + self.Button_ASR_VPR_AudioSpeakersDataName_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_112.addWidget(self.Button_ASR_VPR_AudioSpeakersDataName_Undo, 0, 2, 1, 1) + + self.Label_ASR_VPR_AudioSpeakersDataName = QLabel(self.Frame_ASR_VPR_AudioSpeakersDataName) + self.Label_ASR_VPR_AudioSpeakersDataName.setObjectName(u"Label_ASR_VPR_AudioSpeakersDataName") + sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_AudioSpeakersDataName.sizePolicy().hasHeightForWidth()) + self.Label_ASR_VPR_AudioSpeakersDataName.setSizePolicy(sizePolicy5) + self.Label_ASR_VPR_AudioSpeakersDataName.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_112.addWidget(self.Label_ASR_VPR_AudioSpeakersDataName, 0, 0, 1, 1) + + self.LineEdit_ASR_VPR_AudioSpeakersDataName = LineEditBase(self.Frame_ASR_VPR_AudioSpeakersDataName) + self.LineEdit_ASR_VPR_AudioSpeakersDataName.setObjectName(u"LineEdit_ASR_VPR_AudioSpeakersDataName") + self.LineEdit_ASR_VPR_AudioSpeakersDataName.setMinimumSize(QSize(0, 27)) + + self.gridLayout_112.addWidget(self.LineEdit_ASR_VPR_AudioSpeakersDataName, 1, 0, 1, 3) + + self.HorizontalSpacer_ASR_VPR_AudioSpeakersDataName = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_112.addItem(self.HorizontalSpacer_ASR_VPR_AudioSpeakersDataName, 0, 1, 1, 1) + + + self.verticalLayout_110.addWidget(self.Frame_ASR_VPR_AudioSpeakersDataName) + + + self.verticalLayout_48.addWidget(self.Frame_ASR_VPR_OutputParams_AdvanceSettings) + + + self.verticalLayout_7.addWidget(self.GroupBox_ASR_VPR_OutputParams) + + self.ScrollArea_Middle_ASR_VPR.setWidget(self.ScrollArea_Middle_WidgetContents_ASR_VPR) + + self.gridLayout_21.addWidget(self.ScrollArea_Middle_ASR_VPR, 0, 1, 1, 1) + + self.Widget_Right_ASR_VPR = QWidget(self.Subpage_ASR_VPR) + self.Widget_Right_ASR_VPR.setObjectName(u"Widget_Right_ASR_VPR") + self.Widget_Right_ASR_VPR.setStyleSheet(u"QWidget {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QWidget:hover {\n" +"}") + self.gridLayout_14 = QGridLayout(self.Widget_Right_ASR_VPR) + self.gridLayout_14.setSpacing(12) + self.gridLayout_14.setObjectName(u"gridLayout_14") + self.gridLayout_14.setContentsMargins(12, 12, 12, 12) + self.TextBrowser_Params_ASR_VPR = QTextBrowser(self.Widget_Right_ASR_VPR) + self.TextBrowser_Params_ASR_VPR.setObjectName(u"TextBrowser_Params_ASR_VPR") + sizePolicy1.setHeightForWidth(self.TextBrowser_Params_ASR_VPR.sizePolicy().hasHeightForWidth()) + self.TextBrowser_Params_ASR_VPR.setSizePolicy(sizePolicy1) + self.TextBrowser_Params_ASR_VPR.setStyleSheet(u"QTextBrowser {\n" +" background-color: rgba(33, 33, 33, 99);\n" +" /*padding-top: 1.5px;*/\n" +" /*padding-bottom: 1.5px;*/\n" +" padding-left: 15px;\n" +" padding-right: 6px;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color:transparent;\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" bord" + "er-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px" + ";\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}") + + self.gridLayout_14.addWidget(self.TextBrowser_Params_ASR_VPR, 0, 0, 1, 2) + + self.Button_CheckOutput_ASR_VPR = QPushButton(self.Widget_Right_ASR_VPR) + self.Button_CheckOutput_ASR_VPR.setObjectName(u"Button_CheckOutput_ASR_VPR") + self.Button_CheckOutput_ASR_VPR.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" font-size: 12px;\n" +" background-color: transparent;\n" +" padding: 9.9px;\n" +" border-width: 1.5px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_14.addWidget(self.Button_CheckOutput_ASR_VPR, 1, 0, 1, 2) + + + self.gridLayout_21.addWidget(self.Widget_Right_ASR_VPR, 0, 2, 1, 1) + + self.ProgressBar_ASR_VPR = QProgressBar(self.Subpage_ASR_VPR) + self.ProgressBar_ASR_VPR.setObjectName(u"ProgressBar_ASR_VPR") + self.ProgressBar_ASR_VPR.setMinimumSize(QSize(0, 30)) + self.ProgressBar_ASR_VPR.setStyleSheet(u"QProgressBar {\n" +" text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" background-color: rgb(60, 60, 60);\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QProgressBar:chunk {\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" +"}") + self.ProgressBar_ASR_VPR.setValue(0) + self.ProgressBar_ASR_VPR.setTextVisible(False) + self.horizontalLayout_73 = QHBoxLayout(self.ProgressBar_ASR_VPR) + self.horizontalLayout_73.setSpacing(0) + self.horizontalLayout_73.setObjectName(u"horizontalLayout_73") + self.horizontalLayout_73.setContentsMargins(0, 0, 0, 0) + self.StackedWidget_ASR_VPR = QStackedWidget(self.ProgressBar_ASR_VPR) + self.StackedWidget_ASR_VPR.setObjectName(u"StackedWidget_ASR_VPR") + self.StackedWidget_ASR_VPR.setMaximumSize(QSize(16777215, 30)) + self.StackedWidget_ASR_VPR.setStyleSheet(u"QWidget {\n" +" background-color: rgba(90, 90, 90, 45);\n" +"}\n" +"QWidget:hover {\n" +" background-color: rgba(120, 120, 120, 60);\n" +"}") + self.Page_ASR_VPR_Execute = QWidget() + self.Page_ASR_VPR_Execute.setObjectName(u"Page_ASR_VPR_Execute") + self.verticalLayout_102 = QVBoxLayout(self.Page_ASR_VPR_Execute) + self.verticalLayout_102.setSpacing(0) + self.verticalLayout_102.setObjectName(u"verticalLayout_102") + self.verticalLayout_102.setContentsMargins(0, 0, 0, 0) + self.Button_ASR_VPR_Execute = QPushButton(self.Page_ASR_VPR_Execute) + self.Button_ASR_VPR_Execute.setObjectName(u"Button_ASR_VPR_Execute") + sizePolicy3.setHeightForWidth(self.Button_ASR_VPR_Execute.sizePolicy().hasHeightForWidth()) + self.Button_ASR_VPR_Execute.setSizePolicy(sizePolicy3) + self.Button_ASR_VPR_Execute.setMinimumSize(QSize(0, 30)) + self.Button_ASR_VPR_Execute.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_102.addWidget(self.Button_ASR_VPR_Execute) + + self.StackedWidget_ASR_VPR.addWidget(self.Page_ASR_VPR_Execute) + self.Page_ASR_VPR_Terminate = QWidget() + self.Page_ASR_VPR_Terminate.setObjectName(u"Page_ASR_VPR_Terminate") + self.verticalLayout_119 = QVBoxLayout(self.Page_ASR_VPR_Terminate) + self.verticalLayout_119.setSpacing(0) + self.verticalLayout_119.setObjectName(u"verticalLayout_119") + self.verticalLayout_119.setContentsMargins(0, 0, 0, 0) + self.Button_ASR_VPR_Terminate = QPushButton(self.Page_ASR_VPR_Terminate) + self.Button_ASR_VPR_Terminate.setObjectName(u"Button_ASR_VPR_Terminate") + sizePolicy3.setHeightForWidth(self.Button_ASR_VPR_Terminate.sizePolicy().hasHeightForWidth()) + self.Button_ASR_VPR_Terminate.setSizePolicy(sizePolicy3) + self.Button_ASR_VPR_Terminate.setMinimumSize(QSize(0, 30)) + self.Button_ASR_VPR_Terminate.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_119.addWidget(self.Button_ASR_VPR_Terminate) + + self.StackedWidget_ASR_VPR.addWidget(self.Page_ASR_VPR_Terminate) + + self.horizontalLayout_73.addWidget(self.StackedWidget_ASR_VPR) + + + self.gridLayout_21.addWidget(self.ProgressBar_ASR_VPR, 1, 0, 1, 3) + + self.gridLayout_21.setColumnStretch(0, 3) + self.gridLayout_21.setColumnStretch(1, 10) + self.gridLayout_21.setColumnStretch(2, 7) + self.StackedWidget_Pages_ASR.addWidget(self.Subpage_ASR_VPR) + + self.verticalLayout_44.addWidget(self.StackedWidget_Pages_ASR) + + self.StackedWidget_Pages.addWidget(self.Page_ASR) + self.Page_STT = QWidget() + self.Page_STT.setObjectName(u"Page_STT") + self.verticalLayout_41 = QVBoxLayout(self.Page_STT) + self.verticalLayout_41.setSpacing(21) + self.verticalLayout_41.setObjectName(u"verticalLayout_41") + self.verticalLayout_41.setContentsMargins(21, 12, 21, 12) + self.Frame_STT_Top = QFrame(self.Page_STT) + self.Frame_STT_Top.setObjectName(u"Frame_STT_Top") + self.Frame_STT_Top.setMinimumSize(QSize(0, 60)) + self.Frame_STT_Top.setStyleSheet(u"QFrame {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + self.horizontalLayout_82 = QHBoxLayout(self.Frame_STT_Top) + self.horizontalLayout_82.setSpacing(0) + self.horizontalLayout_82.setObjectName(u"horizontalLayout_82") + self.horizontalLayout_82.setContentsMargins(0, 0, 0, 0) + self.ToolButton_VoiceTranscriber_Title = QToolButton(self.Frame_STT_Top) + self.ToolButton_VoiceTranscriber_Title.setObjectName(u"ToolButton_VoiceTranscriber_Title") + sizePolicy1.setHeightForWidth(self.ToolButton_VoiceTranscriber_Title.sizePolicy().hasHeightForWidth()) + self.ToolButton_VoiceTranscriber_Title.setSizePolicy(sizePolicy1) + self.ToolButton_VoiceTranscriber_Title.setStyleSheet(u"QToolButton {\n" +" font-size: 24px;\n" +" /*text-align: center;*/\n" +" color: rgba(201, 210, 222, 210);\n" +" padding-left: 12px;\n" +" padding-right: 12px;\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QToolButton:hover {\n" +" color: rgba(210, 222, 234, 234);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 123);\n" +"}\n" +"QToolButton:checked {\n" +" color: rgba(210, 222, 234, 255);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 210);\n" +"}\n" +"\n" +"QToolTip {\n" +" color:" + " rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.horizontalLayout_82.addWidget(self.ToolButton_VoiceTranscriber_Title) + + self.Frame_STT_Title_Spacer = QLabel(self.Frame_STT_Top) + self.Frame_STT_Title_Spacer.setObjectName(u"Frame_STT_Title_Spacer") + sizePolicy4.setHeightForWidth(self.Frame_STT_Title_Spacer.sizePolicy().hasHeightForWidth()) + self.Frame_STT_Title_Spacer.setSizePolicy(sizePolicy4) + self.Frame_STT_Title_Spacer.setStyleSheet(u"QLabel {\n" +" font-size: 24px;\n" +" /*text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" padding-left: 12px;\n" +" padding-right: 12px;*/\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}") + + self.horizontalLayout_82.addWidget(self.Frame_STT_Title_Spacer) + + + self.verticalLayout_41.addWidget(self.Frame_STT_Top) + + self.StackedWidget_Pages_STT = QStackedWidget(self.Page_STT) + self.StackedWidget_Pages_STT.setObjectName(u"StackedWidget_Pages_STT") + self.StackedWidget_Pages_STT.setStyleSheet(u"QWidget {\n" +" background-color: transparent;\n" +"}\n" +"\n" +"\n" +"/*\n" +"QTabWidget {\n" +" background-color: transparent;\n" +"}\n" +"QTabWidget::tab-bar {\n" +"}\n" +"QTabWidget::pane {\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"\n" +"QTabBar::tab {\n" +" font-size: 18px;\n" +" font-weight: 420;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding: 12px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QTabBar::tab:selected {\n" +" color: rgba(255, 255, 255, 255);\n" +"}\n" +"QTabBar::tab:hover:!selected {\n" +"}\n" +"\n" +"\n" +"QTabBar QToolButton {\n" +"}\n" +"QTabBar QToolButton:hover {\n" +"}\n" +"*/") + self.Subpage_STT_Whisper = QWidget() + self.Subpage_STT_Whisper.setObjectName(u"Subpage_STT_Whisper") + self.gridLayout_19 = QGridLayout(self.Subpage_STT_Whisper) + self.gridLayout_19.setSpacing(12) + self.gridLayout_19.setObjectName(u"gridLayout_19") + self.gridLayout_19.setContentsMargins(0, 0, 0, 0) + self.Widget_Left_STT_Whisper = QWidget(self.Subpage_STT_Whisper) + self.Widget_Left_STT_Whisper.setObjectName(u"Widget_Left_STT_Whisper") + self.Widget_Left_STT_Whisper.setMinimumSize(QSize(150, 0)) + self.Widget_Left_STT_Whisper.setStyleSheet(u"QWidget {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QWidget:hover {\n" +"}") + self.verticalLayout_8 = QVBoxLayout(self.Widget_Left_STT_Whisper) + self.verticalLayout_8.setSpacing(12) + self.verticalLayout_8.setObjectName(u"verticalLayout_8") + self.verticalLayout_8.setContentsMargins(12, 12, 12, 12) + self.TreeWidget_Catalogue_STT_Whisper = QTreeWidget(self.Widget_Left_STT_Whisper) + __qtreewidgetitem2 = QTreeWidgetItem(self.TreeWidget_Catalogue_STT_Whisper) + QTreeWidgetItem(__qtreewidgetitem2) + self.TreeWidget_Catalogue_STT_Whisper.setObjectName(u"TreeWidget_Catalogue_STT_Whisper") + self.TreeWidget_Catalogue_STT_Whisper.setStyleSheet(u"QTreeView {\n" +" /*font-size: 12px;\n" +" text-align: center;*/\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QTreeView::item {\n" +" background-color: transparent;\n" +" padding: 2.4px;\n" +"}\n" +"QTreeView::item:hover {\n" +" background-color: rgba(66, 66, 66, 198);\n" +"}\n" +"QTreeView::item:selected {\n" +" background-color: ;\n" +"}\n" +"\n" +"QTreeView::branch {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QTreeView::branch:open:has-children {\n" +" image: ;\n" +"}\n" +"QTreeView::branch:closed:has-children {\n" +" image: ;\n" +"}\n" +"QTreeWidget::branch:adjoins-item {\n" +" background-color: ;\n" +"}\n" +"\n" +"\n" +"QScrollBar {\n" +" background-color: rgba(45, 45, 45, 135);\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar:hover {\n" +" background-color: r" + "gba(33, 33, 33, 99);\n" +"}\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +"}\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +"}\n" +"\n" +"QScrollBar::sub-line, QScrollBar::add-line {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-page, QScrollBar::add-page {\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle {\n" +" background-color: rgba(90, 90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}") + + self.verticalLayout_8.addWidget(self.TreeWidget_Catalogue_STT_Whisper) + + + self.gridLayout_19.addWidget(self.Widget_Left_STT_Whisper, 0, 0, 1, 1) + + self.ScrollArea_Middle_STT_Whisper = QScrollArea(self.Subpage_STT_Whisper) + self.ScrollArea_Middle_STT_Whisper.setObjectName(u"ScrollArea_Middle_STT_Whisper") + self.ScrollArea_Middle_STT_Whisper.setMinimumSize(QSize(600, 0)) + self.ScrollArea_Middle_STT_Whisper.setStyleSheet(u"QScrollArea {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollArea:hover {\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" " + "height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: rgb(90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" borde" + "r-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:horizontal {\n" +" background-color: rgb(90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}") + self.ScrollArea_Middle_STT_Whisper.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) + self.ScrollArea_Middle_STT_Whisper.setWidgetResizable(True) + self.ScrollArea_Middle_WidgetContents_STT_Whisper = QWidget() + self.ScrollArea_Middle_WidgetContents_STT_Whisper.setObjectName(u"ScrollArea_Middle_WidgetContents_STT_Whisper") + self.ScrollArea_Middle_WidgetContents_STT_Whisper.setGeometry(QRect(0, 0, 591, 934)) + self.verticalLayout_16 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_STT_Whisper) + self.verticalLayout_16.setSpacing(12) + self.verticalLayout_16.setObjectName(u"verticalLayout_16") + self.verticalLayout_16.setContentsMargins(12, 12, 12, 12) + self.GroupBox_STT_Whisper_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_STT_Whisper) + self.GroupBox_STT_Whisper_InputParams.setObjectName(u"GroupBox_STT_Whisper_InputParams") + self.GroupBox_STT_Whisper_InputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_32 = QVBoxLayout(self.GroupBox_STT_Whisper_InputParams) + self.verticalLayout_32.setSpacing(0) + self.verticalLayout_32.setObjectName(u"verticalLayout_32") + self.verticalLayout_32.setContentsMargins(0, 12, 0, 12) + self.Frame_STT_Whisper_InputParams_BasicSettings = QFrame(self.GroupBox_STT_Whisper_InputParams) + self.Frame_STT_Whisper_InputParams_BasicSettings.setObjectName(u"Frame_STT_Whisper_InputParams_BasicSettings") + self.verticalLayout_129 = QVBoxLayout(self.Frame_STT_Whisper_InputParams_BasicSettings) + self.verticalLayout_129.setSpacing(0) + self.verticalLayout_129.setObjectName(u"verticalLayout_129") + self.verticalLayout_129.setContentsMargins(0, 0, 0, 0) + self.Frame_STT_Whisper_AudioDir = QFrame(self.Frame_STT_Whisper_InputParams_BasicSettings) + self.Frame_STT_Whisper_AudioDir.setObjectName(u"Frame_STT_Whisper_AudioDir") + self.Frame_STT_Whisper_AudioDir.setMinimumSize(QSize(0, 105)) + self.Frame_STT_Whisper_AudioDir.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_39 = QGridLayout(self.Frame_STT_Whisper_AudioDir) + self.gridLayout_39.setSpacing(12) + self.gridLayout_39.setObjectName(u"gridLayout_39") + self.gridLayout_39.setContentsMargins(21, 12, 21, 12) + self.Label_STT_Whisper_AudioDir = QLabel(self.Frame_STT_Whisper_AudioDir) + self.Label_STT_Whisper_AudioDir.setObjectName(u"Label_STT_Whisper_AudioDir") + sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_AudioDir.sizePolicy().hasHeightForWidth()) + self.Label_STT_Whisper_AudioDir.setSizePolicy(sizePolicy5) + self.Label_STT_Whisper_AudioDir.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_39.addWidget(self.Label_STT_Whisper_AudioDir, 0, 0, 1, 1) + + self.HorizontalSpacer_STT_Whisper_AudioDir = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_39.addItem(self.HorizontalSpacer_STT_Whisper_AudioDir, 0, 1, 1, 1) + + self.Button_STT_Whisper_AudioDir_Undo = QPushButton(self.Frame_STT_Whisper_AudioDir) + self.Button_STT_Whisper_AudioDir_Undo.setObjectName(u"Button_STT_Whisper_AudioDir_Undo") + self.Button_STT_Whisper_AudioDir_Undo.setMinimumSize(QSize(27, 27)) + self.Button_STT_Whisper_AudioDir_Undo.setMaximumSize(QSize(27, 27)) + self.Button_STT_Whisper_AudioDir_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_39.addWidget(self.Button_STT_Whisper_AudioDir_Undo, 0, 2, 1, 1) + + self.LineEdit_STT_Whisper_AudioDir = LineEditBase(self.Frame_STT_Whisper_AudioDir) + self.LineEdit_STT_Whisper_AudioDir.setObjectName(u"LineEdit_STT_Whisper_AudioDir") + self.LineEdit_STT_Whisper_AudioDir.setMinimumSize(QSize(0, 27)) + + self.gridLayout_39.addWidget(self.LineEdit_STT_Whisper_AudioDir, 1, 0, 1, 3) + + + self.verticalLayout_129.addWidget(self.Frame_STT_Whisper_AudioDir) + + + self.verticalLayout_32.addWidget(self.Frame_STT_Whisper_InputParams_BasicSettings) + + + self.verticalLayout_16.addWidget(self.GroupBox_STT_Whisper_InputParams) + + self.GroupBox_STT_Whisper_WhisperParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_STT_Whisper) + self.GroupBox_STT_Whisper_WhisperParams.setObjectName(u"GroupBox_STT_Whisper_WhisperParams") + self.GroupBox_STT_Whisper_WhisperParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_49 = QVBoxLayout(self.GroupBox_STT_Whisper_WhisperParams) + self.verticalLayout_49.setSpacing(0) + self.verticalLayout_49.setObjectName(u"verticalLayout_49") + self.verticalLayout_49.setContentsMargins(0, 12, 0, 12) + self.Frame_STT_Whisper_WhisperParams_BasicSettings = QFrame(self.GroupBox_STT_Whisper_WhisperParams) + self.Frame_STT_Whisper_WhisperParams_BasicSettings.setObjectName(u"Frame_STT_Whisper_WhisperParams_BasicSettings") + self.verticalLayout_37 = QVBoxLayout(self.Frame_STT_Whisper_WhisperParams_BasicSettings) + self.verticalLayout_37.setSpacing(0) + self.verticalLayout_37.setObjectName(u"verticalLayout_37") + self.verticalLayout_37.setContentsMargins(0, 0, 0, 0) + self.Frame_STT_Whisper_AddLanguageInfo = QFrame(self.Frame_STT_Whisper_WhisperParams_BasicSettings) + self.Frame_STT_Whisper_AddLanguageInfo.setObjectName(u"Frame_STT_Whisper_AddLanguageInfo") + self.Frame_STT_Whisper_AddLanguageInfo.setMinimumSize(QSize(0, 105)) + self.Frame_STT_Whisper_AddLanguageInfo.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_40 = QGridLayout(self.Frame_STT_Whisper_AddLanguageInfo) + self.gridLayout_40.setSpacing(12) + self.gridLayout_40.setObjectName(u"gridLayout_40") + self.gridLayout_40.setContentsMargins(21, 12, 21, 12) + self.Label_STT_Whisper_AddLanguageInfo = QLabel(self.Frame_STT_Whisper_AddLanguageInfo) + self.Label_STT_Whisper_AddLanguageInfo.setObjectName(u"Label_STT_Whisper_AddLanguageInfo") + sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_AddLanguageInfo.sizePolicy().hasHeightForWidth()) + self.Label_STT_Whisper_AddLanguageInfo.setSizePolicy(sizePolicy5) + self.Label_STT_Whisper_AddLanguageInfo.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_40.addWidget(self.Label_STT_Whisper_AddLanguageInfo, 0, 0, 1, 1) + + self.HorizontalSpacer_STT_Whisper_AddLanguageInfo = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_40.addItem(self.HorizontalSpacer_STT_Whisper_AddLanguageInfo, 0, 1, 1, 1) + + self.Button_STT_Whisper_AddLanguageInfo_Undo = QPushButton(self.Frame_STT_Whisper_AddLanguageInfo) + self.Button_STT_Whisper_AddLanguageInfo_Undo.setObjectName(u"Button_STT_Whisper_AddLanguageInfo_Undo") + self.Button_STT_Whisper_AddLanguageInfo_Undo.setMinimumSize(QSize(27, 27)) + self.Button_STT_Whisper_AddLanguageInfo_Undo.setMaximumSize(QSize(27, 27)) + self.Button_STT_Whisper_AddLanguageInfo_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_40.addWidget(self.Button_STT_Whisper_AddLanguageInfo_Undo, 0, 2, 1, 1) + + self.CheckBox_STT_Whisper_AddLanguageInfo = QCheckBox(self.Frame_STT_Whisper_AddLanguageInfo) + self.CheckBox_STT_Whisper_AddLanguageInfo.setObjectName(u"CheckBox_STT_Whisper_AddLanguageInfo") + self.CheckBox_STT_Whisper_AddLanguageInfo.setMinimumSize(QSize(0, 27)) + self.CheckBox_STT_Whisper_AddLanguageInfo.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" spacing: 12.3px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 24px;\n" +" height: 24px;\n" +" background-color: transparent;\n" +" padding: 1.2px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_40.addWidget(self.CheckBox_STT_Whisper_AddLanguageInfo, 1, 0, 1, 3) + + + self.verticalLayout_37.addWidget(self.Frame_STT_Whisper_AddLanguageInfo) + + self.Frame_STT_Whisper_ModelPath = QFrame(self.Frame_STT_Whisper_WhisperParams_BasicSettings) + self.Frame_STT_Whisper_ModelPath.setObjectName(u"Frame_STT_Whisper_ModelPath") + self.Frame_STT_Whisper_ModelPath.setMinimumSize(QSize(0, 105)) + self.Frame_STT_Whisper_ModelPath.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_41 = QGridLayout(self.Frame_STT_Whisper_ModelPath) + self.gridLayout_41.setSpacing(12) + self.gridLayout_41.setObjectName(u"gridLayout_41") + self.gridLayout_41.setContentsMargins(21, 12, 21, 12) + self.Label_STT_Whisper_ModelPath = QLabel(self.Frame_STT_Whisper_ModelPath) + self.Label_STT_Whisper_ModelPath.setObjectName(u"Label_STT_Whisper_ModelPath") + sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_ModelPath.sizePolicy().hasHeightForWidth()) + self.Label_STT_Whisper_ModelPath.setSizePolicy(sizePolicy5) + self.Label_STT_Whisper_ModelPath.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_41.addWidget(self.Label_STT_Whisper_ModelPath, 0, 0, 1, 1) + + self.HorizontalSpacer_STT_Whisper_ModelPath = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_41.addItem(self.HorizontalSpacer_STT_Whisper_ModelPath, 0, 1, 1, 1) + + self.Button_STT_Whisper_ModelPath_Undo = QPushButton(self.Frame_STT_Whisper_ModelPath) + self.Button_STT_Whisper_ModelPath_Undo.setObjectName(u"Button_STT_Whisper_ModelPath_Undo") + self.Button_STT_Whisper_ModelPath_Undo.setMinimumSize(QSize(27, 27)) + self.Button_STT_Whisper_ModelPath_Undo.setMaximumSize(QSize(27, 27)) + self.Button_STT_Whisper_ModelPath_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_41.addWidget(self.Button_STT_Whisper_ModelPath_Undo, 0, 2, 1, 1) + + self.LineEdit_STT_Whisper_ModelPath = LineEditBase(self.Frame_STT_Whisper_ModelPath) + self.LineEdit_STT_Whisper_ModelPath.setObjectName(u"LineEdit_STT_Whisper_ModelPath") + self.LineEdit_STT_Whisper_ModelPath.setMinimumSize(QSize(0, 27)) + + self.gridLayout_41.addWidget(self.LineEdit_STT_Whisper_ModelPath, 1, 0, 1, 3) + + + self.verticalLayout_37.addWidget(self.Frame_STT_Whisper_ModelPath) + + + self.verticalLayout_49.addWidget(self.Frame_STT_Whisper_WhisperParams_BasicSettings) + + self.CheckBox_STT_Whisper_WhisperParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_STT_Whisper_WhisperParams) + self.CheckBox_STT_Whisper_WhisperParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_STT_Whisper_WhisperParams_Toggle_AdvanceSettings") + self.CheckBox_STT_Whisper_WhisperParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding-top: 9px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: transparent;\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_49.addWidget(self.CheckBox_STT_Whisper_WhisperParams_Toggle_AdvanceSettings) + + self.Frame_STT_Whisper_WhisperParams_AdvanceSettings = QFrame(self.GroupBox_STT_Whisper_WhisperParams) + self.Frame_STT_Whisper_WhisperParams_AdvanceSettings.setObjectName(u"Frame_STT_Whisper_WhisperParams_AdvanceSettings") + self.verticalLayout_15 = QVBoxLayout(self.Frame_STT_Whisper_WhisperParams_AdvanceSettings) + self.verticalLayout_15.setSpacing(0) + self.verticalLayout_15.setObjectName(u"verticalLayout_15") + self.verticalLayout_15.setContentsMargins(0, 0, 0, 0) + self.Frame_STT_Whisper_fp16 = QFrame(self.Frame_STT_Whisper_WhisperParams_AdvanceSettings) + self.Frame_STT_Whisper_fp16.setObjectName(u"Frame_STT_Whisper_fp16") + self.Frame_STT_Whisper_fp16.setMinimumSize(QSize(0, 105)) + self.Frame_STT_Whisper_fp16.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_44 = QGridLayout(self.Frame_STT_Whisper_fp16) + self.gridLayout_44.setSpacing(12) + self.gridLayout_44.setObjectName(u"gridLayout_44") + self.gridLayout_44.setContentsMargins(21, 12, 21, 12) + self.Label_STT_Whisper_fp16 = QLabel(self.Frame_STT_Whisper_fp16) + self.Label_STT_Whisper_fp16.setObjectName(u"Label_STT_Whisper_fp16") + sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_fp16.sizePolicy().hasHeightForWidth()) + self.Label_STT_Whisper_fp16.setSizePolicy(sizePolicy5) + self.Label_STT_Whisper_fp16.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_44.addWidget(self.Label_STT_Whisper_fp16, 0, 0, 1, 1) + + self.HorizontalSpacer_STT_Whisper_fp16 = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_44.addItem(self.HorizontalSpacer_STT_Whisper_fp16, 0, 1, 1, 1) + + self.CheckBox_STT_Whisper_fp16 = QCheckBox(self.Frame_STT_Whisper_fp16) + self.CheckBox_STT_Whisper_fp16.setObjectName(u"CheckBox_STT_Whisper_fp16") + self.CheckBox_STT_Whisper_fp16.setMinimumSize(QSize(0, 27)) + self.CheckBox_STT_Whisper_fp16.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" spacing: 12.3px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 24px;\n" +" height: 24px;\n" +" background-color: transparent;\n" +" padding: 1.2px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_44.addWidget(self.CheckBox_STT_Whisper_fp16, 1, 0, 1, 3) + + self.Button_STT_Whisper_fp16_Undo = QPushButton(self.Frame_STT_Whisper_fp16) + self.Button_STT_Whisper_fp16_Undo.setObjectName(u"Button_STT_Whisper_fp16_Undo") + self.Button_STT_Whisper_fp16_Undo.setMinimumSize(QSize(27, 27)) + self.Button_STT_Whisper_fp16_Undo.setMaximumSize(QSize(27, 27)) + self.Button_STT_Whisper_fp16_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_44.addWidget(self.Button_STT_Whisper_fp16_Undo, 0, 2, 1, 1) + + + self.verticalLayout_15.addWidget(self.Frame_STT_Whisper_fp16) + + self.Frame_STT_Whisper_ConditionOnPreviousText = QFrame(self.Frame_STT_Whisper_WhisperParams_AdvanceSettings) + self.Frame_STT_Whisper_ConditionOnPreviousText.setObjectName(u"Frame_STT_Whisper_ConditionOnPreviousText") + self.Frame_STT_Whisper_ConditionOnPreviousText.setMinimumSize(QSize(0, 105)) + self.Frame_STT_Whisper_ConditionOnPreviousText.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_43 = QGridLayout(self.Frame_STT_Whisper_ConditionOnPreviousText) + self.gridLayout_43.setSpacing(12) + self.gridLayout_43.setObjectName(u"gridLayout_43") + self.gridLayout_43.setContentsMargins(21, 12, 21, 12) + self.CheckBox_STT_Whisper_ConditionOnPreviousText = QCheckBox(self.Frame_STT_Whisper_ConditionOnPreviousText) + self.CheckBox_STT_Whisper_ConditionOnPreviousText.setObjectName(u"CheckBox_STT_Whisper_ConditionOnPreviousText") + self.CheckBox_STT_Whisper_ConditionOnPreviousText.setMinimumSize(QSize(0, 27)) + self.CheckBox_STT_Whisper_ConditionOnPreviousText.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" spacing: 12.3px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 24px;\n" +" height: 24px;\n" +" background-color: transparent;\n" +" padding: 1.2px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_43.addWidget(self.CheckBox_STT_Whisper_ConditionOnPreviousText, 1, 0, 1, 3) + + self.HorizontalSpacer_STT_Whisper_ConditionOnPreviousText = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_43.addItem(self.HorizontalSpacer_STT_Whisper_ConditionOnPreviousText, 0, 1, 1, 1) + + self.Button_STT_Whisper_ConditionOnPreviousText_Undo = QPushButton(self.Frame_STT_Whisper_ConditionOnPreviousText) + self.Button_STT_Whisper_ConditionOnPreviousText_Undo.setObjectName(u"Button_STT_Whisper_ConditionOnPreviousText_Undo") + self.Button_STT_Whisper_ConditionOnPreviousText_Undo.setMinimumSize(QSize(27, 27)) + self.Button_STT_Whisper_ConditionOnPreviousText_Undo.setMaximumSize(QSize(27, 27)) + self.Button_STT_Whisper_ConditionOnPreviousText_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_43.addWidget(self.Button_STT_Whisper_ConditionOnPreviousText_Undo, 0, 2, 1, 1) + + self.Label_STT_Whisper_ConditionOnPreviousText = QLabel(self.Frame_STT_Whisper_ConditionOnPreviousText) + self.Label_STT_Whisper_ConditionOnPreviousText.setObjectName(u"Label_STT_Whisper_ConditionOnPreviousText") + sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_ConditionOnPreviousText.sizePolicy().hasHeightForWidth()) + self.Label_STT_Whisper_ConditionOnPreviousText.setSizePolicy(sizePolicy5) + self.Label_STT_Whisper_ConditionOnPreviousText.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_43.addWidget(self.Label_STT_Whisper_ConditionOnPreviousText, 0, 0, 1, 1) + + + self.verticalLayout_15.addWidget(self.Frame_STT_Whisper_ConditionOnPreviousText) + + self.Frame_STT_Whisper_Verbose = QFrame(self.Frame_STT_Whisper_WhisperParams_AdvanceSettings) + self.Frame_STT_Whisper_Verbose.setObjectName(u"Frame_STT_Whisper_Verbose") + self.Frame_STT_Whisper_Verbose.setMinimumSize(QSize(0, 105)) + self.Frame_STT_Whisper_Verbose.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_42 = QGridLayout(self.Frame_STT_Whisper_Verbose) + self.gridLayout_42.setSpacing(12) + self.gridLayout_42.setObjectName(u"gridLayout_42") + self.gridLayout_42.setContentsMargins(21, 12, 21, 12) + self.Label_STT_Whisper_Verbose = QLabel(self.Frame_STT_Whisper_Verbose) + self.Label_STT_Whisper_Verbose.setObjectName(u"Label_STT_Whisper_Verbose") + sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_Verbose.sizePolicy().hasHeightForWidth()) + self.Label_STT_Whisper_Verbose.setSizePolicy(sizePolicy5) + self.Label_STT_Whisper_Verbose.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_42.addWidget(self.Label_STT_Whisper_Verbose, 0, 0, 1, 1) + + self.HorizontalSpacer_STT_Whisper_Verbose = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_42.addItem(self.HorizontalSpacer_STT_Whisper_Verbose, 0, 1, 1, 1) + + self.CheckBox_STT_Whisper_Verbose = QCheckBox(self.Frame_STT_Whisper_Verbose) + self.CheckBox_STT_Whisper_Verbose.setObjectName(u"CheckBox_STT_Whisper_Verbose") + self.CheckBox_STT_Whisper_Verbose.setMinimumSize(QSize(0, 27)) + self.CheckBox_STT_Whisper_Verbose.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" spacing: 12.3px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 24px;\n" +" height: 24px;\n" +" background-color: transparent;\n" +" padding: 1.2px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_42.addWidget(self.CheckBox_STT_Whisper_Verbose, 1, 0, 1, 3) + + self.Button_STT_Whisper_Verbose_Undo = QPushButton(self.Frame_STT_Whisper_Verbose) + self.Button_STT_Whisper_Verbose_Undo.setObjectName(u"Button_STT_Whisper_Verbose_Undo") + self.Button_STT_Whisper_Verbose_Undo.setMinimumSize(QSize(27, 27)) + self.Button_STT_Whisper_Verbose_Undo.setMaximumSize(QSize(27, 27)) + self.Button_STT_Whisper_Verbose_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_42.addWidget(self.Button_STT_Whisper_Verbose_Undo, 0, 2, 1, 1) + + + self.verticalLayout_15.addWidget(self.Frame_STT_Whisper_Verbose) + + + self.verticalLayout_49.addWidget(self.Frame_STT_Whisper_WhisperParams_AdvanceSettings) + + + self.verticalLayout_16.addWidget(self.GroupBox_STT_Whisper_WhisperParams) + + self.GroupBox_STT_Whisper_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_STT_Whisper) + self.GroupBox_STT_Whisper_OutputParams.setObjectName(u"GroupBox_STT_Whisper_OutputParams") + self.GroupBox_STT_Whisper_OutputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_89 = QVBoxLayout(self.GroupBox_STT_Whisper_OutputParams) + self.verticalLayout_89.setSpacing(0) + self.verticalLayout_89.setObjectName(u"verticalLayout_89") + self.verticalLayout_89.setContentsMargins(0, 12, 0, 12) + self.Frame_STT_Whisper_OutputParams_BasicSettings = QFrame(self.GroupBox_STT_Whisper_OutputParams) + self.Frame_STT_Whisper_OutputParams_BasicSettings.setObjectName(u"Frame_STT_Whisper_OutputParams_BasicSettings") + self.verticalLayout_135 = QVBoxLayout(self.Frame_STT_Whisper_OutputParams_BasicSettings) + self.verticalLayout_135.setSpacing(0) + self.verticalLayout_135.setObjectName(u"verticalLayout_135") + self.verticalLayout_135.setContentsMargins(0, 0, 0, 0) + self.Frame_STT_Whisper_OutputDirName = QFrame(self.Frame_STT_Whisper_OutputParams_BasicSettings) + self.Frame_STT_Whisper_OutputDirName.setObjectName(u"Frame_STT_Whisper_OutputDirName") + self.Frame_STT_Whisper_OutputDirName.setMinimumSize(QSize(0, 105)) + self.Frame_STT_Whisper_OutputDirName.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_45 = QGridLayout(self.Frame_STT_Whisper_OutputDirName) + self.gridLayout_45.setSpacing(12) + self.gridLayout_45.setObjectName(u"gridLayout_45") + self.gridLayout_45.setContentsMargins(21, 12, 21, 12) + self.Label_STT_Whisper_OutputDirName = QLabel(self.Frame_STT_Whisper_OutputDirName) + self.Label_STT_Whisper_OutputDirName.setObjectName(u"Label_STT_Whisper_OutputDirName") + sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_OutputDirName.sizePolicy().hasHeightForWidth()) + self.Label_STT_Whisper_OutputDirName.setSizePolicy(sizePolicy5) + self.Label_STT_Whisper_OutputDirName.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_45.addWidget(self.Label_STT_Whisper_OutputDirName, 0, 0, 1, 1) + + self.HorizontalSpacer_STT_Whisper_OutputDirName = QSpacerItem(481, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_45.addItem(self.HorizontalSpacer_STT_Whisper_OutputDirName, 0, 1, 1, 1) + + self.Button_STT_Whisper_OutputDirName_Undo = QPushButton(self.Frame_STT_Whisper_OutputDirName) + self.Button_STT_Whisper_OutputDirName_Undo.setObjectName(u"Button_STT_Whisper_OutputDirName_Undo") + self.Button_STT_Whisper_OutputDirName_Undo.setMinimumSize(QSize(27, 27)) + self.Button_STT_Whisper_OutputDirName_Undo.setMaximumSize(QSize(27, 27)) + self.Button_STT_Whisper_OutputDirName_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_45.addWidget(self.Button_STT_Whisper_OutputDirName_Undo, 0, 2, 1, 1) + + self.LineEdit_STT_Whisper_OutputDirName = LineEditBase(self.Frame_STT_Whisper_OutputDirName) + self.LineEdit_STT_Whisper_OutputDirName.setObjectName(u"LineEdit_STT_Whisper_OutputDirName") + self.LineEdit_STT_Whisper_OutputDirName.setMinimumSize(QSize(0, 27)) + + self.gridLayout_45.addWidget(self.LineEdit_STT_Whisper_OutputDirName, 1, 0, 1, 3) + + + self.verticalLayout_135.addWidget(self.Frame_STT_Whisper_OutputDirName) + + + self.verticalLayout_89.addWidget(self.Frame_STT_Whisper_OutputParams_BasicSettings) + + + self.verticalLayout_16.addWidget(self.GroupBox_STT_Whisper_OutputParams) + + self.VerticalSpacer_STT_Whisper = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_16.addItem(self.VerticalSpacer_STT_Whisper) + + self.ScrollArea_Middle_STT_Whisper.setWidget(self.ScrollArea_Middle_WidgetContents_STT_Whisper) + + self.gridLayout_19.addWidget(self.ScrollArea_Middle_STT_Whisper, 0, 1, 1, 1) + + self.Widget_Right_STT_Whisper = QWidget(self.Subpage_STT_Whisper) + self.Widget_Right_STT_Whisper.setObjectName(u"Widget_Right_STT_Whisper") + self.Widget_Right_STT_Whisper.setStyleSheet(u"QWidget {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QWidget:hover {\n" +"}") + self.gridLayout_15 = QGridLayout(self.Widget_Right_STT_Whisper) + self.gridLayout_15.setSpacing(12) + self.gridLayout_15.setObjectName(u"gridLayout_15") + self.gridLayout_15.setContentsMargins(12, 12, 12, 12) + self.TextBrowser_Params_STT_Whisper = QTextBrowser(self.Widget_Right_STT_Whisper) + self.TextBrowser_Params_STT_Whisper.setObjectName(u"TextBrowser_Params_STT_Whisper") + sizePolicy1.setHeightForWidth(self.TextBrowser_Params_STT_Whisper.sizePolicy().hasHeightForWidth()) + self.TextBrowser_Params_STT_Whisper.setSizePolicy(sizePolicy1) + self.TextBrowser_Params_STT_Whisper.setStyleSheet(u"QTextBrowser {\n" +" background-color: rgba(33, 33, 33, 99);\n" +" /*padding-top: 1.5px;*/\n" +" /*padding-bottom: 1.5px;*/\n" +" padding-left: 15px;\n" +" padding-right: 6px;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color:transparent;\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" bord" + "er-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px" + ";\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}") + + self.gridLayout_15.addWidget(self.TextBrowser_Params_STT_Whisper, 0, 0, 1, 2) + + self.Button_CheckOutput_STT_Whisper = QPushButton(self.Widget_Right_STT_Whisper) + self.Button_CheckOutput_STT_Whisper.setObjectName(u"Button_CheckOutput_STT_Whisper") + self.Button_CheckOutput_STT_Whisper.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" font-size: 12px;\n" +" background-color: transparent;\n" +" padding: 9.9px;\n" +" border-width: 1.5px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_15.addWidget(self.Button_CheckOutput_STT_Whisper, 1, 0, 1, 2) + + + self.gridLayout_19.addWidget(self.Widget_Right_STT_Whisper, 0, 2, 1, 1) + + self.ProgressBar_STT_Whisper = QProgressBar(self.Subpage_STT_Whisper) + self.ProgressBar_STT_Whisper.setObjectName(u"ProgressBar_STT_Whisper") + self.ProgressBar_STT_Whisper.setMinimumSize(QSize(0, 30)) + self.ProgressBar_STT_Whisper.setStyleSheet(u"QProgressBar {\n" +" text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" background-color: rgb(60, 60, 60);\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QProgressBar:chunk {\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" +"}") + self.ProgressBar_STT_Whisper.setValue(0) + self.ProgressBar_STT_Whisper.setTextVisible(False) + self.horizontalLayout_35 = QHBoxLayout(self.ProgressBar_STT_Whisper) + self.horizontalLayout_35.setSpacing(0) + self.horizontalLayout_35.setObjectName(u"horizontalLayout_35") + self.horizontalLayout_35.setContentsMargins(0, 0, 0, 0) + self.StackedWidget_STT_Whisper = QStackedWidget(self.ProgressBar_STT_Whisper) + self.StackedWidget_STT_Whisper.setObjectName(u"StackedWidget_STT_Whisper") + self.StackedWidget_STT_Whisper.setMaximumSize(QSize(16777215, 30)) + self.StackedWidget_STT_Whisper.setStyleSheet(u"QWidget {\n" +" background-color: rgba(90, 90, 90, 45);\n" +"}\n" +"QWidget:hover {\n" +" background-color: rgba(120, 120, 120, 60);\n" +"}") + self.Page_STT_Whisper_Execute = QWidget() + self.Page_STT_Whisper_Execute.setObjectName(u"Page_STT_Whisper_Execute") + self.verticalLayout_90 = QVBoxLayout(self.Page_STT_Whisper_Execute) + self.verticalLayout_90.setSpacing(0) + self.verticalLayout_90.setObjectName(u"verticalLayout_90") + self.verticalLayout_90.setContentsMargins(0, 0, 0, 0) + self.Button_STT_Whisper_Execute = QPushButton(self.Page_STT_Whisper_Execute) + self.Button_STT_Whisper_Execute.setObjectName(u"Button_STT_Whisper_Execute") + sizePolicy3.setHeightForWidth(self.Button_STT_Whisper_Execute.sizePolicy().hasHeightForWidth()) + self.Button_STT_Whisper_Execute.setSizePolicy(sizePolicy3) + self.Button_STT_Whisper_Execute.setMinimumSize(QSize(0, 30)) + self.Button_STT_Whisper_Execute.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_90.addWidget(self.Button_STT_Whisper_Execute) + + self.StackedWidget_STT_Whisper.addWidget(self.Page_STT_Whisper_Execute) + self.Page_STT_Whisper_Terminate = QWidget() + self.Page_STT_Whisper_Terminate.setObjectName(u"Page_STT_Whisper_Terminate") + self.verticalLayout_91 = QVBoxLayout(self.Page_STT_Whisper_Terminate) + self.verticalLayout_91.setSpacing(0) + self.verticalLayout_91.setObjectName(u"verticalLayout_91") + self.verticalLayout_91.setContentsMargins(0, 0, 0, 0) + self.Button_STT_Whisper_Terminate = QPushButton(self.Page_STT_Whisper_Terminate) + self.Button_STT_Whisper_Terminate.setObjectName(u"Button_STT_Whisper_Terminate") + sizePolicy3.setHeightForWidth(self.Button_STT_Whisper_Terminate.sizePolicy().hasHeightForWidth()) + self.Button_STT_Whisper_Terminate.setSizePolicy(sizePolicy3) + self.Button_STT_Whisper_Terminate.setMinimumSize(QSize(0, 30)) + self.Button_STT_Whisper_Terminate.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_91.addWidget(self.Button_STT_Whisper_Terminate) + + self.StackedWidget_STT_Whisper.addWidget(self.Page_STT_Whisper_Terminate) + + self.horizontalLayout_35.addWidget(self.StackedWidget_STT_Whisper) + + + self.gridLayout_19.addWidget(self.ProgressBar_STT_Whisper, 1, 0, 1, 3) + + self.gridLayout_19.setColumnStretch(0, 3) + self.gridLayout_19.setColumnStretch(1, 10) + self.gridLayout_19.setColumnStretch(2, 7) + self.StackedWidget_Pages_STT.addWidget(self.Subpage_STT_Whisper) + + self.verticalLayout_41.addWidget(self.StackedWidget_Pages_STT) + + self.StackedWidget_Pages.addWidget(self.Page_STT) + self.Page_Dataset = QWidget() + self.Page_Dataset.setObjectName(u"Page_Dataset") + self.verticalLayout_39 = QVBoxLayout(self.Page_Dataset) + self.verticalLayout_39.setSpacing(21) + self.verticalLayout_39.setObjectName(u"verticalLayout_39") + self.verticalLayout_39.setContentsMargins(21, 12, 21, 12) + self.Frame_Dataset_Top = QFrame(self.Page_Dataset) + self.Frame_Dataset_Top.setObjectName(u"Frame_Dataset_Top") + self.Frame_Dataset_Top.setMinimumSize(QSize(0, 60)) + self.Frame_Dataset_Top.setStyleSheet(u"QFrame {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + self.horizontalLayout_17 = QHBoxLayout(self.Frame_Dataset_Top) + self.horizontalLayout_17.setSpacing(0) + self.horizontalLayout_17.setObjectName(u"horizontalLayout_17") + self.horizontalLayout_17.setContentsMargins(0, 0, 0, 0) + self.ToolButton_DatasetCreator_Title_GPTSoVITS = QToolButton(self.Frame_Dataset_Top) + self.ToolButton_DatasetCreator_Title_GPTSoVITS.setObjectName(u"ToolButton_DatasetCreator_Title_GPTSoVITS") + sizePolicy1.setHeightForWidth(self.ToolButton_DatasetCreator_Title_GPTSoVITS.sizePolicy().hasHeightForWidth()) + self.ToolButton_DatasetCreator_Title_GPTSoVITS.setSizePolicy(sizePolicy1) + self.ToolButton_DatasetCreator_Title_GPTSoVITS.setStyleSheet(u"QToolButton {\n" +" font-size: 24px;\n" +" /*text-align: center;*/\n" +" color: rgba(201, 210, 222, 210);\n" +" padding-left: 12px;\n" +" padding-right: 12px;\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QToolButton:hover {\n" +" color: rgba(210, 222, 234, 234);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 123);\n" +"}\n" +"QToolButton:checked {\n" +" color: rgba(210, 222, 234, 255);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 210);\n" +"}\n" +"\n" +"QToolTip {\n" +" color:" + " rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.horizontalLayout_17.addWidget(self.ToolButton_DatasetCreator_Title_GPTSoVITS) + + self.ToolButton_DatasetCreator_Title_VITS = QToolButton(self.Frame_Dataset_Top) + self.ToolButton_DatasetCreator_Title_VITS.setObjectName(u"ToolButton_DatasetCreator_Title_VITS") + sizePolicy1.setHeightForWidth(self.ToolButton_DatasetCreator_Title_VITS.sizePolicy().hasHeightForWidth()) + self.ToolButton_DatasetCreator_Title_VITS.setSizePolicy(sizePolicy1) + self.ToolButton_DatasetCreator_Title_VITS.setStyleSheet(u"QToolButton {\n" +" font-size: 24px;\n" +" /*text-align: center;*/\n" +" color: rgba(201, 210, 222, 210);\n" +" padding-left: 12px;\n" +" padding-right: 12px;\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QToolButton:hover {\n" +" color: rgba(210, 222, 234, 234);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 123);\n" +"}\n" +"QToolButton:checked {\n" +" color: rgba(210, 222, 234, 255);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 210);\n" +"}\n" +"\n" +"QToolTip {\n" +" color:" + " rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.horizontalLayout_17.addWidget(self.ToolButton_DatasetCreator_Title_VITS) + + self.Frame_Dataset_Title_Spacer = QLabel(self.Frame_Dataset_Top) + self.Frame_Dataset_Title_Spacer.setObjectName(u"Frame_Dataset_Title_Spacer") + sizePolicy4.setHeightForWidth(self.Frame_Dataset_Title_Spacer.sizePolicy().hasHeightForWidth()) + self.Frame_Dataset_Title_Spacer.setSizePolicy(sizePolicy4) + self.Frame_Dataset_Title_Spacer.setStyleSheet(u"QLabel {\n" +" font-size: 24px;\n" +" /*text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" padding-left: 12px;\n" +" padding-right: 12px;*/\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}") + + self.horizontalLayout_17.addWidget(self.Frame_Dataset_Title_Spacer) + + + self.verticalLayout_39.addWidget(self.Frame_Dataset_Top) + + self.StackedWidget_Pages_Dataset = QStackedWidget(self.Page_Dataset) + self.StackedWidget_Pages_Dataset.setObjectName(u"StackedWidget_Pages_Dataset") + self.StackedWidget_Pages_Dataset.setStyleSheet(u"QWidget {\n" +" background-color: transparent;\n" +"}\n" +"\n" +"\n" +"/*\n" +"QTabWidget {\n" +" background-color: transparent;\n" +"}\n" +"QTabWidget::tab-bar {\n" +"}\n" +"QTabWidget::pane {\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"\n" +"QTabBar::tab {\n" +" font-size: 18px;\n" +" font-weight: 420;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding: 12px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QTabBar::tab:selected {\n" +" color: rgba(255, 255, 255, 255);\n" +"}\n" +"QTabBar::tab:hover:!selected {\n" +"}\n" +"\n" +"\n" +"QTabBar QToolButton {\n" +"}\n" +"QTabBar QToolButton:hover {\n" +"}\n" +"*/") + self.Subpage_DAT_GPTSoVITS = QWidget() + self.Subpage_DAT_GPTSoVITS.setObjectName(u"Subpage_DAT_GPTSoVITS") + self.gridLayout_108 = QGridLayout(self.Subpage_DAT_GPTSoVITS) + self.gridLayout_108.setSpacing(12) + self.gridLayout_108.setObjectName(u"gridLayout_108") + self.gridLayout_108.setContentsMargins(0, 0, 0, 0) + self.Widget_Left_DAT_GPTSoVITS = QWidget(self.Subpage_DAT_GPTSoVITS) + self.Widget_Left_DAT_GPTSoVITS.setObjectName(u"Widget_Left_DAT_GPTSoVITS") + self.Widget_Left_DAT_GPTSoVITS.setMinimumSize(QSize(150, 0)) + self.Widget_Left_DAT_GPTSoVITS.setStyleSheet(u"QWidget {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QWidget:hover {\n" +"}") + self.verticalLayout_62 = QVBoxLayout(self.Widget_Left_DAT_GPTSoVITS) + self.verticalLayout_62.setSpacing(12) + self.verticalLayout_62.setObjectName(u"verticalLayout_62") + self.verticalLayout_62.setContentsMargins(12, 12, 12, 12) + self.TreeWidget_Catalogue_DAT_GPTSoVITS = QTreeWidget(self.Widget_Left_DAT_GPTSoVITS) + __qtreewidgetitem3 = QTreeWidgetItem(self.TreeWidget_Catalogue_DAT_GPTSoVITS) + QTreeWidgetItem(__qtreewidgetitem3) + self.TreeWidget_Catalogue_DAT_GPTSoVITS.setObjectName(u"TreeWidget_Catalogue_DAT_GPTSoVITS") + self.TreeWidget_Catalogue_DAT_GPTSoVITS.setStyleSheet(u"QTreeView {\n" +" /*font-size: 12px;\n" +" text-align: center;*/\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QTreeView::item {\n" +" background-color: transparent;\n" +" padding: 2.4px;\n" +"}\n" +"QTreeView::item:hover {\n" +" background-color: rgba(66, 66, 66, 198);\n" +"}\n" +"QTreeView::item:selected {\n" +" background-color: ;\n" +"}\n" +"\n" +"QTreeView::branch {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QTreeView::branch:open:has-children {\n" +" image: ;\n" +"}\n" +"QTreeView::branch:closed:has-children {\n" +" image: ;\n" +"}\n" +"QTreeWidget::branch:adjoins-item {\n" +" background-color: ;\n" +"}\n" +"\n" +"\n" +"QScrollBar {\n" +" background-color: rgba(45, 45, 45, 135);\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar:hover {\n" +" background-color: r" + "gba(33, 33, 33, 99);\n" +"}\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +"}\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +"}\n" +"\n" +"QScrollBar::sub-line, QScrollBar::add-line {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-page, QScrollBar::add-page {\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle {\n" +" background-color: rgba(90, 90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}") + + self.verticalLayout_62.addWidget(self.TreeWidget_Catalogue_DAT_GPTSoVITS) + + + self.gridLayout_108.addWidget(self.Widget_Left_DAT_GPTSoVITS, 0, 0, 1, 1) + + self.ScrollArea_Middle_DAT_GPTSoVITS = QScrollArea(self.Subpage_DAT_GPTSoVITS) + self.ScrollArea_Middle_DAT_GPTSoVITS.setObjectName(u"ScrollArea_Middle_DAT_GPTSoVITS") + self.ScrollArea_Middle_DAT_GPTSoVITS.setMinimumSize(QSize(600, 0)) + self.ScrollArea_Middle_DAT_GPTSoVITS.setStyleSheet(u"QScrollArea {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollArea:hover {\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" " + "height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: rgb(90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" borde" + "r-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:horizontal {\n" +" background-color: rgb(90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}") + self.ScrollArea_Middle_DAT_GPTSoVITS.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) + self.ScrollArea_Middle_DAT_GPTSoVITS.setWidgetResizable(True) + self.ScrollArea_Middle_WidgetContents_DAT_GPTSoVITS = QWidget() + self.ScrollArea_Middle_WidgetContents_DAT_GPTSoVITS.setObjectName(u"ScrollArea_Middle_WidgetContents_DAT_GPTSoVITS") + self.ScrollArea_Middle_WidgetContents_DAT_GPTSoVITS.setGeometry(QRect(0, 0, 591, 726)) + self.verticalLayout_63 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_DAT_GPTSoVITS) + self.verticalLayout_63.setSpacing(12) + self.verticalLayout_63.setObjectName(u"verticalLayout_63") + self.verticalLayout_63.setContentsMargins(12, 12, 12, 12) + self.GroupBox_DAT_GPTSoVITS_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_DAT_GPTSoVITS) + self.GroupBox_DAT_GPTSoVITS_InputParams.setObjectName(u"GroupBox_DAT_GPTSoVITS_InputParams") + self.GroupBox_DAT_GPTSoVITS_InputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_123 = QVBoxLayout(self.GroupBox_DAT_GPTSoVITS_InputParams) + self.verticalLayout_123.setSpacing(0) + self.verticalLayout_123.setObjectName(u"verticalLayout_123") + self.verticalLayout_123.setContentsMargins(0, 12, 0, 12) + self.Frame_DAT_GPTSoVITS_InputParams_BasicSettings = QFrame(self.GroupBox_DAT_GPTSoVITS_InputParams) + self.Frame_DAT_GPTSoVITS_InputParams_BasicSettings.setObjectName(u"Frame_DAT_GPTSoVITS_InputParams_BasicSettings") + self.verticalLayout_64 = QVBoxLayout(self.Frame_DAT_GPTSoVITS_InputParams_BasicSettings) + self.verticalLayout_64.setSpacing(0) + self.verticalLayout_64.setObjectName(u"verticalLayout_64") + self.verticalLayout_64.setContentsMargins(0, 0, 0, 0) + self.Frame_DAT_GPTSoVITS_AudioSpeakersDataPath = QFrame(self.Frame_DAT_GPTSoVITS_InputParams_BasicSettings) + self.Frame_DAT_GPTSoVITS_AudioSpeakersDataPath.setObjectName(u"Frame_DAT_GPTSoVITS_AudioSpeakersDataPath") + self.Frame_DAT_GPTSoVITS_AudioSpeakersDataPath.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_GPTSoVITS_AudioSpeakersDataPath.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_82 = QGridLayout(self.Frame_DAT_GPTSoVITS_AudioSpeakersDataPath) + self.gridLayout_82.setSpacing(12) + self.gridLayout_82.setObjectName(u"gridLayout_82") + self.gridLayout_82.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_GPTSoVITS_AudioSpeakersDataPath = QLabel(self.Frame_DAT_GPTSoVITS_AudioSpeakersDataPath) + self.Label_DAT_GPTSoVITS_AudioSpeakersDataPath.setObjectName(u"Label_DAT_GPTSoVITS_AudioSpeakersDataPath") + sizePolicy5.setHeightForWidth(self.Label_DAT_GPTSoVITS_AudioSpeakersDataPath.sizePolicy().hasHeightForWidth()) + self.Label_DAT_GPTSoVITS_AudioSpeakersDataPath.setSizePolicy(sizePolicy5) + self.Label_DAT_GPTSoVITS_AudioSpeakersDataPath.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_82.addWidget(self.Label_DAT_GPTSoVITS_AudioSpeakersDataPath, 0, 0, 1, 1) + + self.HorizontalSpacer_DAT_GPTSoVITS_InputParams = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_82.addItem(self.HorizontalSpacer_DAT_GPTSoVITS_InputParams, 0, 1, 1, 1) + + self.Button_DAT_GPTSoVITS_AudioSpeakersDataPath_Undo = QPushButton(self.Frame_DAT_GPTSoVITS_AudioSpeakersDataPath) + self.Button_DAT_GPTSoVITS_AudioSpeakersDataPath_Undo.setObjectName(u"Button_DAT_GPTSoVITS_AudioSpeakersDataPath_Undo") + self.Button_DAT_GPTSoVITS_AudioSpeakersDataPath_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_GPTSoVITS_AudioSpeakersDataPath_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_GPTSoVITS_AudioSpeakersDataPath_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_82.addWidget(self.Button_DAT_GPTSoVITS_AudioSpeakersDataPath_Undo, 0, 2, 1, 1) + + self.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath = LineEditBase(self.Frame_DAT_GPTSoVITS_AudioSpeakersDataPath) + self.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath.setObjectName(u"LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath") + self.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath.setMinimumSize(QSize(0, 27)) + + self.gridLayout_82.addWidget(self.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath, 1, 0, 1, 3) + + + self.verticalLayout_64.addWidget(self.Frame_DAT_GPTSoVITS_AudioSpeakersDataPath) + + self.Frame_DAT_GPTSoVITS_SRTDir = QFrame(self.Frame_DAT_GPTSoVITS_InputParams_BasicSettings) + self.Frame_DAT_GPTSoVITS_SRTDir.setObjectName(u"Frame_DAT_GPTSoVITS_SRTDir") + self.Frame_DAT_GPTSoVITS_SRTDir.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_GPTSoVITS_SRTDir.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_83 = QGridLayout(self.Frame_DAT_GPTSoVITS_SRTDir) + self.gridLayout_83.setSpacing(12) + self.gridLayout_83.setObjectName(u"gridLayout_83") + self.gridLayout_83.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_GPTSoVITS_SRTDir = QLabel(self.Frame_DAT_GPTSoVITS_SRTDir) + self.Label_DAT_GPTSoVITS_SRTDir.setObjectName(u"Label_DAT_GPTSoVITS_SRTDir") + sizePolicy5.setHeightForWidth(self.Label_DAT_GPTSoVITS_SRTDir.sizePolicy().hasHeightForWidth()) + self.Label_DAT_GPTSoVITS_SRTDir.setSizePolicy(sizePolicy5) + self.Label_DAT_GPTSoVITS_SRTDir.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_83.addWidget(self.Label_DAT_GPTSoVITS_SRTDir, 0, 0, 1, 1) + + self.HorizontalSpacer_DAT_GPTSoVITS_SRTDir = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_83.addItem(self.HorizontalSpacer_DAT_GPTSoVITS_SRTDir, 0, 1, 1, 1) + + self.Button_DAT_GPTSoVITS_SRTDir_Undo = QPushButton(self.Frame_DAT_GPTSoVITS_SRTDir) + self.Button_DAT_GPTSoVITS_SRTDir_Undo.setObjectName(u"Button_DAT_GPTSoVITS_SRTDir_Undo") + self.Button_DAT_GPTSoVITS_SRTDir_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_GPTSoVITS_SRTDir_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_GPTSoVITS_SRTDir_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_83.addWidget(self.Button_DAT_GPTSoVITS_SRTDir_Undo, 0, 2, 1, 1) + + self.LineEdit_DAT_GPTSoVITS_SRTDir = LineEditBase(self.Frame_DAT_GPTSoVITS_SRTDir) + self.LineEdit_DAT_GPTSoVITS_SRTDir.setObjectName(u"LineEdit_DAT_GPTSoVITS_SRTDir") + self.LineEdit_DAT_GPTSoVITS_SRTDir.setMinimumSize(QSize(0, 27)) + + self.gridLayout_83.addWidget(self.LineEdit_DAT_GPTSoVITS_SRTDir, 1, 0, 1, 3) + + + self.verticalLayout_64.addWidget(self.Frame_DAT_GPTSoVITS_SRTDir) + + + self.verticalLayout_123.addWidget(self.Frame_DAT_GPTSoVITS_InputParams_BasicSettings) + + + self.verticalLayout_63.addWidget(self.GroupBox_DAT_GPTSoVITS_InputParams) + + self.GroupBox_DAT_GPTSoVITS_GPTSoVITSParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_DAT_GPTSoVITS) + self.GroupBox_DAT_GPTSoVITS_GPTSoVITSParams.setObjectName(u"GroupBox_DAT_GPTSoVITS_GPTSoVITSParams") + self.GroupBox_DAT_GPTSoVITS_GPTSoVITSParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_124 = QVBoxLayout(self.GroupBox_DAT_GPTSoVITS_GPTSoVITSParams) + self.verticalLayout_124.setSpacing(0) + self.verticalLayout_124.setObjectName(u"verticalLayout_124") + self.verticalLayout_124.setContentsMargins(0, 12, 0, 12) + self.Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings = QFrame(self.GroupBox_DAT_GPTSoVITS_GPTSoVITSParams) + self.Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings.setObjectName(u"Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings") + self.verticalLayout_65 = QVBoxLayout(self.Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings) + self.verticalLayout_65.setSpacing(0) + self.verticalLayout_65.setObjectName(u"verticalLayout_65") + self.verticalLayout_65.setContentsMargins(0, 0, 0, 0) + self.Frame_DAT_GPTSoVITS_DataFormat = QFrame(self.Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings) + self.Frame_DAT_GPTSoVITS_DataFormat.setObjectName(u"Frame_DAT_GPTSoVITS_DataFormat") + self.Frame_DAT_GPTSoVITS_DataFormat.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_GPTSoVITS_DataFormat.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_84 = QGridLayout(self.Frame_DAT_GPTSoVITS_DataFormat) + self.gridLayout_84.setSpacing(12) + self.gridLayout_84.setObjectName(u"gridLayout_84") + self.gridLayout_84.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_GPTSoVITS_DataFormat = QLabel(self.Frame_DAT_GPTSoVITS_DataFormat) + self.Label_DAT_GPTSoVITS_DataFormat.setObjectName(u"Label_DAT_GPTSoVITS_DataFormat") + sizePolicy5.setHeightForWidth(self.Label_DAT_GPTSoVITS_DataFormat.sizePolicy().hasHeightForWidth()) + self.Label_DAT_GPTSoVITS_DataFormat.setSizePolicy(sizePolicy5) + self.Label_DAT_GPTSoVITS_DataFormat.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_84.addWidget(self.Label_DAT_GPTSoVITS_DataFormat, 0, 0, 1, 1) + + self.HorizontalSpacer_DAT_GPTSoVITS_DataFormat = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_84.addItem(self.HorizontalSpacer_DAT_GPTSoVITS_DataFormat, 0, 1, 1, 1) + + self.Button_DAT_GPTSoVITS_DataFormat_Undo = QPushButton(self.Frame_DAT_GPTSoVITS_DataFormat) + self.Button_DAT_GPTSoVITS_DataFormat_Undo.setObjectName(u"Button_DAT_GPTSoVITS_DataFormat_Undo") + self.Button_DAT_GPTSoVITS_DataFormat_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_GPTSoVITS_DataFormat_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_GPTSoVITS_DataFormat_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_84.addWidget(self.Button_DAT_GPTSoVITS_DataFormat_Undo, 0, 2, 1, 1) + + self.LineEdit_DAT_GPTSoVITS_DataFormat = LineEditBase(self.Frame_DAT_GPTSoVITS_DataFormat) + self.LineEdit_DAT_GPTSoVITS_DataFormat.setObjectName(u"LineEdit_DAT_GPTSoVITS_DataFormat") + self.LineEdit_DAT_GPTSoVITS_DataFormat.setMinimumSize(QSize(0, 27)) + + self.gridLayout_84.addWidget(self.LineEdit_DAT_GPTSoVITS_DataFormat, 1, 0, 1, 3) + + + self.verticalLayout_65.addWidget(self.Frame_DAT_GPTSoVITS_DataFormat) + + + self.verticalLayout_124.addWidget(self.Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings) + + + self.verticalLayout_63.addWidget(self.GroupBox_DAT_GPTSoVITS_GPTSoVITSParams) + + self.GroupBox_DAT_GPTSoVITS_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_DAT_GPTSoVITS) + self.GroupBox_DAT_GPTSoVITS_OutputParams.setObjectName(u"GroupBox_DAT_GPTSoVITS_OutputParams") + self.GroupBox_DAT_GPTSoVITS_OutputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_109 = QVBoxLayout(self.GroupBox_DAT_GPTSoVITS_OutputParams) + self.verticalLayout_109.setSpacing(0) + self.verticalLayout_109.setObjectName(u"verticalLayout_109") + self.verticalLayout_109.setContentsMargins(0, 12, 0, 12) + self.Frame_DAT_GPTSoVITS_OutputParams_BasicSettings = QFrame(self.GroupBox_DAT_GPTSoVITS_OutputParams) + self.Frame_DAT_GPTSoVITS_OutputParams_BasicSettings.setObjectName(u"Frame_DAT_GPTSoVITS_OutputParams_BasicSettings") + self.verticalLayout_68 = QVBoxLayout(self.Frame_DAT_GPTSoVITS_OutputParams_BasicSettings) + self.verticalLayout_68.setSpacing(0) + self.verticalLayout_68.setObjectName(u"verticalLayout_68") + self.verticalLayout_68.setContentsMargins(0, 0, 0, 0) + self.Frame_DAT_GPTSoVITS_OutputDirName = QFrame(self.Frame_DAT_GPTSoVITS_OutputParams_BasicSettings) + self.Frame_DAT_GPTSoVITS_OutputDirName.setObjectName(u"Frame_DAT_GPTSoVITS_OutputDirName") + self.Frame_DAT_GPTSoVITS_OutputDirName.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_GPTSoVITS_OutputDirName.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_104 = QGridLayout(self.Frame_DAT_GPTSoVITS_OutputDirName) + self.gridLayout_104.setSpacing(12) + self.gridLayout_104.setObjectName(u"gridLayout_104") + self.gridLayout_104.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_GPTSoVITS_OutputDirName = QLabel(self.Frame_DAT_GPTSoVITS_OutputDirName) + self.Label_DAT_GPTSoVITS_OutputDirName.setObjectName(u"Label_DAT_GPTSoVITS_OutputDirName") + sizePolicy5.setHeightForWidth(self.Label_DAT_GPTSoVITS_OutputDirName.sizePolicy().hasHeightForWidth()) + self.Label_DAT_GPTSoVITS_OutputDirName.setSizePolicy(sizePolicy5) + self.Label_DAT_GPTSoVITS_OutputDirName.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_104.addWidget(self.Label_DAT_GPTSoVITS_OutputDirName, 0, 0, 1, 1) + + self.HorizontalSpacer_DAT_GPTSoVITS_OutputDirName = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_104.addItem(self.HorizontalSpacer_DAT_GPTSoVITS_OutputDirName, 0, 1, 1, 1) + + self.Button_DAT_GPTSoVITS_OutputDirName_Undo = QPushButton(self.Frame_DAT_GPTSoVITS_OutputDirName) + self.Button_DAT_GPTSoVITS_OutputDirName_Undo.setObjectName(u"Button_DAT_GPTSoVITS_OutputDirName_Undo") + self.Button_DAT_GPTSoVITS_OutputDirName_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_GPTSoVITS_OutputDirName_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_GPTSoVITS_OutputDirName_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_104.addWidget(self.Button_DAT_GPTSoVITS_OutputDirName_Undo, 0, 2, 1, 1) + + self.LineEdit_DAT_GPTSoVITS_OutputDirName = LineEditBase(self.Frame_DAT_GPTSoVITS_OutputDirName) + self.LineEdit_DAT_GPTSoVITS_OutputDirName.setObjectName(u"LineEdit_DAT_GPTSoVITS_OutputDirName") + self.LineEdit_DAT_GPTSoVITS_OutputDirName.setMinimumSize(QSize(0, 27)) + + self.gridLayout_104.addWidget(self.LineEdit_DAT_GPTSoVITS_OutputDirName, 1, 0, 1, 3) + + + self.verticalLayout_68.addWidget(self.Frame_DAT_GPTSoVITS_OutputDirName) + + + self.verticalLayout_109.addWidget(self.Frame_DAT_GPTSoVITS_OutputParams_BasicSettings) + + self.CheckBox_DAT_GPTSoVITS_OutputParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_DAT_GPTSoVITS_OutputParams) + self.CheckBox_DAT_GPTSoVITS_OutputParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_DAT_GPTSoVITS_OutputParams_Toggle_AdvanceSettings") + self.CheckBox_DAT_GPTSoVITS_OutputParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding-top: 9px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: transparent;\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_109.addWidget(self.CheckBox_DAT_GPTSoVITS_OutputParams_Toggle_AdvanceSettings) + + self.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings = QFrame(self.GroupBox_DAT_GPTSoVITS_OutputParams) + self.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings.setObjectName(u"Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings") + self.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings.setFrameShape(QFrame.StyledPanel) + self.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings.setFrameShadow(QFrame.Raised) + self.verticalLayout_108 = QVBoxLayout(self.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings) + self.verticalLayout_108.setSpacing(0) + self.verticalLayout_108.setObjectName(u"verticalLayout_108") + self.verticalLayout_108.setContentsMargins(0, 0, 0, 0) + self.Frame_DAT_GPTSoVITS_FileListName = QFrame(self.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings) + self.Frame_DAT_GPTSoVITS_FileListName.setObjectName(u"Frame_DAT_GPTSoVITS_FileListName") + self.Frame_DAT_GPTSoVITS_FileListName.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_GPTSoVITS_FileListName.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_105 = QGridLayout(self.Frame_DAT_GPTSoVITS_FileListName) + self.gridLayout_105.setSpacing(12) + self.gridLayout_105.setObjectName(u"gridLayout_105") + self.gridLayout_105.setContentsMargins(21, 12, 21, 12) + self.Button_DAT_GPTSoVITS_FileListName_Undo = QPushButton(self.Frame_DAT_GPTSoVITS_FileListName) + self.Button_DAT_GPTSoVITS_FileListName_Undo.setObjectName(u"Button_DAT_GPTSoVITS_FileListName_Undo") + self.Button_DAT_GPTSoVITS_FileListName_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_GPTSoVITS_FileListName_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_GPTSoVITS_FileListName_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_105.addWidget(self.Button_DAT_GPTSoVITS_FileListName_Undo, 0, 2, 1, 1) + + self.Label_DAT_GPTSoVITS_FileListName = QLabel(self.Frame_DAT_GPTSoVITS_FileListName) + self.Label_DAT_GPTSoVITS_FileListName.setObjectName(u"Label_DAT_GPTSoVITS_FileListName") + sizePolicy5.setHeightForWidth(self.Label_DAT_GPTSoVITS_FileListName.sizePolicy().hasHeightForWidth()) + self.Label_DAT_GPTSoVITS_FileListName.setSizePolicy(sizePolicy5) + self.Label_DAT_GPTSoVITS_FileListName.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_105.addWidget(self.Label_DAT_GPTSoVITS_FileListName, 0, 0, 1, 1) + + self.LineEdit_DAT_GPTSoVITS_FileListName = LineEditBase(self.Frame_DAT_GPTSoVITS_FileListName) + self.LineEdit_DAT_GPTSoVITS_FileListName.setObjectName(u"LineEdit_DAT_GPTSoVITS_FileListName") + self.LineEdit_DAT_GPTSoVITS_FileListName.setMinimumSize(QSize(0, 27)) + + self.gridLayout_105.addWidget(self.LineEdit_DAT_GPTSoVITS_FileListName, 1, 0, 1, 3) + + self.HorizontalSpacer_DAT_GPTSoVITS_FileListName = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_105.addItem(self.HorizontalSpacer_DAT_GPTSoVITS_FileListName, 0, 1, 1, 1) + + + self.verticalLayout_108.addWidget(self.Frame_DAT_GPTSoVITS_FileListName) + + + self.verticalLayout_109.addWidget(self.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings) + + + self.verticalLayout_63.addWidget(self.GroupBox_DAT_GPTSoVITS_OutputParams) + + self.VerticalSpacer_DAT_GPTSoVITS = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_63.addItem(self.VerticalSpacer_DAT_GPTSoVITS) + + self.ScrollArea_Middle_DAT_GPTSoVITS.setWidget(self.ScrollArea_Middle_WidgetContents_DAT_GPTSoVITS) + + self.gridLayout_108.addWidget(self.ScrollArea_Middle_DAT_GPTSoVITS, 0, 1, 1, 1) + + self.Widget_Right_DAT_GPTSoVITS = QWidget(self.Subpage_DAT_GPTSoVITS) + self.Widget_Right_DAT_GPTSoVITS.setObjectName(u"Widget_Right_DAT_GPTSoVITS") + self.Widget_Right_DAT_GPTSoVITS.setStyleSheet(u"QWidget {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QWidget:hover {\n" +"}") + self.gridLayout_107 = QGridLayout(self.Widget_Right_DAT_GPTSoVITS) + self.gridLayout_107.setSpacing(12) + self.gridLayout_107.setObjectName(u"gridLayout_107") + self.gridLayout_107.setContentsMargins(12, 12, 12, 12) + self.TextBrowser_Params_DAT_GPTSoVITS = QTextBrowser(self.Widget_Right_DAT_GPTSoVITS) + self.TextBrowser_Params_DAT_GPTSoVITS.setObjectName(u"TextBrowser_Params_DAT_GPTSoVITS") + sizePolicy1.setHeightForWidth(self.TextBrowser_Params_DAT_GPTSoVITS.sizePolicy().hasHeightForWidth()) + self.TextBrowser_Params_DAT_GPTSoVITS.setSizePolicy(sizePolicy1) + self.TextBrowser_Params_DAT_GPTSoVITS.setStyleSheet(u"QTextBrowser {\n" +" background-color: rgba(33, 33, 33, 99);\n" +" /*padding-top: 1.5px;*/\n" +" /*padding-bottom: 1.5px;*/\n" +" padding-left: 15px;\n" +" padding-right: 6px;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color:transparent;\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" bord" + "er-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" +" border-color: transparent;\n" +" margin: 0px;\n" "}\n" -"QPushButton:hover {\n" -" color: rgba(255, 255, 255, 240);\n" -" /*background-color: rgba(120, 120, 120, 60);*/\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px" + ";\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" "\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" +"QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" "}") - self.verticalLayout_86.addWidget(self.Button_Process_Execute) + self.gridLayout_107.addWidget(self.TextBrowser_Params_DAT_GPTSoVITS, 0, 0, 1, 2) - self.StackedWidget_Process.addWidget(self.Page_Process_Execute) - self.Page_Process_Terminate = QWidget() - self.Page_Process_Terminate.setObjectName(u"Page_Process_Terminate") - self.verticalLayout_87 = QVBoxLayout(self.Page_Process_Terminate) - self.verticalLayout_87.setSpacing(0) - self.verticalLayout_87.setObjectName(u"verticalLayout_87") - self.verticalLayout_87.setContentsMargins(0, 0, 0, 0) - self.Button_Process_Terminate = QPushButton(self.Page_Process_Terminate) - self.Button_Process_Terminate.setObjectName(u"Button_Process_Terminate") - sizePolicy3.setHeightForWidth(self.Button_Process_Terminate.sizePolicy().hasHeightForWidth()) - self.Button_Process_Terminate.setSizePolicy(sizePolicy3) - self.Button_Process_Terminate.setMinimumSize(QSize(0, 30)) - self.Button_Process_Terminate.setStyleSheet(u"QPushButton {\n" + self.Button_CheckOutput_DAT_GPTSoVITS = QPushButton(self.Widget_Right_DAT_GPTSoVITS) + self.Button_CheckOutput_DAT_GPTSoVITS.setObjectName(u"Button_CheckOutput_DAT_GPTSoVITS") + self.Button_CheckOutput_DAT_GPTSoVITS.setStyleSheet(u"QPushButton {\n" " text-align: center;\n" -" color: rgba(255, 255, 255, 210);\n" -" /*background-color: rgba(90, 90, 90, 45);*/\n" -" padding: 6px;\n" -" border-width: 0px;\n" +" font-size: 12px;\n" +" background-color: transparent;\n" +" padding: 9.9px;\n" +" border-width: 1.5px;\n" " border-radius: 6px;\n" " border-style: solid;\n" " border-color: rgb(90, 90, 90);\n" "}\n" "QPushButton:hover {\n" -" color: rgba(255, 255, 255, 240);\n" -" /*background-color: rgba(120, 120, 120, 60);*/\n" +" border-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" @@ -5264,184 +10353,154 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.verticalLayout_87.addWidget(self.Button_Process_Terminate) - - self.StackedWidget_Process.addWidget(self.Page_Process_Terminate) - - self.verticalLayout_24.addWidget(self.StackedWidget_Process) - + self.gridLayout_107.addWidget(self.Button_CheckOutput_DAT_GPTSoVITS, 1, 0, 1, 2) - self.gridLayout_6.addWidget(self.ProgressBar_Process, 1, 0, 1, 3) - - self.gridLayout_6.setColumnStretch(0, 3) - self.gridLayout_6.setColumnStretch(1, 10) - self.gridLayout_6.setColumnStretch(2, 7) - self.StackedWidget_Pages_Process.addWidget(self.Subpage_Process) - self.verticalLayout_40.addWidget(self.StackedWidget_Pages_Process) + self.gridLayout_108.addWidget(self.Widget_Right_DAT_GPTSoVITS, 0, 2, 1, 1) - self.StackedWidget_Pages.addWidget(self.Page_Process) - self.Page_ASR = QWidget() - self.Page_ASR.setObjectName(u"Page_ASR") - self.verticalLayout_44 = QVBoxLayout(self.Page_ASR) - self.verticalLayout_44.setSpacing(21) - self.verticalLayout_44.setObjectName(u"verticalLayout_44") - self.verticalLayout_44.setContentsMargins(21, 12, 21, 12) - self.Frame_ASR_Top = QFrame(self.Page_ASR) - self.Frame_ASR_Top.setObjectName(u"Frame_ASR_Top") - self.Frame_ASR_Top.setMinimumSize(QSize(0, 60)) - self.Frame_ASR_Top.setStyleSheet(u"QFrame {\n" -" background-color: rgba(36, 36, 36, 123);\n" + self.ProgressBar_DAT_GPTSoVITS = QProgressBar(self.Subpage_DAT_GPTSoVITS) + self.ProgressBar_DAT_GPTSoVITS.setObjectName(u"ProgressBar_DAT_GPTSoVITS") + self.ProgressBar_DAT_GPTSoVITS.setMinimumSize(QSize(0, 30)) + self.ProgressBar_DAT_GPTSoVITS.setStyleSheet(u"QProgressBar {\n" +" text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" background-color: rgb(60, 60, 60);\n" +" padding: 0px;\n" " border-width: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -"}") - self.horizontalLayout_69 = QHBoxLayout(self.Frame_ASR_Top) - self.horizontalLayout_69.setSpacing(0) - self.horizontalLayout_69.setObjectName(u"horizontalLayout_69") - self.horizontalLayout_69.setContentsMargins(0, 0, 0, 0) - self.ToolButton_VoiceIdentifier_Title = QToolButton(self.Frame_ASR_Top) - self.ToolButton_VoiceIdentifier_Title.setObjectName(u"ToolButton_VoiceIdentifier_Title") - sizePolicy1.setHeightForWidth(self.ToolButton_VoiceIdentifier_Title.sizePolicy().hasHeightForWidth()) - self.ToolButton_VoiceIdentifier_Title.setSizePolicy(sizePolicy1) - self.ToolButton_VoiceIdentifier_Title.setStyleSheet(u"QToolButton {\n" -" font-size: 24px;\n" -" /*text-align: center;*/\n" -" color: rgba(201, 210, 222, 210);\n" -" padding-left: 12px;\n" -" padding-right: 12px;\n" -" background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" -" border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" "}\n" -"QToolButton:hover {\n" -" color: rgba(210, 222, 234, 234);\n" -" background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +"\n" +"QProgressBar:chunk {\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(120, 180, 240, 123);\n" +" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" +"}") + self.ProgressBar_DAT_GPTSoVITS.setValue(0) + self.ProgressBar_DAT_GPTSoVITS.setTextVisible(False) + self.horizontalLayout_42 = QHBoxLayout(self.ProgressBar_DAT_GPTSoVITS) + self.horizontalLayout_42.setSpacing(0) + self.horizontalLayout_42.setObjectName(u"horizontalLayout_42") + self.horizontalLayout_42.setContentsMargins(0, 0, 0, 0) + self.StackedWidget_DAT_GPTSoVITS = QStackedWidget(self.ProgressBar_DAT_GPTSoVITS) + self.StackedWidget_DAT_GPTSoVITS.setObjectName(u"StackedWidget_DAT_GPTSoVITS") + self.StackedWidget_DAT_GPTSoVITS.setMaximumSize(QSize(16777215, 30)) + self.StackedWidget_DAT_GPTSoVITS.setStyleSheet(u"QWidget {\n" +" background-color: rgba(90, 90, 90, 45);\n" "}\n" -"QToolButton:checked {\n" -" color: rgba(210, 222, 234, 255);\n" -" background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +"QWidget:hover {\n" +" background-color: rgba(120, 120, 120, 60);\n" +"}") + self.Page_DAT_GPTSoVITS_Execute = QWidget() + self.Page_DAT_GPTSoVITS_Execute.setObjectName(u"Page_DAT_GPTSoVITS_Execute") + self.verticalLayout_101 = QVBoxLayout(self.Page_DAT_GPTSoVITS_Execute) + self.verticalLayout_101.setSpacing(0) + self.verticalLayout_101.setObjectName(u"verticalLayout_101") + self.verticalLayout_101.setContentsMargins(0, 0, 0, 0) + self.Button_DAT_GPTSoVITS_Execute = QPushButton(self.Page_DAT_GPTSoVITS_Execute) + self.Button_DAT_GPTSoVITS_Execute.setObjectName(u"Button_DAT_GPTSoVITS_Execute") + sizePolicy3.setHeightForWidth(self.Button_DAT_GPTSoVITS_Execute.sizePolicy().hasHeightForWidth()) + self.Button_DAT_GPTSoVITS_Execute.setSizePolicy(sizePolicy3) + self.Button_DAT_GPTSoVITS_Execute.setMinimumSize(QSize(0, 30)) + self.Button_DAT_GPTSoVITS_Execute.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(120, 180, 240, 210);\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" "}\n" "\n" +"\n" "QToolTip {\n" -" color:" - " rgba(255, 255, 255, 210);\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" " border-width: 0px;\n" " border-style: solid;\n" "}") - self.horizontalLayout_69.addWidget(self.ToolButton_VoiceIdentifier_Title) - - self.Frame_ASR_Title_Spacer = QLabel(self.Frame_ASR_Top) - self.Frame_ASR_Title_Spacer.setObjectName(u"Frame_ASR_Title_Spacer") - sizePolicy4.setHeightForWidth(self.Frame_ASR_Title_Spacer.sizePolicy().hasHeightForWidth()) - self.Frame_ASR_Title_Spacer.setSizePolicy(sizePolicy4) - self.Frame_ASR_Title_Spacer.setStyleSheet(u"QLabel {\n" -" font-size: 24px;\n" -" /*text-align: center;\n" -" color: rgb(255, 255, 255);\n" -" padding-left: 12px;\n" -" padding-right: 12px;*/\n" -" background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" -" border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" -"}") - - self.horizontalLayout_69.addWidget(self.Frame_ASR_Title_Spacer) - - - self.verticalLayout_44.addWidget(self.Frame_ASR_Top) + self.verticalLayout_101.addWidget(self.Button_DAT_GPTSoVITS_Execute) - self.StackedWidget_Pages_ASR = QStackedWidget(self.Page_ASR) - self.StackedWidget_Pages_ASR.setObjectName(u"StackedWidget_Pages_ASR") - self.StackedWidget_Pages_ASR.setStyleSheet(u"QWidget {\n" -" background-color: transparent;\n" -"}\n" -"\n" -"\n" -"/*\n" -"QTabWidget {\n" -" background-color: transparent;\n" -"}\n" -"QTabWidget::tab-bar {\n" -"}\n" -"QTabWidget::pane {\n" + self.StackedWidget_DAT_GPTSoVITS.addWidget(self.Page_DAT_GPTSoVITS_Execute) + self.Page_DAT_GPTSoVITS_Terminate = QWidget() + self.Page_DAT_GPTSoVITS_Terminate.setObjectName(u"Page_DAT_GPTSoVITS_Terminate") + self.verticalLayout_103 = QVBoxLayout(self.Page_DAT_GPTSoVITS_Terminate) + self.verticalLayout_103.setSpacing(0) + self.verticalLayout_103.setObjectName(u"verticalLayout_103") + self.verticalLayout_103.setContentsMargins(0, 0, 0, 0) + self.Button_DAT_GPTSoVITS_Terminate = QPushButton(self.Page_DAT_GPTSoVITS_Terminate) + self.Button_DAT_GPTSoVITS_Terminate.setObjectName(u"Button_DAT_GPTSoVITS_Terminate") + sizePolicy3.setHeightForWidth(self.Button_DAT_GPTSoVITS_Terminate.sizePolicy().hasHeightForWidth()) + self.Button_DAT_GPTSoVITS_Terminate.setSizePolicy(sizePolicy3) + self.Button_DAT_GPTSoVITS_Terminate.setMinimumSize(QSize(0, 30)) + self.Button_DAT_GPTSoVITS_Terminate.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" " border-width: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" "}\n" "\n" "\n" -"QTabBar::tab {\n" -" font-size: 18px;\n" -" font-weight: 420;\n" -" spacing: 12px;\n" +"QToolTip {\n" " color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" padding: 12px;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +" background-color: transparent;\n" +" border-width: 0px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" -"}\n" -"QTabBar::tab:selected {\n" -" color: rgba(255, 255, 255, 255);\n" -"}\n" -"QTabBar::tab:hover:!selected {\n" -"}\n" -"\n" -"\n" -"QTabBar QToolButton {\n" -"}\n" -"QTabBar QToolButton:hover {\n" -"}\n" -"*/") - self.Subpage_ASR_VPR = QWidget() - self.Subpage_ASR_VPR.setObjectName(u"Subpage_ASR_VPR") - self.gridLayout_21 = QGridLayout(self.Subpage_ASR_VPR) - self.gridLayout_21.setSpacing(12) - self.gridLayout_21.setObjectName(u"gridLayout_21") - self.gridLayout_21.setContentsMargins(0, 0, 0, 0) - self.Widget_Left_ASR_VPR = QWidget(self.Subpage_ASR_VPR) - self.Widget_Left_ASR_VPR.setObjectName(u"Widget_Left_ASR_VPR") - self.Widget_Left_ASR_VPR.setMinimumSize(QSize(150, 0)) - self.Widget_Left_ASR_VPR.setStyleSheet(u"QWidget {\n" +"}") + + self.verticalLayout_103.addWidget(self.Button_DAT_GPTSoVITS_Terminate) + + self.StackedWidget_DAT_GPTSoVITS.addWidget(self.Page_DAT_GPTSoVITS_Terminate) + + self.horizontalLayout_42.addWidget(self.StackedWidget_DAT_GPTSoVITS) + + + self.gridLayout_108.addWidget(self.ProgressBar_DAT_GPTSoVITS, 1, 0, 1, 3) + + self.gridLayout_108.setColumnStretch(0, 3) + self.gridLayout_108.setColumnStretch(1, 10) + self.gridLayout_108.setColumnStretch(2, 7) + self.StackedWidget_Pages_Dataset.addWidget(self.Subpage_DAT_GPTSoVITS) + self.Subpage_DAT_VITS = QWidget() + self.Subpage_DAT_VITS.setObjectName(u"Subpage_DAT_VITS") + self.gridLayout_8 = QGridLayout(self.Subpage_DAT_VITS) + self.gridLayout_8.setSpacing(12) + self.gridLayout_8.setObjectName(u"gridLayout_8") + self.gridLayout_8.setContentsMargins(0, 0, 0, 0) + self.Widget_Left_DAT_VITS = QWidget(self.Subpage_DAT_VITS) + self.Widget_Left_DAT_VITS.setObjectName(u"Widget_Left_DAT_VITS") + self.Widget_Left_DAT_VITS.setMinimumSize(QSize(150, 0)) + self.Widget_Left_DAT_VITS.setStyleSheet(u"QWidget {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" "QWidget:hover {\n" "}") - self.verticalLayout_4 = QVBoxLayout(self.Widget_Left_ASR_VPR) - self.verticalLayout_4.setSpacing(12) - self.verticalLayout_4.setObjectName(u"verticalLayout_4") - self.verticalLayout_4.setContentsMargins(12, 12, 12, 12) - self.TreeWidget_Catalogue_ASR_VPR = QTreeWidget(self.Widget_Left_ASR_VPR) - __qtreewidgetitem1 = QTreeWidgetItem(self.TreeWidget_Catalogue_ASR_VPR) - QTreeWidgetItem(__qtreewidgetitem1) - self.TreeWidget_Catalogue_ASR_VPR.setObjectName(u"TreeWidget_Catalogue_ASR_VPR") - self.TreeWidget_Catalogue_ASR_VPR.setStyleSheet(u"QTreeView {\n" + self.verticalLayout_9 = QVBoxLayout(self.Widget_Left_DAT_VITS) + self.verticalLayout_9.setSpacing(12) + self.verticalLayout_9.setObjectName(u"verticalLayout_9") + self.verticalLayout_9.setContentsMargins(12, 12, 12, 12) + self.TreeWidget_Catalogue_DAT_VITS = QTreeWidget(self.Widget_Left_DAT_VITS) + __qtreewidgetitem4 = QTreeWidgetItem(self.TreeWidget_Catalogue_DAT_VITS) + QTreeWidgetItem(__qtreewidgetitem4) + self.TreeWidget_Catalogue_DAT_VITS.setObjectName(u"TreeWidget_Catalogue_DAT_VITS") + self.TreeWidget_Catalogue_DAT_VITS.setStyleSheet(u"QTreeView {\n" " /*font-size: 12px;\n" " text-align: center;*/\n" " background-color: transparent;\n" @@ -5519,15 +10578,15 @@ def setupUi(self, MainWindow): " background-color: rgba(120, 120, 120, 120);\n" "}") - self.verticalLayout_4.addWidget(self.TreeWidget_Catalogue_ASR_VPR) + self.verticalLayout_9.addWidget(self.TreeWidget_Catalogue_DAT_VITS) - self.gridLayout_21.addWidget(self.Widget_Left_ASR_VPR, 0, 0, 1, 1) + self.gridLayout_8.addWidget(self.Widget_Left_DAT_VITS, 0, 0, 1, 1) - self.ScrollArea_Middle_ASR_VPR = QScrollArea(self.Subpage_ASR_VPR) - self.ScrollArea_Middle_ASR_VPR.setObjectName(u"ScrollArea_Middle_ASR_VPR") - self.ScrollArea_Middle_ASR_VPR.setMinimumSize(QSize(600, 0)) - self.ScrollArea_Middle_ASR_VPR.setStyleSheet(u"QScrollArea {\n" + self.ScrollArea_Middle_DAT_VITS = QScrollArea(self.Subpage_DAT_VITS) + self.ScrollArea_Middle_DAT_VITS.setObjectName(u"ScrollArea_Middle_DAT_VITS") + self.ScrollArea_Middle_DAT_VITS.setMinimumSize(QSize(600, 0)) + self.ScrollArea_Middle_DAT_VITS.setStyleSheet(u"QScrollArea {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" @@ -5620,34 +10679,212 @@ def setupUi(self, MainWindow): " border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"\n" -"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" +"\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:horizontal {\n" +" background-color: rgb(90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}") + self.ScrollArea_Middle_DAT_VITS.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) + self.ScrollArea_Middle_DAT_VITS.setWidgetResizable(True) + self.ScrollArea_Middle_WidgetContents_DAT_VITS = QWidget() + self.ScrollArea_Middle_WidgetContents_DAT_VITS.setObjectName(u"ScrollArea_Middle_WidgetContents_DAT_VITS") + self.ScrollArea_Middle_WidgetContents_DAT_VITS.setGeometry(QRect(0, 0, 591, 1488)) + self.verticalLayout_36 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_DAT_VITS) + self.verticalLayout_36.setSpacing(12) + self.verticalLayout_36.setObjectName(u"verticalLayout_36") + self.verticalLayout_36.setContentsMargins(12, 12, 12, 12) + self.GroupBox_DAT_VITS_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_DAT_VITS) + self.GroupBox_DAT_VITS_InputParams.setObjectName(u"GroupBox_DAT_VITS_InputParams") + self.GroupBox_DAT_VITS_InputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_111 = QVBoxLayout(self.GroupBox_DAT_VITS_InputParams) + self.verticalLayout_111.setSpacing(0) + self.verticalLayout_111.setObjectName(u"verticalLayout_111") + self.verticalLayout_111.setContentsMargins(0, 12, 0, 12) + self.Frame_DAT_VITS_InputParams_BasicSettings = QFrame(self.GroupBox_DAT_VITS_InputParams) + self.Frame_DAT_VITS_InputParams_BasicSettings.setObjectName(u"Frame_DAT_VITS_InputParams_BasicSettings") + self.verticalLayout_29 = QVBoxLayout(self.Frame_DAT_VITS_InputParams_BasicSettings) + self.verticalLayout_29.setSpacing(0) + self.verticalLayout_29.setObjectName(u"verticalLayout_29") + self.verticalLayout_29.setContentsMargins(0, 0, 0, 0) + self.Frame_DAT_VITS_AudioSpeakersDataPath = QFrame(self.Frame_DAT_VITS_InputParams_BasicSettings) + self.Frame_DAT_VITS_AudioSpeakersDataPath.setObjectName(u"Frame_DAT_VITS_AudioSpeakersDataPath") + self.Frame_DAT_VITS_AudioSpeakersDataPath.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_AudioSpeakersDataPath.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_46 = QGridLayout(self.Frame_DAT_VITS_AudioSpeakersDataPath) + self.gridLayout_46.setSpacing(12) + self.gridLayout_46.setObjectName(u"gridLayout_46") + self.gridLayout_46.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_AudioSpeakersDataPath = QLabel(self.Frame_DAT_VITS_AudioSpeakersDataPath) + self.Label_DAT_VITS_AudioSpeakersDataPath.setObjectName(u"Label_DAT_VITS_AudioSpeakersDataPath") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_AudioSpeakersDataPath.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_AudioSpeakersDataPath.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_AudioSpeakersDataPath.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_46.addWidget(self.Label_DAT_VITS_AudioSpeakersDataPath, 0, 0, 1, 1) + + self.HorizontalSpacer_DAT_VITS_InputParams = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_46.addItem(self.HorizontalSpacer_DAT_VITS_InputParams, 0, 1, 1, 1) + + self.Button_DAT_VITS_AudioSpeakersDataPath_Undo = QPushButton(self.Frame_DAT_VITS_AudioSpeakersDataPath) + self.Button_DAT_VITS_AudioSpeakersDataPath_Undo.setObjectName(u"Button_DAT_VITS_AudioSpeakersDataPath_Undo") + self.Button_DAT_VITS_AudioSpeakersDataPath_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_AudioSpeakersDataPath_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_AudioSpeakersDataPath_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_46.addWidget(self.Button_DAT_VITS_AudioSpeakersDataPath_Undo, 0, 2, 1, 1) + + self.LineEdit_DAT_VITS_AudioSpeakersDataPath = LineEditBase(self.Frame_DAT_VITS_AudioSpeakersDataPath) + self.LineEdit_DAT_VITS_AudioSpeakersDataPath.setObjectName(u"LineEdit_DAT_VITS_AudioSpeakersDataPath") + self.LineEdit_DAT_VITS_AudioSpeakersDataPath.setMinimumSize(QSize(0, 27)) + + self.gridLayout_46.addWidget(self.LineEdit_DAT_VITS_AudioSpeakersDataPath, 1, 0, 1, 3) + + + self.verticalLayout_29.addWidget(self.Frame_DAT_VITS_AudioSpeakersDataPath) + + self.Frame_DAT_VITS_SRTDir = QFrame(self.Frame_DAT_VITS_InputParams_BasicSettings) + self.Frame_DAT_VITS_SRTDir.setObjectName(u"Frame_DAT_VITS_SRTDir") + self.Frame_DAT_VITS_SRTDir.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_SRTDir.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_47 = QGridLayout(self.Frame_DAT_VITS_SRTDir) + self.gridLayout_47.setSpacing(12) + self.gridLayout_47.setObjectName(u"gridLayout_47") + self.gridLayout_47.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_SRTDir = QLabel(self.Frame_DAT_VITS_SRTDir) + self.Label_DAT_VITS_SRTDir.setObjectName(u"Label_DAT_VITS_SRTDir") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_SRTDir.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_SRTDir.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_SRTDir.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_47.addWidget(self.Label_DAT_VITS_SRTDir, 0, 0, 1, 1) + + self.HorizontalSpacer_DAT_VITS_SRTDir = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_47.addItem(self.HorizontalSpacer_DAT_VITS_SRTDir, 0, 1, 1, 1) + + self.Button_DAT_VITS_SRTDir_Undo = QPushButton(self.Frame_DAT_VITS_SRTDir) + self.Button_DAT_VITS_SRTDir_Undo.setObjectName(u"Button_DAT_VITS_SRTDir_Undo") + self.Button_DAT_VITS_SRTDir_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_SRTDir_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_SRTDir_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QScrollBar::handle:horizontal {\n" -" background-color: rgb(90, 90, 90);\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" -"}\n" -"QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" "}") - self.ScrollArea_Middle_ASR_VPR.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) - self.ScrollArea_Middle_ASR_VPR.setWidgetResizable(True) - self.ScrollArea_Middle_WidgetContents_ASR_VPR = QWidget() - self.ScrollArea_Middle_WidgetContents_ASR_VPR.setObjectName(u"ScrollArea_Middle_WidgetContents_ASR_VPR") - self.ScrollArea_Middle_WidgetContents_ASR_VPR.setGeometry(QRect(0, 0, 591, 1144)) - self.verticalLayout_7 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_ASR_VPR) - self.verticalLayout_7.setSpacing(12) - self.verticalLayout_7.setObjectName(u"verticalLayout_7") - self.verticalLayout_7.setContentsMargins(12, 12, 12, 12) - self.GroupBox_ASR_VPR_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_ASR_VPR) - self.GroupBox_ASR_VPR_InputParams.setObjectName(u"GroupBox_ASR_VPR_InputParams") - self.GroupBox_ASR_VPR_InputParams.setStyleSheet(u"QGroupBox {\n" + + self.gridLayout_47.addWidget(self.Button_DAT_VITS_SRTDir_Undo, 0, 2, 1, 1) + + self.LineEdit_DAT_VITS_SRTDir = LineEditBase(self.Frame_DAT_VITS_SRTDir) + self.LineEdit_DAT_VITS_SRTDir.setObjectName(u"LineEdit_DAT_VITS_SRTDir") + self.LineEdit_DAT_VITS_SRTDir.setMinimumSize(QSize(0, 27)) + + self.gridLayout_47.addWidget(self.LineEdit_DAT_VITS_SRTDir, 1, 0, 1, 3) + + + self.verticalLayout_29.addWidget(self.Frame_DAT_VITS_SRTDir) + + + self.verticalLayout_111.addWidget(self.Frame_DAT_VITS_InputParams_BasicSettings) + + + self.verticalLayout_36.addWidget(self.GroupBox_DAT_VITS_InputParams) + + self.GroupBox_DAT_VITS_VITSParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_DAT_VITS) + self.GroupBox_DAT_VITS_VITSParams.setObjectName(u"GroupBox_DAT_VITS_VITSParams") + self.GroupBox_DAT_VITS_VITSParams.setStyleSheet(u"QGroupBox {\n" " font-size: 15px;\n" " margin-top: 1.5ex;\n" " color: rgb(255, 255, 255);\n" @@ -5663,20 +10900,20 @@ def setupUi(self, MainWindow): " subcontrol-position: top left;\n" " padding: 3px;\n" "}") - self.verticalLayout_33 = QVBoxLayout(self.GroupBox_ASR_VPR_InputParams) - self.verticalLayout_33.setSpacing(0) - self.verticalLayout_33.setObjectName(u"verticalLayout_33") - self.verticalLayout_33.setContentsMargins(0, 12, 0, 12) - self.Frame_ASR_VPR_InputParams_BasicSettings = QFrame(self.GroupBox_ASR_VPR_InputParams) - self.Frame_ASR_VPR_InputParams_BasicSettings.setObjectName(u"Frame_ASR_VPR_InputParams_BasicSettings") - self.verticalLayout_137 = QVBoxLayout(self.Frame_ASR_VPR_InputParams_BasicSettings) - self.verticalLayout_137.setSpacing(0) - self.verticalLayout_137.setObjectName(u"verticalLayout_137") - self.verticalLayout_137.setContentsMargins(0, 0, 0, 0) - self.Frame_ASR_VPR_AudioDirInput = QFrame(self.Frame_ASR_VPR_InputParams_BasicSettings) - self.Frame_ASR_VPR_AudioDirInput.setObjectName(u"Frame_ASR_VPR_AudioDirInput") - self.Frame_ASR_VPR_AudioDirInput.setMinimumSize(QSize(0, 105)) - self.Frame_ASR_VPR_AudioDirInput.setStyleSheet(u"QFrame {\n" + self.verticalLayout_115 = QVBoxLayout(self.GroupBox_DAT_VITS_VITSParams) + self.verticalLayout_115.setSpacing(0) + self.verticalLayout_115.setObjectName(u"verticalLayout_115") + self.verticalLayout_115.setContentsMargins(0, 12, 0, 12) + self.Frame_DAT_VITS_VITSParams_BasicSettings = QFrame(self.GroupBox_DAT_VITS_VITSParams) + self.Frame_DAT_VITS_VITSParams_BasicSettings.setObjectName(u"Frame_DAT_VITS_VITSParams_BasicSettings") + self.verticalLayout_30 = QVBoxLayout(self.Frame_DAT_VITS_VITSParams_BasicSettings) + self.verticalLayout_30.setSpacing(0) + self.verticalLayout_30.setObjectName(u"verticalLayout_30") + self.verticalLayout_30.setContentsMargins(0, 0, 0, 0) + self.Frame_DAT_VITS_DataFormat = QFrame(self.Frame_DAT_VITS_VITSParams_BasicSettings) + self.Frame_DAT_VITS_DataFormat.setObjectName(u"Frame_DAT_VITS_DataFormat") + self.Frame_DAT_VITS_DataFormat.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_DataFormat.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -5685,15 +10922,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_32 = QGridLayout(self.Frame_ASR_VPR_AudioDirInput) - self.gridLayout_32.setSpacing(12) - self.gridLayout_32.setObjectName(u"gridLayout_32") - self.gridLayout_32.setContentsMargins(21, 12, 21, 12) - self.Label_ASR_VPR_AudioDirInput = QLabel(self.Frame_ASR_VPR_AudioDirInput) - self.Label_ASR_VPR_AudioDirInput.setObjectName(u"Label_ASR_VPR_AudioDirInput") - sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_AudioDirInput.sizePolicy().hasHeightForWidth()) - self.Label_ASR_VPR_AudioDirInput.setSizePolicy(sizePolicy5) - self.Label_ASR_VPR_AudioDirInput.setStyleSheet(u"QLabel {\n" + self.gridLayout_76 = QGridLayout(self.Frame_DAT_VITS_DataFormat) + self.gridLayout_76.setSpacing(12) + self.gridLayout_76.setObjectName(u"gridLayout_76") + self.gridLayout_76.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_DataFormat = QLabel(self.Frame_DAT_VITS_DataFormat) + self.Label_DAT_VITS_DataFormat.setObjectName(u"Label_DAT_VITS_DataFormat") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_DataFormat.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_DataFormat.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_DataFormat.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -5703,17 +10940,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_32.addWidget(self.Label_ASR_VPR_AudioDirInput, 0, 0, 1, 1) + self.gridLayout_76.addWidget(self.Label_DAT_VITS_DataFormat, 0, 0, 1, 1) - self.HorizontalSpacer_ASR_VPR_AudioDirInput = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_DAT_VITS_DataFormat = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_32.addItem(self.HorizontalSpacer_ASR_VPR_AudioDirInput, 0, 1, 1, 1) + self.gridLayout_76.addItem(self.HorizontalSpacer_DAT_VITS_DataFormat, 0, 1, 1, 1) - self.Button_ASR_VPR_AudioDirInput_Undo = QPushButton(self.Frame_ASR_VPR_AudioDirInput) - self.Button_ASR_VPR_AudioDirInput_Undo.setObjectName(u"Button_ASR_VPR_AudioDirInput_Undo") - self.Button_ASR_VPR_AudioDirInput_Undo.setMinimumSize(QSize(27, 27)) - self.Button_ASR_VPR_AudioDirInput_Undo.setMaximumSize(QSize(27, 27)) - self.Button_ASR_VPR_AudioDirInput_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_DAT_VITS_DataFormat_Undo = QPushButton(self.Frame_DAT_VITS_DataFormat) + self.Button_DAT_VITS_DataFormat_Undo.setObjectName(u"Button_DAT_VITS_DataFormat_Undo") + self.Button_DAT_VITS_DataFormat_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_DataFormat_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_DataFormat_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -5734,21 +10971,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_32.addWidget(self.Button_ASR_VPR_AudioDirInput_Undo, 0, 2, 1, 1) + self.gridLayout_76.addWidget(self.Button_DAT_VITS_DataFormat_Undo, 0, 2, 1, 1) - self.LineEdit_ASR_VPR_AudioDirInput = LineEditBase(self.Frame_ASR_VPR_AudioDirInput) - self.LineEdit_ASR_VPR_AudioDirInput.setObjectName(u"LineEdit_ASR_VPR_AudioDirInput") - self.LineEdit_ASR_VPR_AudioDirInput.setMinimumSize(QSize(0, 27)) + self.LineEdit_DAT_VITS_DataFormat = LineEditBase(self.Frame_DAT_VITS_DataFormat) + self.LineEdit_DAT_VITS_DataFormat.setObjectName(u"LineEdit_DAT_VITS_DataFormat") + self.LineEdit_DAT_VITS_DataFormat.setMinimumSize(QSize(0, 27)) - self.gridLayout_32.addWidget(self.LineEdit_ASR_VPR_AudioDirInput, 1, 0, 1, 3) + self.gridLayout_76.addWidget(self.LineEdit_DAT_VITS_DataFormat, 1, 0, 1, 3) - self.verticalLayout_137.addWidget(self.Frame_ASR_VPR_AudioDirInput) + self.verticalLayout_30.addWidget(self.Frame_DAT_VITS_DataFormat) - self.Frame_ASR_VPR_StdAudioSpeaker = QFrame(self.Frame_ASR_VPR_InputParams_BasicSettings) - self.Frame_ASR_VPR_StdAudioSpeaker.setObjectName(u"Frame_ASR_VPR_StdAudioSpeaker") - self.Frame_ASR_VPR_StdAudioSpeaker.setMinimumSize(QSize(0, 222)) - self.Frame_ASR_VPR_StdAudioSpeaker.setStyleSheet(u"QFrame {\n" + self.Frame_DAT_VITS_AddAuxiliaryData = QFrame(self.Frame_DAT_VITS_VITSParams_BasicSettings) + self.Frame_DAT_VITS_AddAuxiliaryData.setObjectName(u"Frame_DAT_VITS_AddAuxiliaryData") + self.Frame_DAT_VITS_AddAuxiliaryData.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_AddAuxiliaryData.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -5757,15 +10994,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.verticalLayout_12 = QVBoxLayout(self.Frame_ASR_VPR_StdAudioSpeaker) - self.verticalLayout_12.setSpacing(12) - self.verticalLayout_12.setObjectName(u"verticalLayout_12") - self.verticalLayout_12.setContentsMargins(21, 12, 21, 12) - self.Label_ASR_VPR_StdAudioSpeaker = QLabel(self.Frame_ASR_VPR_StdAudioSpeaker) - self.Label_ASR_VPR_StdAudioSpeaker.setObjectName(u"Label_ASR_VPR_StdAudioSpeaker") - sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_StdAudioSpeaker.sizePolicy().hasHeightForWidth()) - self.Label_ASR_VPR_StdAudioSpeaker.setSizePolicy(sizePolicy5) - self.Label_ASR_VPR_StdAudioSpeaker.setStyleSheet(u"QLabel {\n" + self.gridLayout_48 = QGridLayout(self.Frame_DAT_VITS_AddAuxiliaryData) + self.gridLayout_48.setSpacing(12) + self.gridLayout_48.setObjectName(u"gridLayout_48") + self.gridLayout_48.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_AddAuxiliaryData = QLabel(self.Frame_DAT_VITS_AddAuxiliaryData) + self.Label_DAT_VITS_AddAuxiliaryData.setObjectName(u"Label_DAT_VITS_AddAuxiliaryData") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_AddAuxiliaryData.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_AddAuxiliaryData.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_AddAuxiliaryData.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -5775,54 +11012,92 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.verticalLayout_12.addWidget(self.Label_ASR_VPR_StdAudioSpeaker) - - self.Table_ASR_VPR_StdAudioSpeaker = Table_EditAudioSpeaker(self.Frame_ASR_VPR_StdAudioSpeaker) - self.Table_ASR_VPR_StdAudioSpeaker.setObjectName(u"Table_ASR_VPR_StdAudioSpeaker") - - self.verticalLayout_12.addWidget(self.Table_ASR_VPR_StdAudioSpeaker) - - - self.verticalLayout_137.addWidget(self.Frame_ASR_VPR_StdAudioSpeaker) + self.gridLayout_48.addWidget(self.Label_DAT_VITS_AddAuxiliaryData, 0, 0, 1, 1) + self.HorizontalSpacer_DAT_VITS_AddAuxiliaryData = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.verticalLayout_33.addWidget(self.Frame_ASR_VPR_InputParams_BasicSettings) + self.gridLayout_48.addItem(self.HorizontalSpacer_DAT_VITS_AddAuxiliaryData, 0, 1, 1, 1) + self.Button_DAT_VITS_AddAuxiliaryData_Undo = QPushButton(self.Frame_DAT_VITS_AddAuxiliaryData) + self.Button_DAT_VITS_AddAuxiliaryData_Undo.setObjectName(u"Button_DAT_VITS_AddAuxiliaryData_Undo") + self.Button_DAT_VITS_AddAuxiliaryData_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_AddAuxiliaryData_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_AddAuxiliaryData_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") - self.verticalLayout_7.addWidget(self.GroupBox_ASR_VPR_InputParams) + self.gridLayout_48.addWidget(self.Button_DAT_VITS_AddAuxiliaryData_Undo, 0, 2, 1, 1) - self.GroupBox_ASR_VPR_VPRParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_ASR_VPR) - self.GroupBox_ASR_VPR_VPRParams.setObjectName(u"GroupBox_ASR_VPR_VPRParams") - self.GroupBox_ASR_VPR_VPRParams.setStyleSheet(u"QGroupBox {\n" -" font-size: 15px;\n" -" margin-top: 1.5ex;\n" -" color: rgb(255, 255, 255);\n" + self.CheckBox_DAT_VITS_AddAuxiliaryData = QCheckBox(self.Frame_DAT_VITS_AddAuxiliaryData) + self.CheckBox_DAT_VITS_AddAuxiliaryData.setObjectName(u"CheckBox_DAT_VITS_AddAuxiliaryData") + self.CheckBox_DAT_VITS_AddAuxiliaryData.setMinimumSize(QSize(0, 27)) + self.CheckBox_DAT_VITS_AddAuxiliaryData.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" spacing: 12.3px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" border-width: 1px;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -" border-color: transparent;\n" "}\n" -"QGroupBox::title {\n" -" left: 9px;\n" -" margin-left: 0px;\n" -" subcontrol-origin: margin;\n" -" subcontrol-position: top left;\n" -" padding: 3px;\n" -"}") - self.verticalLayout_47 = QVBoxLayout(self.GroupBox_ASR_VPR_VPRParams) - self.verticalLayout_47.setSpacing(0) - self.verticalLayout_47.setObjectName(u"verticalLayout_47") - self.verticalLayout_47.setContentsMargins(0, 12, 0, 12) - self.Frame_ASR_VPR_VPRParams_BasicSettings = QFrame(self.GroupBox_ASR_VPR_VPRParams) - self.Frame_ASR_VPR_VPRParams_BasicSettings.setObjectName(u"Frame_ASR_VPR_VPRParams_BasicSettings") - self.verticalLayout_45 = QVBoxLayout(self.Frame_ASR_VPR_VPRParams_BasicSettings) - self.verticalLayout_45.setSpacing(0) - self.verticalLayout_45.setObjectName(u"verticalLayout_45") - self.verticalLayout_45.setContentsMargins(0, 0, 0, 0) - self.Frame_ASR_VPR_DecisionThreshold = QFrame(self.Frame_ASR_VPR_VPRParams_BasicSettings) - self.Frame_ASR_VPR_DecisionThreshold.setObjectName(u"Frame_ASR_VPR_DecisionThreshold") - self.Frame_ASR_VPR_DecisionThreshold.setMinimumSize(QSize(0, 105)) - self.Frame_ASR_VPR_DecisionThreshold.setStyleSheet(u"QFrame {\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 24px;\n" +" height: 24px;\n" +" background-color: transparent;\n" +" padding: 1.2px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_48.addWidget(self.CheckBox_DAT_VITS_AddAuxiliaryData, 1, 0, 1, 3) + + + self.verticalLayout_30.addWidget(self.Frame_DAT_VITS_AddAuxiliaryData) + + self.Frame_DAT_VITS_AuxiliaryDataPath = QFrame(self.Frame_DAT_VITS_VITSParams_BasicSettings) + self.Frame_DAT_VITS_AuxiliaryDataPath.setObjectName(u"Frame_DAT_VITS_AuxiliaryDataPath") + self.Frame_DAT_VITS_AuxiliaryDataPath.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_AuxiliaryDataPath.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -5831,15 +11106,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_33 = QGridLayout(self.Frame_ASR_VPR_DecisionThreshold) - self.gridLayout_33.setSpacing(12) - self.gridLayout_33.setObjectName(u"gridLayout_33") - self.gridLayout_33.setContentsMargins(21, 12, 21, 12) - self.Label_ASR_VPR_DecisionThreshold = QLabel(self.Frame_ASR_VPR_DecisionThreshold) - self.Label_ASR_VPR_DecisionThreshold.setObjectName(u"Label_ASR_VPR_DecisionThreshold") - sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_DecisionThreshold.sizePolicy().hasHeightForWidth()) - self.Label_ASR_VPR_DecisionThreshold.setSizePolicy(sizePolicy5) - self.Label_ASR_VPR_DecisionThreshold.setStyleSheet(u"QLabel {\n" + self.gridLayout_53 = QGridLayout(self.Frame_DAT_VITS_AuxiliaryDataPath) + self.gridLayout_53.setSpacing(12) + self.gridLayout_53.setObjectName(u"gridLayout_53") + self.gridLayout_53.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_AuxiliaryDataPath = QLabel(self.Frame_DAT_VITS_AuxiliaryDataPath) + self.Label_DAT_VITS_AuxiliaryDataPath.setObjectName(u"Label_DAT_VITS_AuxiliaryDataPath") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_AuxiliaryDataPath.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_AuxiliaryDataPath.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_AuxiliaryDataPath.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -5849,56 +11124,29 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_33.addWidget(self.Label_ASR_VPR_DecisionThreshold, 0, 0, 1, 1) + self.gridLayout_53.addWidget(self.Label_DAT_VITS_AuxiliaryDataPath, 0, 0, 1, 1) - self.DoubleSpinBox_ASR_VPR_DecisionThreshold = QDoubleSpinBox(self.Frame_ASR_VPR_DecisionThreshold) - self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setObjectName(u"DoubleSpinBox_ASR_VPR_DecisionThreshold") - self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setEnabled(True) - self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setMinimumSize(QSize(0, 27)) - self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setStyleSheet(u"QDoubleSpinBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" + self.HorizontalSpacer_DAT_VITS_AuxiliaryDataPath = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_53.addItem(self.HorizontalSpacer_DAT_VITS_AuxiliaryDataPath, 0, 1, 1, 1) + + self.Button_DAT_VITS_AuxiliaryDataPath_Undo = QPushButton(self.Frame_DAT_VITS_AuxiliaryDataPath) + self.Button_DAT_VITS_AuxiliaryDataPath_Undo.setObjectName(u"Button_DAT_VITS_AuxiliaryDataPath_Undo") + self.Button_DAT_VITS_AuxiliaryDataPath_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_AuxiliaryDataPath_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_AuxiliaryDataPath_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" +" padding: 4.5px;\n" " border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QDoubleSpinBox:hover {\n" +"QPushButton:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QDoubleSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" -"}\n" -"QDoubleSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" -"}\n" -"\n" -"QDoubleSpinBox::down-button {\n" -" /*width: 9px;\n" -" /*height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" -"}\n" -"QDoubleSpinBox::down-arr" - "ow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" -"}\n" -"\n" "\n" "QToolTip {\n" " color: rgba(255, 255, 255, 210);\n" @@ -5906,26 +11154,55 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setMinimum(-999999.000000000000000) - self.DoubleSpinBox_ASR_VPR_DecisionThreshold.setMaximum(999999.000000000000000) - self.gridLayout_33.addWidget(self.DoubleSpinBox_ASR_VPR_DecisionThreshold, 1, 0, 1, 3) + self.gridLayout_53.addWidget(self.Button_DAT_VITS_AuxiliaryDataPath_Undo, 0, 2, 1, 1) - self.Button_ASR_VPR_DecisionThreshold_Undo = QPushButton(self.Frame_ASR_VPR_DecisionThreshold) - self.Button_ASR_VPR_DecisionThreshold_Undo.setObjectName(u"Button_ASR_VPR_DecisionThreshold_Undo") - self.Button_ASR_VPR_DecisionThreshold_Undo.setMinimumSize(QSize(27, 27)) - self.Button_ASR_VPR_DecisionThreshold_Undo.setMaximumSize(QSize(27, 27)) - self.Button_ASR_VPR_DecisionThreshold_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" + self.LineEdit_DAT_VITS_AuxiliaryDataPath = LineEditBase(self.Frame_DAT_VITS_AuxiliaryDataPath) + self.LineEdit_DAT_VITS_AuxiliaryDataPath.setObjectName(u"LineEdit_DAT_VITS_AuxiliaryDataPath") + self.LineEdit_DAT_VITS_AuxiliaryDataPath.setMinimumSize(QSize(0, 27)) + + self.gridLayout_53.addWidget(self.LineEdit_DAT_VITS_AuxiliaryDataPath, 1, 0, 1, 3) + + + self.verticalLayout_30.addWidget(self.Frame_DAT_VITS_AuxiliaryDataPath) + + + self.verticalLayout_115.addWidget(self.Frame_DAT_VITS_VITSParams_BasicSettings) + + self.CheckBox_DAT_VITS_VITSParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_DAT_VITS_VITSParams) + self.CheckBox_DAT_VITS_VITSParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_DAT_VITS_VITSParams_Toggle_AdvanceSettings") + self.CheckBox_DAT_VITS_VITSParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" +" padding-top: 9px;\n" +" border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox::indicator:hover {\n" +" background-color: transparent;\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" "}\n" "\n" "\n" @@ -5936,19 +11213,20 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_33.addWidget(self.Button_ASR_VPR_DecisionThreshold_Undo, 0, 2, 1, 1) - - self.HorizontalSpacer_ASR_VPR_DecisionThreshold = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_33.addItem(self.HorizontalSpacer_ASR_VPR_DecisionThreshold, 0, 1, 1, 1) - - - self.verticalLayout_45.addWidget(self.Frame_ASR_VPR_DecisionThreshold) + self.verticalLayout_115.addWidget(self.CheckBox_DAT_VITS_VITSParams_Toggle_AdvanceSettings) - self.Frame_ASR_VPR_ModelPath = QFrame(self.Frame_ASR_VPR_VPRParams_BasicSettings) - self.Frame_ASR_VPR_ModelPath.setObjectName(u"Frame_ASR_VPR_ModelPath") - self.Frame_ASR_VPR_ModelPath.setMinimumSize(QSize(0, 105)) - self.Frame_ASR_VPR_ModelPath.setStyleSheet(u"QFrame {\n" + self.Frame_DAT_VITS_VITSParams_AdvanceSettings = QFrame(self.GroupBox_DAT_VITS_VITSParams) + self.Frame_DAT_VITS_VITSParams_AdvanceSettings.setObjectName(u"Frame_DAT_VITS_VITSParams_AdvanceSettings") + self.Frame_DAT_VITS_VITSParams_AdvanceSettings.setFrameShape(QFrame.StyledPanel) + self.Frame_DAT_VITS_VITSParams_AdvanceSettings.setFrameShadow(QFrame.Raised) + self.verticalLayout_53 = QVBoxLayout(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) + self.verticalLayout_53.setSpacing(0) + self.verticalLayout_53.setObjectName(u"verticalLayout_53") + self.verticalLayout_53.setContentsMargins(0, 0, 0, 0) + self.Frame_DAT_VITS_TrainRatio = QFrame(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) + self.Frame_DAT_VITS_TrainRatio.setObjectName(u"Frame_DAT_VITS_TrainRatio") + self.Frame_DAT_VITS_TrainRatio.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_TrainRatio.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -5957,15 +11235,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_34 = QGridLayout(self.Frame_ASR_VPR_ModelPath) - self.gridLayout_34.setSpacing(12) - self.gridLayout_34.setObjectName(u"gridLayout_34") - self.gridLayout_34.setContentsMargins(21, 12, 21, 12) - self.Label_ASR_VPR_ModelPath = QLabel(self.Frame_ASR_VPR_ModelPath) - self.Label_ASR_VPR_ModelPath.setObjectName(u"Label_ASR_VPR_ModelPath") - sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_ModelPath.sizePolicy().hasHeightForWidth()) - self.Label_ASR_VPR_ModelPath.setSizePolicy(sizePolicy5) - self.Label_ASR_VPR_ModelPath.setStyleSheet(u"QLabel {\n" + self.gridLayout_49 = QGridLayout(self.Frame_DAT_VITS_TrainRatio) + self.gridLayout_49.setSpacing(12) + self.gridLayout_49.setObjectName(u"gridLayout_49") + self.gridLayout_49.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_TrainRatio = QLabel(self.Frame_DAT_VITS_TrainRatio) + self.Label_DAT_VITS_TrainRatio.setObjectName(u"Label_DAT_VITS_TrainRatio") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_TrainRatio.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_TrainRatio.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_TrainRatio.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -5975,17 +11253,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_34.addWidget(self.Label_ASR_VPR_ModelPath, 0, 0, 1, 1) + self.gridLayout_49.addWidget(self.Label_DAT_VITS_TrainRatio, 0, 0, 1, 1) - self.HorizontalSpacer_ASR_VPR_ModelPath = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_DAT_VITS_TrainRatio = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_34.addItem(self.HorizontalSpacer_ASR_VPR_ModelPath, 0, 1, 1, 1) + self.gridLayout_49.addItem(self.HorizontalSpacer_DAT_VITS_TrainRatio, 0, 1, 1, 1) - self.Button_ASR_VPR_ModelPath_Undo = QPushButton(self.Frame_ASR_VPR_ModelPath) - self.Button_ASR_VPR_ModelPath_Undo.setObjectName(u"Button_ASR_VPR_ModelPath_Undo") - self.Button_ASR_VPR_ModelPath_Undo.setMinimumSize(QSize(27, 27)) - self.Button_ASR_VPR_ModelPath_Undo.setMaximumSize(QSize(27, 27)) - self.Button_ASR_VPR_ModelPath_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_DAT_VITS_TrainRatio_Undo = QPushButton(self.Frame_DAT_VITS_TrainRatio) + self.Button_DAT_VITS_TrainRatio_Undo.setObjectName(u"Button_DAT_VITS_TrainRatio_Undo") + self.Button_DAT_VITS_TrainRatio_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_TrainRatio_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_TrainRatio_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -6006,54 +11284,54 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_34.addWidget(self.Button_ASR_VPR_ModelPath_Undo, 0, 2, 1, 1) - - self.LineEdit_ASR_VPR_ModelPath = LineEditBase(self.Frame_ASR_VPR_ModelPath) - self.LineEdit_ASR_VPR_ModelPath.setObjectName(u"LineEdit_ASR_VPR_ModelPath") - self.LineEdit_ASR_VPR_ModelPath.setMinimumSize(QSize(0, 27)) - - self.gridLayout_34.addWidget(self.LineEdit_ASR_VPR_ModelPath, 1, 0, 1, 3) - - - self.verticalLayout_45.addWidget(self.Frame_ASR_VPR_ModelPath) - - - self.verticalLayout_47.addWidget(self.Frame_ASR_VPR_VPRParams_BasicSettings) + self.gridLayout_49.addWidget(self.Button_DAT_VITS_TrainRatio_Undo, 0, 2, 1, 1) - self.CheckBox_ASR_VPR_VPRParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_ASR_VPR_VPRParams) - self.CheckBox_ASR_VPR_VPRParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_ASR_VPR_VPRParams_Toggle_AdvanceSettings") - self.CheckBox_ASR_VPR_VPRParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" font-weight: 630;\n" -" spacing: 12px;\n" -" color: rgba(255, 255, 255, 210);\n" + self.DoubleSpinBox_DAT_VITS_TrainRatio = QDoubleSpinBox(self.Frame_DAT_VITS_TrainRatio) + self.DoubleSpinBox_DAT_VITS_TrainRatio.setObjectName(u"DoubleSpinBox_DAT_VITS_TrainRatio") + self.DoubleSpinBox_DAT_VITS_TrainRatio.setEnabled(True) + self.DoubleSpinBox_DAT_VITS_TrainRatio.setMinimumSize(QSize(0, 27)) + self.DoubleSpinBox_DAT_VITS_TrainRatio.setStyleSheet(u"QDoubleSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" " background-color: transparent;\n" -" padding-top: 9px;\n" -" border-width: 0px;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QDoubleSpinBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"QDoubleSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" "}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" +"QDoubleSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" "}\n" "\n" -"QCheckBox::indicator {\n" -" width: 12px;\n" -" height: 12px;\n" -" background-color: transparent;\n" -" padding: 0px;\n" +"QDoubleSpinBox::down-button {\n" +" /*width: 9px;\n" +" /*height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"QCheckBox::indicator:hover {\n" -" background-color: transparent;\n" "}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" -"}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" +"QDoubleSpinBox::down-arr" + "ow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" "}\n" "\n" "\n" @@ -6063,19 +11341,18 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") + self.DoubleSpinBox_DAT_VITS_TrainRatio.setMinimum(-999999.000000000000000) + self.DoubleSpinBox_DAT_VITS_TrainRatio.setMaximum(999999.000000000000000) - self.verticalLayout_47.addWidget(self.CheckBox_ASR_VPR_VPRParams_Toggle_AdvanceSettings) + self.gridLayout_49.addWidget(self.DoubleSpinBox_DAT_VITS_TrainRatio, 1, 0, 1, 3) - self.Frame_ASR_VPR_VPRParams_AdvanceSettings = QFrame(self.GroupBox_ASR_VPR_VPRParams) - self.Frame_ASR_VPR_VPRParams_AdvanceSettings.setObjectName(u"Frame_ASR_VPR_VPRParams_AdvanceSettings") - self.verticalLayout_21 = QVBoxLayout(self.Frame_ASR_VPR_VPRParams_AdvanceSettings) - self.verticalLayout_21.setSpacing(0) - self.verticalLayout_21.setObjectName(u"verticalLayout_21") - self.verticalLayout_21.setContentsMargins(0, 0, 0, 0) - self.Frame_ASR_VPR_ModelType = QFrame(self.Frame_ASR_VPR_VPRParams_AdvanceSettings) - self.Frame_ASR_VPR_ModelType.setObjectName(u"Frame_ASR_VPR_ModelType") - self.Frame_ASR_VPR_ModelType.setMinimumSize(QSize(0, 105)) - self.Frame_ASR_VPR_ModelType.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_53.addWidget(self.Frame_DAT_VITS_TrainRatio) + + self.Frame_DAT_VITS_SampleRate = QFrame(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) + self.Frame_DAT_VITS_SampleRate.setObjectName(u"Frame_DAT_VITS_SampleRate") + self.Frame_DAT_VITS_SampleRate.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_SampleRate.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -6084,15 +11361,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_35 = QGridLayout(self.Frame_ASR_VPR_ModelType) - self.gridLayout_35.setSpacing(12) - self.gridLayout_35.setObjectName(u"gridLayout_35") - self.gridLayout_35.setContentsMargins(21, 12, 21, 12) - self.Label_ASR_VPR_ModelType = QLabel(self.Frame_ASR_VPR_ModelType) - self.Label_ASR_VPR_ModelType.setObjectName(u"Label_ASR_VPR_ModelType") - sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_ModelType.sizePolicy().hasHeightForWidth()) - self.Label_ASR_VPR_ModelType.setSizePolicy(sizePolicy5) - self.Label_ASR_VPR_ModelType.setStyleSheet(u"QLabel {\n" + self.gridLayout_50 = QGridLayout(self.Frame_DAT_VITS_SampleRate) + self.gridLayout_50.setSpacing(12) + self.gridLayout_50.setObjectName(u"gridLayout_50") + self.gridLayout_50.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_SampleRate = QLabel(self.Frame_DAT_VITS_SampleRate) + self.Label_DAT_VITS_SampleRate.setObjectName(u"Label_DAT_VITS_SampleRate") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_SampleRate.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_SampleRate.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_SampleRate.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -6102,17 +11379,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_35.addWidget(self.Label_ASR_VPR_ModelType, 0, 0, 1, 1) + self.gridLayout_50.addWidget(self.Label_DAT_VITS_SampleRate, 0, 0, 1, 1) - self.HorizontalSpacer_ASR_VPR_ModelType = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_DAT_VITS_SampleRate = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_35.addItem(self.HorizontalSpacer_ASR_VPR_ModelType, 0, 1, 1, 1) + self.gridLayout_50.addItem(self.HorizontalSpacer_DAT_VITS_SampleRate, 0, 1, 1, 1) - self.Button_ASR_VPR_ModelType_Undo = QPushButton(self.Frame_ASR_VPR_ModelType) - self.Button_ASR_VPR_ModelType_Undo.setObjectName(u"Button_ASR_VPR_ModelType_Undo") - self.Button_ASR_VPR_ModelType_Undo.setMinimumSize(QSize(27, 27)) - self.Button_ASR_VPR_ModelType_Undo.setMaximumSize(QSize(27, 27)) - self.Button_ASR_VPR_ModelType_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_DAT_VITS_SampleRate_Undo = QPushButton(self.Frame_DAT_VITS_SampleRate) + self.Button_DAT_VITS_SampleRate_Undo.setObjectName(u"Button_DAT_VITS_SampleRate_Undo") + self.Button_DAT_VITS_SampleRate_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_SampleRate_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_SampleRate_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -6133,12 +11410,12 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_35.addWidget(self.Button_ASR_VPR_ModelType_Undo, 0, 2, 1, 1) + self.gridLayout_50.addWidget(self.Button_DAT_VITS_SampleRate_Undo, 0, 2, 1, 1) - self.ComboBox_ASR_VPR_ModelType = QComboBox(self.Frame_ASR_VPR_ModelType) - self.ComboBox_ASR_VPR_ModelType.setObjectName(u"ComboBox_ASR_VPR_ModelType") - self.ComboBox_ASR_VPR_ModelType.setMinimumSize(QSize(0, 27)) - self.ComboBox_ASR_VPR_ModelType.setStyleSheet(u"QComboBox {\n" + self.ComboBox_DAT_VITS_SampleRate = QComboBox(self.Frame_DAT_VITS_SampleRate) + self.ComboBox_DAT_VITS_SampleRate.setObjectName(u"ComboBox_DAT_VITS_SampleRate") + self.ComboBox_DAT_VITS_SampleRate.setMinimumSize(QSize(0, 27)) + self.ComboBox_DAT_VITS_SampleRate.setStyleSheet(u"QComboBox {\n" " /*font-size: 12px;*/\n" " text-align: left;\n" " background-color: transparent;\n" @@ -6309,15 +11586,15 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_35.addWidget(self.ComboBox_ASR_VPR_ModelType, 1, 0, 1, 3) + self.gridLayout_50.addWidget(self.ComboBox_DAT_VITS_SampleRate, 1, 0, 1, 3) - self.verticalLayout_21.addWidget(self.Frame_ASR_VPR_ModelType) + self.verticalLayout_53.addWidget(self.Frame_DAT_VITS_SampleRate) - self.Frame_ASR_VPR_FeatureMethod = QFrame(self.Frame_ASR_VPR_VPRParams_AdvanceSettings) - self.Frame_ASR_VPR_FeatureMethod.setObjectName(u"Frame_ASR_VPR_FeatureMethod") - self.Frame_ASR_VPR_FeatureMethod.setMinimumSize(QSize(0, 105)) - self.Frame_ASR_VPR_FeatureMethod.setStyleSheet(u"QFrame {\n" + self.Frame_DAT_VITS_SampleWidth = QFrame(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) + self.Frame_DAT_VITS_SampleWidth.setObjectName(u"Frame_DAT_VITS_SampleWidth") + self.Frame_DAT_VITS_SampleWidth.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_SampleWidth.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -6326,15 +11603,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_36 = QGridLayout(self.Frame_ASR_VPR_FeatureMethod) - self.gridLayout_36.setSpacing(12) - self.gridLayout_36.setObjectName(u"gridLayout_36") - self.gridLayout_36.setContentsMargins(21, 12, 21, 12) - self.Label_ASR_VPR_FeatureMethod = QLabel(self.Frame_ASR_VPR_FeatureMethod) - self.Label_ASR_VPR_FeatureMethod.setObjectName(u"Label_ASR_VPR_FeatureMethod") - sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_FeatureMethod.sizePolicy().hasHeightForWidth()) - self.Label_ASR_VPR_FeatureMethod.setSizePolicy(sizePolicy5) - self.Label_ASR_VPR_FeatureMethod.setStyleSheet(u"QLabel {\n" + self.gridLayout_51 = QGridLayout(self.Frame_DAT_VITS_SampleWidth) + self.gridLayout_51.setSpacing(12) + self.gridLayout_51.setObjectName(u"gridLayout_51") + self.gridLayout_51.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_SampleWidth = QLabel(self.Frame_DAT_VITS_SampleWidth) + self.Label_DAT_VITS_SampleWidth.setObjectName(u"Label_DAT_VITS_SampleWidth") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_SampleWidth.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_SampleWidth.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_SampleWidth.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -6344,17 +11621,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_36.addWidget(self.Label_ASR_VPR_FeatureMethod, 0, 0, 1, 1) + self.gridLayout_51.addWidget(self.Label_DAT_VITS_SampleWidth, 0, 0, 1, 1) - self.HorizontalSpacer_ASR_VPR_FeatureMethod = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_DAT_VITS_SampleWidth = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_36.addItem(self.HorizontalSpacer_ASR_VPR_FeatureMethod, 0, 1, 1, 1) + self.gridLayout_51.addItem(self.HorizontalSpacer_DAT_VITS_SampleWidth, 0, 1, 1, 1) - self.Button_ASR_VPR_FeatureMethod_Undo = QPushButton(self.Frame_ASR_VPR_FeatureMethod) - self.Button_ASR_VPR_FeatureMethod_Undo.setObjectName(u"Button_ASR_VPR_FeatureMethod_Undo") - self.Button_ASR_VPR_FeatureMethod_Undo.setMinimumSize(QSize(27, 27)) - self.Button_ASR_VPR_FeatureMethod_Undo.setMaximumSize(QSize(27, 27)) - self.Button_ASR_VPR_FeatureMethod_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_DAT_VITS_SampleWidth_Undo = QPushButton(self.Frame_DAT_VITS_SampleWidth) + self.Button_DAT_VITS_SampleWidth_Undo.setObjectName(u"Button_DAT_VITS_SampleWidth_Undo") + self.Button_DAT_VITS_SampleWidth_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_SampleWidth_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_SampleWidth_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -6375,12 +11652,12 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_36.addWidget(self.Button_ASR_VPR_FeatureMethod_Undo, 0, 2, 1, 1) + self.gridLayout_51.addWidget(self.Button_DAT_VITS_SampleWidth_Undo, 0, 2, 1, 1) - self.ComboBox_ASR_VPR_FeatureMethod = QComboBox(self.Frame_ASR_VPR_FeatureMethod) - self.ComboBox_ASR_VPR_FeatureMethod.setObjectName(u"ComboBox_ASR_VPR_FeatureMethod") - self.ComboBox_ASR_VPR_FeatureMethod.setMinimumSize(QSize(0, 27)) - self.ComboBox_ASR_VPR_FeatureMethod.setStyleSheet(u"QComboBox {\n" + self.ComboBox_DAT_VITS_SampleWidth = QComboBox(self.Frame_DAT_VITS_SampleWidth) + self.ComboBox_DAT_VITS_SampleWidth.setObjectName(u"ComboBox_DAT_VITS_SampleWidth") + self.ComboBox_DAT_VITS_SampleWidth.setMinimumSize(QSize(0, 27)) + self.ComboBox_DAT_VITS_SampleWidth.setStyleSheet(u"QComboBox {\n" " /*font-size: 12px;*/\n" " text-align: left;\n" " background-color: transparent;\n" @@ -6525,22 +11802,134 @@ def setupUi(self, MainWindow): " border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" " + "border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_51.addWidget(self.ComboBox_DAT_VITS_SampleWidth, 1, 0, 1, 3) + + + self.verticalLayout_53.addWidget(self.Frame_DAT_VITS_SampleWidth) + + self.Frame_DAT_VITS_ToMono = QFrame(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) + self.Frame_DAT_VITS_ToMono.setObjectName(u"Frame_DAT_VITS_ToMono") + self.Frame_DAT_VITS_ToMono.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_ToMono.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_52 = QGridLayout(self.Frame_DAT_VITS_ToMono) + self.gridLayout_52.setSpacing(12) + self.gridLayout_52.setObjectName(u"gridLayout_52") + self.gridLayout_52.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_ToMono = QLabel(self.Frame_DAT_VITS_ToMono) + self.Label_DAT_VITS_ToMono.setObjectName(u"Label_DAT_VITS_ToMono") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_ToMono.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_ToMono.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_ToMono.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_52.addWidget(self.Label_DAT_VITS_ToMono, 0, 0, 1, 1) + + self.HorizontalSpacer_DAT_VITS_ToMono = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_52.addItem(self.HorizontalSpacer_DAT_VITS_ToMono, 0, 1, 1, 1) + + self.Button_DAT_VITS_ToMono_Undo = QPushButton(self.Frame_DAT_VITS_ToMono) + self.Button_DAT_VITS_ToMono_Undo.setObjectName(u"Button_DAT_VITS_ToMono_Undo") + self.Button_DAT_VITS_ToMono_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_ToMono_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_ToMono_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_52.addWidget(self.Button_DAT_VITS_ToMono_Undo, 0, 2, 1, 1) + + self.CheckBox_DAT_VITS_ToMono = QCheckBox(self.Frame_DAT_VITS_ToMono) + self.CheckBox_DAT_VITS_ToMono.setObjectName(u"CheckBox_DAT_VITS_ToMono") + self.CheckBox_DAT_VITS_ToMono.setMinimumSize(QSize(0, 27)) + self.CheckBox_DAT_VITS_ToMono.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" spacing: 12.3px;\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" -" background-color: transparent;\n" -" " - "border-width: 0px;\n" -" border-radius: 0px;\n" +"QCheckBox::indicator {\n" +" width: 24px;\n" +" height: 24px;\n" +" background-color: transparent;\n" +" padding: 1.2px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" "}\n" "\n" "\n" @@ -6551,15 +11940,49 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_36.addWidget(self.ComboBox_ASR_VPR_FeatureMethod, 1, 0, 1, 3) + self.gridLayout_52.addWidget(self.CheckBox_DAT_VITS_ToMono, 1, 0, 1, 3) - self.verticalLayout_21.addWidget(self.Frame_ASR_VPR_FeatureMethod) + self.verticalLayout_53.addWidget(self.Frame_DAT_VITS_ToMono) - self.Frame_ASR_VPR_DurationOfAudio = QFrame(self.Frame_ASR_VPR_VPRParams_AdvanceSettings) - self.Frame_ASR_VPR_DurationOfAudio.setObjectName(u"Frame_ASR_VPR_DurationOfAudio") - self.Frame_ASR_VPR_DurationOfAudio.setMinimumSize(QSize(0, 105)) - self.Frame_ASR_VPR_DurationOfAudio.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_115.addWidget(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) + + + self.verticalLayout_36.addWidget(self.GroupBox_DAT_VITS_VITSParams) + + self.GroupBox_DAT_VITS_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_DAT_VITS) + self.GroupBox_DAT_VITS_OutputParams.setObjectName(u"GroupBox_DAT_VITS_OutputParams") + self.GroupBox_DAT_VITS_OutputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_107 = QVBoxLayout(self.GroupBox_DAT_VITS_OutputParams) + self.verticalLayout_107.setSpacing(0) + self.verticalLayout_107.setObjectName(u"verticalLayout_107") + self.verticalLayout_107.setContentsMargins(0, 12, 0, 12) + self.Frame_DAT_VITS_OutputParams_BasicSettings = QFrame(self.GroupBox_DAT_VITS_OutputParams) + self.Frame_DAT_VITS_OutputParams_BasicSettings.setObjectName(u"Frame_DAT_VITS_OutputParams_BasicSettings") + self.verticalLayout_31 = QVBoxLayout(self.Frame_DAT_VITS_OutputParams_BasicSettings) + self.verticalLayout_31.setSpacing(0) + self.verticalLayout_31.setObjectName(u"verticalLayout_31") + self.verticalLayout_31.setContentsMargins(0, 0, 0, 0) + self.Frame_DAT_VITS_OutputDirName = QFrame(self.Frame_DAT_VITS_OutputParams_BasicSettings) + self.Frame_DAT_VITS_OutputDirName.setObjectName(u"Frame_DAT_VITS_OutputDirName") + self.Frame_DAT_VITS_OutputDirName.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_OutputDirName.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -6568,15 +11991,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_37 = QGridLayout(self.Frame_ASR_VPR_DurationOfAudio) - self.gridLayout_37.setSpacing(12) - self.gridLayout_37.setObjectName(u"gridLayout_37") - self.gridLayout_37.setContentsMargins(21, 12, 21, 12) - self.Label_ASR_VPR_DurationOfAudio = QLabel(self.Frame_ASR_VPR_DurationOfAudio) - self.Label_ASR_VPR_DurationOfAudio.setObjectName(u"Label_ASR_VPR_DurationOfAudio") - sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_DurationOfAudio.sizePolicy().hasHeightForWidth()) - self.Label_ASR_VPR_DurationOfAudio.setSizePolicy(sizePolicy5) - self.Label_ASR_VPR_DurationOfAudio.setStyleSheet(u"QLabel {\n" + self.gridLayout_54 = QGridLayout(self.Frame_DAT_VITS_OutputDirName) + self.gridLayout_54.setSpacing(12) + self.gridLayout_54.setObjectName(u"gridLayout_54") + self.gridLayout_54.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_OutputDirName = QLabel(self.Frame_DAT_VITS_OutputDirName) + self.Label_DAT_VITS_OutputDirName.setObjectName(u"Label_DAT_VITS_OutputDirName") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_OutputDirName.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_OutputDirName.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_OutputDirName.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -6586,17 +12009,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_37.addWidget(self.Label_ASR_VPR_DurationOfAudio, 0, 0, 1, 1) + self.gridLayout_54.addWidget(self.Label_DAT_VITS_OutputDirName, 0, 0, 1, 1) - self.HorizontalSpacer_ASR_VPR_DurationOfAudio = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_DAT_VITS_OutputDirName = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_37.addItem(self.HorizontalSpacer_ASR_VPR_DurationOfAudio, 0, 1, 1, 1) + self.gridLayout_54.addItem(self.HorizontalSpacer_DAT_VITS_OutputDirName, 0, 1, 1, 1) - self.Button_ASR_VPR_DurationOfAudio_Undo = QPushButton(self.Frame_ASR_VPR_DurationOfAudio) - self.Button_ASR_VPR_DurationOfAudio_Undo.setObjectName(u"Button_ASR_VPR_DurationOfAudio_Undo") - self.Button_ASR_VPR_DurationOfAudio_Undo.setMinimumSize(QSize(27, 27)) - self.Button_ASR_VPR_DurationOfAudio_Undo.setMaximumSize(QSize(27, 27)) - self.Button_ASR_VPR_DurationOfAudio_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_DAT_VITS_OutputDirName_Undo = QPushButton(self.Frame_DAT_VITS_OutputDirName) + self.Button_DAT_VITS_OutputDirName_Undo.setObjectName(u"Button_DAT_VITS_OutputDirName_Undo") + self.Button_DAT_VITS_OutputDirName_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_OutputDirName_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_OutputDirName_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -6617,54 +12040,105 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_37.addWidget(self.Button_ASR_VPR_DurationOfAudio_Undo, 0, 2, 1, 1) + self.gridLayout_54.addWidget(self.Button_DAT_VITS_OutputDirName_Undo, 0, 2, 1, 1) - self.DoubleSpinBox_ASR_VPR_DurationOfAudio = QDoubleSpinBox(self.Frame_ASR_VPR_DurationOfAudio) - self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setObjectName(u"DoubleSpinBox_ASR_VPR_DurationOfAudio") - self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setEnabled(True) - self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setMinimumSize(QSize(0, 27)) - self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setStyleSheet(u"QDoubleSpinBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" + self.LineEdit_DAT_VITS_OutputDirName = LineEditBase(self.Frame_DAT_VITS_OutputDirName) + self.LineEdit_DAT_VITS_OutputDirName.setObjectName(u"LineEdit_DAT_VITS_OutputDirName") + self.LineEdit_DAT_VITS_OutputDirName.setMinimumSize(QSize(0, 27)) + + self.gridLayout_54.addWidget(self.LineEdit_DAT_VITS_OutputDirName, 1, 0, 1, 3) + + + self.verticalLayout_31.addWidget(self.Frame_DAT_VITS_OutputDirName) + + + self.verticalLayout_107.addWidget(self.Frame_DAT_VITS_OutputParams_BasicSettings) + + self.CheckBox_DAT_VITS_OutputParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_DAT_VITS_OutputParams) + self.CheckBox_DAT_VITS_OutputParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_DAT_VITS_OutputParams_Toggle_AdvanceSettings") + self.CheckBox_DAT_VITS_OutputParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" +" padding-top: 9px;\n" +" border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QDoubleSpinBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" "}\n" "\n" -"QDoubleSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" +"QCheckBox::indicator {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" " border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" "}\n" -"QDoubleSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"QCheckBox::indicator:hover {\n" +" background-color: transparent;\n" +"}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" "}\n" "\n" -"QDoubleSpinBox::down-button {\n" -" /*width: 9px;\n" -" /*height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_107.addWidget(self.CheckBox_DAT_VITS_OutputParams_Toggle_AdvanceSettings) + + self.Frame_DAT_VITS_OutputParams_AdvanceSettings = QFrame(self.GroupBox_DAT_VITS_OutputParams) + self.Frame_DAT_VITS_OutputParams_AdvanceSettings.setObjectName(u"Frame_DAT_VITS_OutputParams_AdvanceSettings") + self.Frame_DAT_VITS_OutputParams_AdvanceSettings.setFrameShape(QFrame.StyledPanel) + self.Frame_DAT_VITS_OutputParams_AdvanceSettings.setFrameShadow(QFrame.Raised) + self.verticalLayout_88 = QVBoxLayout(self.Frame_DAT_VITS_OutputParams_AdvanceSettings) + self.verticalLayout_88.setSpacing(0) + self.verticalLayout_88.setObjectName(u"verticalLayout_88") + self.verticalLayout_88.setContentsMargins(0, 0, 0, 0) + self.Frame_DAT_VITS_FileListNameTraining = QFrame(self.Frame_DAT_VITS_OutputParams_AdvanceSettings) + self.Frame_DAT_VITS_FileListNameTraining.setObjectName(u"Frame_DAT_VITS_FileListNameTraining") + self.Frame_DAT_VITS_FileListNameTraining.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_FileListNameTraining.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" "}\n" -"QDoubleSpinBox::down-arr" - "ow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_55 = QGridLayout(self.Frame_DAT_VITS_FileListNameTraining) + self.gridLayout_55.setSpacing(12) + self.gridLayout_55.setObjectName(u"gridLayout_55") + self.gridLayout_55.setContentsMargins(21, 12, 21, 12) + self.Button_DAT_VITS_FileListNameTraining_Undo = QPushButton(self.Frame_DAT_VITS_FileListNameTraining) + self.Button_DAT_VITS_FileListNameTraining_Undo.setObjectName(u"Button_DAT_VITS_FileListNameTraining_Undo") + self.Button_DAT_VITS_FileListNameTraining_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_FileListNameTraining_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_FileListNameTraining_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" @@ -6674,52 +12148,42 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setMinimum(-999999.000000000000000) - self.DoubleSpinBox_ASR_VPR_DurationOfAudio.setMaximum(999999.000000000000000) - self.gridLayout_37.addWidget(self.DoubleSpinBox_ASR_VPR_DurationOfAudio, 1, 0, 1, 3) + self.gridLayout_55.addWidget(self.Button_DAT_VITS_FileListNameTraining_Undo, 0, 2, 1, 1) + self.Label_DAT_VITS_FileListNameTraining = QLabel(self.Frame_DAT_VITS_FileListNameTraining) + self.Label_DAT_VITS_FileListNameTraining.setObjectName(u"Label_DAT_VITS_FileListNameTraining") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_FileListNameTraining.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_FileListNameTraining.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_FileListNameTraining.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") - self.verticalLayout_21.addWidget(self.Frame_ASR_VPR_DurationOfAudio) + self.gridLayout_55.addWidget(self.Label_DAT_VITS_FileListNameTraining, 0, 0, 1, 1) + self.LineEdit_DAT_VITS_FileListNameTraining = LineEditBase(self.Frame_DAT_VITS_FileListNameTraining) + self.LineEdit_DAT_VITS_FileListNameTraining.setObjectName(u"LineEdit_DAT_VITS_FileListNameTraining") + self.LineEdit_DAT_VITS_FileListNameTraining.setMinimumSize(QSize(0, 27)) - self.verticalLayout_47.addWidget(self.Frame_ASR_VPR_VPRParams_AdvanceSettings) + self.gridLayout_55.addWidget(self.LineEdit_DAT_VITS_FileListNameTraining, 1, 0, 1, 3) + self.HorizontalSpacer_DAT_VITS_FileListNameTraining = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.verticalLayout_7.addWidget(self.GroupBox_ASR_VPR_VPRParams) + self.gridLayout_55.addItem(self.HorizontalSpacer_DAT_VITS_FileListNameTraining, 0, 1, 1, 1) - self.GroupBox_ASR_VPR_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_ASR_VPR) - self.GroupBox_ASR_VPR_OutputParams.setObjectName(u"GroupBox_ASR_VPR_OutputParams") - self.GroupBox_ASR_VPR_OutputParams.setStyleSheet(u"QGroupBox {\n" -" font-size: 15px;\n" -" margin-top: 1.5ex;\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 1px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -"}\n" -"QGroupBox::title {\n" -" left: 9px;\n" -" margin-left: 0px;\n" -" subcontrol-origin: margin;\n" -" subcontrol-position: top left;\n" -" padding: 3px;\n" -"}") - self.verticalLayout_48 = QVBoxLayout(self.GroupBox_ASR_VPR_OutputParams) - self.verticalLayout_48.setSpacing(0) - self.verticalLayout_48.setObjectName(u"verticalLayout_48") - self.verticalLayout_48.setContentsMargins(0, 12, 0, 12) - self.Frame_ASR_VPR_OutputParams_BasicSettings = QFrame(self.GroupBox_ASR_VPR_OutputParams) - self.Frame_ASR_VPR_OutputParams_BasicSettings.setObjectName(u"Frame_ASR_VPR_OutputParams_BasicSettings") - self.verticalLayout_139 = QVBoxLayout(self.Frame_ASR_VPR_OutputParams_BasicSettings) - self.verticalLayout_139.setSpacing(0) - self.verticalLayout_139.setObjectName(u"verticalLayout_139") - self.verticalLayout_139.setContentsMargins(0, 0, 0, 0) - self.Frame_ASR_VPR_AudioSpeakersDataPath = QFrame(self.Frame_ASR_VPR_OutputParams_BasicSettings) - self.Frame_ASR_VPR_AudioSpeakersDataPath.setObjectName(u"Frame_ASR_VPR_AudioSpeakersDataPath") - self.Frame_ASR_VPR_AudioSpeakersDataPath.setMinimumSize(QSize(0, 105)) - self.Frame_ASR_VPR_AudioSpeakersDataPath.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_88.addWidget(self.Frame_DAT_VITS_FileListNameTraining) + + self.Frame_DAT_VITS_FileListNameValidation = QFrame(self.Frame_DAT_VITS_OutputParams_AdvanceSettings) + self.Frame_DAT_VITS_FileListNameValidation.setObjectName(u"Frame_DAT_VITS_FileListNameValidation") + self.Frame_DAT_VITS_FileListNameValidation.setMinimumSize(QSize(0, 105)) + self.Frame_DAT_VITS_FileListNameValidation.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -6728,15 +12192,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_38 = QGridLayout(self.Frame_ASR_VPR_AudioSpeakersDataPath) - self.gridLayout_38.setSpacing(12) - self.gridLayout_38.setObjectName(u"gridLayout_38") - self.gridLayout_38.setContentsMargins(21, 12, 21, 12) - self.Label_ASR_VPR_AudioSpeakersDataPath = QLabel(self.Frame_ASR_VPR_AudioSpeakersDataPath) - self.Label_ASR_VPR_AudioSpeakersDataPath.setObjectName(u"Label_ASR_VPR_AudioSpeakersDataPath") - sizePolicy5.setHeightForWidth(self.Label_ASR_VPR_AudioSpeakersDataPath.sizePolicy().hasHeightForWidth()) - self.Label_ASR_VPR_AudioSpeakersDataPath.setSizePolicy(sizePolicy5) - self.Label_ASR_VPR_AudioSpeakersDataPath.setStyleSheet(u"QLabel {\n" + self.gridLayout_56 = QGridLayout(self.Frame_DAT_VITS_FileListNameValidation) + self.gridLayout_56.setSpacing(12) + self.gridLayout_56.setObjectName(u"gridLayout_56") + self.gridLayout_56.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_FileListNameValidation = QLabel(self.Frame_DAT_VITS_FileListNameValidation) + self.Label_DAT_VITS_FileListNameValidation.setObjectName(u"Label_DAT_VITS_FileListNameValidation") + sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_FileListNameValidation.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_FileListNameValidation.setSizePolicy(sizePolicy5) + self.Label_DAT_VITS_FileListNameValidation.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -6746,17 +12210,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_38.addWidget(self.Label_ASR_VPR_AudioSpeakersDataPath, 0, 0, 1, 1) + self.gridLayout_56.addWidget(self.Label_DAT_VITS_FileListNameValidation, 0, 0, 1, 1) - self.HorizontalSpacer_ASR_VPR_AudioSpeakersDataPath = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_DAT_VITS_FileListNameValidation = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_38.addItem(self.HorizontalSpacer_ASR_VPR_AudioSpeakersDataPath, 0, 1, 1, 1) + self.gridLayout_56.addItem(self.HorizontalSpacer_DAT_VITS_FileListNameValidation, 0, 1, 1, 1) - self.Button_ASR_VPR_AudioSpeakersDataPath_Undo = QPushButton(self.Frame_ASR_VPR_AudioSpeakersDataPath) - self.Button_ASR_VPR_AudioSpeakersDataPath_Undo.setObjectName(u"Button_ASR_VPR_AudioSpeakersDataPath_Undo") - self.Button_ASR_VPR_AudioSpeakersDataPath_Undo.setMinimumSize(QSize(27, 27)) - self.Button_ASR_VPR_AudioSpeakersDataPath_Undo.setMaximumSize(QSize(27, 27)) - self.Button_ASR_VPR_AudioSpeakersDataPath_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_DAT_VITS_FileListNameValidation_Undo = QPushButton(self.Frame_DAT_VITS_FileListNameValidation) + self.Button_DAT_VITS_FileListNameValidation_Undo.setObjectName(u"Button_DAT_VITS_FileListNameValidation_Undo") + self.Button_DAT_VITS_FileListNameValidation_Undo.setMinimumSize(QSize(27, 27)) + self.Button_DAT_VITS_FileListNameValidation_Undo.setMaximumSize(QSize(27, 27)) + self.Button_DAT_VITS_FileListNameValidation_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -6777,45 +12241,49 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_38.addWidget(self.Button_ASR_VPR_AudioSpeakersDataPath_Undo, 0, 2, 1, 1) + self.gridLayout_56.addWidget(self.Button_DAT_VITS_FileListNameValidation_Undo, 0, 2, 1, 1) - self.LineEdit_ASR_VPR_AudioSpeakersDataPath = LineEditBase(self.Frame_ASR_VPR_AudioSpeakersDataPath) - self.LineEdit_ASR_VPR_AudioSpeakersDataPath.setObjectName(u"LineEdit_ASR_VPR_AudioSpeakersDataPath") - self.LineEdit_ASR_VPR_AudioSpeakersDataPath.setMinimumSize(QSize(0, 27)) + self.LineEdit_DAT_VITS_FileListNameValidation = LineEditBase(self.Frame_DAT_VITS_FileListNameValidation) + self.LineEdit_DAT_VITS_FileListNameValidation.setObjectName(u"LineEdit_DAT_VITS_FileListNameValidation") + self.LineEdit_DAT_VITS_FileListNameValidation.setMinimumSize(QSize(0, 27)) - self.gridLayout_38.addWidget(self.LineEdit_ASR_VPR_AudioSpeakersDataPath, 1, 0, 1, 3) + self.gridLayout_56.addWidget(self.LineEdit_DAT_VITS_FileListNameValidation, 1, 0, 1, 3) - self.verticalLayout_139.addWidget(self.Frame_ASR_VPR_AudioSpeakersDataPath) + self.verticalLayout_88.addWidget(self.Frame_DAT_VITS_FileListNameValidation) - self.verticalLayout_48.addWidget(self.Frame_ASR_VPR_OutputParams_BasicSettings) + self.verticalLayout_107.addWidget(self.Frame_DAT_VITS_OutputParams_AdvanceSettings) - self.verticalLayout_7.addWidget(self.GroupBox_ASR_VPR_OutputParams) + self.verticalLayout_36.addWidget(self.GroupBox_DAT_VITS_OutputParams) - self.ScrollArea_Middle_ASR_VPR.setWidget(self.ScrollArea_Middle_WidgetContents_ASR_VPR) + self.VerticalSpacer_DAT_VITS = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - self.gridLayout_21.addWidget(self.ScrollArea_Middle_ASR_VPR, 0, 1, 1, 1) + self.verticalLayout_36.addItem(self.VerticalSpacer_DAT_VITS) - self.Widget_Right_ASR_VPR = QWidget(self.Subpage_ASR_VPR) - self.Widget_Right_ASR_VPR.setObjectName(u"Widget_Right_ASR_VPR") - self.Widget_Right_ASR_VPR.setStyleSheet(u"QWidget {\n" + self.ScrollArea_Middle_DAT_VITS.setWidget(self.ScrollArea_Middle_WidgetContents_DAT_VITS) + + self.gridLayout_8.addWidget(self.ScrollArea_Middle_DAT_VITS, 0, 1, 1, 1) + + self.Widget_Right_DAT_VITS = QWidget(self.Subpage_DAT_VITS) + self.Widget_Right_DAT_VITS.setObjectName(u"Widget_Right_DAT_VITS") + self.Widget_Right_DAT_VITS.setStyleSheet(u"QWidget {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" "QWidget:hover {\n" "}") - self.gridLayout_14 = QGridLayout(self.Widget_Right_ASR_VPR) - self.gridLayout_14.setSpacing(12) - self.gridLayout_14.setObjectName(u"gridLayout_14") - self.gridLayout_14.setContentsMargins(12, 12, 12, 12) - self.TextBrowser_Params_ASR_VPR = QTextBrowser(self.Widget_Right_ASR_VPR) - self.TextBrowser_Params_ASR_VPR.setObjectName(u"TextBrowser_Params_ASR_VPR") - sizePolicy1.setHeightForWidth(self.TextBrowser_Params_ASR_VPR.sizePolicy().hasHeightForWidth()) - self.TextBrowser_Params_ASR_VPR.setSizePolicy(sizePolicy1) - self.TextBrowser_Params_ASR_VPR.setStyleSheet(u"QTextBrowser {\n" + self.gridLayout_16 = QGridLayout(self.Widget_Right_DAT_VITS) + self.gridLayout_16.setSpacing(12) + self.gridLayout_16.setObjectName(u"gridLayout_16") + self.gridLayout_16.setContentsMargins(12, 12, 12, 12) + self.TextBrowser_Params_DAT_VITS = QTextBrowser(self.Widget_Right_DAT_VITS) + self.TextBrowser_Params_DAT_VITS.setObjectName(u"TextBrowser_Params_DAT_VITS") + sizePolicy1.setHeightForWidth(self.TextBrowser_Params_DAT_VITS.sizePolicy().hasHeightForWidth()) + self.TextBrowser_Params_DAT_VITS.setSizePolicy(sizePolicy1) + self.TextBrowser_Params_DAT_VITS.setStyleSheet(u"QTextBrowser {\n" " background-color: rgba(33, 33, 33, 99);\n" " /*padding-top: 1.5px;*/\n" " /*padding-bottom: 1.5px;*/\n" @@ -6928,11 +12396,11 @@ def setupUi(self, MainWindow): " background-color: rgb(120, 120, 120);\n" "}") - self.gridLayout_14.addWidget(self.TextBrowser_Params_ASR_VPR, 0, 0, 1, 2) + self.gridLayout_16.addWidget(self.TextBrowser_Params_DAT_VITS, 0, 0, 1, 2) - self.Button_CheckOutput_ASR_VPR = QPushButton(self.Widget_Right_ASR_VPR) - self.Button_CheckOutput_ASR_VPR.setObjectName(u"Button_CheckOutput_ASR_VPR") - self.Button_CheckOutput_ASR_VPR.setStyleSheet(u"QPushButton {\n" + self.Button_CheckOutput_DAT_VITS = QPushButton(self.Widget_Right_DAT_VITS) + self.Button_CheckOutput_DAT_VITS.setObjectName(u"Button_CheckOutput_DAT_VITS") + self.Button_CheckOutput_DAT_VITS.setStyleSheet(u"QPushButton {\n" " text-align: center;\n" " font-size: 12px;\n" " background-color: transparent;\n" @@ -6954,15 +12422,15 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_14.addWidget(self.Button_CheckOutput_ASR_VPR, 1, 0, 1, 2) + self.gridLayout_16.addWidget(self.Button_CheckOutput_DAT_VITS, 1, 0, 1, 2) - self.gridLayout_21.addWidget(self.Widget_Right_ASR_VPR, 0, 2, 1, 1) + self.gridLayout_8.addWidget(self.Widget_Right_DAT_VITS, 0, 2, 1, 1) - self.ProgressBar_ASR_VPR = QProgressBar(self.Subpage_ASR_VPR) - self.ProgressBar_ASR_VPR.setObjectName(u"ProgressBar_ASR_VPR") - self.ProgressBar_ASR_VPR.setMinimumSize(QSize(0, 30)) - self.ProgressBar_ASR_VPR.setStyleSheet(u"QProgressBar {\n" + self.ProgressBar_DAT_VITS = QProgressBar(self.Subpage_DAT_VITS) + self.ProgressBar_DAT_VITS.setObjectName(u"ProgressBar_DAT_VITS") + self.ProgressBar_DAT_VITS.setMinimumSize(QSize(0, 30)) + self.ProgressBar_DAT_VITS.setStyleSheet(u"QProgressBar {\n" " text-align: center;\n" " color: rgb(255, 255, 255);\n" " background-color: rgb(60, 60, 60);\n" @@ -6978,33 +12446,33 @@ def setupUi(self, MainWindow): " border-style: solid;\n" " background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" "}") - self.ProgressBar_ASR_VPR.setValue(0) - self.ProgressBar_ASR_VPR.setTextVisible(False) - self.horizontalLayout_73 = QHBoxLayout(self.ProgressBar_ASR_VPR) - self.horizontalLayout_73.setSpacing(0) - self.horizontalLayout_73.setObjectName(u"horizontalLayout_73") - self.horizontalLayout_73.setContentsMargins(0, 0, 0, 0) - self.StackedWidget_ASR_VPR = QStackedWidget(self.ProgressBar_ASR_VPR) - self.StackedWidget_ASR_VPR.setObjectName(u"StackedWidget_ASR_VPR") - self.StackedWidget_ASR_VPR.setMaximumSize(QSize(16777215, 30)) - self.StackedWidget_ASR_VPR.setStyleSheet(u"QWidget {\n" + self.ProgressBar_DAT_VITS.setValue(0) + self.ProgressBar_DAT_VITS.setTextVisible(False) + self.horizontalLayout_37 = QHBoxLayout(self.ProgressBar_DAT_VITS) + self.horizontalLayout_37.setSpacing(0) + self.horizontalLayout_37.setObjectName(u"horizontalLayout_37") + self.horizontalLayout_37.setContentsMargins(0, 0, 0, 0) + self.StackedWidget_DAT_VITS = QStackedWidget(self.ProgressBar_DAT_VITS) + self.StackedWidget_DAT_VITS.setObjectName(u"StackedWidget_DAT_VITS") + self.StackedWidget_DAT_VITS.setMaximumSize(QSize(16777215, 30)) + self.StackedWidget_DAT_VITS.setStyleSheet(u"QWidget {\n" " background-color: rgba(90, 90, 90, 45);\n" "}\n" "QWidget:hover {\n" " background-color: rgba(120, 120, 120, 60);\n" "}") - self.Page_ASR_VPR_Execute = QWidget() - self.Page_ASR_VPR_Execute.setObjectName(u"Page_ASR_VPR_Execute") - self.verticalLayout_102 = QVBoxLayout(self.Page_ASR_VPR_Execute) - self.verticalLayout_102.setSpacing(0) - self.verticalLayout_102.setObjectName(u"verticalLayout_102") - self.verticalLayout_102.setContentsMargins(0, 0, 0, 0) - self.Button_ASR_VPR_Execute = QPushButton(self.Page_ASR_VPR_Execute) - self.Button_ASR_VPR_Execute.setObjectName(u"Button_ASR_VPR_Execute") - sizePolicy3.setHeightForWidth(self.Button_ASR_VPR_Execute.sizePolicy().hasHeightForWidth()) - self.Button_ASR_VPR_Execute.setSizePolicy(sizePolicy3) - self.Button_ASR_VPR_Execute.setMinimumSize(QSize(0, 30)) - self.Button_ASR_VPR_Execute.setStyleSheet(u"QPushButton {\n" + self.Page_DAT_VITS_Execute = QWidget() + self.Page_DAT_VITS_Execute.setObjectName(u"Page_DAT_VITS_Execute") + self.verticalLayout_92 = QVBoxLayout(self.Page_DAT_VITS_Execute) + self.verticalLayout_92.setSpacing(0) + self.verticalLayout_92.setObjectName(u"verticalLayout_92") + self.verticalLayout_92.setContentsMargins(0, 0, 0, 0) + self.Button_DAT_VITS_Execute = QPushButton(self.Page_DAT_VITS_Execute) + self.Button_DAT_VITS_Execute.setObjectName(u"Button_DAT_VITS_Execute") + sizePolicy3.setHeightForWidth(self.Button_DAT_VITS_Execute.sizePolicy().hasHeightForWidth()) + self.Button_DAT_VITS_Execute.setSizePolicy(sizePolicy3) + self.Button_DAT_VITS_Execute.setMinimumSize(QSize(0, 30)) + self.Button_DAT_VITS_Execute.setStyleSheet(u"QPushButton {\n" " text-align: center;\n" " color: rgba(255, 255, 255, 210);\n" " /*background-color: rgba(90, 90, 90, 45);*/\n" @@ -7027,21 +12495,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.verticalLayout_102.addWidget(self.Button_ASR_VPR_Execute) + self.verticalLayout_92.addWidget(self.Button_DAT_VITS_Execute) - self.StackedWidget_ASR_VPR.addWidget(self.Page_ASR_VPR_Execute) - self.Page_ASR_VPR_Terminate = QWidget() - self.Page_ASR_VPR_Terminate.setObjectName(u"Page_ASR_VPR_Terminate") - self.verticalLayout_119 = QVBoxLayout(self.Page_ASR_VPR_Terminate) - self.verticalLayout_119.setSpacing(0) - self.verticalLayout_119.setObjectName(u"verticalLayout_119") - self.verticalLayout_119.setContentsMargins(0, 0, 0, 0) - self.Button_ASR_VPR_Terminate = QPushButton(self.Page_ASR_VPR_Terminate) - self.Button_ASR_VPR_Terminate.setObjectName(u"Button_ASR_VPR_Terminate") - sizePolicy3.setHeightForWidth(self.Button_ASR_VPR_Terminate.sizePolicy().hasHeightForWidth()) - self.Button_ASR_VPR_Terminate.setSizePolicy(sizePolicy3) - self.Button_ASR_VPR_Terminate.setMinimumSize(QSize(0, 30)) - self.Button_ASR_VPR_Terminate.setStyleSheet(u"QPushButton {\n" + self.StackedWidget_DAT_VITS.addWidget(self.Page_DAT_VITS_Execute) + self.Page_DAT_VITS_Terminate = QWidget() + self.Page_DAT_VITS_Terminate.setObjectName(u"Page_DAT_VITS_Terminate") + self.verticalLayout_93 = QVBoxLayout(self.Page_DAT_VITS_Terminate) + self.verticalLayout_93.setSpacing(0) + self.verticalLayout_93.setObjectName(u"verticalLayout_93") + self.verticalLayout_93.setContentsMargins(0, 0, 0, 0) + self.Button_DAT_VITS_Terminate = QPushButton(self.Page_DAT_VITS_Terminate) + self.Button_DAT_VITS_Terminate.setObjectName(u"Button_DAT_VITS_Terminate") + sizePolicy3.setHeightForWidth(self.Button_DAT_VITS_Terminate.sizePolicy().hasHeightForWidth()) + self.Button_DAT_VITS_Terminate.setSizePolicy(sizePolicy3) + self.Button_DAT_VITS_Terminate.setMinimumSize(QSize(0, 30)) + self.Button_DAT_VITS_Terminate.setStyleSheet(u"QPushButton {\n" " text-align: center;\n" " color: rgba(255, 255, 255, 210);\n" " /*background-color: rgba(90, 90, 90, 45);*/\n" @@ -7064,46 +12532,46 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.verticalLayout_119.addWidget(self.Button_ASR_VPR_Terminate) + self.verticalLayout_93.addWidget(self.Button_DAT_VITS_Terminate) - self.StackedWidget_ASR_VPR.addWidget(self.Page_ASR_VPR_Terminate) + self.StackedWidget_DAT_VITS.addWidget(self.Page_DAT_VITS_Terminate) - self.horizontalLayout_73.addWidget(self.StackedWidget_ASR_VPR) + self.horizontalLayout_37.addWidget(self.StackedWidget_DAT_VITS) - self.gridLayout_21.addWidget(self.ProgressBar_ASR_VPR, 1, 0, 1, 3) + self.gridLayout_8.addWidget(self.ProgressBar_DAT_VITS, 1, 0, 1, 3) - self.gridLayout_21.setColumnStretch(0, 3) - self.gridLayout_21.setColumnStretch(1, 10) - self.gridLayout_21.setColumnStretch(2, 7) - self.StackedWidget_Pages_ASR.addWidget(self.Subpage_ASR_VPR) + self.gridLayout_8.setColumnStretch(0, 3) + self.gridLayout_8.setColumnStretch(1, 10) + self.gridLayout_8.setColumnStretch(2, 7) + self.StackedWidget_Pages_Dataset.addWidget(self.Subpage_DAT_VITS) - self.verticalLayout_44.addWidget(self.StackedWidget_Pages_ASR) + self.verticalLayout_39.addWidget(self.StackedWidget_Pages_Dataset) - self.StackedWidget_Pages.addWidget(self.Page_ASR) - self.Page_STT = QWidget() - self.Page_STT.setObjectName(u"Page_STT") - self.verticalLayout_41 = QVBoxLayout(self.Page_STT) - self.verticalLayout_41.setSpacing(21) - self.verticalLayout_41.setObjectName(u"verticalLayout_41") - self.verticalLayout_41.setContentsMargins(21, 12, 21, 12) - self.Frame_STT_Top = QFrame(self.Page_STT) - self.Frame_STT_Top.setObjectName(u"Frame_STT_Top") - self.Frame_STT_Top.setMinimumSize(QSize(0, 60)) - self.Frame_STT_Top.setStyleSheet(u"QFrame {\n" + self.StackedWidget_Pages.addWidget(self.Page_Dataset) + self.Page_Train = QWidget() + self.Page_Train.setObjectName(u"Page_Train") + self.verticalLayout_43 = QVBoxLayout(self.Page_Train) + self.verticalLayout_43.setSpacing(21) + self.verticalLayout_43.setObjectName(u"verticalLayout_43") + self.verticalLayout_43.setContentsMargins(21, 12, 21, 12) + self.Frame_Train_Top = QFrame(self.Page_Train) + self.Frame_Train_Top.setObjectName(u"Frame_Train_Top") + self.Frame_Train_Top.setMinimumSize(QSize(0, 60)) + self.Frame_Train_Top.setStyleSheet(u"QFrame {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}") - self.horizontalLayout_82 = QHBoxLayout(self.Frame_STT_Top) - self.horizontalLayout_82.setSpacing(0) - self.horizontalLayout_82.setObjectName(u"horizontalLayout_82") - self.horizontalLayout_82.setContentsMargins(0, 0, 0, 0) - self.ToolButton_VoiceTranscriber_Title = QToolButton(self.Frame_STT_Top) - self.ToolButton_VoiceTranscriber_Title.setObjectName(u"ToolButton_VoiceTranscriber_Title") - sizePolicy1.setHeightForWidth(self.ToolButton_VoiceTranscriber_Title.sizePolicy().hasHeightForWidth()) - self.ToolButton_VoiceTranscriber_Title.setSizePolicy(sizePolicy1) - self.ToolButton_VoiceTranscriber_Title.setStyleSheet(u"QToolButton {\n" + self.horizontalLayout_15 = QHBoxLayout(self.Frame_Train_Top) + self.horizontalLayout_15.setSpacing(0) + self.horizontalLayout_15.setObjectName(u"horizontalLayout_15") + self.horizontalLayout_15.setContentsMargins(0, 0, 0, 0) + self.ToolButton_VoiceTrainer_Title_GPTSoVITS = QToolButton(self.Frame_Train_Top) + self.ToolButton_VoiceTrainer_Title_GPTSoVITS.setObjectName(u"ToolButton_VoiceTrainer_Title_GPTSoVITS") + sizePolicy1.setHeightForWidth(self.ToolButton_VoiceTrainer_Title_GPTSoVITS.sizePolicy().hasHeightForWidth()) + self.ToolButton_VoiceTrainer_Title_GPTSoVITS.setSizePolicy(sizePolicy1) + self.ToolButton_VoiceTrainer_Title_GPTSoVITS.setStyleSheet(u"QToolButton {\n" " font-size: 24px;\n" " /*text-align: center;*/\n" " color: rgba(201, 210, 222, 210);\n" @@ -7146,13 +12614,62 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_82.addWidget(self.ToolButton_VoiceTranscriber_Title) + self.horizontalLayout_15.addWidget(self.ToolButton_VoiceTrainer_Title_GPTSoVITS) - self.Frame_STT_Title_Spacer = QLabel(self.Frame_STT_Top) - self.Frame_STT_Title_Spacer.setObjectName(u"Frame_STT_Title_Spacer") - sizePolicy4.setHeightForWidth(self.Frame_STT_Title_Spacer.sizePolicy().hasHeightForWidth()) - self.Frame_STT_Title_Spacer.setSizePolicy(sizePolicy4) - self.Frame_STT_Title_Spacer.setStyleSheet(u"QLabel {\n" + self.ToolButton_VoiceTrainer_Title_VITS = QToolButton(self.Frame_Train_Top) + self.ToolButton_VoiceTrainer_Title_VITS.setObjectName(u"ToolButton_VoiceTrainer_Title_VITS") + sizePolicy1.setHeightForWidth(self.ToolButton_VoiceTrainer_Title_VITS.sizePolicy().hasHeightForWidth()) + self.ToolButton_VoiceTrainer_Title_VITS.setSizePolicy(sizePolicy1) + self.ToolButton_VoiceTrainer_Title_VITS.setStyleSheet(u"QToolButton {\n" +" font-size: 24px;\n" +" /*text-align: center;*/\n" +" color: rgba(201, 210, 222, 210);\n" +" padding-left: 12px;\n" +" padding-right: 12px;\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QToolButton:hover {\n" +" color: rgba(210, 222, 234, 234);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 123);\n" +"}\n" +"QToolButton:checked {\n" +" color: rgba(210, 222, 234, 255);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 210);\n" +"}\n" +"\n" +"QToolTip {\n" +" color:" + " rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.horizontalLayout_15.addWidget(self.ToolButton_VoiceTrainer_Title_VITS) + + self.Frame_Train_Title_Spacer = QLabel(self.Frame_Train_Top) + self.Frame_Train_Title_Spacer.setObjectName(u"Frame_Train_Title_Spacer") + sizePolicy4.setHeightForWidth(self.Frame_Train_Title_Spacer.sizePolicy().hasHeightForWidth()) + self.Frame_Train_Title_Spacer.setSizePolicy(sizePolicy4) + self.Frame_Train_Title_Spacer.setStyleSheet(u"QLabel {\n" " font-size: 24px;\n" " /*text-align: center;\n" " color: rgb(255, 255, 255);\n" @@ -7167,14 +12684,14 @@ def setupUi(self, MainWindow): " border-bottom-color: rgba(123, 123, 123, 123);\n" "}") - self.horizontalLayout_82.addWidget(self.Frame_STT_Title_Spacer) + self.horizontalLayout_15.addWidget(self.Frame_Train_Title_Spacer) - self.verticalLayout_41.addWidget(self.Frame_STT_Top) + self.verticalLayout_43.addWidget(self.Frame_Train_Top) - self.StackedWidget_Pages_STT = QStackedWidget(self.Page_STT) - self.StackedWidget_Pages_STT.setObjectName(u"StackedWidget_Pages_STT") - self.StackedWidget_Pages_STT.setStyleSheet(u"QWidget {\n" + self.StackedWidget_Pages_Train = QStackedWidget(self.Page_Train) + self.StackedWidget_Pages_Train.setObjectName(u"StackedWidget_Pages_Train") + self.StackedWidget_Pages_Train.setStyleSheet(u"QWidget {\n" " background-color: transparent;\n" "}\n" "\n" @@ -7217,31 +12734,31 @@ def setupUi(self, MainWindow): "QTabBar QToolButton:hover {\n" "}\n" "*/") - self.Subpage_STT_Whisper = QWidget() - self.Subpage_STT_Whisper.setObjectName(u"Subpage_STT_Whisper") - self.gridLayout_19 = QGridLayout(self.Subpage_STT_Whisper) - self.gridLayout_19.setSpacing(12) - self.gridLayout_19.setObjectName(u"gridLayout_19") - self.gridLayout_19.setContentsMargins(0, 0, 0, 0) - self.Widget_Left_STT_Whisper = QWidget(self.Subpage_STT_Whisper) - self.Widget_Left_STT_Whisper.setObjectName(u"Widget_Left_STT_Whisper") - self.Widget_Left_STT_Whisper.setMinimumSize(QSize(150, 0)) - self.Widget_Left_STT_Whisper.setStyleSheet(u"QWidget {\n" + self.Subpage_Train_GPTSoVITS = QWidget() + self.Subpage_Train_GPTSoVITS.setObjectName(u"Subpage_Train_GPTSoVITS") + self.gridLayout_85 = QGridLayout(self.Subpage_Train_GPTSoVITS) + self.gridLayout_85.setSpacing(12) + self.gridLayout_85.setObjectName(u"gridLayout_85") + self.gridLayout_85.setContentsMargins(0, 0, 0, 0) + self.Widget_Left_Train_GPTSoVITS = QWidget(self.Subpage_Train_GPTSoVITS) + self.Widget_Left_Train_GPTSoVITS.setObjectName(u"Widget_Left_Train_GPTSoVITS") + self.Widget_Left_Train_GPTSoVITS.setMinimumSize(QSize(150, 0)) + self.Widget_Left_Train_GPTSoVITS.setStyleSheet(u"QWidget {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" "QWidget:hover {\n" "}") - self.verticalLayout_8 = QVBoxLayout(self.Widget_Left_STT_Whisper) - self.verticalLayout_8.setSpacing(12) - self.verticalLayout_8.setObjectName(u"verticalLayout_8") - self.verticalLayout_8.setContentsMargins(12, 12, 12, 12) - self.TreeWidget_Catalogue_STT_Whisper = QTreeWidget(self.Widget_Left_STT_Whisper) - __qtreewidgetitem2 = QTreeWidgetItem(self.TreeWidget_Catalogue_STT_Whisper) - QTreeWidgetItem(__qtreewidgetitem2) - self.TreeWidget_Catalogue_STT_Whisper.setObjectName(u"TreeWidget_Catalogue_STT_Whisper") - self.TreeWidget_Catalogue_STT_Whisper.setStyleSheet(u"QTreeView {\n" + self.verticalLayout_59 = QVBoxLayout(self.Widget_Left_Train_GPTSoVITS) + self.verticalLayout_59.setSpacing(12) + self.verticalLayout_59.setObjectName(u"verticalLayout_59") + self.verticalLayout_59.setContentsMargins(12, 12, 12, 12) + self.TreeWidget_Catalogue_Train_GPTSoVITS = QTreeWidget(self.Widget_Left_Train_GPTSoVITS) + __qtreewidgetitem5 = QTreeWidgetItem(self.TreeWidget_Catalogue_Train_GPTSoVITS) + QTreeWidgetItem(__qtreewidgetitem5) + self.TreeWidget_Catalogue_Train_GPTSoVITS.setObjectName(u"TreeWidget_Catalogue_Train_GPTSoVITS") + self.TreeWidget_Catalogue_Train_GPTSoVITS.setStyleSheet(u"QTreeView {\n" " /*font-size: 12px;\n" " text-align: center;*/\n" " background-color: transparent;\n" @@ -7319,15 +12836,15 @@ def setupUi(self, MainWindow): " background-color: rgba(120, 120, 120, 120);\n" "}") - self.verticalLayout_8.addWidget(self.TreeWidget_Catalogue_STT_Whisper) + self.verticalLayout_59.addWidget(self.TreeWidget_Catalogue_Train_GPTSoVITS) - self.gridLayout_19.addWidget(self.Widget_Left_STT_Whisper, 0, 0, 1, 1) + self.gridLayout_85.addWidget(self.Widget_Left_Train_GPTSoVITS, 0, 0, 1, 1) - self.ScrollArea_Middle_STT_Whisper = QScrollArea(self.Subpage_STT_Whisper) - self.ScrollArea_Middle_STT_Whisper.setObjectName(u"ScrollArea_Middle_STT_Whisper") - self.ScrollArea_Middle_STT_Whisper.setMinimumSize(QSize(600, 0)) - self.ScrollArea_Middle_STT_Whisper.setStyleSheet(u"QScrollArea {\n" + self.ScrollArea_Middle_Train_GPTSoVITS = QScrollArea(self.Subpage_Train_GPTSoVITS) + self.ScrollArea_Middle_Train_GPTSoVITS.setObjectName(u"ScrollArea_Middle_Train_GPTSoVITS") + self.ScrollArea_Middle_Train_GPTSoVITS.setMinimumSize(QSize(600, 0)) + self.ScrollArea_Middle_Train_GPTSoVITS.setStyleSheet(u"QScrollArea {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" @@ -7430,24 +12947,24 @@ def setupUi(self, MainWindow): "QScrollBar::handle:horizontal {\n" " background-color: rgb(90, 90, 90);\n" " border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}") - self.ScrollArea_Middle_STT_Whisper.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) - self.ScrollArea_Middle_STT_Whisper.setWidgetResizable(True) - self.ScrollArea_Middle_WidgetContents_STT_Whisper = QWidget() - self.ScrollArea_Middle_WidgetContents_STT_Whisper.setObjectName(u"ScrollArea_Middle_WidgetContents_STT_Whisper") - self.ScrollArea_Middle_WidgetContents_STT_Whisper.setGeometry(QRect(0, 0, 591, 934)) - self.verticalLayout_16 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_STT_Whisper) - self.verticalLayout_16.setSpacing(12) - self.verticalLayout_16.setObjectName(u"verticalLayout_16") - self.verticalLayout_16.setContentsMargins(12, 12, 12, 12) - self.GroupBox_STT_Whisper_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_STT_Whisper) - self.GroupBox_STT_Whisper_InputParams.setObjectName(u"GroupBox_STT_Whisper_InputParams") - self.GroupBox_STT_Whisper_InputParams.setStyleSheet(u"QGroupBox {\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}") + self.ScrollArea_Middle_Train_GPTSoVITS.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) + self.ScrollArea_Middle_Train_GPTSoVITS.setWidgetResizable(True) + self.ScrollArea_Middle_WidgetContents_Train_GPTSoVITS = QWidget() + self.ScrollArea_Middle_WidgetContents_Train_GPTSoVITS.setObjectName(u"ScrollArea_Middle_WidgetContents_Train_GPTSoVITS") + self.ScrollArea_Middle_WidgetContents_Train_GPTSoVITS.setGeometry(QRect(0, 0, 591, 1171)) + self.verticalLayout_52 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_Train_GPTSoVITS) + self.verticalLayout_52.setSpacing(12) + self.verticalLayout_52.setObjectName(u"verticalLayout_52") + self.verticalLayout_52.setContentsMargins(12, 12, 12, 12) + self.GroupBox_Train_GPTSoVITS_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Train_GPTSoVITS) + self.GroupBox_Train_GPTSoVITS_InputParams.setObjectName(u"GroupBox_Train_GPTSoVITS_InputParams") + self.GroupBox_Train_GPTSoVITS_InputParams.setStyleSheet(u"QGroupBox {\n" " font-size: 15px;\n" " margin-top: 1.5ex;\n" " color: rgb(255, 255, 255);\n" @@ -7463,20 +12980,20 @@ def setupUi(self, MainWindow): " subcontrol-position: top left;\n" " padding: 3px;\n" "}") - self.verticalLayout_32 = QVBoxLayout(self.GroupBox_STT_Whisper_InputParams) - self.verticalLayout_32.setSpacing(0) - self.verticalLayout_32.setObjectName(u"verticalLayout_32") - self.verticalLayout_32.setContentsMargins(0, 12, 0, 12) - self.Frame_STT_Whisper_InputParams_BasicSettings = QFrame(self.GroupBox_STT_Whisper_InputParams) - self.Frame_STT_Whisper_InputParams_BasicSettings.setObjectName(u"Frame_STT_Whisper_InputParams_BasicSettings") - self.verticalLayout_129 = QVBoxLayout(self.Frame_STT_Whisper_InputParams_BasicSettings) - self.verticalLayout_129.setSpacing(0) - self.verticalLayout_129.setObjectName(u"verticalLayout_129") - self.verticalLayout_129.setContentsMargins(0, 0, 0, 0) - self.Frame_STT_Whisper_AudioDir = QFrame(self.Frame_STT_Whisper_InputParams_BasicSettings) - self.Frame_STT_Whisper_AudioDir.setObjectName(u"Frame_STT_Whisper_AudioDir") - self.Frame_STT_Whisper_AudioDir.setMinimumSize(QSize(0, 105)) - self.Frame_STT_Whisper_AudioDir.setStyleSheet(u"QFrame {\n" + self.verticalLayout_121 = QVBoxLayout(self.GroupBox_Train_GPTSoVITS_InputParams) + self.verticalLayout_121.setSpacing(0) + self.verticalLayout_121.setObjectName(u"verticalLayout_121") + self.verticalLayout_121.setContentsMargins(0, 12, 0, 12) + self.Frame_Train_GPTSoVITS_InputParams_BasicSettings = QFrame(self.GroupBox_Train_GPTSoVITS_InputParams) + self.Frame_Train_GPTSoVITS_InputParams_BasicSettings.setObjectName(u"Frame_Train_GPTSoVITS_InputParams_BasicSettings") + self.verticalLayout_55 = QVBoxLayout(self.Frame_Train_GPTSoVITS_InputParams_BasicSettings) + self.verticalLayout_55.setSpacing(0) + self.verticalLayout_55.setObjectName(u"verticalLayout_55") + self.verticalLayout_55.setContentsMargins(0, 0, 0, 0) + self.Frame_Train_GPTSoVITS_FileListPath = QFrame(self.Frame_Train_GPTSoVITS_InputParams_BasicSettings) + self.Frame_Train_GPTSoVITS_FileListPath.setObjectName(u"Frame_Train_GPTSoVITS_FileListPath") + self.Frame_Train_GPTSoVITS_FileListPath.setMinimumSize(QSize(0, 105)) + self.Frame_Train_GPTSoVITS_FileListPath.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -7485,15 +13002,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_39 = QGridLayout(self.Frame_STT_Whisper_AudioDir) - self.gridLayout_39.setSpacing(12) - self.gridLayout_39.setObjectName(u"gridLayout_39") - self.gridLayout_39.setContentsMargins(21, 12, 21, 12) - self.Label_STT_Whisper_AudioDir = QLabel(self.Frame_STT_Whisper_AudioDir) - self.Label_STT_Whisper_AudioDir.setObjectName(u"Label_STT_Whisper_AudioDir") - sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_AudioDir.sizePolicy().hasHeightForWidth()) - self.Label_STT_Whisper_AudioDir.setSizePolicy(sizePolicy5) - self.Label_STT_Whisper_AudioDir.setStyleSheet(u"QLabel {\n" + self.gridLayout_81 = QGridLayout(self.Frame_Train_GPTSoVITS_FileListPath) + self.gridLayout_81.setSpacing(12) + self.gridLayout_81.setObjectName(u"gridLayout_81") + self.gridLayout_81.setContentsMargins(21, 12, 21, 12) + self.Label_Train_GPTSoVITS_FileListPath = QLabel(self.Frame_Train_GPTSoVITS_FileListPath) + self.Label_Train_GPTSoVITS_FileListPath.setObjectName(u"Label_Train_GPTSoVITS_FileListPath") + sizePolicy5.setHeightForWidth(self.Label_Train_GPTSoVITS_FileListPath.sizePolicy().hasHeightForWidth()) + self.Label_Train_GPTSoVITS_FileListPath.setSizePolicy(sizePolicy5) + self.Label_Train_GPTSoVITS_FileListPath.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -7503,17 +13020,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_39.addWidget(self.Label_STT_Whisper_AudioDir, 0, 0, 1, 1) + self.gridLayout_81.addWidget(self.Label_Train_GPTSoVITS_FileListPath, 0, 0, 1, 1) - self.HorizontalSpacer_STT_Whisper_AudioDir = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_GPTSoVITS_FileListPath = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_39.addItem(self.HorizontalSpacer_STT_Whisper_AudioDir, 0, 1, 1, 1) + self.gridLayout_81.addItem(self.HorizontalSpacer_Train_GPTSoVITS_FileListPath, 0, 1, 1, 1) - self.Button_STT_Whisper_AudioDir_Undo = QPushButton(self.Frame_STT_Whisper_AudioDir) - self.Button_STT_Whisper_AudioDir_Undo.setObjectName(u"Button_STT_Whisper_AudioDir_Undo") - self.Button_STT_Whisper_AudioDir_Undo.setMinimumSize(QSize(27, 27)) - self.Button_STT_Whisper_AudioDir_Undo.setMaximumSize(QSize(27, 27)) - self.Button_STT_Whisper_AudioDir_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_GPTSoVITS_FileListPath_Undo = QPushButton(self.Frame_Train_GPTSoVITS_FileListPath) + self.Button_Train_GPTSoVITS_FileListPath_Undo.setObjectName(u"Button_Train_GPTSoVITS_FileListPath_Undo") + self.Button_Train_GPTSoVITS_FileListPath_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_FileListPath_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_FileListPath_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -7534,26 +13051,26 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_39.addWidget(self.Button_STT_Whisper_AudioDir_Undo, 0, 2, 1, 1) + self.gridLayout_81.addWidget(self.Button_Train_GPTSoVITS_FileListPath_Undo, 0, 2, 1, 1) - self.LineEdit_STT_Whisper_AudioDir = LineEditBase(self.Frame_STT_Whisper_AudioDir) - self.LineEdit_STT_Whisper_AudioDir.setObjectName(u"LineEdit_STT_Whisper_AudioDir") - self.LineEdit_STT_Whisper_AudioDir.setMinimumSize(QSize(0, 27)) + self.LineEdit_Train_GPTSoVITS_FileListPath = LineEditBase(self.Frame_Train_GPTSoVITS_FileListPath) + self.LineEdit_Train_GPTSoVITS_FileListPath.setObjectName(u"LineEdit_Train_GPTSoVITS_FileListPath") + self.LineEdit_Train_GPTSoVITS_FileListPath.setMinimumSize(QSize(0, 27)) - self.gridLayout_39.addWidget(self.LineEdit_STT_Whisper_AudioDir, 1, 0, 1, 3) + self.gridLayout_81.addWidget(self.LineEdit_Train_GPTSoVITS_FileListPath, 1, 0, 1, 3) - self.verticalLayout_129.addWidget(self.Frame_STT_Whisper_AudioDir) + self.verticalLayout_55.addWidget(self.Frame_Train_GPTSoVITS_FileListPath) - self.verticalLayout_32.addWidget(self.Frame_STT_Whisper_InputParams_BasicSettings) + self.verticalLayout_121.addWidget(self.Frame_Train_GPTSoVITS_InputParams_BasicSettings) - self.verticalLayout_16.addWidget(self.GroupBox_STT_Whisper_InputParams) + self.verticalLayout_52.addWidget(self.GroupBox_Train_GPTSoVITS_InputParams) - self.GroupBox_STT_Whisper_WhisperParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_STT_Whisper) - self.GroupBox_STT_Whisper_WhisperParams.setObjectName(u"GroupBox_STT_Whisper_WhisperParams") - self.GroupBox_STT_Whisper_WhisperParams.setStyleSheet(u"QGroupBox {\n" + self.GroupBox_Train_GPTSoVITS_GPTSoVITSParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Train_GPTSoVITS) + self.GroupBox_Train_GPTSoVITS_GPTSoVITSParams.setObjectName(u"GroupBox_Train_GPTSoVITS_GPTSoVITSParams") + self.GroupBox_Train_GPTSoVITS_GPTSoVITSParams.setStyleSheet(u"QGroupBox {\n" " font-size: 15px;\n" " margin-top: 1.5ex;\n" " color: rgb(255, 255, 255);\n" @@ -7569,20 +13086,20 @@ def setupUi(self, MainWindow): " subcontrol-position: top left;\n" " padding: 3px;\n" "}") - self.verticalLayout_49 = QVBoxLayout(self.GroupBox_STT_Whisper_WhisperParams) - self.verticalLayout_49.setSpacing(0) - self.verticalLayout_49.setObjectName(u"verticalLayout_49") - self.verticalLayout_49.setContentsMargins(0, 12, 0, 12) - self.Frame_STT_Whisper_WhisperParams_BasicSettings = QFrame(self.GroupBox_STT_Whisper_WhisperParams) - self.Frame_STT_Whisper_WhisperParams_BasicSettings.setObjectName(u"Frame_STT_Whisper_WhisperParams_BasicSettings") - self.verticalLayout_37 = QVBoxLayout(self.Frame_STT_Whisper_WhisperParams_BasicSettings) - self.verticalLayout_37.setSpacing(0) - self.verticalLayout_37.setObjectName(u"verticalLayout_37") - self.verticalLayout_37.setContentsMargins(0, 0, 0, 0) - self.Frame_STT_Whisper_AddLanguageInfo = QFrame(self.Frame_STT_Whisper_WhisperParams_BasicSettings) - self.Frame_STT_Whisper_AddLanguageInfo.setObjectName(u"Frame_STT_Whisper_AddLanguageInfo") - self.Frame_STT_Whisper_AddLanguageInfo.setMinimumSize(QSize(0, 105)) - self.Frame_STT_Whisper_AddLanguageInfo.setStyleSheet(u"QFrame {\n" + self.verticalLayout_122 = QVBoxLayout(self.GroupBox_Train_GPTSoVITS_GPTSoVITSParams) + self.verticalLayout_122.setSpacing(0) + self.verticalLayout_122.setObjectName(u"verticalLayout_122") + self.verticalLayout_122.setContentsMargins(0, 12, 0, 12) + self.Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings = QFrame(self.GroupBox_Train_GPTSoVITS_GPTSoVITSParams) + self.Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings.setObjectName(u"Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings") + self.verticalLayout_56 = QVBoxLayout(self.Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings) + self.verticalLayout_56.setSpacing(0) + self.verticalLayout_56.setObjectName(u"verticalLayout_56") + self.verticalLayout_56.setContentsMargins(0, 0, 0, 0) + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS1 = QFrame(self.Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings) + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS1.setObjectName(u"Frame_Train_GPTSoVITS_ModelPathPretrainedS1") + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS1.setMinimumSize(QSize(0, 105)) + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS1.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -7591,15 +13108,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_40 = QGridLayout(self.Frame_STT_Whisper_AddLanguageInfo) - self.gridLayout_40.setSpacing(12) - self.gridLayout_40.setObjectName(u"gridLayout_40") - self.gridLayout_40.setContentsMargins(21, 12, 21, 12) - self.Label_STT_Whisper_AddLanguageInfo = QLabel(self.Frame_STT_Whisper_AddLanguageInfo) - self.Label_STT_Whisper_AddLanguageInfo.setObjectName(u"Label_STT_Whisper_AddLanguageInfo") - sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_AddLanguageInfo.sizePolicy().hasHeightForWidth()) - self.Label_STT_Whisper_AddLanguageInfo.setSizePolicy(sizePolicy5) - self.Label_STT_Whisper_AddLanguageInfo.setStyleSheet(u"QLabel {\n" + self.gridLayout_88 = QGridLayout(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS1) + self.gridLayout_88.setSpacing(12) + self.gridLayout_88.setObjectName(u"gridLayout_88") + self.gridLayout_88.setContentsMargins(21, 12, 21, 12) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS1 = QLabel(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS1) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS1.setObjectName(u"Label_Train_GPTSoVITS_ModelPathPretrainedS1") + sizePolicy5.setHeightForWidth(self.Label_Train_GPTSoVITS_ModelPathPretrainedS1.sizePolicy().hasHeightForWidth()) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS1.setSizePolicy(sizePolicy5) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS1.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -7609,17 +13126,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_40.addWidget(self.Label_STT_Whisper_AddLanguageInfo, 0, 0, 1, 1) + self.gridLayout_88.addWidget(self.Label_Train_GPTSoVITS_ModelPathPretrainedS1, 0, 0, 1, 1) - self.HorizontalSpacer_STT_Whisper_AddLanguageInfo = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_GPTSoVITS_ModelPathPretrainedS1 = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_40.addItem(self.HorizontalSpacer_STT_Whisper_AddLanguageInfo, 0, 1, 1, 1) + self.gridLayout_88.addItem(self.HorizontalSpacer_Train_GPTSoVITS_ModelPathPretrainedS1, 0, 1, 1, 1) - self.Button_STT_Whisper_AddLanguageInfo_Undo = QPushButton(self.Frame_STT_Whisper_AddLanguageInfo) - self.Button_STT_Whisper_AddLanguageInfo_Undo.setObjectName(u"Button_STT_Whisper_AddLanguageInfo_Undo") - self.Button_STT_Whisper_AddLanguageInfo_Undo.setMinimumSize(QSize(27, 27)) - self.Button_STT_Whisper_AddLanguageInfo_Undo.setMaximumSize(QSize(27, 27)) - self.Button_STT_Whisper_AddLanguageInfo_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_GPTSoVITS_ModelPathPretrainedS1_Undo = QPushButton(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS1) + self.Button_Train_GPTSoVITS_ModelPathPretrainedS1_Undo.setObjectName(u"Button_Train_GPTSoVITS_ModelPathPretrainedS1_Undo") + self.Button_Train_GPTSoVITS_ModelPathPretrainedS1_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_ModelPathPretrainedS1_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_ModelPathPretrainedS1_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -7640,42 +13157,68 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_40.addWidget(self.Button_STT_Whisper_AddLanguageInfo_Undo, 0, 2, 1, 1) + self.gridLayout_88.addWidget(self.Button_Train_GPTSoVITS_ModelPathPretrainedS1_Undo, 0, 2, 1, 1) - self.CheckBox_STT_Whisper_AddLanguageInfo = QCheckBox(self.Frame_STT_Whisper_AddLanguageInfo) - self.CheckBox_STT_Whisper_AddLanguageInfo.setObjectName(u"CheckBox_STT_Whisper_AddLanguageInfo") - self.CheckBox_STT_Whisper_AddLanguageInfo.setMinimumSize(QSize(0, 27)) - self.CheckBox_STT_Whisper_AddLanguageInfo.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" spacing: 12.3px;\n" -" color: rgba(255, 255, 255, 210);\n" + self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS1 = LineEditBase(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS1) + self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS1.setObjectName(u"LineEdit_Train_GPTSoVITS_ModelPathPretrainedS1") + self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS1.setMinimumSize(QSize(0, 27)) + + self.gridLayout_88.addWidget(self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS1, 1, 0, 1, 3) + + + self.verticalLayout_56.addWidget(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS1) + + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2G = QFrame(self.Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings) + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2G.setObjectName(u"Frame_Train_GPTSoVITS_ModelPathPretrainedS2G") + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2G.setMinimumSize(QSize(0, 105)) + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2G.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" padding: 0px;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" " border-style: solid;\n" "}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" -"}\n" -"\n" -"QCheckBox::indicator {\n" -" width: 24px;\n" -" height: 24px;\n" -" background-color: transparent;\n" -" padding: 1.2px;\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_86 = QGridLayout(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2G) + self.gridLayout_86.setSpacing(12) + self.gridLayout_86.setObjectName(u"gridLayout_86") + self.gridLayout_86.setContentsMargins(21, 12, 21, 12) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS2G = QLabel(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2G) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS2G.setObjectName(u"Label_Train_GPTSoVITS_ModelPathPretrainedS2G") + sizePolicy5.setHeightForWidth(self.Label_Train_GPTSoVITS_ModelPathPretrainedS2G.sizePolicy().hasHeightForWidth()) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS2G.setSizePolicy(sizePolicy5) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS2G.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_86.addWidget(self.Label_Train_GPTSoVITS_ModelPathPretrainedS2G, 0, 0, 1, 1) + + self.HorizontalSpacer_Train_GPTSoVITS_ModelPathPretrainedS2G = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_86.addItem(self.HorizontalSpacer_Train_GPTSoVITS_ModelPathPretrainedS2G, 0, 1, 1, 1) + + self.Button_Train_GPTSoVITS_ModelPathPretrainedS2G_Undo = QPushButton(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2G) + self.Button_Train_GPTSoVITS_ModelPathPretrainedS2G_Undo.setObjectName(u"Button_Train_GPTSoVITS_ModelPathPretrainedS2G_Undo") + self.Button_Train_GPTSoVITS_ModelPathPretrainedS2G_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_ModelPathPretrainedS2G_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_ModelPathPretrainedS2G_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QCheckBox::indicator:hover {\n" -" background-color: rgba(255, 255, 255, 21);\n" -"}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" -"}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" @@ -7686,15 +13229,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_40.addWidget(self.CheckBox_STT_Whisper_AddLanguageInfo, 1, 0, 1, 3) + self.gridLayout_86.addWidget(self.Button_Train_GPTSoVITS_ModelPathPretrainedS2G_Undo, 0, 2, 1, 1) + self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2G = LineEditBase(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2G) + self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2G.setObjectName(u"LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2G") + self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2G.setMinimumSize(QSize(0, 27)) - self.verticalLayout_37.addWidget(self.Frame_STT_Whisper_AddLanguageInfo) + self.gridLayout_86.addWidget(self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2G, 1, 0, 1, 3) - self.Frame_STT_Whisper_ModelPath = QFrame(self.Frame_STT_Whisper_WhisperParams_BasicSettings) - self.Frame_STT_Whisper_ModelPath.setObjectName(u"Frame_STT_Whisper_ModelPath") - self.Frame_STT_Whisper_ModelPath.setMinimumSize(QSize(0, 105)) - self.Frame_STT_Whisper_ModelPath.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_56.addWidget(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2G) + + self.Frame_Train_GPTSoVITS_ModelDirPretrainedBert = QFrame(self.Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings) + self.Frame_Train_GPTSoVITS_ModelDirPretrainedBert.setObjectName(u"Frame_Train_GPTSoVITS_ModelDirPretrainedBert") + self.Frame_Train_GPTSoVITS_ModelDirPretrainedBert.setMinimumSize(QSize(0, 105)) + self.Frame_Train_GPTSoVITS_ModelDirPretrainedBert.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -7703,15 +13252,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_41 = QGridLayout(self.Frame_STT_Whisper_ModelPath) - self.gridLayout_41.setSpacing(12) - self.gridLayout_41.setObjectName(u"gridLayout_41") - self.gridLayout_41.setContentsMargins(21, 12, 21, 12) - self.Label_STT_Whisper_ModelPath = QLabel(self.Frame_STT_Whisper_ModelPath) - self.Label_STT_Whisper_ModelPath.setObjectName(u"Label_STT_Whisper_ModelPath") - sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_ModelPath.sizePolicy().hasHeightForWidth()) - self.Label_STT_Whisper_ModelPath.setSizePolicy(sizePolicy5) - self.Label_STT_Whisper_ModelPath.setStyleSheet(u"QLabel {\n" + self.gridLayout_89 = QGridLayout(self.Frame_Train_GPTSoVITS_ModelDirPretrainedBert) + self.gridLayout_89.setSpacing(12) + self.gridLayout_89.setObjectName(u"gridLayout_89") + self.gridLayout_89.setContentsMargins(21, 12, 21, 12) + self.Label_Train_GPTSoVITS_ModelDirPretrainedBert = QLabel(self.Frame_Train_GPTSoVITS_ModelDirPretrainedBert) + self.Label_Train_GPTSoVITS_ModelDirPretrainedBert.setObjectName(u"Label_Train_GPTSoVITS_ModelDirPretrainedBert") + sizePolicy5.setHeightForWidth(self.Label_Train_GPTSoVITS_ModelDirPretrainedBert.sizePolicy().hasHeightForWidth()) + self.Label_Train_GPTSoVITS_ModelDirPretrainedBert.setSizePolicy(sizePolicy5) + self.Label_Train_GPTSoVITS_ModelDirPretrainedBert.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -7721,17 +13270,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_41.addWidget(self.Label_STT_Whisper_ModelPath, 0, 0, 1, 1) + self.gridLayout_89.addWidget(self.Label_Train_GPTSoVITS_ModelDirPretrainedBert, 0, 0, 1, 1) - self.HorizontalSpacer_STT_Whisper_ModelPath = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_GPTSoVITS_ModelDirPretrainedBert = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_41.addItem(self.HorizontalSpacer_STT_Whisper_ModelPath, 0, 1, 1, 1) + self.gridLayout_89.addItem(self.HorizontalSpacer_Train_GPTSoVITS_ModelDirPretrainedBert, 0, 1, 1, 1) - self.Button_STT_Whisper_ModelPath_Undo = QPushButton(self.Frame_STT_Whisper_ModelPath) - self.Button_STT_Whisper_ModelPath_Undo.setObjectName(u"Button_STT_Whisper_ModelPath_Undo") - self.Button_STT_Whisper_ModelPath_Undo.setMinimumSize(QSize(27, 27)) - self.Button_STT_Whisper_ModelPath_Undo.setMaximumSize(QSize(27, 27)) - self.Button_STT_Whisper_ModelPath_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_GPTSoVITS_ModelDirPretrainedBert_Undo = QPushButton(self.Frame_Train_GPTSoVITS_ModelDirPretrainedBert) + self.Button_Train_GPTSoVITS_ModelDirPretrainedBert_Undo.setObjectName(u"Button_Train_GPTSoVITS_ModelDirPretrainedBert_Undo") + self.Button_Train_GPTSoVITS_ModelDirPretrainedBert_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_ModelDirPretrainedBert_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_ModelDirPretrainedBert_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -7752,54 +13301,68 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_41.addWidget(self.Button_STT_Whisper_ModelPath_Undo, 0, 2, 1, 1) - - self.LineEdit_STT_Whisper_ModelPath = LineEditBase(self.Frame_STT_Whisper_ModelPath) - self.LineEdit_STT_Whisper_ModelPath.setObjectName(u"LineEdit_STT_Whisper_ModelPath") - self.LineEdit_STT_Whisper_ModelPath.setMinimumSize(QSize(0, 27)) - - self.gridLayout_41.addWidget(self.LineEdit_STT_Whisper_ModelPath, 1, 0, 1, 3) + self.gridLayout_89.addWidget(self.Button_Train_GPTSoVITS_ModelDirPretrainedBert_Undo, 0, 2, 1, 1) + self.LineEdit_Train_GPTSoVITS_ModelDirPretrainedBert = LineEditBase(self.Frame_Train_GPTSoVITS_ModelDirPretrainedBert) + self.LineEdit_Train_GPTSoVITS_ModelDirPretrainedBert.setObjectName(u"LineEdit_Train_GPTSoVITS_ModelDirPretrainedBert") + self.LineEdit_Train_GPTSoVITS_ModelDirPretrainedBert.setMinimumSize(QSize(0, 27)) - self.verticalLayout_37.addWidget(self.Frame_STT_Whisper_ModelPath) + self.gridLayout_89.addWidget(self.LineEdit_Train_GPTSoVITS_ModelDirPretrainedBert, 1, 0, 1, 3) - self.verticalLayout_49.addWidget(self.Frame_STT_Whisper_WhisperParams_BasicSettings) + self.verticalLayout_56.addWidget(self.Frame_Train_GPTSoVITS_ModelDirPretrainedBert) - self.CheckBox_STT_Whisper_WhisperParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_STT_Whisper_WhisperParams) - self.CheckBox_STT_Whisper_WhisperParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_STT_Whisper_WhisperParams_Toggle_AdvanceSettings") - self.CheckBox_STT_Whisper_WhisperParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" font-weight: 630;\n" -" spacing: 12px;\n" -" color: rgba(255, 255, 255, 210);\n" + self.Frame_Train_GPTSoVITS_ModelDirPretrainedSSL = QFrame(self.Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings) + self.Frame_Train_GPTSoVITS_ModelDirPretrainedSSL.setObjectName(u"Frame_Train_GPTSoVITS_ModelDirPretrainedSSL") + self.Frame_Train_GPTSoVITS_ModelDirPretrainedSSL.setMinimumSize(QSize(0, 105)) + self.Frame_Train_GPTSoVITS_ModelDirPretrainedSSL.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" padding-top: 9px;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" " border-style: solid;\n" "}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" -"}\n" -"\n" -"QCheckBox::indicator {\n" -" width: 12px;\n" -" height: 12px;\n" -" background-color: transparent;\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_95 = QGridLayout(self.Frame_Train_GPTSoVITS_ModelDirPretrainedSSL) + self.gridLayout_95.setSpacing(12) + self.gridLayout_95.setObjectName(u"gridLayout_95") + self.gridLayout_95.setContentsMargins(21, 12, 21, 12) + self.Label_Train_GPTSoVITS_ModelDirPretrainedSSL = QLabel(self.Frame_Train_GPTSoVITS_ModelDirPretrainedSSL) + self.Label_Train_GPTSoVITS_ModelDirPretrainedSSL.setObjectName(u"Label_Train_GPTSoVITS_ModelDirPretrainedSSL") + sizePolicy5.setHeightForWidth(self.Label_Train_GPTSoVITS_ModelDirPretrainedSSL.sizePolicy().hasHeightForWidth()) + self.Label_Train_GPTSoVITS_ModelDirPretrainedSSL.setSizePolicy(sizePolicy5) + self.Label_Train_GPTSoVITS_ModelDirPretrainedSSL.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" " padding: 0px;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" -"}\n" -"QCheckBox::indicator:hover {\n" +"}") + + self.gridLayout_95.addWidget(self.Label_Train_GPTSoVITS_ModelDirPretrainedSSL, 0, 0, 1, 1) + + self.HorizontalSpacer_Train_GPTSoVITS_ModelDirPretrainedSSL = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_95.addItem(self.HorizontalSpacer_Train_GPTSoVITS_ModelDirPretrainedSSL, 0, 1, 1, 1) + + self.Button_Train_GPTSoVITS_ModelDirPretrainedSSL_Undo = QPushButton(self.Frame_Train_GPTSoVITS_ModelDirPretrainedSSL) + self.Button_Train_GPTSoVITS_ModelDirPretrainedSSL_Undo.setObjectName(u"Button_Train_GPTSoVITS_ModelDirPretrainedSSL_Undo") + self.Button_Train_GPTSoVITS_ModelDirPretrainedSSL_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_ModelDirPretrainedSSL_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_ModelDirPretrainedSSL_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" -"}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" @@ -7810,18 +13373,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.verticalLayout_49.addWidget(self.CheckBox_STT_Whisper_WhisperParams_Toggle_AdvanceSettings) + self.gridLayout_95.addWidget(self.Button_Train_GPTSoVITS_ModelDirPretrainedSSL_Undo, 0, 2, 1, 1) - self.Frame_STT_Whisper_WhisperParams_AdvanceSettings = QFrame(self.GroupBox_STT_Whisper_WhisperParams) - self.Frame_STT_Whisper_WhisperParams_AdvanceSettings.setObjectName(u"Frame_STT_Whisper_WhisperParams_AdvanceSettings") - self.verticalLayout_15 = QVBoxLayout(self.Frame_STT_Whisper_WhisperParams_AdvanceSettings) - self.verticalLayout_15.setSpacing(0) - self.verticalLayout_15.setObjectName(u"verticalLayout_15") - self.verticalLayout_15.setContentsMargins(0, 0, 0, 0) - self.Frame_STT_Whisper_fp16 = QFrame(self.Frame_STT_Whisper_WhisperParams_AdvanceSettings) - self.Frame_STT_Whisper_fp16.setObjectName(u"Frame_STT_Whisper_fp16") - self.Frame_STT_Whisper_fp16.setMinimumSize(QSize(0, 105)) - self.Frame_STT_Whisper_fp16.setStyleSheet(u"QFrame {\n" + self.LineEdit_Train_GPTSoVITS_ModelDirPretrainedSSL = LineEditBase(self.Frame_Train_GPTSoVITS_ModelDirPretrainedSSL) + self.LineEdit_Train_GPTSoVITS_ModelDirPretrainedSSL.setObjectName(u"LineEdit_Train_GPTSoVITS_ModelDirPretrainedSSL") + self.LineEdit_Train_GPTSoVITS_ModelDirPretrainedSSL.setMinimumSize(QSize(0, 27)) + + self.gridLayout_95.addWidget(self.LineEdit_Train_GPTSoVITS_ModelDirPretrainedSSL, 1, 0, 1, 3) + + + self.verticalLayout_56.addWidget(self.Frame_Train_GPTSoVITS_ModelDirPretrainedSSL) + + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2D = QFrame(self.Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings) + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2D.setObjectName(u"Frame_Train_GPTSoVITS_ModelPathPretrainedS2D") + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2D.setMinimumSize(QSize(0, 105)) + self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2D.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -7830,39 +13396,78 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_44 = QGridLayout(self.Frame_STT_Whisper_fp16) - self.gridLayout_44.setSpacing(12) - self.gridLayout_44.setObjectName(u"gridLayout_44") - self.gridLayout_44.setContentsMargins(21, 12, 21, 12) - self.Label_STT_Whisper_fp16 = QLabel(self.Frame_STT_Whisper_fp16) - self.Label_STT_Whisper_fp16.setObjectName(u"Label_STT_Whisper_fp16") - sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_fp16.sizePolicy().hasHeightForWidth()) - self.Label_STT_Whisper_fp16.setSizePolicy(sizePolicy5) - self.Label_STT_Whisper_fp16.setStyleSheet(u"QLabel {\n" + self.gridLayout_87 = QGridLayout(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2D) + self.gridLayout_87.setSpacing(12) + self.gridLayout_87.setObjectName(u"gridLayout_87") + self.gridLayout_87.setContentsMargins(21, 12, 21, 12) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS2D = QLabel(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2D) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS2D.setObjectName(u"Label_Train_GPTSoVITS_ModelPathPretrainedS2D") + sizePolicy5.setHeightForWidth(self.Label_Train_GPTSoVITS_ModelPathPretrainedS2D.sizePolicy().hasHeightForWidth()) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS2D.setSizePolicy(sizePolicy5) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS2D.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" " padding: 0px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_87.addWidget(self.Label_Train_GPTSoVITS_ModelPathPretrainedS2D, 0, 0, 1, 1) + + self.HorizontalSpacer_Train_GPTSoVITS_ModelPathPretrainedS2D = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_87.addItem(self.HorizontalSpacer_Train_GPTSoVITS_ModelPathPretrainedS2D, 0, 1, 1, 1) + + self.Button_Train_GPTSoVITS_ModelPathPretrainedS2D_Undo = QPushButton(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2D) + self.Button_Train_GPTSoVITS_ModelPathPretrainedS2D_Undo.setObjectName(u"Button_Train_GPTSoVITS_ModelPathPretrainedS2D_Undo") + self.Button_Train_GPTSoVITS_ModelPathPretrainedS2D_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_ModelPathPretrainedS2D_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_ModelPathPretrainedS2D_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" " border-style: solid;\n" "}") - self.gridLayout_44.addWidget(self.Label_STT_Whisper_fp16, 0, 0, 1, 1) + self.gridLayout_87.addWidget(self.Button_Train_GPTSoVITS_ModelPathPretrainedS2D_Undo, 0, 2, 1, 1) - self.HorizontalSpacer_STT_Whisper_fp16 = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2D = LineEditBase(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2D) + self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2D.setObjectName(u"LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2D") + self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2D.setMinimumSize(QSize(0, 27)) - self.gridLayout_44.addItem(self.HorizontalSpacer_STT_Whisper_fp16, 0, 1, 1, 1) + self.gridLayout_87.addWidget(self.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2D, 1, 0, 1, 3) - self.CheckBox_STT_Whisper_fp16 = QCheckBox(self.Frame_STT_Whisper_fp16) - self.CheckBox_STT_Whisper_fp16.setObjectName(u"CheckBox_STT_Whisper_fp16") - self.CheckBox_STT_Whisper_fp16.setMinimumSize(QSize(0, 27)) - self.CheckBox_STT_Whisper_fp16.setStyleSheet(u"QCheckBox {\n" + + self.verticalLayout_56.addWidget(self.Frame_Train_GPTSoVITS_ModelPathPretrainedS2D) + + + self.verticalLayout_122.addWidget(self.Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings) + + self.CheckBox_Train_GPTSoVITS_GPTSoVITSParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_Train_GPTSoVITS_GPTSoVITSParams) + self.CheckBox_Train_GPTSoVITS_GPTSoVITSParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_Train_GPTSoVITS_GPTSoVITSParams_Toggle_AdvanceSettings") + self.CheckBox_Train_GPTSoVITS_GPTSoVITSParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" " font-size: 12px;\n" -" spacing: 12.3px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" " color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" padding: 0px;\n" +" padding-top: 9px;\n" " border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" @@ -7872,22 +13477,22 @@ def setupUi(self, MainWindow): "}\n" "\n" "QCheckBox::indicator {\n" -" width: 24px;\n" -" height: 24px;\n" +" width: 12px;\n" +" height: 12px;\n" " background-color: transparent;\n" -" padding: 1.2px;\n" +" padding: 0px;\n" " border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" "}\n" "QCheckBox::indicator:hover {\n" -" background-color: rgba(255, 255, 255, 21);\n" +" background-color: transparent;\n" "}\n" "QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" "}\n" "QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" "}\n" "\n" "\n" @@ -7898,13 +13503,57 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_44.addWidget(self.CheckBox_STT_Whisper_fp16, 1, 0, 1, 3) + self.verticalLayout_122.addWidget(self.CheckBox_Train_GPTSoVITS_GPTSoVITSParams_Toggle_AdvanceSettings) - self.Button_STT_Whisper_fp16_Undo = QPushButton(self.Frame_STT_Whisper_fp16) - self.Button_STT_Whisper_fp16_Undo.setObjectName(u"Button_STT_Whisper_fp16_Undo") - self.Button_STT_Whisper_fp16_Undo.setMinimumSize(QSize(27, 27)) - self.Button_STT_Whisper_fp16_Undo.setMaximumSize(QSize(27, 27)) - self.Button_STT_Whisper_fp16_Undo.setStyleSheet(u"QPushButton {\n" + self.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings = QFrame(self.GroupBox_Train_GPTSoVITS_GPTSoVITSParams) + self.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings.setObjectName(u"Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings") + self.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings.setFrameShape(QFrame.StyledPanel) + self.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings.setFrameShadow(QFrame.Raised) + self.verticalLayout_57 = QVBoxLayout(self.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings) + self.verticalLayout_57.setSpacing(0) + self.verticalLayout_57.setObjectName(u"verticalLayout_57") + self.verticalLayout_57.setContentsMargins(0, 0, 0, 0) + self.Frame_Train_GPTSoVITS_FP16Run = QFrame(self.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings) + self.Frame_Train_GPTSoVITS_FP16Run.setObjectName(u"Frame_Train_GPTSoVITS_FP16Run") + self.Frame_Train_GPTSoVITS_FP16Run.setMinimumSize(QSize(0, 105)) + self.Frame_Train_GPTSoVITS_FP16Run.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_91 = QGridLayout(self.Frame_Train_GPTSoVITS_FP16Run) + self.gridLayout_91.setSpacing(12) + self.gridLayout_91.setObjectName(u"gridLayout_91") + self.gridLayout_91.setContentsMargins(21, 12, 21, 12) + self.Label_Train_GPTSoVITS_FP16Run = QLabel(self.Frame_Train_GPTSoVITS_FP16Run) + self.Label_Train_GPTSoVITS_FP16Run.setObjectName(u"Label_Train_GPTSoVITS_FP16Run") + sizePolicy5.setHeightForWidth(self.Label_Train_GPTSoVITS_FP16Run.sizePolicy().hasHeightForWidth()) + self.Label_Train_GPTSoVITS_FP16Run.setSizePolicy(sizePolicy5) + self.Label_Train_GPTSoVITS_FP16Run.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_91.addWidget(self.Label_Train_GPTSoVITS_FP16Run, 0, 0, 1, 1) + + self.HorizontalSpacer_Train_GPTSoVITS_FP16Run = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_91.addItem(self.HorizontalSpacer_Train_GPTSoVITS_FP16Run, 0, 1, 1, 1) + + self.Button_Train_GPTSoVITS_FP16Run_Undo = QPushButton(self.Frame_Train_GPTSoVITS_FP16Run) + self.Button_Train_GPTSoVITS_FP16Run_Undo.setObjectName(u"Button_Train_GPTSoVITS_FP16Run_Undo") + self.Button_Train_GPTSoVITS_FP16Run_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_FP16Run_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_FP16Run_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -7925,31 +13574,12 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_44.addWidget(self.Button_STT_Whisper_fp16_Undo, 0, 2, 1, 1) - - - self.verticalLayout_15.addWidget(self.Frame_STT_Whisper_fp16) + self.gridLayout_91.addWidget(self.Button_Train_GPTSoVITS_FP16Run_Undo, 0, 2, 1, 1) - self.Frame_STT_Whisper_ConditionOnPreviousText = QFrame(self.Frame_STT_Whisper_WhisperParams_AdvanceSettings) - self.Frame_STT_Whisper_ConditionOnPreviousText.setObjectName(u"Frame_STT_Whisper_ConditionOnPreviousText") - self.Frame_STT_Whisper_ConditionOnPreviousText.setMinimumSize(QSize(0, 105)) - self.Frame_STT_Whisper_ConditionOnPreviousText.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_43 = QGridLayout(self.Frame_STT_Whisper_ConditionOnPreviousText) - self.gridLayout_43.setSpacing(12) - self.gridLayout_43.setObjectName(u"gridLayout_43") - self.gridLayout_43.setContentsMargins(21, 12, 21, 12) - self.CheckBox_STT_Whisper_ConditionOnPreviousText = QCheckBox(self.Frame_STT_Whisper_ConditionOnPreviousText) - self.CheckBox_STT_Whisper_ConditionOnPreviousText.setObjectName(u"CheckBox_STT_Whisper_ConditionOnPreviousText") - self.CheckBox_STT_Whisper_ConditionOnPreviousText.setMinimumSize(QSize(0, 27)) - self.CheckBox_STT_Whisper_ConditionOnPreviousText.setStyleSheet(u"QCheckBox {\n" + self.CheckBox_Train_GPTSoVITS_FP16Run = QCheckBox(self.Frame_Train_GPTSoVITS_FP16Run) + self.CheckBox_Train_GPTSoVITS_FP16Run.setObjectName(u"CheckBox_Train_GPTSoVITS_FP16Run") + self.CheckBox_Train_GPTSoVITS_FP16Run.setMinimumSize(QSize(0, 27)) + self.CheckBox_Train_GPTSoVITS_FP16Run.setStyleSheet(u"QCheckBox {\n" " font-size: 12px;\n" " spacing: 12.3px;\n" " color: rgba(255, 255, 255, 210);\n" @@ -7990,44 +13620,66 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_43.addWidget(self.CheckBox_STT_Whisper_ConditionOnPreviousText, 1, 0, 1, 3) + self.gridLayout_91.addWidget(self.CheckBox_Train_GPTSoVITS_FP16Run, 1, 0, 1, 3) - self.HorizontalSpacer_STT_Whisper_ConditionOnPreviousText = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_43.addItem(self.HorizontalSpacer_STT_Whisper_ConditionOnPreviousText, 0, 1, 1, 1) + self.verticalLayout_57.addWidget(self.Frame_Train_GPTSoVITS_FP16Run) - self.Button_STT_Whisper_ConditionOnPreviousText_Undo = QPushButton(self.Frame_STT_Whisper_ConditionOnPreviousText) - self.Button_STT_Whisper_ConditionOnPreviousText_Undo.setObjectName(u"Button_STT_Whisper_ConditionOnPreviousText_Undo") - self.Button_STT_Whisper_ConditionOnPreviousText_Undo.setMinimumSize(QSize(27, 27)) - self.Button_STT_Whisper_ConditionOnPreviousText_Undo.setMaximumSize(QSize(27, 27)) - self.Button_STT_Whisper_ConditionOnPreviousText_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" + + self.verticalLayout_122.addWidget(self.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings) + + + self.verticalLayout_52.addWidget(self.GroupBox_Train_GPTSoVITS_GPTSoVITSParams) + + self.GroupBox_Train_GPTSoVITS_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Train_GPTSoVITS) + self.GroupBox_Train_GPTSoVITS_OutputParams.setObjectName(u"GroupBox_Train_GPTSoVITS_OutputParams") + self.GroupBox_Train_GPTSoVITS_OutputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +" border-width: 1px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +" border-color: transparent;\n" "}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_77 = QVBoxLayout(self.GroupBox_Train_GPTSoVITS_OutputParams) + self.verticalLayout_77.setSpacing(0) + self.verticalLayout_77.setObjectName(u"verticalLayout_77") + self.verticalLayout_77.setContentsMargins(0, 12, 0, 12) + self.Frame_Train_GPTSoVITS_OutputParams_BasicSettings = QFrame(self.GroupBox_Train_GPTSoVITS_OutputParams) + self.Frame_Train_GPTSoVITS_OutputParams_BasicSettings.setObjectName(u"Frame_Train_GPTSoVITS_OutputParams_BasicSettings") + self.verticalLayout_58 = QVBoxLayout(self.Frame_Train_GPTSoVITS_OutputParams_BasicSettings) + self.verticalLayout_58.setSpacing(0) + self.verticalLayout_58.setObjectName(u"verticalLayout_58") + self.verticalLayout_58.setContentsMargins(0, 0, 0, 0) + self.Frame_Train_GPTSoVITS_OutputDirName = QFrame(self.Frame_Train_GPTSoVITS_OutputParams_BasicSettings) + self.Frame_Train_GPTSoVITS_OutputDirName.setObjectName(u"Frame_Train_GPTSoVITS_OutputDirName") + self.Frame_Train_GPTSoVITS_OutputDirName.setMinimumSize(QSize(0, 105)) + self.Frame_Train_GPTSoVITS_OutputDirName.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" " border-width: 0px;\n" " border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" "}") - - self.gridLayout_43.addWidget(self.Button_STT_Whisper_ConditionOnPreviousText_Undo, 0, 2, 1, 1) - - self.Label_STT_Whisper_ConditionOnPreviousText = QLabel(self.Frame_STT_Whisper_ConditionOnPreviousText) - self.Label_STT_Whisper_ConditionOnPreviousText.setObjectName(u"Label_STT_Whisper_ConditionOnPreviousText") - sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_ConditionOnPreviousText.sizePolicy().hasHeightForWidth()) - self.Label_STT_Whisper_ConditionOnPreviousText.setSizePolicy(sizePolicy5) - self.Label_STT_Whisper_ConditionOnPreviousText.setStyleSheet(u"QLabel {\n" + self.gridLayout_98 = QGridLayout(self.Frame_Train_GPTSoVITS_OutputDirName) + self.gridLayout_98.setSpacing(12) + self.gridLayout_98.setObjectName(u"gridLayout_98") + self.gridLayout_98.setContentsMargins(21, 12, 21, 12) + self.Label_Train_GPTSoVITS_OutputDirName = QLabel(self.Frame_Train_GPTSoVITS_OutputDirName) + self.Label_Train_GPTSoVITS_OutputDirName.setObjectName(u"Label_Train_GPTSoVITS_OutputDirName") + sizePolicy5.setHeightForWidth(self.Label_Train_GPTSoVITS_OutputDirName.sizePolicy().hasHeightForWidth()) + self.Label_Train_GPTSoVITS_OutputDirName.setSizePolicy(sizePolicy5) + self.Label_Train_GPTSoVITS_OutputDirName.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -8037,56 +13689,60 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_43.addWidget(self.Label_STT_Whisper_ConditionOnPreviousText, 0, 0, 1, 1) + self.gridLayout_98.addWidget(self.Label_Train_GPTSoVITS_OutputDirName, 0, 0, 1, 1) + self.HorizontalSpacer_Train_GPTSoVITS_OutputDirName = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.verticalLayout_15.addWidget(self.Frame_STT_Whisper_ConditionOnPreviousText) + self.gridLayout_98.addItem(self.HorizontalSpacer_Train_GPTSoVITS_OutputDirName, 0, 1, 1, 1) - self.Frame_STT_Whisper_Verbose = QFrame(self.Frame_STT_Whisper_WhisperParams_AdvanceSettings) - self.Frame_STT_Whisper_Verbose.setObjectName(u"Frame_STT_Whisper_Verbose") - self.Frame_STT_Whisper_Verbose.setMinimumSize(QSize(0, 105)) - self.Frame_STT_Whisper_Verbose.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" + self.Button_Train_GPTSoVITS_OutputDirName_Undo = QPushButton(self.Frame_Train_GPTSoVITS_OutputDirName) + self.Button_Train_GPTSoVITS_OutputDirName_Undo.setObjectName(u"Button_Train_GPTSoVITS_OutputDirName_Undo") + self.Button_Train_GPTSoVITS_OutputDirName_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_OutputDirName_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_OutputDirName_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" -" border-width: 0px;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_42 = QGridLayout(self.Frame_STT_Whisper_Verbose) - self.gridLayout_42.setSpacing(12) - self.gridLayout_42.setObjectName(u"gridLayout_42") - self.gridLayout_42.setContentsMargins(21, 12, 21, 12) - self.Label_STT_Whisper_Verbose = QLabel(self.Frame_STT_Whisper_Verbose) - self.Label_STT_Whisper_Verbose.setObjectName(u"Label_STT_Whisper_Verbose") - sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_Verbose.sizePolicy().hasHeightForWidth()) - self.Label_STT_Whisper_Verbose.setSizePolicy(sizePolicy5) - self.Label_STT_Whisper_Verbose.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" -" background-color: transparent;\n" -" padding: 0px;\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" "}") - self.gridLayout_42.addWidget(self.Label_STT_Whisper_Verbose, 0, 0, 1, 1) + self.gridLayout_98.addWidget(self.Button_Train_GPTSoVITS_OutputDirName_Undo, 0, 2, 1, 1) - self.HorizontalSpacer_STT_Whisper_Verbose = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.LineEdit_Train_GPTSoVITS_OutputDirName = LineEditBase(self.Frame_Train_GPTSoVITS_OutputDirName) + self.LineEdit_Train_GPTSoVITS_OutputDirName.setObjectName(u"LineEdit_Train_GPTSoVITS_OutputDirName") + self.LineEdit_Train_GPTSoVITS_OutputDirName.setMinimumSize(QSize(0, 27)) - self.gridLayout_42.addItem(self.HorizontalSpacer_STT_Whisper_Verbose, 0, 1, 1, 1) + self.gridLayout_98.addWidget(self.LineEdit_Train_GPTSoVITS_OutputDirName, 1, 0, 1, 3) - self.CheckBox_STT_Whisper_Verbose = QCheckBox(self.Frame_STT_Whisper_Verbose) - self.CheckBox_STT_Whisper_Verbose.setObjectName(u"CheckBox_STT_Whisper_Verbose") - self.CheckBox_STT_Whisper_Verbose.setMinimumSize(QSize(0, 27)) - self.CheckBox_STT_Whisper_Verbose.setStyleSheet(u"QCheckBox {\n" + + self.verticalLayout_58.addWidget(self.Frame_Train_GPTSoVITS_OutputDirName) + + + self.verticalLayout_77.addWidget(self.Frame_Train_GPTSoVITS_OutputParams_BasicSettings) + + self.CheckBox_Train_GPTSoVITS_OutputParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_Train_GPTSoVITS_OutputParams) + self.CheckBox_Train_GPTSoVITS_OutputParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_Train_GPTSoVITS_OutputParams_Toggle_AdvanceSettings") + self.CheckBox_Train_GPTSoVITS_OutputParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" " font-size: 12px;\n" -" spacing: 12.3px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" " color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" padding: 0px;\n" +" padding-top: 9px;\n" " border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" @@ -8096,49 +13752,22 @@ def setupUi(self, MainWindow): "}\n" "\n" "QCheckBox::indicator {\n" -" width: 24px;\n" -" height: 24px;\n" +" width: 12px;\n" +" height: 12px;\n" " background-color: transparent;\n" -" padding: 1.2px;\n" +" padding: 0px;\n" " border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" "}\n" "QCheckBox::indicator:hover {\n" -" background-color: rgba(255, 255, 255, 21);\n" +" background-color: transparent;\n" "}\n" "QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" "}\n" "QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - - self.gridLayout_42.addWidget(self.CheckBox_STT_Whisper_Verbose, 1, 0, 1, 3) - - self.Button_STT_Whisper_Verbose_Undo = QPushButton(self.Frame_STT_Whisper_Verbose) - self.Button_STT_Whisper_Verbose_Undo.setObjectName(u"Button_STT_Whisper_Verbose_Undo") - self.Button_STT_Whisper_Verbose_Undo.setMinimumSize(QSize(27, 27)) - self.Button_STT_Whisper_Verbose_Undo.setMaximumSize(QSize(27, 27)) - self.Button_STT_Whisper_Verbose_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" -" background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" "}\n" "\n" "\n" @@ -8148,50 +13777,19 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - - self.gridLayout_42.addWidget(self.Button_STT_Whisper_Verbose_Undo, 0, 2, 1, 1) - - - self.verticalLayout_15.addWidget(self.Frame_STT_Whisper_Verbose) - - - self.verticalLayout_49.addWidget(self.Frame_STT_Whisper_WhisperParams_AdvanceSettings) - - - self.verticalLayout_16.addWidget(self.GroupBox_STT_Whisper_WhisperParams) - - self.GroupBox_STT_Whisper_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_STT_Whisper) - self.GroupBox_STT_Whisper_OutputParams.setObjectName(u"GroupBox_STT_Whisper_OutputParams") - self.GroupBox_STT_Whisper_OutputParams.setStyleSheet(u"QGroupBox {\n" -" font-size: 15px;\n" -" margin-top: 1.5ex;\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 1px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -"}\n" -"QGroupBox::title {\n" -" left: 9px;\n" -" margin-left: 0px;\n" -" subcontrol-origin: margin;\n" -" subcontrol-position: top left;\n" -" padding: 3px;\n" -"}") - self.verticalLayout_89 = QVBoxLayout(self.GroupBox_STT_Whisper_OutputParams) - self.verticalLayout_89.setSpacing(0) - self.verticalLayout_89.setObjectName(u"verticalLayout_89") - self.verticalLayout_89.setContentsMargins(0, 12, 0, 12) - self.Frame_STT_Whisper_OutputParams_BasicSettings = QFrame(self.GroupBox_STT_Whisper_OutputParams) - self.Frame_STT_Whisper_OutputParams_BasicSettings.setObjectName(u"Frame_STT_Whisper_OutputParams_BasicSettings") - self.verticalLayout_135 = QVBoxLayout(self.Frame_STT_Whisper_OutputParams_BasicSettings) - self.verticalLayout_135.setSpacing(0) - self.verticalLayout_135.setObjectName(u"verticalLayout_135") - self.verticalLayout_135.setContentsMargins(0, 0, 0, 0) - self.Frame_STT_Whisper_SRTDir = QFrame(self.Frame_STT_Whisper_OutputParams_BasicSettings) - self.Frame_STT_Whisper_SRTDir.setObjectName(u"Frame_STT_Whisper_SRTDir") - self.Frame_STT_Whisper_SRTDir.setMinimumSize(QSize(0, 105)) - self.Frame_STT_Whisper_SRTDir.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_77.addWidget(self.CheckBox_Train_GPTSoVITS_OutputParams_Toggle_AdvanceSettings) + + self.Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings = QFrame(self.GroupBox_Train_GPTSoVITS_OutputParams) + self.Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings.setObjectName(u"Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings") + self.verticalLayout_60 = QVBoxLayout(self.Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings) + self.verticalLayout_60.setSpacing(0) + self.verticalLayout_60.setObjectName(u"verticalLayout_60") + self.verticalLayout_60.setContentsMargins(0, 0, 0, 0) + self.Frame_Train_GPTSoVITS_LogDir = QFrame(self.Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings) + self.Frame_Train_GPTSoVITS_LogDir.setObjectName(u"Frame_Train_GPTSoVITS_LogDir") + self.Frame_Train_GPTSoVITS_LogDir.setMinimumSize(QSize(0, 105)) + self.Frame_Train_GPTSoVITS_LogDir.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -8200,15 +13798,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_45 = QGridLayout(self.Frame_STT_Whisper_SRTDir) - self.gridLayout_45.setSpacing(12) - self.gridLayout_45.setObjectName(u"gridLayout_45") - self.gridLayout_45.setContentsMargins(21, 12, 21, 12) - self.Label_STT_Whisper_SRTDir = QLabel(self.Frame_STT_Whisper_SRTDir) - self.Label_STT_Whisper_SRTDir.setObjectName(u"Label_STT_Whisper_SRTDir") - sizePolicy5.setHeightForWidth(self.Label_STT_Whisper_SRTDir.sizePolicy().hasHeightForWidth()) - self.Label_STT_Whisper_SRTDir.setSizePolicy(sizePolicy5) - self.Label_STT_Whisper_SRTDir.setStyleSheet(u"QLabel {\n" + self.gridLayout_110 = QGridLayout(self.Frame_Train_GPTSoVITS_LogDir) + self.gridLayout_110.setSpacing(12) + self.gridLayout_110.setObjectName(u"gridLayout_110") + self.gridLayout_110.setContentsMargins(21, 12, 21, 12) + self.Label_Train_GPTSoVITS_LogDir = QLabel(self.Frame_Train_GPTSoVITS_LogDir) + self.Label_Train_GPTSoVITS_LogDir.setObjectName(u"Label_Train_GPTSoVITS_LogDir") + sizePolicy5.setHeightForWidth(self.Label_Train_GPTSoVITS_LogDir.sizePolicy().hasHeightForWidth()) + self.Label_Train_GPTSoVITS_LogDir.setSizePolicy(sizePolicy5) + self.Label_Train_GPTSoVITS_LogDir.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -8218,17 +13816,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_45.addWidget(self.Label_STT_Whisper_SRTDir, 0, 0, 1, 1) + self.gridLayout_110.addWidget(self.Label_Train_GPTSoVITS_LogDir, 0, 0, 1, 1) - self.HorizontalSpacer_STT_Whisper_SRTDir = QSpacerItem(481, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_GPTSoVITS_LogDir = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_45.addItem(self.HorizontalSpacer_STT_Whisper_SRTDir, 0, 1, 1, 1) + self.gridLayout_110.addItem(self.HorizontalSpacer_Train_GPTSoVITS_LogDir, 0, 1, 1, 1) - self.Button_STT_Whisper_SRTDir_Undo = QPushButton(self.Frame_STT_Whisper_SRTDir) - self.Button_STT_Whisper_SRTDir_Undo.setObjectName(u"Button_STT_Whisper_SRTDir_Undo") - self.Button_STT_Whisper_SRTDir_Undo.setMinimumSize(QSize(27, 27)) - self.Button_STT_Whisper_SRTDir_Undo.setMaximumSize(QSize(27, 27)) - self.Button_STT_Whisper_SRTDir_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_GPTSoVITS_LogDir_Undo = QPushButton(self.Frame_Train_GPTSoVITS_LogDir) + self.Button_Train_GPTSoVITS_LogDir_Undo.setObjectName(u"Button_Train_GPTSoVITS_LogDir_Undo") + self.Button_Train_GPTSoVITS_LogDir_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_LogDir_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_GPTSoVITS_LogDir_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -8249,49 +13847,49 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_45.addWidget(self.Button_STT_Whisper_SRTDir_Undo, 0, 2, 1, 1) + self.gridLayout_110.addWidget(self.Button_Train_GPTSoVITS_LogDir_Undo, 0, 2, 1, 1) - self.LineEdit_STT_Whisper_SRTDir = LineEditBase(self.Frame_STT_Whisper_SRTDir) - self.LineEdit_STT_Whisper_SRTDir.setObjectName(u"LineEdit_STT_Whisper_SRTDir") - self.LineEdit_STT_Whisper_SRTDir.setMinimumSize(QSize(0, 27)) + self.LineEdit_Train_GPTSoVITS_LogDir = LineEditBase(self.Frame_Train_GPTSoVITS_LogDir) + self.LineEdit_Train_GPTSoVITS_LogDir.setObjectName(u"LineEdit_Train_GPTSoVITS_LogDir") + self.LineEdit_Train_GPTSoVITS_LogDir.setMinimumSize(QSize(0, 27)) - self.gridLayout_45.addWidget(self.LineEdit_STT_Whisper_SRTDir, 1, 0, 1, 3) + self.gridLayout_110.addWidget(self.LineEdit_Train_GPTSoVITS_LogDir, 1, 0, 1, 3) - self.verticalLayout_135.addWidget(self.Frame_STT_Whisper_SRTDir) + self.verticalLayout_60.addWidget(self.Frame_Train_GPTSoVITS_LogDir) - self.verticalLayout_89.addWidget(self.Frame_STT_Whisper_OutputParams_BasicSettings) + self.verticalLayout_77.addWidget(self.Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings) - self.verticalLayout_16.addWidget(self.GroupBox_STT_Whisper_OutputParams) + self.verticalLayout_52.addWidget(self.GroupBox_Train_GPTSoVITS_OutputParams) - self.VerticalSpacer_STT_Whisper = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + self.VerticalSpacer_Train_GPTSoVITS = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - self.verticalLayout_16.addItem(self.VerticalSpacer_STT_Whisper) + self.verticalLayout_52.addItem(self.VerticalSpacer_Train_GPTSoVITS) - self.ScrollArea_Middle_STT_Whisper.setWidget(self.ScrollArea_Middle_WidgetContents_STT_Whisper) + self.ScrollArea_Middle_Train_GPTSoVITS.setWidget(self.ScrollArea_Middle_WidgetContents_Train_GPTSoVITS) - self.gridLayout_19.addWidget(self.ScrollArea_Middle_STT_Whisper, 0, 1, 1, 1) + self.gridLayout_85.addWidget(self.ScrollArea_Middle_Train_GPTSoVITS, 0, 1, 1, 1) - self.Widget_Right_STT_Whisper = QWidget(self.Subpage_STT_Whisper) - self.Widget_Right_STT_Whisper.setObjectName(u"Widget_Right_STT_Whisper") - self.Widget_Right_STT_Whisper.setStyleSheet(u"QWidget {\n" + self.Widget_Right_Train_GPTSoVITS = QWidget(self.Subpage_Train_GPTSoVITS) + self.Widget_Right_Train_GPTSoVITS.setObjectName(u"Widget_Right_Train_GPTSoVITS") + self.Widget_Right_Train_GPTSoVITS.setStyleSheet(u"QWidget {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" "QWidget:hover {\n" "}") - self.gridLayout_15 = QGridLayout(self.Widget_Right_STT_Whisper) - self.gridLayout_15.setSpacing(12) - self.gridLayout_15.setObjectName(u"gridLayout_15") - self.gridLayout_15.setContentsMargins(12, 12, 12, 12) - self.TextBrowser_Params_STT_Whisper = QTextBrowser(self.Widget_Right_STT_Whisper) - self.TextBrowser_Params_STT_Whisper.setObjectName(u"TextBrowser_Params_STT_Whisper") - sizePolicy1.setHeightForWidth(self.TextBrowser_Params_STT_Whisper.sizePolicy().hasHeightForWidth()) - self.TextBrowser_Params_STT_Whisper.setSizePolicy(sizePolicy1) - self.TextBrowser_Params_STT_Whisper.setStyleSheet(u"QTextBrowser {\n" + self.verticalLayout_76 = QVBoxLayout(self.Widget_Right_Train_GPTSoVITS) + self.verticalLayout_76.setSpacing(12) + self.verticalLayout_76.setObjectName(u"verticalLayout_76") + self.verticalLayout_76.setContentsMargins(12, 12, 12, 12) + self.TextBrowser_Params_Train_GPTSoVITS = QTextBrowser(self.Widget_Right_Train_GPTSoVITS) + self.TextBrowser_Params_Train_GPTSoVITS.setObjectName(u"TextBrowser_Params_Train_GPTSoVITS") + sizePolicy1.setHeightForWidth(self.TextBrowser_Params_Train_GPTSoVITS.sizePolicy().hasHeightForWidth()) + self.TextBrowser_Params_Train_GPTSoVITS.setSizePolicy(sizePolicy1) + self.TextBrowser_Params_Train_GPTSoVITS.setStyleSheet(u"QTextBrowser {\n" " background-color: rgba(33, 33, 33, 99);\n" " /*padding-top: 1.5px;*/\n" " /*padding-bottom: 1.5px;*/\n" @@ -8404,11 +14002,11 @@ def setupUi(self, MainWindow): " background-color: rgb(120, 120, 120);\n" "}") - self.gridLayout_15.addWidget(self.TextBrowser_Params_STT_Whisper, 0, 0, 1, 2) + self.verticalLayout_76.addWidget(self.TextBrowser_Params_Train_GPTSoVITS) - self.Button_CheckOutput_STT_Whisper = QPushButton(self.Widget_Right_STT_Whisper) - self.Button_CheckOutput_STT_Whisper.setObjectName(u"Button_CheckOutput_STT_Whisper") - self.Button_CheckOutput_STT_Whisper.setStyleSheet(u"QPushButton {\n" + self.Button_RunTensorboard_Train_GPTSoVITS = QPushButton(self.Widget_Right_Train_GPTSoVITS) + self.Button_RunTensorboard_Train_GPTSoVITS.setObjectName(u"Button_RunTensorboard_Train_GPTSoVITS") + self.Button_RunTensorboard_Train_GPTSoVITS.setStyleSheet(u"QPushButton {\n" " text-align: center;\n" " font-size: 12px;\n" " background-color: transparent;\n" @@ -8430,15 +14028,41 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_15.addWidget(self.Button_CheckOutput_STT_Whisper, 1, 0, 1, 2) + self.verticalLayout_76.addWidget(self.Button_RunTensorboard_Train_GPTSoVITS) + + self.Button_CheckOutput_Train_GPTSoVITS = QPushButton(self.Widget_Right_Train_GPTSoVITS) + self.Button_CheckOutput_Train_GPTSoVITS.setObjectName(u"Button_CheckOutput_Train_GPTSoVITS") + self.Button_CheckOutput_Train_GPTSoVITS.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" font-size: 12px;\n" +" background-color: transparent;\n" +" padding: 9.9px;\n" +" border-width: 1.5px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + self.verticalLayout_76.addWidget(self.Button_CheckOutput_Train_GPTSoVITS) - self.gridLayout_19.addWidget(self.Widget_Right_STT_Whisper, 0, 2, 1, 1) - self.ProgressBar_STT_Whisper = QProgressBar(self.Subpage_STT_Whisper) - self.ProgressBar_STT_Whisper.setObjectName(u"ProgressBar_STT_Whisper") - self.ProgressBar_STT_Whisper.setMinimumSize(QSize(0, 30)) - self.ProgressBar_STT_Whisper.setStyleSheet(u"QProgressBar {\n" + self.gridLayout_85.addWidget(self.Widget_Right_Train_GPTSoVITS, 0, 2, 1, 1) + + self.ProgressBar_Train_GPTSoVITS = QProgressBar(self.Subpage_Train_GPTSoVITS) + self.ProgressBar_Train_GPTSoVITS.setObjectName(u"ProgressBar_Train_GPTSoVITS") + self.ProgressBar_Train_GPTSoVITS.setMinimumSize(QSize(0, 30)) + self.ProgressBar_Train_GPTSoVITS.setStyleSheet(u"QProgressBar {\n" " text-align: center;\n" " color: rgb(255, 255, 255);\n" " background-color: rgb(60, 60, 60);\n" @@ -8454,33 +14078,33 @@ def setupUi(self, MainWindow): " border-style: solid;\n" " background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" "}") - self.ProgressBar_STT_Whisper.setValue(0) - self.ProgressBar_STT_Whisper.setTextVisible(False) - self.horizontalLayout_35 = QHBoxLayout(self.ProgressBar_STT_Whisper) - self.horizontalLayout_35.setSpacing(0) - self.horizontalLayout_35.setObjectName(u"horizontalLayout_35") - self.horizontalLayout_35.setContentsMargins(0, 0, 0, 0) - self.StackedWidget_STT_Whisper = QStackedWidget(self.ProgressBar_STT_Whisper) - self.StackedWidget_STT_Whisper.setObjectName(u"StackedWidget_STT_Whisper") - self.StackedWidget_STT_Whisper.setMaximumSize(QSize(16777215, 30)) - self.StackedWidget_STT_Whisper.setStyleSheet(u"QWidget {\n" + self.ProgressBar_Train_GPTSoVITS.setValue(0) + self.ProgressBar_Train_GPTSoVITS.setTextVisible(False) + self.horizontalLayout_41 = QHBoxLayout(self.ProgressBar_Train_GPTSoVITS) + self.horizontalLayout_41.setSpacing(0) + self.horizontalLayout_41.setObjectName(u"horizontalLayout_41") + self.horizontalLayout_41.setContentsMargins(0, 0, 0, 0) + self.StackedWidget_Train_GPTSoVITS = QStackedWidget(self.ProgressBar_Train_GPTSoVITS) + self.StackedWidget_Train_GPTSoVITS.setObjectName(u"StackedWidget_Train_GPTSoVITS") + self.StackedWidget_Train_GPTSoVITS.setMaximumSize(QSize(16777215, 30)) + self.StackedWidget_Train_GPTSoVITS.setStyleSheet(u"QWidget {\n" " background-color: rgba(90, 90, 90, 45);\n" "}\n" "QWidget:hover {\n" " background-color: rgba(120, 120, 120, 60);\n" "}") - self.Page_STT_Whisper_Execute = QWidget() - self.Page_STT_Whisper_Execute.setObjectName(u"Page_STT_Whisper_Execute") - self.verticalLayout_90 = QVBoxLayout(self.Page_STT_Whisper_Execute) - self.verticalLayout_90.setSpacing(0) - self.verticalLayout_90.setObjectName(u"verticalLayout_90") - self.verticalLayout_90.setContentsMargins(0, 0, 0, 0) - self.Button_STT_Whisper_Execute = QPushButton(self.Page_STT_Whisper_Execute) - self.Button_STT_Whisper_Execute.setObjectName(u"Button_STT_Whisper_Execute") - sizePolicy3.setHeightForWidth(self.Button_STT_Whisper_Execute.sizePolicy().hasHeightForWidth()) - self.Button_STT_Whisper_Execute.setSizePolicy(sizePolicy3) - self.Button_STT_Whisper_Execute.setMinimumSize(QSize(0, 30)) - self.Button_STT_Whisper_Execute.setStyleSheet(u"QPushButton {\n" + self.Page_Train_GPTSoVITS_Execute = QWidget() + self.Page_Train_GPTSoVITS_Execute.setObjectName(u"Page_Train_GPTSoVITS_Execute") + self.verticalLayout_96 = QVBoxLayout(self.Page_Train_GPTSoVITS_Execute) + self.verticalLayout_96.setSpacing(0) + self.verticalLayout_96.setObjectName(u"verticalLayout_96") + self.verticalLayout_96.setContentsMargins(0, 0, 0, 0) + self.Button_Train_GPTSoVITS_Execute = QPushButton(self.Page_Train_GPTSoVITS_Execute) + self.Button_Train_GPTSoVITS_Execute.setObjectName(u"Button_Train_GPTSoVITS_Execute") + sizePolicy3.setHeightForWidth(self.Button_Train_GPTSoVITS_Execute.sizePolicy().hasHeightForWidth()) + self.Button_Train_GPTSoVITS_Execute.setSizePolicy(sizePolicy3) + self.Button_Train_GPTSoVITS_Execute.setMinimumSize(QSize(0, 30)) + self.Button_Train_GPTSoVITS_Execute.setStyleSheet(u"QPushButton {\n" " text-align: center;\n" " color: rgba(255, 255, 255, 210);\n" " /*background-color: rgba(90, 90, 90, 45);*/\n" @@ -8503,21 +14127,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.verticalLayout_90.addWidget(self.Button_STT_Whisper_Execute) + self.verticalLayout_96.addWidget(self.Button_Train_GPTSoVITS_Execute) - self.StackedWidget_STT_Whisper.addWidget(self.Page_STT_Whisper_Execute) - self.Page_STT_Whisper_Terminate = QWidget() - self.Page_STT_Whisper_Terminate.setObjectName(u"Page_STT_Whisper_Terminate") - self.verticalLayout_91 = QVBoxLayout(self.Page_STT_Whisper_Terminate) - self.verticalLayout_91.setSpacing(0) - self.verticalLayout_91.setObjectName(u"verticalLayout_91") - self.verticalLayout_91.setContentsMargins(0, 0, 0, 0) - self.Button_STT_Whisper_Terminate = QPushButton(self.Page_STT_Whisper_Terminate) - self.Button_STT_Whisper_Terminate.setObjectName(u"Button_STT_Whisper_Terminate") - sizePolicy3.setHeightForWidth(self.Button_STT_Whisper_Terminate.sizePolicy().hasHeightForWidth()) - self.Button_STT_Whisper_Terminate.setSizePolicy(sizePolicy3) - self.Button_STT_Whisper_Terminate.setMinimumSize(QSize(0, 30)) - self.Button_STT_Whisper_Terminate.setStyleSheet(u"QPushButton {\n" + self.StackedWidget_Train_GPTSoVITS.addWidget(self.Page_Train_GPTSoVITS_Execute) + self.Page_Train_GPTSoVITS_Terminate = QWidget() + self.Page_Train_GPTSoVITS_Terminate.setObjectName(u"Page_Train_GPTSoVITS_Terminate") + self.verticalLayout_97 = QVBoxLayout(self.Page_Train_GPTSoVITS_Terminate) + self.verticalLayout_97.setSpacing(0) + self.verticalLayout_97.setObjectName(u"verticalLayout_97") + self.verticalLayout_97.setContentsMargins(0, 0, 0, 0) + self.Button_Train_GPTSoVITS_Terminate = QPushButton(self.Page_Train_GPTSoVITS_Terminate) + self.Button_Train_GPTSoVITS_Terminate.setObjectName(u"Button_Train_GPTSoVITS_Terminate") + sizePolicy3.setHeightForWidth(self.Button_Train_GPTSoVITS_Terminate.sizePolicy().hasHeightForWidth()) + self.Button_Train_GPTSoVITS_Terminate.setSizePolicy(sizePolicy3) + self.Button_Train_GPTSoVITS_Terminate.setMinimumSize(QSize(0, 30)) + self.Button_Train_GPTSoVITS_Terminate.setStyleSheet(u"QPushButton {\n" " text-align: center;\n" " color: rgba(255, 255, 255, 210);\n" " /*background-color: rgba(90, 90, 90, 45);*/\n" @@ -8540,184 +14164,231 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.verticalLayout_91.addWidget(self.Button_STT_Whisper_Terminate) - - self.StackedWidget_STT_Whisper.addWidget(self.Page_STT_Whisper_Terminate) - - self.horizontalLayout_35.addWidget(self.StackedWidget_STT_Whisper) + self.verticalLayout_97.addWidget(self.Button_Train_GPTSoVITS_Terminate) + self.StackedWidget_Train_GPTSoVITS.addWidget(self.Page_Train_GPTSoVITS_Terminate) - self.gridLayout_19.addWidget(self.ProgressBar_STT_Whisper, 1, 0, 1, 3) + self.horizontalLayout_41.addWidget(self.StackedWidget_Train_GPTSoVITS) - self.gridLayout_19.setColumnStretch(0, 3) - self.gridLayout_19.setColumnStretch(1, 10) - self.gridLayout_19.setColumnStretch(2, 7) - self.StackedWidget_Pages_STT.addWidget(self.Subpage_STT_Whisper) - self.verticalLayout_41.addWidget(self.StackedWidget_Pages_STT) + self.gridLayout_85.addWidget(self.ProgressBar_Train_GPTSoVITS, 1, 0, 1, 3) - self.StackedWidget_Pages.addWidget(self.Page_STT) - self.Page_Dataset = QWidget() - self.Page_Dataset.setObjectName(u"Page_Dataset") - self.verticalLayout_39 = QVBoxLayout(self.Page_Dataset) - self.verticalLayout_39.setSpacing(21) - self.verticalLayout_39.setObjectName(u"verticalLayout_39") - self.verticalLayout_39.setContentsMargins(21, 12, 21, 12) - self.Frame_Dataset_Top = QFrame(self.Page_Dataset) - self.Frame_Dataset_Top.setObjectName(u"Frame_Dataset_Top") - self.Frame_Dataset_Top.setMinimumSize(QSize(0, 60)) - self.Frame_Dataset_Top.setStyleSheet(u"QFrame {\n" + self.gridLayout_85.setColumnStretch(0, 3) + self.gridLayout_85.setColumnStretch(1, 10) + self.gridLayout_85.setColumnStretch(2, 7) + self.StackedWidget_Pages_Train.addWidget(self.Subpage_Train_GPTSoVITS) + self.Subpage_Train_VITS = QWidget() + self.Subpage_Train_VITS.setObjectName(u"Subpage_Train_VITS") + self.gridLayout_22 = QGridLayout(self.Subpage_Train_VITS) + self.gridLayout_22.setSpacing(12) + self.gridLayout_22.setObjectName(u"gridLayout_22") + self.gridLayout_22.setContentsMargins(0, 0, 0, 0) + self.Widget_Right_Train_VITS = QWidget(self.Subpage_Train_VITS) + self.Widget_Right_Train_VITS.setObjectName(u"Widget_Right_Train_VITS") + self.Widget_Right_Train_VITS.setStyleSheet(u"QWidget {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" +"}\n" +"QWidget:hover {\n" "}") - self.horizontalLayout_83 = QHBoxLayout(self.Frame_Dataset_Top) - self.horizontalLayout_83.setSpacing(0) - self.horizontalLayout_83.setObjectName(u"horizontalLayout_83") - self.horizontalLayout_83.setContentsMargins(0, 0, 0, 0) - self.ToolButton_DatasetCreator_Title = QToolButton(self.Frame_Dataset_Top) - self.ToolButton_DatasetCreator_Title.setObjectName(u"ToolButton_DatasetCreator_Title") - sizePolicy1.setHeightForWidth(self.ToolButton_DatasetCreator_Title.sizePolicy().hasHeightForWidth()) - self.ToolButton_DatasetCreator_Title.setSizePolicy(sizePolicy1) - self.ToolButton_DatasetCreator_Title.setStyleSheet(u"QToolButton {\n" -" font-size: 24px;\n" -" /*text-align: center;*/\n" -" color: rgba(201, 210, 222, 210);\n" -" padding-left: 12px;\n" -" padding-right: 12px;\n" + self.gridLayout = QGridLayout(self.Widget_Right_Train_VITS) + self.gridLayout.setSpacing(12) + self.gridLayout.setObjectName(u"gridLayout") + self.gridLayout.setContentsMargins(12, 12, 12, 12) + self.Button_RunTensorboard_Train_VITS = QPushButton(self.Widget_Right_Train_VITS) + self.Button_RunTensorboard_Train_VITS.setObjectName(u"Button_RunTensorboard_Train_VITS") + self.Button_RunTensorboard_Train_VITS.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" font-size: 12px;\n" " background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +" padding: 9.9px;\n" +" border-width: 1.5px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout.addWidget(self.Button_RunTensorboard_Train_VITS, 1, 0, 1, 2) + + self.TextBrowser_Params_Train_VITS = QTextBrowser(self.Widget_Right_Train_VITS) + self.TextBrowser_Params_Train_VITS.setObjectName(u"TextBrowser_Params_Train_VITS") + sizePolicy1.setHeightForWidth(self.TextBrowser_Params_Train_VITS.sizePolicy().hasHeightForWidth()) + self.TextBrowser_Params_Train_VITS.setSizePolicy(sizePolicy1) + self.TextBrowser_Params_Train_VITS.setStyleSheet(u"QTextBrowser {\n" +" background-color: rgba(33, 33, 33, 99);\n" +" /*padding-top: 1.5px;*/\n" +" /*padding-bottom: 1.5px;*/\n" +" padding-left: 15px;\n" +" padding-right: 6px;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color:transparent;\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" bord" + "er-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" "}\n" -"QToolButton:hover {\n" -" color: rgba(210, 222, 234, 234);\n" +"\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px" + ";\n" " background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(120, 180, 240, 123);\n" "}\n" -"QToolButton:checked {\n" -" color: rgba(210, 222, 234, 255);\n" +"\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" " background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" -" border-style: solid;\n" -" border-bottom-color: rgba(120, 180, 240, 210);\n" "}\n" "\n" -"QToolTip {\n" -" color:" - " rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" +"QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" "}") - self.horizontalLayout_83.addWidget(self.ToolButton_DatasetCreator_Title) + self.gridLayout.addWidget(self.TextBrowser_Params_Train_VITS, 0, 0, 1, 2) - self.Frame_Dataset_Title_Spacer = QLabel(self.Frame_Dataset_Top) - self.Frame_Dataset_Title_Spacer.setObjectName(u"Frame_Dataset_Title_Spacer") - sizePolicy4.setHeightForWidth(self.Frame_Dataset_Title_Spacer.sizePolicy().hasHeightForWidth()) - self.Frame_Dataset_Title_Spacer.setSizePolicy(sizePolicy4) - self.Frame_Dataset_Title_Spacer.setStyleSheet(u"QLabel {\n" -" font-size: 24px;\n" -" /*text-align: center;\n" -" color: rgb(255, 255, 255);\n" -" padding-left: 12px;\n" -" padding-right: 12px;*/\n" + self.Button_CheckOutput_Train_VITS = QPushButton(self.Widget_Right_Train_VITS) + self.Button_CheckOutput_Train_VITS.setObjectName(u"Button_CheckOutput_Train_VITS") + self.Button_CheckOutput_Train_VITS.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" font-size: 12px;\n" " background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +" padding: 9.9px;\n" +" border-width: 1.5px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" -"}") - - self.horizontalLayout_83.addWidget(self.Frame_Dataset_Title_Spacer) - - - self.verticalLayout_39.addWidget(self.Frame_Dataset_Top) - - self.StackedWidget_Pages_Dataset = QStackedWidget(self.Page_Dataset) - self.StackedWidget_Pages_Dataset.setObjectName(u"StackedWidget_Pages_Dataset") - self.StackedWidget_Pages_Dataset.setStyleSheet(u"QWidget {\n" -" background-color: transparent;\n" -"}\n" -"\n" -"\n" -"/*\n" -"QTabWidget {\n" -" background-color: transparent;\n" -"}\n" -"QTabWidget::tab-bar {\n" +" border-color: rgb(90, 90, 90);\n" "}\n" -"QTabWidget::pane {\n" -" border-width: 0px;\n" -" border-style: solid;\n" +"QPushButton:hover {\n" +" border-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" -"QTabBar::tab {\n" -" font-size: 18px;\n" -" font-weight: 420;\n" -" spacing: 12px;\n" +"QToolTip {\n" " color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" padding: 12px;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +" background-color: transparent;\n" +" border-width: 0px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" -"}\n" -"QTabBar::tab:selected {\n" -" color: rgba(255, 255, 255, 255);\n" -"}\n" -"QTabBar::tab:hover:!selected {\n" -"}\n" -"\n" -"\n" -"QTabBar QToolButton {\n" -"}\n" -"QTabBar QToolButton:hover {\n" -"}\n" -"*/") - self.Subpage_DAT_VITS = QWidget() - self.Subpage_DAT_VITS.setObjectName(u"Subpage_DAT_VITS") - self.gridLayout_8 = QGridLayout(self.Subpage_DAT_VITS) - self.gridLayout_8.setSpacing(12) - self.gridLayout_8.setObjectName(u"gridLayout_8") - self.gridLayout_8.setContentsMargins(0, 0, 0, 0) - self.Widget_Left_DAT_VITS = QWidget(self.Subpage_DAT_VITS) - self.Widget_Left_DAT_VITS.setObjectName(u"Widget_Left_DAT_VITS") - self.Widget_Left_DAT_VITS.setMinimumSize(QSize(150, 0)) - self.Widget_Left_DAT_VITS.setStyleSheet(u"QWidget {\n" +"}") + + self.gridLayout.addWidget(self.Button_CheckOutput_Train_VITS, 2, 0, 1, 2) + + + self.gridLayout_22.addWidget(self.Widget_Right_Train_VITS, 0, 2, 1, 1) + + self.Widget_Left_Train_VITS = QWidget(self.Subpage_Train_VITS) + self.Widget_Left_Train_VITS.setObjectName(u"Widget_Left_Train_VITS") + self.Widget_Left_Train_VITS.setMinimumSize(QSize(150, 0)) + self.Widget_Left_Train_VITS.setStyleSheet(u"QWidget {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" "QWidget:hover {\n" "}") - self.verticalLayout_9 = QVBoxLayout(self.Widget_Left_DAT_VITS) - self.verticalLayout_9.setSpacing(12) - self.verticalLayout_9.setObjectName(u"verticalLayout_9") - self.verticalLayout_9.setContentsMargins(12, 12, 12, 12) - self.TreeWidget_Catalogue_DAT_VITS = QTreeWidget(self.Widget_Left_DAT_VITS) - __qtreewidgetitem3 = QTreeWidgetItem(self.TreeWidget_Catalogue_DAT_VITS) - QTreeWidgetItem(__qtreewidgetitem3) - self.TreeWidget_Catalogue_DAT_VITS.setObjectName(u"TreeWidget_Catalogue_DAT_VITS") - self.TreeWidget_Catalogue_DAT_VITS.setStyleSheet(u"QTreeView {\n" + self.verticalLayout_10 = QVBoxLayout(self.Widget_Left_Train_VITS) + self.verticalLayout_10.setSpacing(12) + self.verticalLayout_10.setObjectName(u"verticalLayout_10") + self.verticalLayout_10.setContentsMargins(12, 12, 12, 12) + self.TreeWidget_Catalogue_Train_VITS = QTreeWidget(self.Widget_Left_Train_VITS) + __qtreewidgetitem6 = QTreeWidgetItem(self.TreeWidget_Catalogue_Train_VITS) + QTreeWidgetItem(__qtreewidgetitem6) + self.TreeWidget_Catalogue_Train_VITS.setObjectName(u"TreeWidget_Catalogue_Train_VITS") + self.TreeWidget_Catalogue_Train_VITS.setStyleSheet(u"QTreeView {\n" " /*font-size: 12px;\n" " text-align: center;*/\n" " background-color: transparent;\n" @@ -8777,33 +14448,147 @@ def setupUi(self, MainWindow): "QScrollBar::sub-line, QScrollBar::add-line {\n" " background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-page, QScrollBar::add-page {\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle {\n" +" background-color: rgba(90, 90, 90, 90);\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}") + + self.verticalLayout_10.addWidget(self.TreeWidget_Catalogue_Train_VITS) + + + self.gridLayout_22.addWidget(self.Widget_Left_Train_VITS, 0, 0, 1, 1) + + self.ProgressBar_Train_VITS = QProgressBar(self.Subpage_Train_VITS) + self.ProgressBar_Train_VITS.setObjectName(u"ProgressBar_Train_VITS") + self.ProgressBar_Train_VITS.setMinimumSize(QSize(0, 30)) + self.ProgressBar_Train_VITS.setStyleSheet(u"QProgressBar {\n" +" text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" background-color: rgb(60, 60, 60);\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QProgressBar:chunk {\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" +"}") + self.ProgressBar_Train_VITS.setValue(0) + self.ProgressBar_Train_VITS.setTextVisible(False) + self.horizontalLayout_39 = QHBoxLayout(self.ProgressBar_Train_VITS) + self.horizontalLayout_39.setSpacing(0) + self.horizontalLayout_39.setObjectName(u"horizontalLayout_39") + self.horizontalLayout_39.setContentsMargins(0, 0, 0, 0) + self.StackedWidget_Train_VITS = QStackedWidget(self.ProgressBar_Train_VITS) + self.StackedWidget_Train_VITS.setObjectName(u"StackedWidget_Train_VITS") + self.StackedWidget_Train_VITS.setMaximumSize(QSize(16777215, 30)) + self.StackedWidget_Train_VITS.setStyleSheet(u"QWidget {\n" +" background-color: rgba(90, 90, 90, 45);\n" +"}\n" +"QWidget:hover {\n" +" background-color: rgba(120, 120, 120, 60);\n" +"}") + self.Page_Train_VITS_Execute = QWidget() + self.Page_Train_VITS_Execute.setObjectName(u"Page_Train_VITS_Execute") + self.verticalLayout_94 = QVBoxLayout(self.Page_Train_VITS_Execute) + self.verticalLayout_94.setSpacing(0) + self.verticalLayout_94.setObjectName(u"verticalLayout_94") + self.verticalLayout_94.setContentsMargins(0, 0, 0, 0) + self.Button_Train_VITS_Execute = QPushButton(self.Page_Train_VITS_Execute) + self.Button_Train_VITS_Execute.setObjectName(u"Button_Train_VITS_Execute") + sizePolicy3.setHeightForWidth(self.Button_Train_VITS_Execute.sizePolicy().hasHeightForWidth()) + self.Button_Train_VITS_Execute.setSizePolicy(sizePolicy3) + self.Button_Train_VITS_Execute.setMinimumSize(QSize(0, 30)) + self.Button_Train_VITS_Execute.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_94.addWidget(self.Button_Train_VITS_Execute) + + self.StackedWidget_Train_VITS.addWidget(self.Page_Train_VITS_Execute) + self.Page_Train_VITS_Terminate = QWidget() + self.Page_Train_VITS_Terminate.setObjectName(u"Page_Train_VITS_Terminate") + self.verticalLayout_95 = QVBoxLayout(self.Page_Train_VITS_Terminate) + self.verticalLayout_95.setSpacing(0) + self.verticalLayout_95.setObjectName(u"verticalLayout_95") + self.verticalLayout_95.setContentsMargins(0, 0, 0, 0) + self.Button_Train_VITS_Terminate = QPushButton(self.Page_Train_VITS_Terminate) + self.Button_Train_VITS_Terminate.setObjectName(u"Button_Train_VITS_Terminate") + sizePolicy3.setHeightForWidth(self.Button_Train_VITS_Terminate.sizePolicy().hasHeightForWidth()) + self.Button_Train_VITS_Terminate.setSizePolicy(sizePolicy3) + self.Button_Train_VITS_Terminate.setMinimumSize(QSize(0, 30)) + self.Button_Train_VITS_Terminate.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" "}\n" -"\n" -"QScrollBar::sub-page, QScrollBar::add-page {\n" -" background-color: transparent;\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" "}\n" "\n" -"QScrollBar::handle {\n" -" background-color: rgba(90, 90, 90, 90);\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" -"}\n" -"QScrollBar::handle:hover {\n" -" background-color: rgba(120, 120, 120, 120);\n" "}") - self.verticalLayout_9.addWidget(self.TreeWidget_Catalogue_DAT_VITS) + self.verticalLayout_95.addWidget(self.Button_Train_VITS_Terminate) + self.StackedWidget_Train_VITS.addWidget(self.Page_Train_VITS_Terminate) - self.gridLayout_8.addWidget(self.Widget_Left_DAT_VITS, 0, 0, 1, 1) + self.horizontalLayout_39.addWidget(self.StackedWidget_Train_VITS) - self.ScrollArea_Middle_DAT_VITS = QScrollArea(self.Subpage_DAT_VITS) - self.ScrollArea_Middle_DAT_VITS.setObjectName(u"ScrollArea_Middle_DAT_VITS") - self.ScrollArea_Middle_DAT_VITS.setMinimumSize(QSize(600, 0)) - self.ScrollArea_Middle_DAT_VITS.setStyleSheet(u"QScrollArea {\n" + + self.gridLayout_22.addWidget(self.ProgressBar_Train_VITS, 1, 0, 1, 3) + + self.ScrollArea_Middle_Train_VITS = QScrollArea(self.Subpage_Train_VITS) + self.ScrollArea_Middle_Train_VITS.setObjectName(u"ScrollArea_Middle_Train_VITS") + self.ScrollArea_Middle_Train_VITS.setMinimumSize(QSize(600, 0)) + self.ScrollArea_Middle_Train_VITS.setStyleSheet(u"QScrollArea {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" @@ -8912,18 +14697,18 @@ def setupUi(self, MainWindow): "QScrollBar::handle:horizontal:hover {\n" " background-color: rgb(120, 120, 120);\n" "}") - self.ScrollArea_Middle_DAT_VITS.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) - self.ScrollArea_Middle_DAT_VITS.setWidgetResizable(True) - self.ScrollArea_Middle_WidgetContents_DAT_VITS = QWidget() - self.ScrollArea_Middle_WidgetContents_DAT_VITS.setObjectName(u"ScrollArea_Middle_WidgetContents_DAT_VITS") - self.ScrollArea_Middle_WidgetContents_DAT_VITS.setGeometry(QRect(0, 0, 591, 1566)) - self.verticalLayout_36 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_DAT_VITS) - self.verticalLayout_36.setSpacing(12) - self.verticalLayout_36.setObjectName(u"verticalLayout_36") - self.verticalLayout_36.setContentsMargins(12, 12, 12, 12) - self.GroupBox_DAT_VITS_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_DAT_VITS) - self.GroupBox_DAT_VITS_InputParams.setObjectName(u"GroupBox_DAT_VITS_InputParams") - self.GroupBox_DAT_VITS_InputParams.setStyleSheet(u"QGroupBox {\n" + self.ScrollArea_Middle_Train_VITS.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) + self.ScrollArea_Middle_Train_VITS.setWidgetResizable(True) + self.ScrollArea_Middle_WidgetContents_Train_VITS = QWidget() + self.ScrollArea_Middle_WidgetContents_Train_VITS.setObjectName(u"ScrollArea_Middle_WidgetContents_Train_VITS") + self.ScrollArea_Middle_WidgetContents_Train_VITS.setGeometry(QRect(0, 0, 591, 1702)) + self.verticalLayout_28 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_Train_VITS) + self.verticalLayout_28.setSpacing(12) + self.verticalLayout_28.setObjectName(u"verticalLayout_28") + self.verticalLayout_28.setContentsMargins(12, 12, 12, 12) + self.GroupBox_Train_VITS_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Train_VITS) + self.GroupBox_Train_VITS_InputParams.setObjectName(u"GroupBox_Train_VITS_InputParams") + self.GroupBox_Train_VITS_InputParams.setStyleSheet(u"QGroupBox {\n" " font-size: 15px;\n" " margin-top: 1.5ex;\n" " color: rgb(255, 255, 255);\n" @@ -8939,20 +14724,20 @@ def setupUi(self, MainWindow): " subcontrol-position: top left;\n" " padding: 3px;\n" "}") - self.verticalLayout_111 = QVBoxLayout(self.GroupBox_DAT_VITS_InputParams) - self.verticalLayout_111.setSpacing(0) - self.verticalLayout_111.setObjectName(u"verticalLayout_111") - self.verticalLayout_111.setContentsMargins(0, 12, 0, 12) - self.Frame_DAT_VITS_InputParams_BasicSettings = QFrame(self.GroupBox_DAT_VITS_InputParams) - self.Frame_DAT_VITS_InputParams_BasicSettings.setObjectName(u"Frame_DAT_VITS_InputParams_BasicSettings") - self.verticalLayout_29 = QVBoxLayout(self.Frame_DAT_VITS_InputParams_BasicSettings) - self.verticalLayout_29.setSpacing(0) - self.verticalLayout_29.setObjectName(u"verticalLayout_29") - self.verticalLayout_29.setContentsMargins(0, 0, 0, 0) - self.Frame_DAT_VITS_AudioSpeakersDataPath = QFrame(self.Frame_DAT_VITS_InputParams_BasicSettings) - self.Frame_DAT_VITS_AudioSpeakersDataPath.setObjectName(u"Frame_DAT_VITS_AudioSpeakersDataPath") - self.Frame_DAT_VITS_AudioSpeakersDataPath.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_AudioSpeakersDataPath.setStyleSheet(u"QFrame {\n" + self.verticalLayout_116 = QVBoxLayout(self.GroupBox_Train_VITS_InputParams) + self.verticalLayout_116.setSpacing(0) + self.verticalLayout_116.setObjectName(u"verticalLayout_116") + self.verticalLayout_116.setContentsMargins(0, 12, 0, 12) + self.Frame_Train_VITS_InputParams_BasicSettings = QFrame(self.GroupBox_Train_VITS_InputParams) + self.Frame_Train_VITS_InputParams_BasicSettings.setObjectName(u"Frame_Train_VITS_InputParams_BasicSettings") + self.verticalLayout_18 = QVBoxLayout(self.Frame_Train_VITS_InputParams_BasicSettings) + self.verticalLayout_18.setSpacing(0) + self.verticalLayout_18.setObjectName(u"verticalLayout_18") + self.verticalLayout_18.setContentsMargins(0, 0, 0, 0) + self.Frame_Train_VITS_FileListPathTraining = QFrame(self.Frame_Train_VITS_InputParams_BasicSettings) + self.Frame_Train_VITS_FileListPathTraining.setObjectName(u"Frame_Train_VITS_FileListPathTraining") + self.Frame_Train_VITS_FileListPathTraining.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_FileListPathTraining.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -8961,15 +14746,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_46 = QGridLayout(self.Frame_DAT_VITS_AudioSpeakersDataPath) - self.gridLayout_46.setSpacing(12) - self.gridLayout_46.setObjectName(u"gridLayout_46") - self.gridLayout_46.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_AudioSpeakersDataPath = QLabel(self.Frame_DAT_VITS_AudioSpeakersDataPath) - self.Label_DAT_VITS_AudioSpeakersDataPath.setObjectName(u"Label_DAT_VITS_AudioSpeakersDataPath") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_AudioSpeakersDataPath.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_AudioSpeakersDataPath.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_AudioSpeakersDataPath.setStyleSheet(u"QLabel {\n" + self.gridLayout_57 = QGridLayout(self.Frame_Train_VITS_FileListPathTraining) + self.gridLayout_57.setSpacing(12) + self.gridLayout_57.setObjectName(u"gridLayout_57") + self.gridLayout_57.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_FileListPathTraining = QLabel(self.Frame_Train_VITS_FileListPathTraining) + self.Label_Train_VITS_FileListPathTraining.setObjectName(u"Label_Train_VITS_FileListPathTraining") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_FileListPathTraining.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_FileListPathTraining.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_FileListPathTraining.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -8979,17 +14764,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_46.addWidget(self.Label_DAT_VITS_AudioSpeakersDataPath, 0, 0, 1, 1) + self.gridLayout_57.addWidget(self.Label_Train_VITS_FileListPathTraining, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_InputParams = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_FileListPathTraining = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_46.addItem(self.HorizontalSpacer_DAT_VITS_InputParams, 0, 1, 1, 1) + self.gridLayout_57.addItem(self.HorizontalSpacer_Train_VITS_FileListPathTraining, 0, 1, 1, 1) - self.Button_DAT_VITS_AudioSpeakersDataPath_Undo = QPushButton(self.Frame_DAT_VITS_AudioSpeakersDataPath) - self.Button_DAT_VITS_AudioSpeakersDataPath_Undo.setObjectName(u"Button_DAT_VITS_AudioSpeakersDataPath_Undo") - self.Button_DAT_VITS_AudioSpeakersDataPath_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_AudioSpeakersDataPath_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_AudioSpeakersDataPath_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_FileListPathTraining_Undo = QPushButton(self.Frame_Train_VITS_FileListPathTraining) + self.Button_Train_VITS_FileListPathTraining_Undo.setObjectName(u"Button_Train_VITS_FileListPathTraining_Undo") + self.Button_Train_VITS_FileListPathTraining_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_FileListPathTraining_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_FileListPathTraining_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -9010,21 +14795,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_46.addWidget(self.Button_DAT_VITS_AudioSpeakersDataPath_Undo, 0, 2, 1, 1) + self.gridLayout_57.addWidget(self.Button_Train_VITS_FileListPathTraining_Undo, 0, 2, 1, 1) - self.LineEdit_DAT_VITS_AudioSpeakersDataPath = LineEditBase(self.Frame_DAT_VITS_AudioSpeakersDataPath) - self.LineEdit_DAT_VITS_AudioSpeakersDataPath.setObjectName(u"LineEdit_DAT_VITS_AudioSpeakersDataPath") - self.LineEdit_DAT_VITS_AudioSpeakersDataPath.setMinimumSize(QSize(0, 27)) + self.LineEdit_Train_VITS_FileListPathTraining = LineEditBase(self.Frame_Train_VITS_FileListPathTraining) + self.LineEdit_Train_VITS_FileListPathTraining.setObjectName(u"LineEdit_Train_VITS_FileListPathTraining") + self.LineEdit_Train_VITS_FileListPathTraining.setMinimumSize(QSize(0, 27)) - self.gridLayout_46.addWidget(self.LineEdit_DAT_VITS_AudioSpeakersDataPath, 1, 0, 1, 3) + self.gridLayout_57.addWidget(self.LineEdit_Train_VITS_FileListPathTraining, 1, 0, 1, 3) - self.verticalLayout_29.addWidget(self.Frame_DAT_VITS_AudioSpeakersDataPath) + self.verticalLayout_18.addWidget(self.Frame_Train_VITS_FileListPathTraining) - self.Frame_DAT_VITS_SRTDir = QFrame(self.Frame_DAT_VITS_InputParams_BasicSettings) - self.Frame_DAT_VITS_SRTDir.setObjectName(u"Frame_DAT_VITS_SRTDir") - self.Frame_DAT_VITS_SRTDir.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_SRTDir.setStyleSheet(u"QFrame {\n" + self.Frame_Train_VITS_FileListPathValidation = QFrame(self.Frame_Train_VITS_InputParams_BasicSettings) + self.Frame_Train_VITS_FileListPathValidation.setObjectName(u"Frame_Train_VITS_FileListPathValidation") + self.Frame_Train_VITS_FileListPathValidation.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_FileListPathValidation.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -9033,15 +14818,121 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_47 = QGridLayout(self.Frame_DAT_VITS_SRTDir) - self.gridLayout_47.setSpacing(12) - self.gridLayout_47.setObjectName(u"gridLayout_47") - self.gridLayout_47.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_SRTDir = QLabel(self.Frame_DAT_VITS_SRTDir) - self.Label_DAT_VITS_SRTDir.setObjectName(u"Label_DAT_VITS_SRTDir") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_SRTDir.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_SRTDir.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_SRTDir.setStyleSheet(u"QLabel {\n" + self.gridLayout_58 = QGridLayout(self.Frame_Train_VITS_FileListPathValidation) + self.gridLayout_58.setSpacing(12) + self.gridLayout_58.setObjectName(u"gridLayout_58") + self.gridLayout_58.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_FileListPathValidation = QLabel(self.Frame_Train_VITS_FileListPathValidation) + self.Label_Train_VITS_FileListPathValidation.setObjectName(u"Label_Train_VITS_FileListPathValidation") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_FileListPathValidation.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_FileListPathValidation.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_FileListPathValidation.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_58.addWidget(self.Label_Train_VITS_FileListPathValidation, 0, 0, 1, 1) + + self.HorizontalSpacer_Train_VITS_FileListPathValidation = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_58.addItem(self.HorizontalSpacer_Train_VITS_FileListPathValidation, 0, 1, 1, 1) + + self.Button_Train_VITS_FileListPathValidation_Undo = QPushButton(self.Frame_Train_VITS_FileListPathValidation) + self.Button_Train_VITS_FileListPathValidation_Undo.setObjectName(u"Button_Train_VITS_FileListPathValidation_Undo") + self.Button_Train_VITS_FileListPathValidation_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_FileListPathValidation_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_FileListPathValidation_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_58.addWidget(self.Button_Train_VITS_FileListPathValidation_Undo, 0, 2, 1, 1) + + self.LineEdit_Train_VITS_FileListPathValidation = LineEditBase(self.Frame_Train_VITS_FileListPathValidation) + self.LineEdit_Train_VITS_FileListPathValidation.setObjectName(u"LineEdit_Train_VITS_FileListPathValidation") + self.LineEdit_Train_VITS_FileListPathValidation.setMinimumSize(QSize(0, 27)) + + self.gridLayout_58.addWidget(self.LineEdit_Train_VITS_FileListPathValidation, 1, 0, 1, 3) + + + self.verticalLayout_18.addWidget(self.Frame_Train_VITS_FileListPathValidation) + + + self.verticalLayout_116.addWidget(self.Frame_Train_VITS_InputParams_BasicSettings) + + + self.verticalLayout_28.addWidget(self.GroupBox_Train_VITS_InputParams) + + self.GroupBox_Train_VITS_VITSParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Train_VITS) + self.GroupBox_Train_VITS_VITSParams.setObjectName(u"GroupBox_Train_VITS_VITSParams") + self.GroupBox_Train_VITS_VITSParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_114 = QVBoxLayout(self.GroupBox_Train_VITS_VITSParams) + self.verticalLayout_114.setSpacing(0) + self.verticalLayout_114.setObjectName(u"verticalLayout_114") + self.verticalLayout_114.setContentsMargins(0, 12, 0, 12) + self.Frame_Train_VITS_VITSParams_BasicSettings = QFrame(self.GroupBox_Train_VITS_VITSParams) + self.Frame_Train_VITS_VITSParams_BasicSettings.setObjectName(u"Frame_Train_VITS_VITSParams_BasicSettings") + self.verticalLayout_17 = QVBoxLayout(self.Frame_Train_VITS_VITSParams_BasicSettings) + self.verticalLayout_17.setSpacing(0) + self.verticalLayout_17.setObjectName(u"verticalLayout_17") + self.verticalLayout_17.setContentsMargins(0, 0, 0, 0) + self.Frame_Train_VITS_Epochs = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) + self.Frame_Train_VITS_Epochs.setObjectName(u"Frame_Train_VITS_Epochs") + self.Frame_Train_VITS_Epochs.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_Epochs.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_59 = QGridLayout(self.Frame_Train_VITS_Epochs) + self.gridLayout_59.setSpacing(12) + self.gridLayout_59.setObjectName(u"gridLayout_59") + self.gridLayout_59.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_Epochs = QLabel(self.Frame_Train_VITS_Epochs) + self.Label_Train_VITS_Epochs.setObjectName(u"Label_Train_VITS_Epochs") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_Epochs.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_Epochs.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_Epochs.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -9051,17 +14942,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_47.addWidget(self.Label_DAT_VITS_SRTDir, 0, 0, 1, 1) + self.gridLayout_59.addWidget(self.Label_Train_VITS_Epochs, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_SRTDir = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_Epochs = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_47.addItem(self.HorizontalSpacer_DAT_VITS_SRTDir, 0, 1, 1, 1) + self.gridLayout_59.addItem(self.HorizontalSpacer_Train_VITS_Epochs, 0, 1, 1, 1) - self.Button_DAT_VITS_SRTDir_Undo = QPushButton(self.Frame_DAT_VITS_SRTDir) - self.Button_DAT_VITS_SRTDir_Undo.setObjectName(u"Button_DAT_VITS_SRTDir_Undo") - self.Button_DAT_VITS_SRTDir_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_SRTDir_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_SRTDir_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_Epochs_Undo = QPushButton(self.Frame_Train_VITS_Epochs) + self.Button_Train_VITS_Epochs_Undo.setObjectName(u"Button_Train_VITS_Epochs_Undo") + self.Button_Train_VITS_Epochs_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_Epochs_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_Epochs_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -9082,55 +14973,74 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_47.addWidget(self.Button_DAT_VITS_SRTDir_Undo, 0, 2, 1, 1) - - self.LineEdit_DAT_VITS_SRTDir = LineEditBase(self.Frame_DAT_VITS_SRTDir) - self.LineEdit_DAT_VITS_SRTDir.setObjectName(u"LineEdit_DAT_VITS_SRTDir") - self.LineEdit_DAT_VITS_SRTDir.setMinimumSize(QSize(0, 27)) - - self.gridLayout_47.addWidget(self.LineEdit_DAT_VITS_SRTDir, 1, 0, 1, 3) - - - self.verticalLayout_29.addWidget(self.Frame_DAT_VITS_SRTDir) - - - self.verticalLayout_111.addWidget(self.Frame_DAT_VITS_InputParams_BasicSettings) - - - self.verticalLayout_36.addWidget(self.GroupBox_DAT_VITS_InputParams) + self.gridLayout_59.addWidget(self.Button_Train_VITS_Epochs_Undo, 0, 2, 1, 1) - self.GroupBox_DAT_VITS_VITSParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_DAT_VITS) - self.GroupBox_DAT_VITS_VITSParams.setObjectName(u"GroupBox_DAT_VITS_VITSParams") - self.GroupBox_DAT_VITS_VITSParams.setStyleSheet(u"QGroupBox {\n" -" font-size: 15px;\n" -" margin-top: 1.5ex;\n" + self.SpinBox_Train_VITS_Epochs = QSpinBox(self.Frame_Train_VITS_Epochs) + self.SpinBox_Train_VITS_Epochs.setObjectName(u"SpinBox_Train_VITS_Epochs") + self.SpinBox_Train_VITS_Epochs.setMinimumSize(QSize(0, 27)) + self.SpinBox_Train_VITS_Epochs.setStyleSheet(u"QSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" " color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" " background-color: transparent;\n" -" border-width: 1px;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -" border-color: transparent;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QGroupBox::title {\n" -" left: 9px;\n" -" margin-left: 0px;\n" -" subcontrol-origin: margin;\n" -" subcontrol-position: top left;\n" -" padding: 3px;\n" +"QSpinBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"QSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"QSpinBox::down-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QSpinBox::down-arrow {\n" +" border-image: url(:/(Double)" + "SpinBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" "}") - self.verticalLayout_115 = QVBoxLayout(self.GroupBox_DAT_VITS_VITSParams) - self.verticalLayout_115.setSpacing(0) - self.verticalLayout_115.setObjectName(u"verticalLayout_115") - self.verticalLayout_115.setContentsMargins(0, 12, 0, 12) - self.Frame_DAT_VITS_VITSParams_BasicSettings = QFrame(self.GroupBox_DAT_VITS_VITSParams) - self.Frame_DAT_VITS_VITSParams_BasicSettings.setObjectName(u"Frame_DAT_VITS_VITSParams_BasicSettings") - self.verticalLayout_30 = QVBoxLayout(self.Frame_DAT_VITS_VITSParams_BasicSettings) - self.verticalLayout_30.setSpacing(0) - self.verticalLayout_30.setObjectName(u"verticalLayout_30") - self.verticalLayout_30.setContentsMargins(0, 0, 0, 0) - self.Frame_DAT_VITS_DataFormat = QFrame(self.Frame_DAT_VITS_VITSParams_BasicSettings) - self.Frame_DAT_VITS_DataFormat.setObjectName(u"Frame_DAT_VITS_DataFormat") - self.Frame_DAT_VITS_DataFormat.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_DataFormat.setStyleSheet(u"QFrame {\n" + self.SpinBox_Train_VITS_Epochs.setMinimum(-999999) + self.SpinBox_Train_VITS_Epochs.setMaximum(999999) + + self.gridLayout_59.addWidget(self.SpinBox_Train_VITS_Epochs, 1, 0, 1, 3) + + + self.verticalLayout_17.addWidget(self.Frame_Train_VITS_Epochs) + + self.Frame_Train_VITS_BatchSize = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) + self.Frame_Train_VITS_BatchSize.setObjectName(u"Frame_Train_VITS_BatchSize") + self.Frame_Train_VITS_BatchSize.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_BatchSize.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -9139,15 +15049,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_76 = QGridLayout(self.Frame_DAT_VITS_DataFormat) - self.gridLayout_76.setSpacing(12) - self.gridLayout_76.setObjectName(u"gridLayout_76") - self.gridLayout_76.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_DataFormat = QLabel(self.Frame_DAT_VITS_DataFormat) - self.Label_DAT_VITS_DataFormat.setObjectName(u"Label_DAT_VITS_DataFormat") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_DataFormat.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_DataFormat.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_DataFormat.setStyleSheet(u"QLabel {\n" + self.gridLayout_60 = QGridLayout(self.Frame_Train_VITS_BatchSize) + self.gridLayout_60.setSpacing(12) + self.gridLayout_60.setObjectName(u"gridLayout_60") + self.gridLayout_60.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_BatchSize = QLabel(self.Frame_Train_VITS_BatchSize) + self.Label_Train_VITS_BatchSize.setObjectName(u"Label_Train_VITS_BatchSize") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_BatchSize.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_BatchSize.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_BatchSize.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -9157,17 +15067,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_76.addWidget(self.Label_DAT_VITS_DataFormat, 0, 0, 1, 1) + self.gridLayout_60.addWidget(self.Label_Train_VITS_BatchSize, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_DataFormat = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_BatchSize = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_76.addItem(self.HorizontalSpacer_DAT_VITS_DataFormat, 0, 1, 1, 1) + self.gridLayout_60.addItem(self.HorizontalSpacer_Train_VITS_BatchSize, 0, 1, 1, 1) - self.Button_DAT_VITS_DataFormat_Undo = QPushButton(self.Frame_DAT_VITS_DataFormat) - self.Button_DAT_VITS_DataFormat_Undo.setObjectName(u"Button_DAT_VITS_DataFormat_Undo") - self.Button_DAT_VITS_DataFormat_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_DataFormat_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_DataFormat_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_BatchSize_Undo = QPushButton(self.Frame_Train_VITS_BatchSize) + self.Button_Train_VITS_BatchSize_Undo.setObjectName(u"Button_Train_VITS_BatchSize_Undo") + self.Button_Train_VITS_BatchSize_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_BatchSize_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_BatchSize_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -9188,38 +15098,91 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_76.addWidget(self.Button_DAT_VITS_DataFormat_Undo, 0, 2, 1, 1) + self.gridLayout_60.addWidget(self.Button_Train_VITS_BatchSize_Undo, 0, 2, 1, 1) - self.LineEdit_DAT_VITS_DataFormat = LineEditBase(self.Frame_DAT_VITS_DataFormat) - self.LineEdit_DAT_VITS_DataFormat.setObjectName(u"LineEdit_DAT_VITS_DataFormat") - self.LineEdit_DAT_VITS_DataFormat.setMinimumSize(QSize(0, 27)) + self.SpinBox_Train_VITS_BatchSize = QSpinBox(self.Frame_Train_VITS_BatchSize) + self.SpinBox_Train_VITS_BatchSize.setObjectName(u"SpinBox_Train_VITS_BatchSize") + self.SpinBox_Train_VITS_BatchSize.setMinimumSize(QSize(0, 27)) + self.SpinBox_Train_VITS_BatchSize.setStyleSheet(u"QSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QSpinBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"QSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"QSpinBox::down-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QSpinBox::down-arrow {\n" +" border-image: url(:/(Double)" + "SpinBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + self.SpinBox_Train_VITS_BatchSize.setMinimum(-999999) + self.SpinBox_Train_VITS_BatchSize.setMaximum(999999) - self.gridLayout_76.addWidget(self.LineEdit_DAT_VITS_DataFormat, 1, 0, 1, 3) + self.gridLayout_60.addWidget(self.SpinBox_Train_VITS_BatchSize, 1, 0, 1, 3) - self.verticalLayout_30.addWidget(self.Frame_DAT_VITS_DataFormat) + self.verticalLayout_17.addWidget(self.Frame_Train_VITS_BatchSize) - self.Frame_DAT_VITS_AddAuxiliaryData = QFrame(self.Frame_DAT_VITS_VITSParams_BasicSettings) - self.Frame_DAT_VITS_AddAuxiliaryData.setObjectName(u"Frame_DAT_VITS_AddAuxiliaryData") - self.Frame_DAT_VITS_AddAuxiliaryData.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_AddAuxiliaryData.setStyleSheet(u"QFrame {\n" + self.Frame_Train_VITS_UsePretrainedModels = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) + self.Frame_Train_VITS_UsePretrainedModels.setObjectName(u"Frame_Train_VITS_UsePretrainedModels") + self.Frame_Train_VITS_UsePretrainedModels.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_UsePretrainedModels.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_48 = QGridLayout(self.Frame_DAT_VITS_AddAuxiliaryData) - self.gridLayout_48.setSpacing(12) - self.gridLayout_48.setObjectName(u"gridLayout_48") - self.gridLayout_48.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_AddAuxiliaryData = QLabel(self.Frame_DAT_VITS_AddAuxiliaryData) - self.Label_DAT_VITS_AddAuxiliaryData.setObjectName(u"Label_DAT_VITS_AddAuxiliaryData") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_AddAuxiliaryData.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_AddAuxiliaryData.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_AddAuxiliaryData.setStyleSheet(u"QLabel {\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_61 = QGridLayout(self.Frame_Train_VITS_UsePretrainedModels) + self.gridLayout_61.setSpacing(12) + self.gridLayout_61.setObjectName(u"gridLayout_61") + self.gridLayout_61.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_UsePretrainedModels = QLabel(self.Frame_Train_VITS_UsePretrainedModels) + self.Label_Train_VITS_UsePretrainedModels.setObjectName(u"Label_Train_VITS_UsePretrainedModels") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_UsePretrainedModels.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_UsePretrainedModels.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_UsePretrainedModels.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -9229,17 +15192,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_48.addWidget(self.Label_DAT_VITS_AddAuxiliaryData, 0, 0, 1, 1) + self.gridLayout_61.addWidget(self.Label_Train_VITS_UsePretrainedModels, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_AddAuxiliaryData = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_UsePretrainedModels = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_48.addItem(self.HorizontalSpacer_DAT_VITS_AddAuxiliaryData, 0, 1, 1, 1) + self.gridLayout_61.addItem(self.HorizontalSpacer_Train_VITS_UsePretrainedModels, 0, 1, 1, 1) - self.Button_DAT_VITS_AddAuxiliaryData_Undo = QPushButton(self.Frame_DAT_VITS_AddAuxiliaryData) - self.Button_DAT_VITS_AddAuxiliaryData_Undo.setObjectName(u"Button_DAT_VITS_AddAuxiliaryData_Undo") - self.Button_DAT_VITS_AddAuxiliaryData_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_AddAuxiliaryData_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_AddAuxiliaryData_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_UsePretrainedModels_Undo = QPushButton(self.Frame_Train_VITS_UsePretrainedModels) + self.Button_Train_VITS_UsePretrainedModels_Undo.setObjectName(u"Button_Train_VITS_UsePretrainedModels_Undo") + self.Button_Train_VITS_UsePretrainedModels_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_UsePretrainedModels_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_UsePretrainedModels_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -9260,12 +15223,12 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_48.addWidget(self.Button_DAT_VITS_AddAuxiliaryData_Undo, 0, 2, 1, 1) + self.gridLayout_61.addWidget(self.Button_Train_VITS_UsePretrainedModels_Undo, 0, 2, 1, 1) - self.CheckBox_DAT_VITS_AddAuxiliaryData = QCheckBox(self.Frame_DAT_VITS_AddAuxiliaryData) - self.CheckBox_DAT_VITS_AddAuxiliaryData.setObjectName(u"CheckBox_DAT_VITS_AddAuxiliaryData") - self.CheckBox_DAT_VITS_AddAuxiliaryData.setMinimumSize(QSize(0, 27)) - self.CheckBox_DAT_VITS_AddAuxiliaryData.setStyleSheet(u"QCheckBox {\n" + self.CheckBox_Train_VITS_UsePretrainedModels = QCheckBox(self.Frame_Train_VITS_UsePretrainedModels) + self.CheckBox_Train_VITS_UsePretrainedModels.setObjectName(u"CheckBox_Train_VITS_UsePretrainedModels") + self.CheckBox_Train_VITS_UsePretrainedModels.setMinimumSize(QSize(0, 27)) + self.CheckBox_Train_VITS_UsePretrainedModels.setStyleSheet(u"QCheckBox {\n" " font-size: 12px;\n" " spacing: 12.3px;\n" " color: rgba(255, 255, 255, 210);\n" @@ -9306,15 +15269,15 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_48.addWidget(self.CheckBox_DAT_VITS_AddAuxiliaryData, 1, 0, 1, 3) + self.gridLayout_61.addWidget(self.CheckBox_Train_VITS_UsePretrainedModels, 1, 0, 1, 3) - self.verticalLayout_30.addWidget(self.Frame_DAT_VITS_AddAuxiliaryData) + self.verticalLayout_17.addWidget(self.Frame_Train_VITS_UsePretrainedModels) - self.Frame_DAT_VITS_AuxiliaryDataPath = QFrame(self.Frame_DAT_VITS_VITSParams_BasicSettings) - self.Frame_DAT_VITS_AuxiliaryDataPath.setObjectName(u"Frame_DAT_VITS_AuxiliaryDataPath") - self.Frame_DAT_VITS_AuxiliaryDataPath.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_AuxiliaryDataPath.setStyleSheet(u"QFrame {\n" + self.Frame_Train_VITS_ModelPathPretrainedG = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) + self.Frame_Train_VITS_ModelPathPretrainedG.setObjectName(u"Frame_Train_VITS_ModelPathPretrainedG") + self.Frame_Train_VITS_ModelPathPretrainedG.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_ModelPathPretrainedG.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -9323,15 +15286,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_53 = QGridLayout(self.Frame_DAT_VITS_AuxiliaryDataPath) - self.gridLayout_53.setSpacing(12) - self.gridLayout_53.setObjectName(u"gridLayout_53") - self.gridLayout_53.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_AuxiliaryDataPath = QLabel(self.Frame_DAT_VITS_AuxiliaryDataPath) - self.Label_DAT_VITS_AuxiliaryDataPath.setObjectName(u"Label_DAT_VITS_AuxiliaryDataPath") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_AuxiliaryDataPath.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_AuxiliaryDataPath.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_AuxiliaryDataPath.setStyleSheet(u"QLabel {\n" + self.gridLayout_65 = QGridLayout(self.Frame_Train_VITS_ModelPathPretrainedG) + self.gridLayout_65.setSpacing(12) + self.gridLayout_65.setObjectName(u"gridLayout_65") + self.gridLayout_65.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_ModelPathPretrainedG = QLabel(self.Frame_Train_VITS_ModelPathPretrainedG) + self.Label_Train_VITS_ModelPathPretrainedG.setObjectName(u"Label_Train_VITS_ModelPathPretrainedG") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_ModelPathPretrainedG.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_ModelPathPretrainedG.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_ModelPathPretrainedG.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -9341,17 +15304,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_53.addWidget(self.Label_DAT_VITS_AuxiliaryDataPath, 0, 0, 1, 1) + self.gridLayout_65.addWidget(self.Label_Train_VITS_ModelPathPretrainedG, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_AuxiliaryDataPath = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_ModelPathPretrainedG = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_53.addItem(self.HorizontalSpacer_DAT_VITS_AuxiliaryDataPath, 0, 1, 1, 1) + self.gridLayout_65.addItem(self.HorizontalSpacer_Train_VITS_ModelPathPretrainedG, 0, 1, 1, 1) - self.Button_DAT_VITS_AuxiliaryDataPath_Undo = QPushButton(self.Frame_DAT_VITS_AuxiliaryDataPath) - self.Button_DAT_VITS_AuxiliaryDataPath_Undo.setObjectName(u"Button_DAT_VITS_AuxiliaryDataPath_Undo") - self.Button_DAT_VITS_AuxiliaryDataPath_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_AuxiliaryDataPath_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_AuxiliaryDataPath_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_ModelPathPretrainedG_Undo = QPushButton(self.Frame_Train_VITS_ModelPathPretrainedG) + self.Button_Train_VITS_ModelPathPretrainedG_Undo.setObjectName(u"Button_Train_VITS_ModelPathPretrainedG_Undo") + self.Button_Train_VITS_ModelPathPretrainedG_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_ModelPathPretrainedG_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_ModelPathPretrainedG_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -9372,78 +15335,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_53.addWidget(self.Button_DAT_VITS_AuxiliaryDataPath_Undo, 0, 2, 1, 1) - - self.LineEdit_DAT_VITS_AuxiliaryDataPath = LineEditBase(self.Frame_DAT_VITS_AuxiliaryDataPath) - self.LineEdit_DAT_VITS_AuxiliaryDataPath.setObjectName(u"LineEdit_DAT_VITS_AuxiliaryDataPath") - self.LineEdit_DAT_VITS_AuxiliaryDataPath.setMinimumSize(QSize(0, 27)) - - self.gridLayout_53.addWidget(self.LineEdit_DAT_VITS_AuxiliaryDataPath, 1, 0, 1, 3) - - - self.verticalLayout_30.addWidget(self.Frame_DAT_VITS_AuxiliaryDataPath) + self.gridLayout_65.addWidget(self.Button_Train_VITS_ModelPathPretrainedG_Undo, 0, 2, 1, 1) + self.LineEdit_Train_VITS_ModelPathPretrainedG = LineEditBase(self.Frame_Train_VITS_ModelPathPretrainedG) + self.LineEdit_Train_VITS_ModelPathPretrainedG.setObjectName(u"LineEdit_Train_VITS_ModelPathPretrainedG") + self.LineEdit_Train_VITS_ModelPathPretrainedG.setMinimumSize(QSize(0, 27)) - self.verticalLayout_115.addWidget(self.Frame_DAT_VITS_VITSParams_BasicSettings) + self.gridLayout_65.addWidget(self.LineEdit_Train_VITS_ModelPathPretrainedG, 1, 0, 1, 3) - self.CheckBox_DAT_VITS_VITSParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_DAT_VITS_VITSParams) - self.CheckBox_DAT_VITS_VITSParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_DAT_VITS_VITSParams_Toggle_AdvanceSettings") - self.CheckBox_DAT_VITS_VITSParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" font-weight: 630;\n" -" spacing: 12px;\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" padding-top: 9px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" -"}\n" -"\n" -"QCheckBox::indicator {\n" -" width: 12px;\n" -" height: 12px;\n" -" background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"QCheckBox::indicator:hover {\n" -" background-color: transparent;\n" -"}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" -"}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - self.verticalLayout_115.addWidget(self.CheckBox_DAT_VITS_VITSParams_Toggle_AdvanceSettings) + self.verticalLayout_17.addWidget(self.Frame_Train_VITS_ModelPathPretrainedG) - self.Frame_DAT_VITS_VITSParams_AdvanceSettings = QFrame(self.GroupBox_DAT_VITS_VITSParams) - self.Frame_DAT_VITS_VITSParams_AdvanceSettings.setObjectName(u"Frame_DAT_VITS_VITSParams_AdvanceSettings") - self.Frame_DAT_VITS_VITSParams_AdvanceSettings.setFrameShape(QFrame.StyledPanel) - self.Frame_DAT_VITS_VITSParams_AdvanceSettings.setFrameShadow(QFrame.Raised) - self.verticalLayout_53 = QVBoxLayout(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) - self.verticalLayout_53.setSpacing(0) - self.verticalLayout_53.setObjectName(u"verticalLayout_53") - self.verticalLayout_53.setContentsMargins(0, 0, 0, 0) - self.Frame_DAT_VITS_TrainRatio = QFrame(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) - self.Frame_DAT_VITS_TrainRatio.setObjectName(u"Frame_DAT_VITS_TrainRatio") - self.Frame_DAT_VITS_TrainRatio.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_TrainRatio.setStyleSheet(u"QFrame {\n" + self.Frame_Train_VITS_ModelPathPretrainedD = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) + self.Frame_Train_VITS_ModelPathPretrainedD.setObjectName(u"Frame_Train_VITS_ModelPathPretrainedD") + self.Frame_Train_VITS_ModelPathPretrainedD.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_ModelPathPretrainedD.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -9452,15 +15358,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_49 = QGridLayout(self.Frame_DAT_VITS_TrainRatio) - self.gridLayout_49.setSpacing(12) - self.gridLayout_49.setObjectName(u"gridLayout_49") - self.gridLayout_49.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_TrainRatio = QLabel(self.Frame_DAT_VITS_TrainRatio) - self.Label_DAT_VITS_TrainRatio.setObjectName(u"Label_DAT_VITS_TrainRatio") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_TrainRatio.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_TrainRatio.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_TrainRatio.setStyleSheet(u"QLabel {\n" + self.gridLayout_66 = QGridLayout(self.Frame_Train_VITS_ModelPathPretrainedD) + self.gridLayout_66.setSpacing(12) + self.gridLayout_66.setObjectName(u"gridLayout_66") + self.gridLayout_66.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_ModelPathPretrainedD = QLabel(self.Frame_Train_VITS_ModelPathPretrainedD) + self.Label_Train_VITS_ModelPathPretrainedD.setObjectName(u"Label_Train_VITS_ModelPathPretrainedD") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_ModelPathPretrainedD.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_ModelPathPretrainedD.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_ModelPathPretrainedD.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -9470,85 +15376,27 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_49.addWidget(self.Label_DAT_VITS_TrainRatio, 0, 0, 1, 1) - - self.HorizontalSpacer_DAT_VITS_TrainRatio = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_49.addItem(self.HorizontalSpacer_DAT_VITS_TrainRatio, 0, 1, 1, 1) + self.gridLayout_66.addWidget(self.Label_Train_VITS_ModelPathPretrainedD, 0, 0, 1, 1) - self.Button_DAT_VITS_TrainRatio_Undo = QPushButton(self.Frame_DAT_VITS_TrainRatio) - self.Button_DAT_VITS_TrainRatio_Undo.setObjectName(u"Button_DAT_VITS_TrainRatio_Undo") - self.Button_DAT_VITS_TrainRatio_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_TrainRatio_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_TrainRatio_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" -" background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") + self.HorizontalSpacer_Train_VITS_ModelPathPretrainedD = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_49.addWidget(self.Button_DAT_VITS_TrainRatio_Undo, 0, 2, 1, 1) + self.gridLayout_66.addItem(self.HorizontalSpacer_Train_VITS_ModelPathPretrainedD, 0, 1, 1, 1) - self.DoubleSpinBox_DAT_VITS_TrainRatio = QDoubleSpinBox(self.Frame_DAT_VITS_TrainRatio) - self.DoubleSpinBox_DAT_VITS_TrainRatio.setObjectName(u"DoubleSpinBox_DAT_VITS_TrainRatio") - self.DoubleSpinBox_DAT_VITS_TrainRatio.setEnabled(True) - self.DoubleSpinBox_DAT_VITS_TrainRatio.setMinimumSize(QSize(0, 27)) - self.DoubleSpinBox_DAT_VITS_TrainRatio.setStyleSheet(u"QDoubleSpinBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QDoubleSpinBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" -"}\n" -"\n" -"QDoubleSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" -"}\n" -"QDoubleSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" -"}\n" -"\n" -"QDoubleSpinBox::down-button {\n" -" /*width: 9px;\n" -" /*height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" + self.Button_Train_VITS_ModelPathPretrainedD_Undo = QPushButton(self.Frame_Train_VITS_ModelPathPretrainedD) + self.Button_Train_VITS_ModelPathPretrainedD_Undo.setObjectName(u"Button_Train_VITS_ModelPathPretrainedD_Undo") + self.Button_Train_VITS_ModelPathPretrainedD_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_ModelPathPretrainedD_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_ModelPathPretrainedD_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QDoubleSpinBox::down-arr" - "ow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" @@ -9558,18 +15406,22 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - self.DoubleSpinBox_DAT_VITS_TrainRatio.setMinimum(-999999.000000000000000) - self.DoubleSpinBox_DAT_VITS_TrainRatio.setMaximum(999999.000000000000000) - self.gridLayout_49.addWidget(self.DoubleSpinBox_DAT_VITS_TrainRatio, 1, 0, 1, 3) + self.gridLayout_66.addWidget(self.Button_Train_VITS_ModelPathPretrainedD_Undo, 0, 2, 1, 1) + + self.LineEdit_Train_VITS_ModelPathPretrainedD = LineEditBase(self.Frame_Train_VITS_ModelPathPretrainedD) + self.LineEdit_Train_VITS_ModelPathPretrainedD.setObjectName(u"LineEdit_Train_VITS_ModelPathPretrainedD") + self.LineEdit_Train_VITS_ModelPathPretrainedD.setMinimumSize(QSize(0, 27)) + self.gridLayout_66.addWidget(self.LineEdit_Train_VITS_ModelPathPretrainedD, 1, 0, 1, 3) - self.verticalLayout_53.addWidget(self.Frame_DAT_VITS_TrainRatio) - self.Frame_DAT_VITS_SampleRate = QFrame(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) - self.Frame_DAT_VITS_SampleRate.setObjectName(u"Frame_DAT_VITS_SampleRate") - self.Frame_DAT_VITS_SampleRate.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_SampleRate.setStyleSheet(u"QFrame {\n" + self.verticalLayout_17.addWidget(self.Frame_Train_VITS_ModelPathPretrainedD) + + self.Frame_Train_VITS_KeepOriginalSpeakers = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) + self.Frame_Train_VITS_KeepOriginalSpeakers.setObjectName(u"Frame_Train_VITS_KeepOriginalSpeakers") + self.Frame_Train_VITS_KeepOriginalSpeakers.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_KeepOriginalSpeakers.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -9578,15 +15430,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_50 = QGridLayout(self.Frame_DAT_VITS_SampleRate) - self.gridLayout_50.setSpacing(12) - self.gridLayout_50.setObjectName(u"gridLayout_50") - self.gridLayout_50.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_SampleRate = QLabel(self.Frame_DAT_VITS_SampleRate) - self.Label_DAT_VITS_SampleRate.setObjectName(u"Label_DAT_VITS_SampleRate") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_SampleRate.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_SampleRate.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_SampleRate.setStyleSheet(u"QLabel {\n" + self.gridLayout_67 = QGridLayout(self.Frame_Train_VITS_KeepOriginalSpeakers) + self.gridLayout_67.setSpacing(12) + self.gridLayout_67.setObjectName(u"gridLayout_67") + self.gridLayout_67.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_KeepOriginalSpeakers = QLabel(self.Frame_Train_VITS_KeepOriginalSpeakers) + self.Label_Train_VITS_KeepOriginalSpeakers.setObjectName(u"Label_Train_VITS_KeepOriginalSpeakers") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_KeepOriginalSpeakers.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_KeepOriginalSpeakers.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_KeepOriginalSpeakers.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -9596,17 +15448,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_50.addWidget(self.Label_DAT_VITS_SampleRate, 0, 0, 1, 1) + self.gridLayout_67.addWidget(self.Label_Train_VITS_KeepOriginalSpeakers, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_SampleRate = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_KeepOriginalSpeakers = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_50.addItem(self.HorizontalSpacer_DAT_VITS_SampleRate, 0, 1, 1, 1) + self.gridLayout_67.addItem(self.HorizontalSpacer_Train_VITS_KeepOriginalSpeakers, 0, 1, 1, 1) - self.Button_DAT_VITS_SampleRate_Undo = QPushButton(self.Frame_DAT_VITS_SampleRate) - self.Button_DAT_VITS_SampleRate_Undo.setObjectName(u"Button_DAT_VITS_SampleRate_Undo") - self.Button_DAT_VITS_SampleRate_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_SampleRate_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_SampleRate_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_KeepOriginalSpeakers_Undo = QPushButton(self.Frame_Train_VITS_KeepOriginalSpeakers) + self.Button_Train_VITS_KeepOriginalSpeakers_Undo.setObjectName(u"Button_Train_VITS_KeepOriginalSpeakers_Undo") + self.Button_Train_VITS_KeepOriginalSpeakers_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_KeepOriginalSpeakers_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_KeepOriginalSpeakers_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -9627,172 +15479,42 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_50.addWidget(self.Button_DAT_VITS_SampleRate_Undo, 0, 2, 1, 1) + self.gridLayout_67.addWidget(self.Button_Train_VITS_KeepOriginalSpeakers_Undo, 0, 2, 1, 1) - self.ComboBox_DAT_VITS_SampleRate = QComboBox(self.Frame_DAT_VITS_SampleRate) - self.ComboBox_DAT_VITS_SampleRate.setObjectName(u"ComboBox_DAT_VITS_SampleRate") - self.ComboBox_DAT_VITS_SampleRate.setMinimumSize(QSize(0, 27)) - self.ComboBox_DAT_VITS_SampleRate.setStyleSheet(u"QComboBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QComboBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" -"}\n" -"\n" -"QComboBox::drop-down {\n" -" /*width: 12px;\n" -" height: 12px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: right;\n" -" margin-right: 6px;\n" -" border: none;\n" -"}\n" -"\n" -"QComboBox::down-arrow {\n" -" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" -"}\n" -"QComboBox::down-arrow:on {\n" -" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractItemView {\n" -" outline: none;\n" -" background-color: transparent;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"\n" -"QCom" - "boBox QAbstractItemView::item {\n" -" /* height: 30px; */\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border: none;\n" -"}\n" -"QComboBox QAbstractItemView::item:hover {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"QComboBox QAbstractItemView::item:selected {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" -" width: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" -" background-color: rgb(60, 60, 60);\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -"" - " border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" + self.CheckBox_Train_VITS_KeepOriginalSpeakers = QCheckBox(self.Frame_Train_VITS_KeepOriginalSpeakers) + self.CheckBox_Train_VITS_KeepOriginalSpeakers.setObjectName(u"CheckBox_Train_VITS_KeepOriginalSpeakers") + self.CheckBox_Train_VITS_KeepOriginalSpeakers.setMinimumSize(QSize(0, 27)) + self.CheckBox_Train_VITS_KeepOriginalSpeakers.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" spacing: 12.3px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" +" padding: 0px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" -" height: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" borde" - "r-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" -" background-color: rgb(60, 60, 60);\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" +"QCheckBox::indicator {\n" +" width: 24px;\n" +" height: 24px;\n" +" background-color: transparent;\n" +" padding: 1.2px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" -" background-color: transparent;\n" -" " - "border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" "}\n" "\n" "\n" @@ -9803,15 +15525,15 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_50.addWidget(self.ComboBox_DAT_VITS_SampleRate, 1, 0, 1, 3) - + self.gridLayout_67.addWidget(self.CheckBox_Train_VITS_KeepOriginalSpeakers, 1, 0, 1, 3) - self.verticalLayout_53.addWidget(self.Frame_DAT_VITS_SampleRate) - self.Frame_DAT_VITS_SampleWidth = QFrame(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) - self.Frame_DAT_VITS_SampleWidth.setObjectName(u"Frame_DAT_VITS_SampleWidth") - self.Frame_DAT_VITS_SampleWidth.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_SampleWidth.setStyleSheet(u"QFrame {\n" + self.verticalLayout_17.addWidget(self.Frame_Train_VITS_KeepOriginalSpeakers) + + self.Frame_Train_VITS_ConfigPathLoad = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) + self.Frame_Train_VITS_ConfigPathLoad.setObjectName(u"Frame_Train_VITS_ConfigPathLoad") + self.Frame_Train_VITS_ConfigPathLoad.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_ConfigPathLoad.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -9820,15 +15542,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_51 = QGridLayout(self.Frame_DAT_VITS_SampleWidth) - self.gridLayout_51.setSpacing(12) - self.gridLayout_51.setObjectName(u"gridLayout_51") - self.gridLayout_51.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_SampleWidth = QLabel(self.Frame_DAT_VITS_SampleWidth) - self.Label_DAT_VITS_SampleWidth.setObjectName(u"Label_DAT_VITS_SampleWidth") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_SampleWidth.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_SampleWidth.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_SampleWidth.setStyleSheet(u"QLabel {\n" + self.gridLayout_77 = QGridLayout(self.Frame_Train_VITS_ConfigPathLoad) + self.gridLayout_77.setSpacing(12) + self.gridLayout_77.setObjectName(u"gridLayout_77") + self.gridLayout_77.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_ConfigPathLoad = QLabel(self.Frame_Train_VITS_ConfigPathLoad) + self.Label_Train_VITS_ConfigPathLoad.setObjectName(u"Label_Train_VITS_ConfigPathLoad") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_ConfigPathLoad.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_ConfigPathLoad.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_ConfigPathLoad.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -9838,17 +15560,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_51.addWidget(self.Label_DAT_VITS_SampleWidth, 0, 0, 1, 1) + self.gridLayout_77.addWidget(self.Label_Train_VITS_ConfigPathLoad, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_SampleWidth = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_ConfigPathLoad = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_51.addItem(self.HorizontalSpacer_DAT_VITS_SampleWidth, 0, 1, 1, 1) + self.gridLayout_77.addItem(self.HorizontalSpacer_Train_VITS_ConfigPathLoad, 0, 1, 1, 1) - self.Button_DAT_VITS_SampleWidth_Undo = QPushButton(self.Frame_DAT_VITS_SampleWidth) - self.Button_DAT_VITS_SampleWidth_Undo.setObjectName(u"Button_DAT_VITS_SampleWidth_Undo") - self.Button_DAT_VITS_SampleWidth_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_SampleWidth_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_SampleWidth_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_ConfigPathLoad_Undo = QPushButton(self.Frame_Train_VITS_ConfigPathLoad) + self.Button_Train_VITS_ConfigPathLoad_Undo.setObjectName(u"Button_Train_VITS_ConfigPathLoad_Undo") + self.Button_Train_VITS_ConfigPathLoad_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_ConfigPathLoad_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_ConfigPathLoad_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -9869,172 +15591,54 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_51.addWidget(self.Button_DAT_VITS_SampleWidth_Undo, 0, 2, 1, 1) + self.gridLayout_77.addWidget(self.Button_Train_VITS_ConfigPathLoad_Undo, 0, 2, 1, 1) - self.ComboBox_DAT_VITS_SampleWidth = QComboBox(self.Frame_DAT_VITS_SampleWidth) - self.ComboBox_DAT_VITS_SampleWidth.setObjectName(u"ComboBox_DAT_VITS_SampleWidth") - self.ComboBox_DAT_VITS_SampleWidth.setMinimumSize(QSize(0, 27)) - self.ComboBox_DAT_VITS_SampleWidth.setStyleSheet(u"QComboBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QComboBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" -"}\n" -"\n" -"QComboBox::drop-down {\n" -" /*width: 12px;\n" -" height: 12px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: right;\n" -" margin-right: 6px;\n" -" border: none;\n" -"}\n" -"\n" -"QComboBox::down-arrow {\n" -" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" -"}\n" -"QComboBox::down-arrow:on {\n" -" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractItemView {\n" -" outline: none;\n" -" background-color: transparent;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"\n" -"QCom" - "boBox QAbstractItemView::item {\n" -" /* height: 30px; */\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border: none;\n" -"}\n" -"QComboBox QAbstractItemView::item:hover {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"QComboBox QAbstractItemView::item:selected {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" -" width: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" -" background-color: rgb(60, 60, 60);\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -"" - " border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" + self.LineEdit_Train_VITS_ConfigPathLoad = LineEditBase(self.Frame_Train_VITS_ConfigPathLoad) + self.LineEdit_Train_VITS_ConfigPathLoad.setObjectName(u"LineEdit_Train_VITS_ConfigPathLoad") + self.LineEdit_Train_VITS_ConfigPathLoad.setMinimumSize(QSize(0, 27)) + + self.gridLayout_77.addWidget(self.LineEdit_Train_VITS_ConfigPathLoad, 1, 0, 1, 3) + + + self.verticalLayout_17.addWidget(self.Frame_Train_VITS_ConfigPathLoad) + + + self.verticalLayout_114.addWidget(self.Frame_Train_VITS_VITSParams_BasicSettings) + + self.CheckBox_Train_VITS_VITSParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_Train_VITS_VITSParams) + self.CheckBox_Train_VITS_VITSParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_Train_VITS_VITSParams_Toggle_AdvanceSettings") + self.CheckBox_Train_VITS_VITSParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" +" padding-top: 9px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" -" height: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" borde" - "r-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" -" background-color: rgb(60, 60, 60);\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" +"QCheckBox::indicator {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" +"QCheckBox::indicator:hover {\n" " background-color: transparent;\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" -" background-color: transparent;\n" -" " - "border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" "}\n" "\n" "\n" @@ -10045,15 +15649,20 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_51.addWidget(self.ComboBox_DAT_VITS_SampleWidth, 1, 0, 1, 3) - - - self.verticalLayout_53.addWidget(self.Frame_DAT_VITS_SampleWidth) + self.verticalLayout_114.addWidget(self.CheckBox_Train_VITS_VITSParams_Toggle_AdvanceSettings) - self.Frame_DAT_VITS_ToMono = QFrame(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) - self.Frame_DAT_VITS_ToMono.setObjectName(u"Frame_DAT_VITS_ToMono") - self.Frame_DAT_VITS_ToMono.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_ToMono.setStyleSheet(u"QFrame {\n" + self.Frame_Train_VITS_VITSParams_AdvanceSettings = QFrame(self.GroupBox_Train_VITS_VITSParams) + self.Frame_Train_VITS_VITSParams_AdvanceSettings.setObjectName(u"Frame_Train_VITS_VITSParams_AdvanceSettings") + self.Frame_Train_VITS_VITSParams_AdvanceSettings.setFrameShape(QFrame.StyledPanel) + self.Frame_Train_VITS_VITSParams_AdvanceSettings.setFrameShadow(QFrame.Raised) + self.verticalLayout_35 = QVBoxLayout(self.Frame_Train_VITS_VITSParams_AdvanceSettings) + self.verticalLayout_35.setSpacing(0) + self.verticalLayout_35.setObjectName(u"verticalLayout_35") + self.verticalLayout_35.setContentsMargins(0, 0, 0, 0) + self.Frame_Train_VITS_NumWorkers = QFrame(self.Frame_Train_VITS_VITSParams_AdvanceSettings) + self.Frame_Train_VITS_NumWorkers.setObjectName(u"Frame_Train_VITS_NumWorkers") + self.Frame_Train_VITS_NumWorkers.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_NumWorkers.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -10061,16 +15670,16 @@ def setupUi(self, MainWindow): "}\n" "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_52 = QGridLayout(self.Frame_DAT_VITS_ToMono) - self.gridLayout_52.setSpacing(12) - self.gridLayout_52.setObjectName(u"gridLayout_52") - self.gridLayout_52.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_ToMono = QLabel(self.Frame_DAT_VITS_ToMono) - self.Label_DAT_VITS_ToMono.setObjectName(u"Label_DAT_VITS_ToMono") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_ToMono.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_ToMono.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_ToMono.setStyleSheet(u"QLabel {\n" +"}") + self.gridLayout_63 = QGridLayout(self.Frame_Train_VITS_NumWorkers) + self.gridLayout_63.setSpacing(12) + self.gridLayout_63.setObjectName(u"gridLayout_63") + self.gridLayout_63.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_NumWorkers = QLabel(self.Frame_Train_VITS_NumWorkers) + self.Label_Train_VITS_NumWorkers.setObjectName(u"Label_Train_VITS_NumWorkers") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_NumWorkers.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_NumWorkers.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_NumWorkers.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -10080,17 +15689,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_52.addWidget(self.Label_DAT_VITS_ToMono, 0, 0, 1, 1) + self.gridLayout_63.addWidget(self.Label_Train_VITS_NumWorkers, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_ToMono = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_NumWorkers = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_52.addItem(self.HorizontalSpacer_DAT_VITS_ToMono, 0, 1, 1, 1) + self.gridLayout_63.addItem(self.HorizontalSpacer_Train_VITS_NumWorkers, 0, 1, 1, 1) - self.Button_DAT_VITS_ToMono_Undo = QPushButton(self.Frame_DAT_VITS_ToMono) - self.Button_DAT_VITS_ToMono_Undo.setObjectName(u"Button_DAT_VITS_ToMono_Undo") - self.Button_DAT_VITS_ToMono_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_ToMono_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_ToMono_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_NumWorkers_Undo = QPushButton(self.Frame_Train_VITS_NumWorkers) + self.Button_Train_VITS_NumWorkers_Undo.setObjectName(u"Button_Train_VITS_NumWorkers_Undo") + self.Button_Train_VITS_NumWorkers_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_NumWorkers_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_NumWorkers_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -10111,42 +15720,53 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_52.addWidget(self.Button_DAT_VITS_ToMono_Undo, 0, 2, 1, 1) + self.gridLayout_63.addWidget(self.Button_Train_VITS_NumWorkers_Undo, 0, 2, 1, 1) - self.CheckBox_DAT_VITS_ToMono = QCheckBox(self.Frame_DAT_VITS_ToMono) - self.CheckBox_DAT_VITS_ToMono.setObjectName(u"CheckBox_DAT_VITS_ToMono") - self.CheckBox_DAT_VITS_ToMono.setMinimumSize(QSize(0, 27)) - self.CheckBox_DAT_VITS_ToMono.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" spacing: 12.3px;\n" -" color: rgba(255, 255, 255, 210);\n" + self.SpinBox_Train_VITS_NumWorkers = QSpinBox(self.Frame_Train_VITS_NumWorkers) + self.SpinBox_Train_VITS_NumWorkers.setObjectName(u"SpinBox_Train_VITS_NumWorkers") + self.SpinBox_Train_VITS_NumWorkers.setMinimumSize(QSize(0, 27)) + self.SpinBox_Train_VITS_NumWorkers.setStyleSheet(u"QSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" " background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" +"QSpinBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QCheckBox::indicator {\n" -" width: 24px;\n" -" height: 24px;\n" -" background-color: transparent;\n" -" padding: 1.2px;\n" +"QSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" "}\n" -"QCheckBox::indicator:hover {\n" -" background-color: rgba(255, 255, 255, 21);\n" +"QSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" "}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +"\n" +"QSpinBox::down-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" "}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"QSpinBox::down-arrow {\n" +" border-image: url(:/(Double)" + "SpinBox_Icon/Sources/DownArrow.png);\n" "}\n" "\n" "\n" @@ -10156,50 +15776,18 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") + self.SpinBox_Train_VITS_NumWorkers.setMinimum(-999999) + self.SpinBox_Train_VITS_NumWorkers.setMaximum(999999) - self.gridLayout_52.addWidget(self.CheckBox_DAT_VITS_ToMono, 1, 0, 1, 3) - - - self.verticalLayout_53.addWidget(self.Frame_DAT_VITS_ToMono) - - - self.verticalLayout_115.addWidget(self.Frame_DAT_VITS_VITSParams_AdvanceSettings) + self.gridLayout_63.addWidget(self.SpinBox_Train_VITS_NumWorkers, 1, 0, 1, 3) - self.verticalLayout_36.addWidget(self.GroupBox_DAT_VITS_VITSParams) + self.verticalLayout_35.addWidget(self.Frame_Train_VITS_NumWorkers) - self.GroupBox_DAT_VITS_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_DAT_VITS) - self.GroupBox_DAT_VITS_OutputParams.setObjectName(u"GroupBox_DAT_VITS_OutputParams") - self.GroupBox_DAT_VITS_OutputParams.setStyleSheet(u"QGroupBox {\n" -" font-size: 15px;\n" -" margin-top: 1.5ex;\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 1px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -"}\n" -"QGroupBox::title {\n" -" left: 9px;\n" -" margin-left: 0px;\n" -" subcontrol-origin: margin;\n" -" subcontrol-position: top left;\n" -" padding: 3px;\n" -"}") - self.verticalLayout_128 = QVBoxLayout(self.GroupBox_DAT_VITS_OutputParams) - self.verticalLayout_128.setSpacing(0) - self.verticalLayout_128.setObjectName(u"verticalLayout_128") - self.verticalLayout_128.setContentsMargins(0, 12, 0, 12) - self.Frame_DAT_VITS_OutputParams_BasicSettings = QFrame(self.GroupBox_DAT_VITS_OutputParams) - self.Frame_DAT_VITS_OutputParams_BasicSettings.setObjectName(u"Frame_DAT_VITS_OutputParams_BasicSettings") - self.verticalLayout_31 = QVBoxLayout(self.Frame_DAT_VITS_OutputParams_BasicSettings) - self.verticalLayout_31.setSpacing(0) - self.verticalLayout_31.setObjectName(u"verticalLayout_31") - self.verticalLayout_31.setContentsMargins(0, 0, 0, 0) - self.Frame_DAT_VITS_ToStandaloneForm = QFrame(self.Frame_DAT_VITS_OutputParams_BasicSettings) - self.Frame_DAT_VITS_ToStandaloneForm.setObjectName(u"Frame_DAT_VITS_ToStandaloneForm") - self.Frame_DAT_VITS_ToStandaloneForm.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_ToStandaloneForm.setStyleSheet(u"QFrame {\n" + self.Frame_Train_VITS_FP16Run = QFrame(self.Frame_Train_VITS_VITSParams_AdvanceSettings) + self.Frame_Train_VITS_FP16Run.setObjectName(u"Frame_Train_VITS_FP16Run") + self.Frame_Train_VITS_FP16Run.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_FP16Run.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -10208,15 +15796,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_78 = QGridLayout(self.Frame_DAT_VITS_ToStandaloneForm) - self.gridLayout_78.setSpacing(12) - self.gridLayout_78.setObjectName(u"gridLayout_78") - self.gridLayout_78.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_ToStandaloneForm = QLabel(self.Frame_DAT_VITS_ToStandaloneForm) - self.Label_DAT_VITS_ToStandaloneForm.setObjectName(u"Label_DAT_VITS_ToStandaloneForm") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_ToStandaloneForm.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_ToStandaloneForm.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_ToStandaloneForm.setStyleSheet(u"QLabel {\n" + self.gridLayout_64 = QGridLayout(self.Frame_Train_VITS_FP16Run) + self.gridLayout_64.setSpacing(12) + self.gridLayout_64.setObjectName(u"gridLayout_64") + self.gridLayout_64.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_FP16Run = QLabel(self.Frame_Train_VITS_FP16Run) + self.Label_Train_VITS_FP16Run.setObjectName(u"Label_Train_VITS_FP16Run") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_FP16Run.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_FP16Run.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_FP16Run.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -10226,17 +15814,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_78.addWidget(self.Label_DAT_VITS_ToStandaloneForm, 0, 0, 1, 1) + self.gridLayout_64.addWidget(self.Label_Train_VITS_FP16Run, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_ToStandaloneForm = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_FP16Run = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_78.addItem(self.HorizontalSpacer_DAT_VITS_ToStandaloneForm, 0, 1, 1, 1) + self.gridLayout_64.addItem(self.HorizontalSpacer_Train_VITS_FP16Run, 0, 1, 1, 1) - self.Button_DAT_VITS_ToStandaloneForm_Undo = QPushButton(self.Frame_DAT_VITS_ToStandaloneForm) - self.Button_DAT_VITS_ToStandaloneForm_Undo.setObjectName(u"Button_DAT_VITS_ToStandaloneForm_Undo") - self.Button_DAT_VITS_ToStandaloneForm_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_ToStandaloneForm_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_ToStandaloneForm_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_FP16Run_Undo = QPushButton(self.Frame_Train_VITS_FP16Run) + self.Button_Train_VITS_FP16Run_Undo.setObjectName(u"Button_Train_VITS_FP16Run_Undo") + self.Button_Train_VITS_FP16Run_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_FP16Run_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_FP16Run_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -10257,12 +15845,12 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_78.addWidget(self.Button_DAT_VITS_ToStandaloneForm_Undo, 0, 2, 1, 1) + self.gridLayout_64.addWidget(self.Button_Train_VITS_FP16Run_Undo, 0, 2, 1, 1) - self.CheckBox_DAT_VITS_ToStandaloneForm = QCheckBox(self.Frame_DAT_VITS_ToStandaloneForm) - self.CheckBox_DAT_VITS_ToStandaloneForm.setObjectName(u"CheckBox_DAT_VITS_ToStandaloneForm") - self.CheckBox_DAT_VITS_ToStandaloneForm.setMinimumSize(QSize(0, 27)) - self.CheckBox_DAT_VITS_ToStandaloneForm.setStyleSheet(u"QCheckBox {\n" + self.CheckBox_Train_VITS_FP16Run = QCheckBox(self.Frame_Train_VITS_FP16Run) + self.CheckBox_Train_VITS_FP16Run.setObjectName(u"CheckBox_Train_VITS_FP16Run") + self.CheckBox_Train_VITS_FP16Run.setMinimumSize(QSize(0, 27)) + self.CheckBox_Train_VITS_FP16Run.setStyleSheet(u"QCheckBox {\n" " font-size: 12px;\n" " spacing: 12.3px;\n" " color: rgba(255, 255, 255, 210);\n" @@ -10303,15 +15891,47 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_78.addWidget(self.CheckBox_DAT_VITS_ToStandaloneForm, 1, 0, 1, 3) + self.gridLayout_64.addWidget(self.CheckBox_Train_VITS_FP16Run, 1, 0, 1, 3) + + + self.verticalLayout_35.addWidget(self.Frame_Train_VITS_FP16Run) + + + self.verticalLayout_114.addWidget(self.Frame_Train_VITS_VITSParams_AdvanceSettings) - self.verticalLayout_31.addWidget(self.Frame_DAT_VITS_ToStandaloneForm) + self.verticalLayout_28.addWidget(self.GroupBox_Train_VITS_VITSParams) - self.Frame_DAT_VITS_WAVDirSplit = QFrame(self.Frame_DAT_VITS_OutputParams_BasicSettings) - self.Frame_DAT_VITS_WAVDirSplit.setObjectName(u"Frame_DAT_VITS_WAVDirSplit") - self.Frame_DAT_VITS_WAVDirSplit.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_WAVDirSplit.setStyleSheet(u"QFrame {\n" + self.GroupBox_Train_VITS_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Train_VITS) + self.GroupBox_Train_VITS_OutputParams.setObjectName(u"GroupBox_Train_VITS_OutputParams") + self.GroupBox_Train_VITS_OutputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_80 = QVBoxLayout(self.GroupBox_Train_VITS_OutputParams) + self.verticalLayout_80.setObjectName(u"verticalLayout_80") + self.Frame_Train_VITS_OutputParams_BasicSettings = QFrame(self.GroupBox_Train_VITS_OutputParams) + self.Frame_Train_VITS_OutputParams_BasicSettings.setObjectName(u"Frame_Train_VITS_OutputParams_BasicSettings") + self.verticalLayout_26 = QVBoxLayout(self.Frame_Train_VITS_OutputParams_BasicSettings) + self.verticalLayout_26.setSpacing(0) + self.verticalLayout_26.setObjectName(u"verticalLayout_26") + self.verticalLayout_26.setContentsMargins(0, 0, 0, 0) + self.Frame_Train_VITS_EvalInterval = QFrame(self.Frame_Train_VITS_OutputParams_BasicSettings) + self.Frame_Train_VITS_EvalInterval.setObjectName(u"Frame_Train_VITS_EvalInterval") + self.Frame_Train_VITS_EvalInterval.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_EvalInterval.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -10320,15 +15940,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_54 = QGridLayout(self.Frame_DAT_VITS_WAVDirSplit) - self.gridLayout_54.setSpacing(12) - self.gridLayout_54.setObjectName(u"gridLayout_54") - self.gridLayout_54.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_WAVDirSplit = QLabel(self.Frame_DAT_VITS_WAVDirSplit) - self.Label_DAT_VITS_WAVDirSplit.setObjectName(u"Label_DAT_VITS_WAVDirSplit") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_WAVDirSplit.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_WAVDirSplit.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_WAVDirSplit.setStyleSheet(u"QLabel {\n" + self.gridLayout_62 = QGridLayout(self.Frame_Train_VITS_EvalInterval) + self.gridLayout_62.setSpacing(12) + self.gridLayout_62.setObjectName(u"gridLayout_62") + self.gridLayout_62.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_EvalInterval = QLabel(self.Frame_Train_VITS_EvalInterval) + self.Label_Train_VITS_EvalInterval.setObjectName(u"Label_Train_VITS_EvalInterval") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_EvalInterval.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_EvalInterval.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_EvalInterval.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -10338,17 +15958,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_54.addWidget(self.Label_DAT_VITS_WAVDirSplit, 0, 0, 1, 1) + self.gridLayout_62.addWidget(self.Label_Train_VITS_EvalInterval, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_WAVDirSplit = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_EvalInterval = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_54.addItem(self.HorizontalSpacer_DAT_VITS_WAVDirSplit, 0, 1, 1, 1) + self.gridLayout_62.addItem(self.HorizontalSpacer_Train_VITS_EvalInterval, 0, 1, 1, 1) - self.Button_DAT_VITS_WAVDirSplit_Undo = QPushButton(self.Frame_DAT_VITS_WAVDirSplit) - self.Button_DAT_VITS_WAVDirSplit_Undo.setObjectName(u"Button_DAT_VITS_WAVDirSplit_Undo") - self.Button_DAT_VITS_WAVDirSplit_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_WAVDirSplit_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_WAVDirSplit_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_EvalInterval_Undo = QPushButton(self.Frame_Train_VITS_EvalInterval) + self.Button_Train_VITS_EvalInterval_Undo.setObjectName(u"Button_Train_VITS_EvalInterval_Undo") + self.Button_Train_VITS_EvalInterval_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_EvalInterval_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_EvalInterval_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -10369,50 +15989,55 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_54.addWidget(self.Button_DAT_VITS_WAVDirSplit_Undo, 0, 2, 1, 1) - - self.LineEdit_DAT_VITS_WAVDirSplit = LineEditBase(self.Frame_DAT_VITS_WAVDirSplit) - self.LineEdit_DAT_VITS_WAVDirSplit.setObjectName(u"LineEdit_DAT_VITS_WAVDirSplit") - self.LineEdit_DAT_VITS_WAVDirSplit.setMinimumSize(QSize(0, 27)) - - self.gridLayout_54.addWidget(self.LineEdit_DAT_VITS_WAVDirSplit, 1, 0, 1, 3) - - - self.verticalLayout_31.addWidget(self.Frame_DAT_VITS_WAVDirSplit) + self.gridLayout_62.addWidget(self.Button_Train_VITS_EvalInterval_Undo, 0, 2, 1, 1) - self.Frame_DAT_VITS_FileListPathTraining = QFrame(self.Frame_DAT_VITS_OutputParams_BasicSettings) - self.Frame_DAT_VITS_FileListPathTraining.setObjectName(u"Frame_DAT_VITS_FileListPathTraining") - self.Frame_DAT_VITS_FileListPathTraining.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_FileListPathTraining.setStyleSheet(u"QFrame {\n" + self.SpinBox_Train_VITS_EvalInterval = QSpinBox(self.Frame_Train_VITS_EvalInterval) + self.SpinBox_Train_VITS_EvalInterval.setObjectName(u"SpinBox_Train_VITS_EvalInterval") + self.SpinBox_Train_VITS_EvalInterval.setMinimumSize(QSize(0, 27)) + self.SpinBox_Train_VITS_EvalInterval.setStyleSheet(u"QSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" " color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" " background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_55 = QGridLayout(self.Frame_DAT_VITS_FileListPathTraining) - self.gridLayout_55.setSpacing(12) - self.gridLayout_55.setObjectName(u"gridLayout_55") - self.gridLayout_55.setContentsMargins(21, 12, 21, 12) - self.Button_DAT_VITS_FileListPathTraining_Undo = QPushButton(self.Frame_DAT_VITS_FileListPathTraining) - self.Button_DAT_VITS_FileListPathTraining_Undo.setObjectName(u"Button_DAT_VITS_FileListPathTraining_Undo") - self.Button_DAT_VITS_FileListPathTraining_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_FileListPathTraining_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_FileListPathTraining_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" -" background-color: transparent;\n" -" padding: 4.5px;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" " border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QPushButton:hover {\n" +"QSpinBox:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" +"QSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"QSpinBox::down-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QSpinBox::down-arrow {\n" +" border-image: url(:/(Double)" + "SpinBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"\n" "\n" "QToolTip {\n" " color: rgba(255, 255, 255, 210);\n" @@ -10420,42 +16045,18 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") + self.SpinBox_Train_VITS_EvalInterval.setMinimum(-999999) + self.SpinBox_Train_VITS_EvalInterval.setMaximum(999999) - self.gridLayout_55.addWidget(self.Button_DAT_VITS_FileListPathTraining_Undo, 0, 2, 1, 1) - - self.Label_DAT_VITS_FileListPathTraining = QLabel(self.Frame_DAT_VITS_FileListPathTraining) - self.Label_DAT_VITS_FileListPathTraining.setObjectName(u"Label_DAT_VITS_FileListPathTraining") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_FileListPathTraining.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_FileListPathTraining.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_FileListPathTraining.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" -" background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}") - - self.gridLayout_55.addWidget(self.Label_DAT_VITS_FileListPathTraining, 0, 0, 1, 1) - - self.LineEdit_DAT_VITS_FileListPathTraining = LineEditBase(self.Frame_DAT_VITS_FileListPathTraining) - self.LineEdit_DAT_VITS_FileListPathTraining.setObjectName(u"LineEdit_DAT_VITS_FileListPathTraining") - self.LineEdit_DAT_VITS_FileListPathTraining.setMinimumSize(QSize(0, 27)) - - self.gridLayout_55.addWidget(self.LineEdit_DAT_VITS_FileListPathTraining, 1, 0, 1, 3) - - self.HorizontalSpacer_DAT_VITS_FileListPathTraining = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_55.addItem(self.HorizontalSpacer_DAT_VITS_FileListPathTraining, 0, 1, 1, 1) + self.gridLayout_62.addWidget(self.SpinBox_Train_VITS_EvalInterval, 1, 0, 1, 3) - self.verticalLayout_31.addWidget(self.Frame_DAT_VITS_FileListPathTraining) + self.verticalLayout_26.addWidget(self.Frame_Train_VITS_EvalInterval) - self.Frame_DAT_VITS_FileListPathValidation = QFrame(self.Frame_DAT_VITS_OutputParams_BasicSettings) - self.Frame_DAT_VITS_FileListPathValidation.setObjectName(u"Frame_DAT_VITS_FileListPathValidation") - self.Frame_DAT_VITS_FileListPathValidation.setMinimumSize(QSize(0, 105)) - self.Frame_DAT_VITS_FileListPathValidation.setStyleSheet(u"QFrame {\n" + self.Frame_Train_VITS_OutputDirName = QFrame(self.Frame_Train_VITS_OutputParams_BasicSettings) + self.Frame_Train_VITS_OutputDirName.setObjectName(u"Frame_Train_VITS_OutputDirName") + self.Frame_Train_VITS_OutputDirName.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_OutputDirName.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -10464,15 +16065,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_56 = QGridLayout(self.Frame_DAT_VITS_FileListPathValidation) - self.gridLayout_56.setSpacing(12) - self.gridLayout_56.setObjectName(u"gridLayout_56") - self.gridLayout_56.setContentsMargins(21, 12, 21, 12) - self.Label_DAT_VITS_FileListPathValidation = QLabel(self.Frame_DAT_VITS_FileListPathValidation) - self.Label_DAT_VITS_FileListPathValidation.setObjectName(u"Label_DAT_VITS_FileListPathValidation") - sizePolicy5.setHeightForWidth(self.Label_DAT_VITS_FileListPathValidation.sizePolicy().hasHeightForWidth()) - self.Label_DAT_VITS_FileListPathValidation.setSizePolicy(sizePolicy5) - self.Label_DAT_VITS_FileListPathValidation.setStyleSheet(u"QLabel {\n" + self.gridLayout_68 = QGridLayout(self.Frame_Train_VITS_OutputDirName) + self.gridLayout_68.setSpacing(12) + self.gridLayout_68.setObjectName(u"gridLayout_68") + self.gridLayout_68.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_OutputDirName = QLabel(self.Frame_Train_VITS_OutputDirName) + self.Label_Train_VITS_OutputDirName.setObjectName(u"Label_Train_VITS_OutputDirName") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_OutputDirName.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_OutputDirName.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_OutputDirName.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -10482,17 +16083,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_56.addWidget(self.Label_DAT_VITS_FileListPathValidation, 0, 0, 1, 1) + self.gridLayout_68.addWidget(self.Label_Train_VITS_OutputDirName, 0, 0, 1, 1) - self.HorizontalSpacer_DAT_VITS_FileListPathValidation = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_Train_VITS_OutputDirName = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_56.addItem(self.HorizontalSpacer_DAT_VITS_FileListPathValidation, 0, 1, 1, 1) + self.gridLayout_68.addItem(self.HorizontalSpacer_Train_VITS_OutputDirName, 0, 1, 1, 1) - self.Button_DAT_VITS_FileListPathValidation_Undo = QPushButton(self.Frame_DAT_VITS_FileListPathValidation) - self.Button_DAT_VITS_FileListPathValidation_Undo.setObjectName(u"Button_DAT_VITS_FileListPathValidation_Undo") - self.Button_DAT_VITS_FileListPathValidation_Undo.setMinimumSize(QSize(27, 27)) - self.Button_DAT_VITS_FileListPathValidation_Undo.setMaximumSize(QSize(27, 27)) - self.Button_DAT_VITS_FileListPathValidation_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_Train_VITS_OutputDirName_Undo = QPushButton(self.Frame_Train_VITS_OutputDirName) + self.Button_Train_VITS_OutputDirName_Undo.setObjectName(u"Button_Train_VITS_OutputDirName_Undo") + self.Button_Train_VITS_OutputDirName_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_OutputDirName_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_OutputDirName_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -10513,177 +16114,54 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_56.addWidget(self.Button_DAT_VITS_FileListPathValidation_Undo, 0, 2, 1, 1) - - self.LineEdit_DAT_VITS_FileListPathValidation = LineEditBase(self.Frame_DAT_VITS_FileListPathValidation) - self.LineEdit_DAT_VITS_FileListPathValidation.setObjectName(u"LineEdit_DAT_VITS_FileListPathValidation") - self.LineEdit_DAT_VITS_FileListPathValidation.setMinimumSize(QSize(0, 27)) - - self.gridLayout_56.addWidget(self.LineEdit_DAT_VITS_FileListPathValidation, 1, 0, 1, 3) - - - self.verticalLayout_31.addWidget(self.Frame_DAT_VITS_FileListPathValidation) + self.gridLayout_68.addWidget(self.Button_Train_VITS_OutputDirName_Undo, 0, 2, 1, 1) + self.LineEdit_Train_VITS_OutputDirName = LineEditBase(self.Frame_Train_VITS_OutputDirName) + self.LineEdit_Train_VITS_OutputDirName.setObjectName(u"LineEdit_Train_VITS_OutputDirName") + self.LineEdit_Train_VITS_OutputDirName.setMinimumSize(QSize(0, 27)) - self.verticalLayout_128.addWidget(self.Frame_DAT_VITS_OutputParams_BasicSettings) + self.gridLayout_68.addWidget(self.LineEdit_Train_VITS_OutputDirName, 1, 0, 1, 3) - self.verticalLayout_36.addWidget(self.GroupBox_DAT_VITS_OutputParams) - - self.VerticalSpacer_DAT_VITS = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - - self.verticalLayout_36.addItem(self.VerticalSpacer_DAT_VITS) + self.verticalLayout_26.addWidget(self.Frame_Train_VITS_OutputDirName) - self.ScrollArea_Middle_DAT_VITS.setWidget(self.ScrollArea_Middle_WidgetContents_DAT_VITS) - self.gridLayout_8.addWidget(self.ScrollArea_Middle_DAT_VITS, 0, 1, 1, 1) + self.verticalLayout_80.addWidget(self.Frame_Train_VITS_OutputParams_BasicSettings) - self.Widget_Right_DAT_VITS = QWidget(self.Subpage_DAT_VITS) - self.Widget_Right_DAT_VITS.setObjectName(u"Widget_Right_DAT_VITS") - self.Widget_Right_DAT_VITS.setStyleSheet(u"QWidget {\n" -" background-color: rgba(36, 36, 36, 123);\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QWidget:hover {\n" -"}") - self.gridLayout_16 = QGridLayout(self.Widget_Right_DAT_VITS) - self.gridLayout_16.setSpacing(12) - self.gridLayout_16.setObjectName(u"gridLayout_16") - self.gridLayout_16.setContentsMargins(12, 12, 12, 12) - self.TextBrowser_Params_DAT_VITS = QTextBrowser(self.Widget_Right_DAT_VITS) - self.TextBrowser_Params_DAT_VITS.setObjectName(u"TextBrowser_Params_DAT_VITS") - sizePolicy1.setHeightForWidth(self.TextBrowser_Params_DAT_VITS.sizePolicy().hasHeightForWidth()) - self.TextBrowser_Params_DAT_VITS.setSizePolicy(sizePolicy1) - self.TextBrowser_Params_DAT_VITS.setStyleSheet(u"QTextBrowser {\n" -" background-color: rgba(33, 33, 33, 99);\n" -" /*padding-top: 1.5px;*/\n" -" /*padding-bottom: 1.5px;*/\n" -" padding-left: 15px;\n" -" padding-right: 6px;\n" -" border-width: 1px;\n" -" border-style: solid;\n" -" border-color:transparent;\n" -"}\n" -"\n" -"\n" -"QScrollBar::vertical {\n" -" width: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QScrollBar::vertical:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}\n" -"\n" -"QScrollBar::add-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: bottom;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QScrollBar::sub-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: top;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" bord" - "er-style: solid;\n" -"}\n" -"\n" -"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QScrollBar::handle:vertical {\n" + self.CheckBox_Train_VITS_OutputParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_Train_VITS_OutputParams) + self.CheckBox_Train_VITS_OutputParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_Train_VITS_OutputParams_Toggle_AdvanceSettings") + self.CheckBox_Train_VITS_OutputParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" +" padding-top: 9px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"QScrollBar::handle:vertical:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QScrollBar::horizontal {\n" -" height: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" "}\n" -"QScrollBar::horizontal:hover {\n" -" background-color: rgb(60, 60, 60);\n" -"}\n" -"\n" -"QScrollBar::add-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" "}\n" "\n" -"QScrollBar::sub-line:horizontal {\n" -" width: 0px" - ";\n" -" background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" +"QCheckBox::indicator {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" "}\n" -"\n" -"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QScrollBar::handle:horizontal {\n" +"QCheckBox::indicator:hover {\n" " background-color: transparent;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" "}\n" -"QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}") - - self.gridLayout_16.addWidget(self.TextBrowser_Params_DAT_VITS, 0, 0, 1, 2) - - self.Button_CheckOutput_DAT_VITS = QPushButton(self.Widget_Right_DAT_VITS) - self.Button_CheckOutput_DAT_VITS.setObjectName(u"Button_CheckOutput_DAT_VITS") - self.Button_CheckOutput_DAT_VITS.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" font-size: 12px;\n" -" background-color: transparent;\n" -" padding: 9.9px;\n" -" border-width: 1.5px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" "}\n" -"QPushButton:hover {\n" -" border-color: rgb(120, 120, 120);\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" "}\n" "\n" "\n" @@ -10694,106 +16172,65 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_16.addWidget(self.Button_CheckOutput_DAT_VITS, 1, 0, 1, 2) - + self.verticalLayout_80.addWidget(self.CheckBox_Train_VITS_OutputParams_Toggle_AdvanceSettings) - self.gridLayout_8.addWidget(self.Widget_Right_DAT_VITS, 0, 2, 1, 1) - - self.ProgressBar_DAT_VITS = QProgressBar(self.Subpage_DAT_VITS) - self.ProgressBar_DAT_VITS.setObjectName(u"ProgressBar_DAT_VITS") - self.ProgressBar_DAT_VITS.setMinimumSize(QSize(0, 30)) - self.ProgressBar_DAT_VITS.setStyleSheet(u"QProgressBar {\n" -" text-align: center;\n" + self.Frame_Train_VITS_OutputParams_AdvanceSettings = QFrame(self.GroupBox_Train_VITS_OutputParams) + self.Frame_Train_VITS_OutputParams_AdvanceSettings.setObjectName(u"Frame_Train_VITS_OutputParams_AdvanceSettings") + self.verticalLayout_79 = QVBoxLayout(self.Frame_Train_VITS_OutputParams_AdvanceSettings) + self.verticalLayout_79.setSpacing(0) + self.verticalLayout_79.setObjectName(u"verticalLayout_79") + self.verticalLayout_79.setContentsMargins(0, 0, 0, 0) + self.Frame_Train_VITS_LogDir = QFrame(self.Frame_Train_VITS_OutputParams_AdvanceSettings) + self.Frame_Train_VITS_LogDir.setObjectName(u"Frame_Train_VITS_LogDir") + self.Frame_Train_VITS_LogDir.setMinimumSize(QSize(0, 105)) + self.Frame_Train_VITS_LogDir.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" -" background-color: rgb(60, 60, 60);\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QProgressBar:chunk {\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" " border-style: solid;\n" -" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" -"}") - self.ProgressBar_DAT_VITS.setValue(0) - self.ProgressBar_DAT_VITS.setTextVisible(False) - self.horizontalLayout_37 = QHBoxLayout(self.ProgressBar_DAT_VITS) - self.horizontalLayout_37.setSpacing(0) - self.horizontalLayout_37.setObjectName(u"horizontalLayout_37") - self.horizontalLayout_37.setContentsMargins(0, 0, 0, 0) - self.StackedWidget_DAT_VITS = QStackedWidget(self.ProgressBar_DAT_VITS) - self.StackedWidget_DAT_VITS.setObjectName(u"StackedWidget_DAT_VITS") - self.StackedWidget_DAT_VITS.setMaximumSize(QSize(16777215, 30)) - self.StackedWidget_DAT_VITS.setStyleSheet(u"QWidget {\n" -" background-color: rgba(90, 90, 90, 45);\n" "}\n" -"QWidget:hover {\n" -" background-color: rgba(120, 120, 120, 60);\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" "}") - self.Page_DAT_VITS_Execute = QWidget() - self.Page_DAT_VITS_Execute.setObjectName(u"Page_DAT_VITS_Execute") - self.verticalLayout_92 = QVBoxLayout(self.Page_DAT_VITS_Execute) - self.verticalLayout_92.setSpacing(0) - self.verticalLayout_92.setObjectName(u"verticalLayout_92") - self.verticalLayout_92.setContentsMargins(0, 0, 0, 0) - self.Button_DAT_VITS_Execute = QPushButton(self.Page_DAT_VITS_Execute) - self.Button_DAT_VITS_Execute.setObjectName(u"Button_DAT_VITS_Execute") - sizePolicy3.setHeightForWidth(self.Button_DAT_VITS_Execute.sizePolicy().hasHeightForWidth()) - self.Button_DAT_VITS_Execute.setSizePolicy(sizePolicy3) - self.Button_DAT_VITS_Execute.setMinimumSize(QSize(0, 30)) - self.Button_DAT_VITS_Execute.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" color: rgba(255, 255, 255, 210);\n" -" /*background-color: rgba(90, 90, 90, 45);*/\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" -"}\n" -"QPushButton:hover {\n" -" color: rgba(255, 255, 255, 240);\n" -" /*background-color: rgba(120, 120, 120, 60);*/\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" + self.gridLayout_111 = QGridLayout(self.Frame_Train_VITS_LogDir) + self.gridLayout_111.setSpacing(12) + self.gridLayout_111.setObjectName(u"gridLayout_111") + self.gridLayout_111.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_LogDir = QLabel(self.Frame_Train_VITS_LogDir) + self.Label_Train_VITS_LogDir.setObjectName(u"Label_Train_VITS_LogDir") + sizePolicy5.setHeightForWidth(self.Label_Train_VITS_LogDir.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_LogDir.setSizePolicy(sizePolicy5) + self.Label_Train_VITS_LogDir.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" "}") - self.verticalLayout_92.addWidget(self.Button_DAT_VITS_Execute) + self.gridLayout_111.addWidget(self.Label_Train_VITS_LogDir, 0, 0, 1, 1) - self.StackedWidget_DAT_VITS.addWidget(self.Page_DAT_VITS_Execute) - self.Page_DAT_VITS_Terminate = QWidget() - self.Page_DAT_VITS_Terminate.setObjectName(u"Page_DAT_VITS_Terminate") - self.verticalLayout_93 = QVBoxLayout(self.Page_DAT_VITS_Terminate) - self.verticalLayout_93.setSpacing(0) - self.verticalLayout_93.setObjectName(u"verticalLayout_93") - self.verticalLayout_93.setContentsMargins(0, 0, 0, 0) - self.Button_DAT_VITS_Terminate = QPushButton(self.Page_DAT_VITS_Terminate) - self.Button_DAT_VITS_Terminate.setObjectName(u"Button_DAT_VITS_Terminate") - sizePolicy3.setHeightForWidth(self.Button_DAT_VITS_Terminate.sizePolicy().hasHeightForWidth()) - self.Button_DAT_VITS_Terminate.setSizePolicy(sizePolicy3) - self.Button_DAT_VITS_Terminate.setMinimumSize(QSize(0, 30)) - self.Button_DAT_VITS_Terminate.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" color: rgba(255, 255, 255, 210);\n" -" /*background-color: rgba(90, 90, 90, 45);*/\n" -" padding: 0px;\n" -" border-width: 0px;\n" + self.HorizontalSpacer_Train_VITS_LogDir = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_111.addItem(self.HorizontalSpacer_Train_VITS_LogDir, 0, 1, 1, 1) + + self.Button_Train_VITS_LogDir_Undo = QPushButton(self.Frame_Train_VITS_LogDir) + self.Button_Train_VITS_LogDir_Undo.setObjectName(u"Button_Train_VITS_LogDir_Undo") + self.Button_Train_VITS_LogDir_Undo.setMinimumSize(QSize(27, 27)) + self.Button_Train_VITS_LogDir_Undo.setMaximumSize(QSize(27, 27)) + self.Button_Train_VITS_LogDir_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" "QPushButton:hover {\n" -" color: rgba(255, 255, 255, 240);\n" -" /*background-color: rgba(120, 120, 120, 60);*/\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" @@ -10804,46 +16241,62 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.verticalLayout_93.addWidget(self.Button_DAT_VITS_Terminate) + self.gridLayout_111.addWidget(self.Button_Train_VITS_LogDir_Undo, 0, 2, 1, 1) - self.StackedWidget_DAT_VITS.addWidget(self.Page_DAT_VITS_Terminate) + self.LineEdit_Train_VITS_LogDir = LineEditBase(self.Frame_Train_VITS_LogDir) + self.LineEdit_Train_VITS_LogDir.setObjectName(u"LineEdit_Train_VITS_LogDir") + self.LineEdit_Train_VITS_LogDir.setMinimumSize(QSize(0, 27)) - self.horizontalLayout_37.addWidget(self.StackedWidget_DAT_VITS) + self.gridLayout_111.addWidget(self.LineEdit_Train_VITS_LogDir, 1, 0, 1, 3) - self.gridLayout_8.addWidget(self.ProgressBar_DAT_VITS, 1, 0, 1, 3) + self.verticalLayout_79.addWidget(self.Frame_Train_VITS_LogDir) - self.gridLayout_8.setColumnStretch(0, 3) - self.gridLayout_8.setColumnStretch(1, 10) - self.gridLayout_8.setColumnStretch(2, 7) - self.StackedWidget_Pages_Dataset.addWidget(self.Subpage_DAT_VITS) - self.verticalLayout_39.addWidget(self.StackedWidget_Pages_Dataset) + self.verticalLayout_80.addWidget(self.Frame_Train_VITS_OutputParams_AdvanceSettings) - self.StackedWidget_Pages.addWidget(self.Page_Dataset) - self.Page_Train = QWidget() - self.Page_Train.setObjectName(u"Page_Train") - self.verticalLayout_43 = QVBoxLayout(self.Page_Train) - self.verticalLayout_43.setSpacing(21) - self.verticalLayout_43.setObjectName(u"verticalLayout_43") - self.verticalLayout_43.setContentsMargins(21, 12, 21, 12) - self.Frame_Train_Top = QFrame(self.Page_Train) - self.Frame_Train_Top.setObjectName(u"Frame_Train_Top") - self.Frame_Train_Top.setMinimumSize(QSize(0, 60)) - self.Frame_Train_Top.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_28.addWidget(self.GroupBox_Train_VITS_OutputParams) + + self.VerticalSpacer_Train_VITS = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_28.addItem(self.VerticalSpacer_Train_VITS) + + self.ScrollArea_Middle_Train_VITS.setWidget(self.ScrollArea_Middle_WidgetContents_Train_VITS) + + self.gridLayout_22.addWidget(self.ScrollArea_Middle_Train_VITS, 0, 1, 1, 1) + + self.gridLayout_22.setColumnStretch(0, 3) + self.gridLayout_22.setColumnStretch(1, 10) + self.gridLayout_22.setColumnStretch(2, 7) + self.StackedWidget_Pages_Train.addWidget(self.Subpage_Train_VITS) + + self.verticalLayout_43.addWidget(self.StackedWidget_Pages_Train) + + self.StackedWidget_Pages.addWidget(self.Page_Train) + self.Page_TTS = QWidget() + self.Page_TTS.setObjectName(u"Page_TTS") + self.verticalLayout_42 = QVBoxLayout(self.Page_TTS) + self.verticalLayout_42.setSpacing(21) + self.verticalLayout_42.setObjectName(u"verticalLayout_42") + self.verticalLayout_42.setContentsMargins(21, 12, 21, 12) + self.Frame_TTS_Top = QFrame(self.Page_TTS) + self.Frame_TTS_Top.setObjectName(u"Frame_TTS_Top") + self.Frame_TTS_Top.setMinimumSize(QSize(0, 60)) + self.Frame_TTS_Top.setStyleSheet(u"QFrame {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}") - self.horizontalLayout_72 = QHBoxLayout(self.Frame_Train_Top) - self.horizontalLayout_72.setSpacing(0) - self.horizontalLayout_72.setObjectName(u"horizontalLayout_72") - self.horizontalLayout_72.setContentsMargins(0, 0, 0, 0) - self.ToolButton_VoiceTrainer_Title = QToolButton(self.Frame_Train_Top) - self.ToolButton_VoiceTrainer_Title.setObjectName(u"ToolButton_VoiceTrainer_Title") - sizePolicy1.setHeightForWidth(self.ToolButton_VoiceTrainer_Title.sizePolicy().hasHeightForWidth()) - self.ToolButton_VoiceTrainer_Title.setSizePolicy(sizePolicy1) - self.ToolButton_VoiceTrainer_Title.setStyleSheet(u"QToolButton {\n" + self.horizontalLayout_16 = QHBoxLayout(self.Frame_TTS_Top) + self.horizontalLayout_16.setSpacing(0) + self.horizontalLayout_16.setObjectName(u"horizontalLayout_16") + self.horizontalLayout_16.setContentsMargins(0, 0, 0, 0) + self.ToolButton_VoiceConverter_Title_GPTSoVITS = QToolButton(self.Frame_TTS_Top) + self.ToolButton_VoiceConverter_Title_GPTSoVITS.setObjectName(u"ToolButton_VoiceConverter_Title_GPTSoVITS") + sizePolicy1.setHeightForWidth(self.ToolButton_VoiceConverter_Title_GPTSoVITS.sizePolicy().hasHeightForWidth()) + self.ToolButton_VoiceConverter_Title_GPTSoVITS.setSizePolicy(sizePolicy1) + self.ToolButton_VoiceConverter_Title_GPTSoVITS.setStyleSheet(u"QToolButton {\n" " font-size: 24px;\n" " /*text-align: center;*/\n" " color: rgba(201, 210, 222, 210);\n" @@ -10886,18 +16339,18 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_72.addWidget(self.ToolButton_VoiceTrainer_Title) + self.horizontalLayout_16.addWidget(self.ToolButton_VoiceConverter_Title_GPTSoVITS) - self.Frame_Train_Title_Spacer = QLabel(self.Frame_Train_Top) - self.Frame_Train_Title_Spacer.setObjectName(u"Frame_Train_Title_Spacer") - sizePolicy4.setHeightForWidth(self.Frame_Train_Title_Spacer.sizePolicy().hasHeightForWidth()) - self.Frame_Train_Title_Spacer.setSizePolicy(sizePolicy4) - self.Frame_Train_Title_Spacer.setStyleSheet(u"QLabel {\n" + self.ToolButton_VoiceConverter_Title_VITS = QToolButton(self.Frame_TTS_Top) + self.ToolButton_VoiceConverter_Title_VITS.setObjectName(u"ToolButton_VoiceConverter_Title_VITS") + sizePolicy1.setHeightForWidth(self.ToolButton_VoiceConverter_Title_VITS.sizePolicy().hasHeightForWidth()) + self.ToolButton_VoiceConverter_Title_VITS.setSizePolicy(sizePolicy1) + self.ToolButton_VoiceConverter_Title_VITS.setStyleSheet(u"QToolButton {\n" " font-size: 24px;\n" -" /*text-align: center;\n" -" color: rgb(255, 255, 255);\n" +" /*text-align: center;*/\n" +" color: rgba(201, 210, 222, 210);\n" " padding-left: 12px;\n" -" padding-right: 12px;*/\n" +" padding-right: 12px;\n" " background-color: transparent;\n" " border-top-width: 0px;\n" " border-right-width: 0px;\n" @@ -10905,270 +16358,132 @@ def setupUi(self, MainWindow): " border-left-width: 0px;\n" " border-style: solid;\n" " border-bottom-color: rgba(123, 123, 123, 123);\n" -"}") - - self.horizontalLayout_72.addWidget(self.Frame_Train_Title_Spacer) - - - self.verticalLayout_43.addWidget(self.Frame_Train_Top) - - self.StackedWidget_Pages_Train = QStackedWidget(self.Page_Train) - self.StackedWidget_Pages_Train.setObjectName(u"StackedWidget_Pages_Train") - self.StackedWidget_Pages_Train.setStyleSheet(u"QWidget {\n" -" background-color: transparent;\n" -"}\n" -"\n" -"\n" -"/*\n" -"QTabWidget {\n" -" background-color: transparent;\n" -"}\n" -"QTabWidget::tab-bar {\n" -"}\n" -"QTabWidget::pane {\n" -" border-width: 0px;\n" -" border-style: solid;\n" "}\n" -"\n" -"\n" -"QTabBar::tab {\n" -" font-size: 18px;\n" -" font-weight: 420;\n" -" spacing: 12px;\n" -" color: rgba(255, 255, 255, 210);\n" +"QToolButton:hover {\n" +" color: rgba(210, 222, 234, 234);\n" " background-color: transparent;\n" -" padding: 12px;\n" " border-top-width: 0px;\n" " border-right-width: 0px;\n" " border-bottom-width: 3px;\n" " border-left-width: 0px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" -"}\n" -"QTabBar::tab:selected {\n" -" color: rgba(255, 255, 255, 255);\n" -"}\n" -"QTabBar::tab:hover:!selected {\n" -"}\n" -"\n" -"\n" -"QTabBar QToolButton {\n" -"}\n" -"QTabBar QToolButton:hover {\n" -"}\n" -"*/") - self.Subpage_Train_VITS = QWidget() - self.Subpage_Train_VITS.setObjectName(u"Subpage_Train_VITS") - self.gridLayout_22 = QGridLayout(self.Subpage_Train_VITS) - self.gridLayout_22.setSpacing(12) - self.gridLayout_22.setObjectName(u"gridLayout_22") - self.gridLayout_22.setContentsMargins(0, 0, 0, 0) - self.Widget_Right_Train_VITS = QWidget(self.Subpage_Train_VITS) - self.Widget_Right_Train_VITS.setObjectName(u"Widget_Right_Train_VITS") - self.Widget_Right_Train_VITS.setStyleSheet(u"QWidget {\n" -" background-color: rgba(36, 36, 36, 123);\n" -" border-width: 0px;\n" -" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 123);\n" "}\n" -"QWidget:hover {\n" -"}") - self.gridLayout = QGridLayout(self.Widget_Right_Train_VITS) - self.gridLayout.setSpacing(12) - self.gridLayout.setObjectName(u"gridLayout") - self.gridLayout.setContentsMargins(12, 12, 12, 12) - self.Button_RunTensorboard_Train_VITS = QPushButton(self.Widget_Right_Train_VITS) - self.Button_RunTensorboard_Train_VITS.setObjectName(u"Button_RunTensorboard_Train_VITS") - self.Button_RunTensorboard_Train_VITS.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" font-size: 12px;\n" +"QToolButton:checked {\n" +" color: rgba(210, 222, 234, 255);\n" " background-color: transparent;\n" -" padding: 9.9px;\n" -" border-width: 1.5px;\n" -" border-radius: 6px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" " border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgb(120, 120, 120);\n" +" border-bottom-color: rgba(120, 180, 240, 210);\n" "}\n" "\n" -"\n" "QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" +" color:" + " rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" " border-width: 0px;\n" " border-style: solid;\n" "}") - self.gridLayout.addWidget(self.Button_RunTensorboard_Train_VITS, 1, 0, 1, 2) + self.horizontalLayout_16.addWidget(self.ToolButton_VoiceConverter_Title_VITS) - self.TextBrowser_Params_Train_VITS = QTextBrowser(self.Widget_Right_Train_VITS) - self.TextBrowser_Params_Train_VITS.setObjectName(u"TextBrowser_Params_Train_VITS") - sizePolicy1.setHeightForWidth(self.TextBrowser_Params_Train_VITS.sizePolicy().hasHeightForWidth()) - self.TextBrowser_Params_Train_VITS.setSizePolicy(sizePolicy1) - self.TextBrowser_Params_Train_VITS.setStyleSheet(u"QTextBrowser {\n" -" background-color: rgba(33, 33, 33, 99);\n" -" /*padding-top: 1.5px;*/\n" -" /*padding-bottom: 1.5px;*/\n" -" padding-left: 15px;\n" -" padding-right: 6px;\n" -" border-width: 1px;\n" -" border-style: solid;\n" -" border-color:transparent;\n" -"}\n" -"\n" -"\n" -"QScrollBar::vertical {\n" -" width: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QScrollBar::vertical:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}\n" -"\n" -"QScrollBar::add-line:vertical {\n" -" height: 0px;\n" + self.Frame_TTS_Title_Spacer = QLabel(self.Frame_TTS_Top) + self.Frame_TTS_Title_Spacer.setObjectName(u"Frame_TTS_Title_Spacer") + sizePolicy4.setHeightForWidth(self.Frame_TTS_Title_Spacer.sizePolicy().hasHeightForWidth()) + self.Frame_TTS_Title_Spacer.setSizePolicy(sizePolicy4) + self.Frame_TTS_Title_Spacer.setStyleSheet(u"QLabel {\n" +" font-size: 24px;\n" +" /*text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" padding-left: 12px;\n" +" padding-right: 12px;*/\n" " background-color: transparent;\n" -" subcontrol-position: bottom;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" " border-style: solid;\n" -"}\n" -"\n" -"QScrollBar::sub-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: top;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" bord" - "er-style: solid;\n" -"}\n" -"\n" -"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QScrollBar::handle:vertical {\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}") + + self.horizontalLayout_16.addWidget(self.Frame_TTS_Title_Spacer) + + + self.verticalLayout_42.addWidget(self.Frame_TTS_Top) + + self.StackedWidget_Pages_TTS = QStackedWidget(self.Page_TTS) + self.StackedWidget_Pages_TTS.setObjectName(u"StackedWidget_Pages_TTS") + self.StackedWidget_Pages_TTS.setStyleSheet(u"QWidget {\n" " background-color: transparent;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"QScrollBar::handle:vertical:hover {\n" -" background-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" -"QScrollBar::horizontal {\n" -" height: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QScrollBar::horizontal:hover {\n" -" background-color: rgb(60, 60, 60);\n" -"}\n" -"\n" -"QScrollBar::add-line:horizontal {\n" -" width: 0px;\n" +"/*\n" +"QTabWidget {\n" " background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" "}\n" -"\n" -"QScrollBar::sub-line:horizontal {\n" -" width: 0px" - ";\n" -" background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" +"QTabWidget::tab-bar {\n" +"}\n" +"QTabWidget::pane {\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" "}\n" "\n" -"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" "\n" -"QScrollBar::handle:horizontal {\n" +"QTabBar::tab {\n" +" font-size: 18px;\n" +" font-weight: 420;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" +" padding: 12px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" " border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" "}\n" -"QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}") - - self.gridLayout.addWidget(self.TextBrowser_Params_Train_VITS, 0, 0, 1, 2) - - self.Button_CheckOutput_Train_VITS = QPushButton(self.Widget_Right_Train_VITS) - self.Button_CheckOutput_Train_VITS.setObjectName(u"Button_CheckOutput_Train_VITS") - self.Button_CheckOutput_Train_VITS.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" font-size: 12px;\n" -" background-color: transparent;\n" -" padding: 9.9px;\n" -" border-width: 1.5px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" +"QTabBar::tab:selected {\n" +" color: rgba(255, 255, 255, 255);\n" "}\n" -"QPushButton:hover {\n" -" border-color: rgb(120, 120, 120);\n" +"QTabBar::tab:hover:!selected {\n" "}\n" "\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - - self.gridLayout.addWidget(self.Button_CheckOutput_Train_VITS, 2, 0, 1, 2) - - - self.gridLayout_22.addWidget(self.Widget_Right_Train_VITS, 0, 2, 1, 1) - - self.Widget_Left_Train_VITS = QWidget(self.Subpage_Train_VITS) - self.Widget_Left_Train_VITS.setObjectName(u"Widget_Left_Train_VITS") - self.Widget_Left_Train_VITS.setMinimumSize(QSize(150, 0)) - self.Widget_Left_Train_VITS.setStyleSheet(u"QWidget {\n" +"QTabBar QToolButton {\n" +"}\n" +"QTabBar QToolButton:hover {\n" +"}\n" +"*/") + self.Subpage_TTS_GPTSoVITS = QWidget() + self.Subpage_TTS_GPTSoVITS.setObjectName(u"Subpage_TTS_GPTSoVITS") + self.gridLayout_109 = QGridLayout(self.Subpage_TTS_GPTSoVITS) + self.gridLayout_109.setSpacing(12) + self.gridLayout_109.setObjectName(u"gridLayout_109") + self.gridLayout_109.setContentsMargins(0, 0, 0, 0) + self.Widget_Left_TTS_GPTSoVITS = QWidget(self.Subpage_TTS_GPTSoVITS) + self.Widget_Left_TTS_GPTSoVITS.setObjectName(u"Widget_Left_TTS_GPTSoVITS") + self.Widget_Left_TTS_GPTSoVITS.setMinimumSize(QSize(150, 0)) + self.Widget_Left_TTS_GPTSoVITS.setStyleSheet(u"QWidget {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" "QWidget:hover {\n" "}") - self.verticalLayout_10 = QVBoxLayout(self.Widget_Left_Train_VITS) - self.verticalLayout_10.setSpacing(12) - self.verticalLayout_10.setObjectName(u"verticalLayout_10") - self.verticalLayout_10.setContentsMargins(12, 12, 12, 12) - self.TreeWidget_Catalogue_Train_VITS = QTreeWidget(self.Widget_Left_Train_VITS) - __qtreewidgetitem4 = QTreeWidgetItem(self.TreeWidget_Catalogue_Train_VITS) - QTreeWidgetItem(__qtreewidgetitem4) - self.TreeWidget_Catalogue_Train_VITS.setObjectName(u"TreeWidget_Catalogue_Train_VITS") - self.TreeWidget_Catalogue_Train_VITS.setStyleSheet(u"QTreeView {\n" + self.verticalLayout_69 = QVBoxLayout(self.Widget_Left_TTS_GPTSoVITS) + self.verticalLayout_69.setSpacing(12) + self.verticalLayout_69.setObjectName(u"verticalLayout_69") + self.verticalLayout_69.setContentsMargins(12, 12, 12, 12) + self.TreeWidget_Catalogue_TTS_GPTSoVITS = QTreeWidget(self.Widget_Left_TTS_GPTSoVITS) + __qtreewidgetitem7 = QTreeWidgetItem(self.TreeWidget_Catalogue_TTS_GPTSoVITS) + QTreeWidgetItem(__qtreewidgetitem7) + self.TreeWidget_Catalogue_TTS_GPTSoVITS.setObjectName(u"TreeWidget_Catalogue_TTS_GPTSoVITS") + self.TreeWidget_Catalogue_TTS_GPTSoVITS.setStyleSheet(u"QTreeView {\n" " /*font-size: 12px;\n" " text-align: center;*/\n" " background-color: transparent;\n" @@ -11199,176 +16514,62 @@ def setupUi(self, MainWindow): "}\n" "QTreeView::branch:closed:has-children {\n" " image: ;\n" -"}\n" -"QTreeWidget::branch:adjoins-item {\n" -" background-color: ;\n" -"}\n" -"\n" -"\n" -"QScrollBar {\n" -" background-color: rgba(45, 45, 45, 135);\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QScrollBar:hover {\n" -" background-color: r" - "gba(33, 33, 33, 99);\n" -"}\n" -"\n" -"QScrollBar::horizontal {\n" -" height: 9px;\n" -"}\n" -"QScrollBar::vertical {\n" -" width: 9px;\n" -"}\n" -"\n" -"QScrollBar::sub-line, QScrollBar::add-line {\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QScrollBar::sub-page, QScrollBar::add-page {\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QScrollBar::handle {\n" -" background-color: rgba(90, 90, 90, 90);\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"QScrollBar::handle:hover {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}") - - self.verticalLayout_10.addWidget(self.TreeWidget_Catalogue_Train_VITS) - - - self.gridLayout_22.addWidget(self.Widget_Left_Train_VITS, 0, 0, 1, 1) - - self.ProgressBar_Train_VITS = QProgressBar(self.Subpage_Train_VITS) - self.ProgressBar_Train_VITS.setObjectName(u"ProgressBar_Train_VITS") - self.ProgressBar_Train_VITS.setMinimumSize(QSize(0, 30)) - self.ProgressBar_Train_VITS.setStyleSheet(u"QProgressBar {\n" -" text-align: center;\n" -" color: rgb(255, 255, 255);\n" -" background-color: rgb(60, 60, 60);\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QProgressBar:chunk {\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" -"}") - self.ProgressBar_Train_VITS.setValue(0) - self.ProgressBar_Train_VITS.setTextVisible(False) - self.horizontalLayout_39 = QHBoxLayout(self.ProgressBar_Train_VITS) - self.horizontalLayout_39.setSpacing(0) - self.horizontalLayout_39.setObjectName(u"horizontalLayout_39") - self.horizontalLayout_39.setContentsMargins(0, 0, 0, 0) - self.StackedWidget_Train_VITS = QStackedWidget(self.ProgressBar_Train_VITS) - self.StackedWidget_Train_VITS.setObjectName(u"StackedWidget_Train_VITS") - self.StackedWidget_Train_VITS.setMaximumSize(QSize(16777215, 30)) - self.StackedWidget_Train_VITS.setStyleSheet(u"QWidget {\n" -" background-color: rgba(90, 90, 90, 45);\n" -"}\n" -"QWidget:hover {\n" -" background-color: rgba(120, 120, 120, 60);\n" -"}") - self.Page_Train_VITS_Execute = QWidget() - self.Page_Train_VITS_Execute.setObjectName(u"Page_Train_VITS_Execute") - self.verticalLayout_94 = QVBoxLayout(self.Page_Train_VITS_Execute) - self.verticalLayout_94.setSpacing(0) - self.verticalLayout_94.setObjectName(u"verticalLayout_94") - self.verticalLayout_94.setContentsMargins(0, 0, 0, 0) - self.Button_Train_VITS_Execute = QPushButton(self.Page_Train_VITS_Execute) - self.Button_Train_VITS_Execute.setObjectName(u"Button_Train_VITS_Execute") - sizePolicy3.setHeightForWidth(self.Button_Train_VITS_Execute.sizePolicy().hasHeightForWidth()) - self.Button_Train_VITS_Execute.setSizePolicy(sizePolicy3) - self.Button_Train_VITS_Execute.setMinimumSize(QSize(0, 30)) - self.Button_Train_VITS_Execute.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" color: rgba(255, 255, 255, 210);\n" -" /*background-color: rgba(90, 90, 90, 45);*/\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" -"}\n" -"QPushButton:hover {\n" -" color: rgba(255, 255, 255, 240);\n" -" /*background-color: rgba(120, 120, 120, 60);*/\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - - self.verticalLayout_94.addWidget(self.Button_Train_VITS_Execute) - - self.StackedWidget_Train_VITS.addWidget(self.Page_Train_VITS_Execute) - self.Page_Train_VITS_Terminate = QWidget() - self.Page_Train_VITS_Terminate.setObjectName(u"Page_Train_VITS_Terminate") - self.verticalLayout_95 = QVBoxLayout(self.Page_Train_VITS_Terminate) - self.verticalLayout_95.setSpacing(0) - self.verticalLayout_95.setObjectName(u"verticalLayout_95") - self.verticalLayout_95.setContentsMargins(0, 0, 0, 0) - self.Button_Train_VITS_Terminate = QPushButton(self.Page_Train_VITS_Terminate) - self.Button_Train_VITS_Terminate.setObjectName(u"Button_Train_VITS_Terminate") - sizePolicy3.setHeightForWidth(self.Button_Train_VITS_Terminate.sizePolicy().hasHeightForWidth()) - self.Button_Train_VITS_Terminate.setSizePolicy(sizePolicy3) - self.Button_Train_VITS_Terminate.setMinimumSize(QSize(0, 30)) - self.Button_Train_VITS_Terminate.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" color: rgba(255, 255, 255, 210);\n" -" /*background-color: rgba(90, 90, 90, 45);*/\n" -" padding: 0px;\n" -" border-width: 0px;\n" +"}\n" +"QTreeWidget::branch:adjoins-item {\n" +" background-color: ;\n" +"}\n" +"\n" +"\n" +"QScrollBar {\n" +" background-color: rgba(45, 45, 45, 135);\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" +" border-color: transparent;\n" +" margin: 0px;\n" "}\n" -"QPushButton:hover {\n" -" color: rgba(255, 255, 255, 240);\n" -" /*background-color: rgba(120, 120, 120, 60);*/\n" +"QScrollBar:hover {\n" +" background-color: r" + "gba(33, 33, 33, 99);\n" "}\n" "\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +"}\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +"}\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" +"QScrollBar::sub-line, QScrollBar::add-line {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-page, QScrollBar::add-page {\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle {\n" +" background-color: rgba(90, 90, 90, 90);\n" " border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" +"}\n" +"QScrollBar::handle:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" "}") - self.verticalLayout_95.addWidget(self.Button_Train_VITS_Terminate) - - self.StackedWidget_Train_VITS.addWidget(self.Page_Train_VITS_Terminate) - - self.horizontalLayout_39.addWidget(self.StackedWidget_Train_VITS) + self.verticalLayout_69.addWidget(self.TreeWidget_Catalogue_TTS_GPTSoVITS) - self.gridLayout_22.addWidget(self.ProgressBar_Train_VITS, 1, 0, 1, 3) + self.gridLayout_109.addWidget(self.Widget_Left_TTS_GPTSoVITS, 0, 0, 1, 1) - self.ScrollArea_Middle_Train_VITS = QScrollArea(self.Subpage_Train_VITS) - self.ScrollArea_Middle_Train_VITS.setObjectName(u"ScrollArea_Middle_Train_VITS") - self.ScrollArea_Middle_Train_VITS.setMinimumSize(QSize(600, 0)) - self.ScrollArea_Middle_Train_VITS.setStyleSheet(u"QScrollArea {\n" + self.ScrollArea_Middle_TTS_GPTSoVITS = QScrollArea(self.Subpage_TTS_GPTSoVITS) + self.ScrollArea_Middle_TTS_GPTSoVITS.setObjectName(u"ScrollArea_Middle_TTS_GPTSoVITS") + self.ScrollArea_Middle_TTS_GPTSoVITS.setMinimumSize(QSize(600, 0)) + self.ScrollArea_Middle_TTS_GPTSoVITS.setStyleSheet(u"QScrollArea {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" @@ -11477,18 +16678,18 @@ def setupUi(self, MainWindow): "QScrollBar::handle:horizontal:hover {\n" " background-color: rgb(120, 120, 120);\n" "}") - self.ScrollArea_Middle_Train_VITS.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) - self.ScrollArea_Middle_Train_VITS.setWidgetResizable(True) - self.ScrollArea_Middle_WidgetContents_Train_VITS = QWidget() - self.ScrollArea_Middle_WidgetContents_Train_VITS.setObjectName(u"ScrollArea_Middle_WidgetContents_Train_VITS") - self.ScrollArea_Middle_WidgetContents_Train_VITS.setGeometry(QRect(0, 0, 591, 1566)) - self.verticalLayout_28 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_Train_VITS) - self.verticalLayout_28.setSpacing(12) - self.verticalLayout_28.setObjectName(u"verticalLayout_28") - self.verticalLayout_28.setContentsMargins(12, 12, 12, 12) - self.GroupBox_Train_VITS_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Train_VITS) - self.GroupBox_Train_VITS_InputParams.setObjectName(u"GroupBox_Train_VITS_InputParams") - self.GroupBox_Train_VITS_InputParams.setStyleSheet(u"QGroupBox {\n" + self.ScrollArea_Middle_TTS_GPTSoVITS.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) + self.ScrollArea_Middle_TTS_GPTSoVITS.setWidgetResizable(True) + self.ScrollArea_Middle_WidgetContents_TTS_GPTSoVITS = QWidget() + self.ScrollArea_Middle_WidgetContents_TTS_GPTSoVITS.setObjectName(u"ScrollArea_Middle_WidgetContents_TTS_GPTSoVITS") + self.ScrollArea_Middle_WidgetContents_TTS_GPTSoVITS.setGeometry(QRect(0, 0, 591, 649)) + self.verticalLayout_66 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_TTS_GPTSoVITS) + self.verticalLayout_66.setSpacing(12) + self.verticalLayout_66.setObjectName(u"verticalLayout_66") + self.verticalLayout_66.setContentsMargins(12, 12, 12, 12) + self.GroupBox_TTS_GPTSoVITS_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_TTS_GPTSoVITS) + self.GroupBox_TTS_GPTSoVITS_InputParams.setObjectName(u"GroupBox_TTS_GPTSoVITS_InputParams") + self.GroupBox_TTS_GPTSoVITS_InputParams.setStyleSheet(u"QGroupBox {\n" " font-size: 15px;\n" " margin-top: 1.5ex;\n" " color: rgb(255, 255, 255);\n" @@ -11504,20 +16705,20 @@ def setupUi(self, MainWindow): " subcontrol-position: top left;\n" " padding: 3px;\n" "}") - self.verticalLayout_116 = QVBoxLayout(self.GroupBox_Train_VITS_InputParams) - self.verticalLayout_116.setSpacing(0) - self.verticalLayout_116.setObjectName(u"verticalLayout_116") - self.verticalLayout_116.setContentsMargins(0, 12, 0, 12) - self.Frame_Train_VITS_InputParams_BasicSettings = QFrame(self.GroupBox_Train_VITS_InputParams) - self.Frame_Train_VITS_InputParams_BasicSettings.setObjectName(u"Frame_Train_VITS_InputParams_BasicSettings") - self.verticalLayout_18 = QVBoxLayout(self.Frame_Train_VITS_InputParams_BasicSettings) - self.verticalLayout_18.setSpacing(0) - self.verticalLayout_18.setObjectName(u"verticalLayout_18") - self.verticalLayout_18.setContentsMargins(0, 0, 0, 0) - self.Frame_Train_VITS_FileListPathTraining = QFrame(self.Frame_Train_VITS_InputParams_BasicSettings) - self.Frame_Train_VITS_FileListPathTraining.setObjectName(u"Frame_Train_VITS_FileListPathTraining") - self.Frame_Train_VITS_FileListPathTraining.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_FileListPathTraining.setStyleSheet(u"QFrame {\n" + self.verticalLayout_125 = QVBoxLayout(self.GroupBox_TTS_GPTSoVITS_InputParams) + self.verticalLayout_125.setSpacing(0) + self.verticalLayout_125.setObjectName(u"verticalLayout_125") + self.verticalLayout_125.setContentsMargins(0, 12, 0, 12) + self.Frame_TTS_GPTSoVITS_InputParams_BasicSettings = QFrame(self.GroupBox_TTS_GPTSoVITS_InputParams) + self.Frame_TTS_GPTSoVITS_InputParams_BasicSettings.setObjectName(u"Frame_TTS_GPTSoVITS_InputParams_BasicSettings") + self.verticalLayout_71 = QVBoxLayout(self.Frame_TTS_GPTSoVITS_InputParams_BasicSettings) + self.verticalLayout_71.setSpacing(0) + self.verticalLayout_71.setObjectName(u"verticalLayout_71") + self.verticalLayout_71.setContentsMargins(0, 0, 0, 0) + self.Frame_TTS_GPTSoVITS_ModelPathLoadS1 = QFrame(self.Frame_TTS_GPTSoVITS_InputParams_BasicSettings) + self.Frame_TTS_GPTSoVITS_ModelPathLoadS1.setObjectName(u"Frame_TTS_GPTSoVITS_ModelPathLoadS1") + self.Frame_TTS_GPTSoVITS_ModelPathLoadS1.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_GPTSoVITS_ModelPathLoadS1.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -11526,15 +16727,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_57 = QGridLayout(self.Frame_Train_VITS_FileListPathTraining) - self.gridLayout_57.setSpacing(12) - self.gridLayout_57.setObjectName(u"gridLayout_57") - self.gridLayout_57.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_FileListPathTraining = QLabel(self.Frame_Train_VITS_FileListPathTraining) - self.Label_Train_VITS_FileListPathTraining.setObjectName(u"Label_Train_VITS_FileListPathTraining") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_FileListPathTraining.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_FileListPathTraining.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_FileListPathTraining.setStyleSheet(u"QLabel {\n" + self.gridLayout_97 = QGridLayout(self.Frame_TTS_GPTSoVITS_ModelPathLoadS1) + self.gridLayout_97.setSpacing(12) + self.gridLayout_97.setObjectName(u"gridLayout_97") + self.gridLayout_97.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_GPTSoVITS_ModelPathLoadS1 = QLabel(self.Frame_TTS_GPTSoVITS_ModelPathLoadS1) + self.Label_TTS_GPTSoVITS_ModelPathLoadS1.setObjectName(u"Label_TTS_GPTSoVITS_ModelPathLoadS1") + sizePolicy5.setHeightForWidth(self.Label_TTS_GPTSoVITS_ModelPathLoadS1.sizePolicy().hasHeightForWidth()) + self.Label_TTS_GPTSoVITS_ModelPathLoadS1.setSizePolicy(sizePolicy5) + self.Label_TTS_GPTSoVITS_ModelPathLoadS1.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -11544,17 +16745,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_57.addWidget(self.Label_Train_VITS_FileListPathTraining, 0, 0, 1, 1) + self.gridLayout_97.addWidget(self.Label_TTS_GPTSoVITS_ModelPathLoadS1, 0, 0, 1, 1) - self.HorizontalSpacer_Train_VITS_FileListPathTraining = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_TTS_GPTSoVITS_ModelPathLoadS1 = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_57.addItem(self.HorizontalSpacer_Train_VITS_FileListPathTraining, 0, 1, 1, 1) + self.gridLayout_97.addItem(self.HorizontalSpacer_TTS_GPTSoVITS_ModelPathLoadS1, 0, 1, 1, 1) - self.Button_Train_VITS_FileListPathTraining_Undo = QPushButton(self.Frame_Train_VITS_FileListPathTraining) - self.Button_Train_VITS_FileListPathTraining_Undo.setObjectName(u"Button_Train_VITS_FileListPathTraining_Undo") - self.Button_Train_VITS_FileListPathTraining_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_FileListPathTraining_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_FileListPathTraining_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_TTS_GPTSoVITS_ModelPathLoadS1_Undo = QPushButton(self.Frame_TTS_GPTSoVITS_ModelPathLoadS1) + self.Button_TTS_GPTSoVITS_ModelPathLoadS1_Undo.setObjectName(u"Button_TTS_GPTSoVITS_ModelPathLoadS1_Undo") + self.Button_TTS_GPTSoVITS_ModelPathLoadS1_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_GPTSoVITS_ModelPathLoadS1_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_GPTSoVITS_ModelPathLoadS1_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -11575,21 +16776,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_57.addWidget(self.Button_Train_VITS_FileListPathTraining_Undo, 0, 2, 1, 1) + self.gridLayout_97.addWidget(self.Button_TTS_GPTSoVITS_ModelPathLoadS1_Undo, 0, 2, 1, 1) - self.LineEdit_Train_VITS_FileListPathTraining = LineEditBase(self.Frame_Train_VITS_FileListPathTraining) - self.LineEdit_Train_VITS_FileListPathTraining.setObjectName(u"LineEdit_Train_VITS_FileListPathTraining") - self.LineEdit_Train_VITS_FileListPathTraining.setMinimumSize(QSize(0, 27)) + self.LineEdit_TTS_GPTSoVITS_ModelPathLoadS1 = LineEditBase(self.Frame_TTS_GPTSoVITS_ModelPathLoadS1) + self.LineEdit_TTS_GPTSoVITS_ModelPathLoadS1.setObjectName(u"LineEdit_TTS_GPTSoVITS_ModelPathLoadS1") + self.LineEdit_TTS_GPTSoVITS_ModelPathLoadS1.setMinimumSize(QSize(0, 27)) - self.gridLayout_57.addWidget(self.LineEdit_Train_VITS_FileListPathTraining, 1, 0, 1, 3) + self.gridLayout_97.addWidget(self.LineEdit_TTS_GPTSoVITS_ModelPathLoadS1, 1, 0, 1, 3) - self.verticalLayout_18.addWidget(self.Frame_Train_VITS_FileListPathTraining) + self.verticalLayout_71.addWidget(self.Frame_TTS_GPTSoVITS_ModelPathLoadS1) - self.Frame_Train_VITS_FileListPathValidation = QFrame(self.Frame_Train_VITS_InputParams_BasicSettings) - self.Frame_Train_VITS_FileListPathValidation.setObjectName(u"Frame_Train_VITS_FileListPathValidation") - self.Frame_Train_VITS_FileListPathValidation.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_FileListPathValidation.setStyleSheet(u"QFrame {\n" + self.Frame_TTS_GPTSoVITS_ModelPathLoadS2G = QFrame(self.Frame_TTS_GPTSoVITS_InputParams_BasicSettings) + self.Frame_TTS_GPTSoVITS_ModelPathLoadS2G.setObjectName(u"Frame_TTS_GPTSoVITS_ModelPathLoadS2G") + self.Frame_TTS_GPTSoVITS_ModelPathLoadS2G.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_GPTSoVITS_ModelPathLoadS2G.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -11598,15 +16799,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_58 = QGridLayout(self.Frame_Train_VITS_FileListPathValidation) - self.gridLayout_58.setSpacing(12) - self.gridLayout_58.setObjectName(u"gridLayout_58") - self.gridLayout_58.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_FileListPathValidation = QLabel(self.Frame_Train_VITS_FileListPathValidation) - self.Label_Train_VITS_FileListPathValidation.setObjectName(u"Label_Train_VITS_FileListPathValidation") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_FileListPathValidation.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_FileListPathValidation.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_FileListPathValidation.setStyleSheet(u"QLabel {\n" + self.gridLayout_99 = QGridLayout(self.Frame_TTS_GPTSoVITS_ModelPathLoadS2G) + self.gridLayout_99.setSpacing(12) + self.gridLayout_99.setObjectName(u"gridLayout_99") + self.gridLayout_99.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_GPTSoVITS_ModelPathLoadS2G = QLabel(self.Frame_TTS_GPTSoVITS_ModelPathLoadS2G) + self.Label_TTS_GPTSoVITS_ModelPathLoadS2G.setObjectName(u"Label_TTS_GPTSoVITS_ModelPathLoadS2G") + sizePolicy5.setHeightForWidth(self.Label_TTS_GPTSoVITS_ModelPathLoadS2G.sizePolicy().hasHeightForWidth()) + self.Label_TTS_GPTSoVITS_ModelPathLoadS2G.setSizePolicy(sizePolicy5) + self.Label_TTS_GPTSoVITS_ModelPathLoadS2G.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -11616,17 +16817,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_58.addWidget(self.Label_Train_VITS_FileListPathValidation, 0, 0, 1, 1) + self.gridLayout_99.addWidget(self.Label_TTS_GPTSoVITS_ModelPathLoadS2G, 0, 0, 1, 1) - self.HorizontalSpacer_Train_VITS_FileListPathValidation = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_TTS_GPTSoVITS_ModelPathLoadS2G = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_58.addItem(self.HorizontalSpacer_Train_VITS_FileListPathValidation, 0, 1, 1, 1) + self.gridLayout_99.addItem(self.HorizontalSpacer_TTS_GPTSoVITS_ModelPathLoadS2G, 0, 1, 1, 1) - self.Button_Train_VITS_FileListPathValidation_Undo = QPushButton(self.Frame_Train_VITS_FileListPathValidation) - self.Button_Train_VITS_FileListPathValidation_Undo.setObjectName(u"Button_Train_VITS_FileListPathValidation_Undo") - self.Button_Train_VITS_FileListPathValidation_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_FileListPathValidation_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_FileListPathValidation_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_TTS_GPTSoVITS_ModelPathLoadS2G_Undo = QPushButton(self.Frame_TTS_GPTSoVITS_ModelPathLoadS2G) + self.Button_TTS_GPTSoVITS_ModelPathLoadS2G_Undo.setObjectName(u"Button_TTS_GPTSoVITS_ModelPathLoadS2G_Undo") + self.Button_TTS_GPTSoVITS_ModelPathLoadS2G_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_GPTSoVITS_ModelPathLoadS2G_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_GPTSoVITS_ModelPathLoadS2G_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -11647,26 +16848,170 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_58.addWidget(self.Button_Train_VITS_FileListPathValidation_Undo, 0, 2, 1, 1) + self.gridLayout_99.addWidget(self.Button_TTS_GPTSoVITS_ModelPathLoadS2G_Undo, 0, 2, 1, 1) - self.LineEdit_Train_VITS_FileListPathValidation = LineEditBase(self.Frame_Train_VITS_FileListPathValidation) - self.LineEdit_Train_VITS_FileListPathValidation.setObjectName(u"LineEdit_Train_VITS_FileListPathValidation") - self.LineEdit_Train_VITS_FileListPathValidation.setMinimumSize(QSize(0, 27)) + self.LineEdit_TTS_GPTSoVITS_ModelPathLoadS2G = LineEditBase(self.Frame_TTS_GPTSoVITS_ModelPathLoadS2G) + self.LineEdit_TTS_GPTSoVITS_ModelPathLoadS2G.setObjectName(u"LineEdit_TTS_GPTSoVITS_ModelPathLoadS2G") + self.LineEdit_TTS_GPTSoVITS_ModelPathLoadS2G.setMinimumSize(QSize(0, 27)) - self.gridLayout_58.addWidget(self.LineEdit_Train_VITS_FileListPathValidation, 1, 0, 1, 3) + self.gridLayout_99.addWidget(self.LineEdit_TTS_GPTSoVITS_ModelPathLoadS2G, 1, 0, 1, 3) - self.verticalLayout_18.addWidget(self.Frame_Train_VITS_FileListPathValidation) + self.verticalLayout_71.addWidget(self.Frame_TTS_GPTSoVITS_ModelPathLoadS2G) + self.Frame_TTS_GPTSoVITS_ModelDirLoadBert = QFrame(self.Frame_TTS_GPTSoVITS_InputParams_BasicSettings) + self.Frame_TTS_GPTSoVITS_ModelDirLoadBert.setObjectName(u"Frame_TTS_GPTSoVITS_ModelDirLoadBert") + self.Frame_TTS_GPTSoVITS_ModelDirLoadBert.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_GPTSoVITS_ModelDirLoadBert.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_100 = QGridLayout(self.Frame_TTS_GPTSoVITS_ModelDirLoadBert) + self.gridLayout_100.setSpacing(12) + self.gridLayout_100.setObjectName(u"gridLayout_100") + self.gridLayout_100.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_GPTSoVITS_ModelDirLoadBert = QLabel(self.Frame_TTS_GPTSoVITS_ModelDirLoadBert) + self.Label_TTS_GPTSoVITS_ModelDirLoadBert.setObjectName(u"Label_TTS_GPTSoVITS_ModelDirLoadBert") + sizePolicy5.setHeightForWidth(self.Label_TTS_GPTSoVITS_ModelDirLoadBert.sizePolicy().hasHeightForWidth()) + self.Label_TTS_GPTSoVITS_ModelDirLoadBert.setSizePolicy(sizePolicy5) + self.Label_TTS_GPTSoVITS_ModelDirLoadBert.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") - self.verticalLayout_116.addWidget(self.Frame_Train_VITS_InputParams_BasicSettings) + self.gridLayout_100.addWidget(self.Label_TTS_GPTSoVITS_ModelDirLoadBert, 0, 0, 1, 1) + self.HorizontalSpacer_TTS_GPTSoVITS_ModelDirLoadBert = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.verticalLayout_28.addWidget(self.GroupBox_Train_VITS_InputParams) + self.gridLayout_100.addItem(self.HorizontalSpacer_TTS_GPTSoVITS_ModelDirLoadBert, 0, 1, 1, 1) - self.GroupBox_Train_VITS_VITSParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Train_VITS) - self.GroupBox_Train_VITS_VITSParams.setObjectName(u"GroupBox_Train_VITS_VITSParams") - self.GroupBox_Train_VITS_VITSParams.setStyleSheet(u"QGroupBox {\n" + self.Button_TTS_GPTSoVITS_ModelDirLoadBert_Undo = QPushButton(self.Frame_TTS_GPTSoVITS_ModelDirLoadBert) + self.Button_TTS_GPTSoVITS_ModelDirLoadBert_Undo.setObjectName(u"Button_TTS_GPTSoVITS_ModelDirLoadBert_Undo") + self.Button_TTS_GPTSoVITS_ModelDirLoadBert_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_GPTSoVITS_ModelDirLoadBert_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_GPTSoVITS_ModelDirLoadBert_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_100.addWidget(self.Button_TTS_GPTSoVITS_ModelDirLoadBert_Undo, 0, 2, 1, 1) + + self.LineEdit_TTS_GPTSoVITS_ModelDirLoadBert = LineEditBase(self.Frame_TTS_GPTSoVITS_ModelDirLoadBert) + self.LineEdit_TTS_GPTSoVITS_ModelDirLoadBert.setObjectName(u"LineEdit_TTS_GPTSoVITS_ModelDirLoadBert") + self.LineEdit_TTS_GPTSoVITS_ModelDirLoadBert.setMinimumSize(QSize(0, 27)) + + self.gridLayout_100.addWidget(self.LineEdit_TTS_GPTSoVITS_ModelDirLoadBert, 1, 0, 1, 3) + + + self.verticalLayout_71.addWidget(self.Frame_TTS_GPTSoVITS_ModelDirLoadBert) + + self.Frame_TTS_GPTSoVITS_ModelDirLoadSSL = QFrame(self.Frame_TTS_GPTSoVITS_InputParams_BasicSettings) + self.Frame_TTS_GPTSoVITS_ModelDirLoadSSL.setObjectName(u"Frame_TTS_GPTSoVITS_ModelDirLoadSSL") + self.Frame_TTS_GPTSoVITS_ModelDirLoadSSL.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_GPTSoVITS_ModelDirLoadSSL.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_101 = QGridLayout(self.Frame_TTS_GPTSoVITS_ModelDirLoadSSL) + self.gridLayout_101.setSpacing(12) + self.gridLayout_101.setObjectName(u"gridLayout_101") + self.gridLayout_101.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_GPTSoVITS_ModelDirLoadSSL = QLabel(self.Frame_TTS_GPTSoVITS_ModelDirLoadSSL) + self.Label_TTS_GPTSoVITS_ModelDirLoadSSL.setObjectName(u"Label_TTS_GPTSoVITS_ModelDirLoadSSL") + sizePolicy5.setHeightForWidth(self.Label_TTS_GPTSoVITS_ModelDirLoadSSL.sizePolicy().hasHeightForWidth()) + self.Label_TTS_GPTSoVITS_ModelDirLoadSSL.setSizePolicy(sizePolicy5) + self.Label_TTS_GPTSoVITS_ModelDirLoadSSL.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_101.addWidget(self.Label_TTS_GPTSoVITS_ModelDirLoadSSL, 0, 0, 1, 1) + + self.HorizontalSpacer_TTS_GPTSoVITS_ModelDirLoadSSL = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_101.addItem(self.HorizontalSpacer_TTS_GPTSoVITS_ModelDirLoadSSL, 0, 1, 1, 1) + + self.Button_TTS_GPTSoVITS_ModelDirLoadSSL_Undo = QPushButton(self.Frame_TTS_GPTSoVITS_ModelDirLoadSSL) + self.Button_TTS_GPTSoVITS_ModelDirLoadSSL_Undo.setObjectName(u"Button_TTS_GPTSoVITS_ModelDirLoadSSL_Undo") + self.Button_TTS_GPTSoVITS_ModelDirLoadSSL_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_GPTSoVITS_ModelDirLoadSSL_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_GPTSoVITS_ModelDirLoadSSL_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_101.addWidget(self.Button_TTS_GPTSoVITS_ModelDirLoadSSL_Undo, 0, 2, 1, 1) + + self.LineEdit_TTS_GPTSoVITS_ModelDirLoadSSL = LineEditBase(self.Frame_TTS_GPTSoVITS_ModelDirLoadSSL) + self.LineEdit_TTS_GPTSoVITS_ModelDirLoadSSL.setObjectName(u"LineEdit_TTS_GPTSoVITS_ModelDirLoadSSL") + self.LineEdit_TTS_GPTSoVITS_ModelDirLoadSSL.setMinimumSize(QSize(0, 27)) + + self.gridLayout_101.addWidget(self.LineEdit_TTS_GPTSoVITS_ModelDirLoadSSL, 1, 0, 1, 3) + + + self.verticalLayout_71.addWidget(self.Frame_TTS_GPTSoVITS_ModelDirLoadSSL) + + + self.verticalLayout_125.addWidget(self.Frame_TTS_GPTSoVITS_InputParams_BasicSettings) + + + self.verticalLayout_66.addWidget(self.GroupBox_TTS_GPTSoVITS_InputParams) + + self.GroupBox_TTS_GPTSoVITS_GPTSoVITSParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_TTS_GPTSoVITS) + self.GroupBox_TTS_GPTSoVITS_GPTSoVITSParams.setObjectName(u"GroupBox_TTS_GPTSoVITS_GPTSoVITSParams") + self.GroupBox_TTS_GPTSoVITS_GPTSoVITSParams.setStyleSheet(u"QGroupBox {\n" " font-size: 15px;\n" " margin-top: 1.5ex;\n" " color: rgb(255, 255, 255);\n" @@ -11682,20 +17027,20 @@ def setupUi(self, MainWindow): " subcontrol-position: top left;\n" " padding: 3px;\n" "}") - self.verticalLayout_114 = QVBoxLayout(self.GroupBox_Train_VITS_VITSParams) - self.verticalLayout_114.setSpacing(0) - self.verticalLayout_114.setObjectName(u"verticalLayout_114") - self.verticalLayout_114.setContentsMargins(0, 12, 0, 12) - self.Frame_Train_VITS_VITSParams_BasicSettings = QFrame(self.GroupBox_Train_VITS_VITSParams) - self.Frame_Train_VITS_VITSParams_BasicSettings.setObjectName(u"Frame_Train_VITS_VITSParams_BasicSettings") - self.verticalLayout_17 = QVBoxLayout(self.Frame_Train_VITS_VITSParams_BasicSettings) - self.verticalLayout_17.setSpacing(0) - self.verticalLayout_17.setObjectName(u"verticalLayout_17") - self.verticalLayout_17.setContentsMargins(0, 0, 0, 0) - self.Frame_Train_VITS_Epochs = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) - self.Frame_Train_VITS_Epochs.setObjectName(u"Frame_Train_VITS_Epochs") - self.Frame_Train_VITS_Epochs.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_Epochs.setStyleSheet(u"QFrame {\n" + self.verticalLayout_126 = QVBoxLayout(self.GroupBox_TTS_GPTSoVITS_GPTSoVITSParams) + self.verticalLayout_126.setSpacing(0) + self.verticalLayout_126.setObjectName(u"verticalLayout_126") + self.verticalLayout_126.setContentsMargins(0, 12, 0, 12) + self.Frame_TTS_GPTSoVITS_GPTSoVITSParams_BasicSettings = QFrame(self.GroupBox_TTS_GPTSoVITS_GPTSoVITSParams) + self.Frame_TTS_GPTSoVITS_GPTSoVITSParams_BasicSettings.setObjectName(u"Frame_TTS_GPTSoVITS_GPTSoVITSParams_BasicSettings") + self.verticalLayout_70 = QVBoxLayout(self.Frame_TTS_GPTSoVITS_GPTSoVITSParams_BasicSettings) + self.verticalLayout_70.setSpacing(0) + self.verticalLayout_70.setObjectName(u"verticalLayout_70") + self.verticalLayout_70.setContentsMargins(0, 0, 0, 0) + self.Frame_TTS_GPTSoVITS_FP16Run = QFrame(self.Frame_TTS_GPTSoVITS_GPTSoVITSParams_BasicSettings) + self.Frame_TTS_GPTSoVITS_FP16Run.setObjectName(u"Frame_TTS_GPTSoVITS_FP16Run") + self.Frame_TTS_GPTSoVITS_FP16Run.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_GPTSoVITS_FP16Run.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -11704,15 +17049,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_59 = QGridLayout(self.Frame_Train_VITS_Epochs) - self.gridLayout_59.setSpacing(12) - self.gridLayout_59.setObjectName(u"gridLayout_59") - self.gridLayout_59.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_Epochs = QLabel(self.Frame_Train_VITS_Epochs) - self.Label_Train_VITS_Epochs.setObjectName(u"Label_Train_VITS_Epochs") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_Epochs.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_Epochs.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_Epochs.setStyleSheet(u"QLabel {\n" + self.gridLayout_96 = QGridLayout(self.Frame_TTS_GPTSoVITS_FP16Run) + self.gridLayout_96.setSpacing(12) + self.gridLayout_96.setObjectName(u"gridLayout_96") + self.gridLayout_96.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_GPTSoVITS_FP16Run = QLabel(self.Frame_TTS_GPTSoVITS_FP16Run) + self.Label_TTS_GPTSoVITS_FP16Run.setObjectName(u"Label_TTS_GPTSoVITS_FP16Run") + sizePolicy5.setHeightForWidth(self.Label_TTS_GPTSoVITS_FP16Run.sizePolicy().hasHeightForWidth()) + self.Label_TTS_GPTSoVITS_FP16Run.setSizePolicy(sizePolicy5) + self.Label_TTS_GPTSoVITS_FP16Run.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -11722,17 +17067,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_59.addWidget(self.Label_Train_VITS_Epochs, 0, 0, 1, 1) - - self.HorizontalSpacer_Train_VITS_Epochs = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.gridLayout_96.addWidget(self.Label_TTS_GPTSoVITS_FP16Run, 0, 0, 1, 1) - self.gridLayout_59.addItem(self.HorizontalSpacer_Train_VITS_Epochs, 0, 1, 1, 1) + self.HorizontalSpacer_TTS_GPTSoVITS_FP16Run = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.Button_Train_VITS_Epochs_Undo = QPushButton(self.Frame_Train_VITS_Epochs) - self.Button_Train_VITS_Epochs_Undo.setObjectName(u"Button_Train_VITS_Epochs_Undo") - self.Button_Train_VITS_Epochs_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_Epochs_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_Epochs_Undo.setStyleSheet(u"QPushButton {\n" + self.gridLayout_96.addItem(self.HorizontalSpacer_TTS_GPTSoVITS_FP16Run, 0, 1, 1, 1) + + self.Button_TTS_GPTSoVITS_FP16Run_Undo = QPushButton(self.Frame_TTS_GPTSoVITS_FP16Run) + self.Button_TTS_GPTSoVITS_FP16Run_Undo.setObjectName(u"Button_TTS_GPTSoVITS_FP16Run_Undo") + self.Button_TTS_GPTSoVITS_FP16Run_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_GPTSoVITS_FP16Run_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_GPTSoVITS_FP16Run_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -11753,53 +17098,42 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_59.addWidget(self.Button_Train_VITS_Epochs_Undo, 0, 2, 1, 1) + self.gridLayout_96.addWidget(self.Button_TTS_GPTSoVITS_FP16Run_Undo, 0, 2, 1, 1) - self.SpinBox_Train_VITS_Epochs = QSpinBox(self.Frame_Train_VITS_Epochs) - self.SpinBox_Train_VITS_Epochs.setObjectName(u"SpinBox_Train_VITS_Epochs") - self.SpinBox_Train_VITS_Epochs.setMinimumSize(QSize(0, 27)) - self.SpinBox_Train_VITS_Epochs.setStyleSheet(u"QSpinBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" + self.CheckBox_TTS_GPTSoVITS_FP16Run = QCheckBox(self.Frame_TTS_GPTSoVITS_FP16Run) + self.CheckBox_TTS_GPTSoVITS_FP16Run.setObjectName(u"CheckBox_TTS_GPTSoVITS_FP16Run") + self.CheckBox_TTS_GPTSoVITS_FP16Run.setMinimumSize(QSize(0, 27)) + self.CheckBox_TTS_GPTSoVITS_FP16Run.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" spacing: 12.3px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" +" padding: 0px;\n" +" border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QSpinBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" "}\n" "\n" -"QSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" +"QCheckBox::indicator {\n" +" width: 24px;\n" +" height: 24px;\n" +" background-color: transparent;\n" +" padding: 1.2px;\n" " border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" "}\n" -"QSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" "}\n" -"\n" -"QSpinBox::down-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" "}\n" -"QSpinBox::down-arrow {\n" -" border-image: url(:/(Double)" - "SpinBox_Icon/Sources/DownArrow.png);\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" "}\n" "\n" "\n" @@ -11809,122 +17143,219 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - self.SpinBox_Train_VITS_Epochs.setMinimum(-999999) - self.SpinBox_Train_VITS_Epochs.setMaximum(999999) - self.gridLayout_59.addWidget(self.SpinBox_Train_VITS_Epochs, 1, 0, 1, 3) + self.gridLayout_96.addWidget(self.CheckBox_TTS_GPTSoVITS_FP16Run, 1, 0, 1, 3) - self.verticalLayout_17.addWidget(self.Frame_Train_VITS_Epochs) + self.verticalLayout_70.addWidget(self.Frame_TTS_GPTSoVITS_FP16Run) - self.Frame_Train_VITS_BatchSize = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) - self.Frame_Train_VITS_BatchSize.setObjectName(u"Frame_Train_VITS_BatchSize") - self.Frame_Train_VITS_BatchSize.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_BatchSize.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" + + self.verticalLayout_126.addWidget(self.Frame_TTS_GPTSoVITS_GPTSoVITSParams_BasicSettings) + + + self.verticalLayout_66.addWidget(self.GroupBox_TTS_GPTSoVITS_GPTSoVITSParams) + + self.VerticalSpacer_TTS_GPTSoVITS = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_66.addItem(self.VerticalSpacer_TTS_GPTSoVITS) + + self.ScrollArea_Middle_TTS_GPTSoVITS.setWidget(self.ScrollArea_Middle_WidgetContents_TTS_GPTSoVITS) + + self.gridLayout_109.addWidget(self.ScrollArea_Middle_TTS_GPTSoVITS, 0, 1, 1, 1) + + self.Widget_Right_TTS_GPTSoVITS = QWidget(self.Subpage_TTS_GPTSoVITS) + self.Widget_Right_TTS_GPTSoVITS.setObjectName(u"Widget_Right_TTS_GPTSoVITS") + self.Widget_Right_TTS_GPTSoVITS.setStyleSheet(u"QWidget {\n" +" background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" +"QWidget:hover {\n" "}") - self.gridLayout_60 = QGridLayout(self.Frame_Train_VITS_BatchSize) - self.gridLayout_60.setSpacing(12) - self.gridLayout_60.setObjectName(u"gridLayout_60") - self.gridLayout_60.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_BatchSize = QLabel(self.Frame_Train_VITS_BatchSize) - self.Label_Train_VITS_BatchSize.setObjectName(u"Label_Train_VITS_BatchSize") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_BatchSize.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_BatchSize.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_BatchSize.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" + self.gridLayout_106 = QGridLayout(self.Widget_Right_TTS_GPTSoVITS) + self.gridLayout_106.setSpacing(12) + self.gridLayout_106.setObjectName(u"gridLayout_106") + self.gridLayout_106.setContentsMargins(12, 12, 12, 12) + self.TextBrowser_Params_TTS_GPTSoVITS = QTextBrowser(self.Widget_Right_TTS_GPTSoVITS) + self.TextBrowser_Params_TTS_GPTSoVITS.setObjectName(u"TextBrowser_Params_TTS_GPTSoVITS") + sizePolicy1.setHeightForWidth(self.TextBrowser_Params_TTS_GPTSoVITS.sizePolicy().hasHeightForWidth()) + self.TextBrowser_Params_TTS_GPTSoVITS.setSizePolicy(sizePolicy1) + self.TextBrowser_Params_TTS_GPTSoVITS.setStyleSheet(u"QTextBrowser {\n" +" background-color: rgba(33, 33, 33, 99);\n" +" /*padding-top: 1.5px;*/\n" +" /*padding-bottom: 1.5px;*/\n" +" padding-left: 15px;\n" +" padding-right: 6px;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color:transparent;\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" " background-color: transparent;\n" -" padding: 0px;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" -"}") - - self.gridLayout_60.addWidget(self.Label_Train_VITS_BatchSize, 0, 0, 1, 1) - - self.HorizontalSpacer_Train_VITS_BatchSize = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_60.addItem(self.HorizontalSpacer_Train_VITS_BatchSize, 0, 1, 1, 1) - - self.Button_Train_VITS_BatchSize_Undo = QPushButton(self.Frame_Train_VITS_BatchSize) - self.Button_Train_VITS_BatchSize_Undo.setObjectName(u"Button_Train_VITS_BatchSize_Undo") - self.Button_Train_VITS_BatchSize_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_BatchSize_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_BatchSize_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" +"}\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" " background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" bord" + "er-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" +" border-color: transparent;\n" +" margin: 0px;\n" "}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" "}\n" "\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px" + ";\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" "}") - self.gridLayout_60.addWidget(self.Button_Train_VITS_BatchSize_Undo, 0, 2, 1, 1) + self.gridLayout_106.addWidget(self.TextBrowser_Params_TTS_GPTSoVITS, 0, 0, 1, 1) - self.SpinBox_Train_VITS_BatchSize = QSpinBox(self.Frame_Train_VITS_BatchSize) - self.SpinBox_Train_VITS_BatchSize.setObjectName(u"SpinBox_Train_VITS_BatchSize") - self.SpinBox_Train_VITS_BatchSize.setMinimumSize(QSize(0, 27)) - self.SpinBox_Train_VITS_BatchSize.setStyleSheet(u"QSpinBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" + + self.gridLayout_109.addWidget(self.Widget_Right_TTS_GPTSoVITS, 0, 2, 1, 1) + + self.ProgressBar_TTS_GPTSoVITS = QProgressBar(self.Subpage_TTS_GPTSoVITS) + self.ProgressBar_TTS_GPTSoVITS.setObjectName(u"ProgressBar_TTS_GPTSoVITS") + self.ProgressBar_TTS_GPTSoVITS.setMinimumSize(QSize(0, 30)) + self.ProgressBar_TTS_GPTSoVITS.setStyleSheet(u"QProgressBar {\n" +" text-align: center;\n" " color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" +" background-color: rgb(60, 60, 60);\n" +" padding: 0px;\n" +" border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QSpinBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" +"QProgressBar:chunk {\n" " border-width: 0px;\n" -"}\n" -"QSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" -"}\n" -"\n" -"QSpinBox::down-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" +"}") + self.ProgressBar_TTS_GPTSoVITS.setValue(0) + self.ProgressBar_TTS_GPTSoVITS.setTextVisible(False) + self.horizontalLayout_56 = QHBoxLayout(self.ProgressBar_TTS_GPTSoVITS) + self.horizontalLayout_56.setSpacing(0) + self.horizontalLayout_56.setObjectName(u"horizontalLayout_56") + self.horizontalLayout_56.setContentsMargins(0, 0, 0, 0) + self.StackedWidget_TTS_GPTSoVITS = QStackedWidget(self.ProgressBar_TTS_GPTSoVITS) + self.StackedWidget_TTS_GPTSoVITS.setObjectName(u"StackedWidget_TTS_GPTSoVITS") + self.StackedWidget_TTS_GPTSoVITS.setMaximumSize(QSize(16777215, 30)) + self.StackedWidget_TTS_GPTSoVITS.setStyleSheet(u"QWidget {\n" +" background-color: rgba(90, 90, 90, 45);\n" +"}\n" +"QWidget:hover {\n" +" background-color: rgba(120, 120, 120, 60);\n" +"}") + self.Page_TTS_GPTSoVITS_Execute = QWidget() + self.Page_TTS_GPTSoVITS_Execute.setObjectName(u"Page_TTS_GPTSoVITS_Execute") + self.verticalLayout_136 = QVBoxLayout(self.Page_TTS_GPTSoVITS_Execute) + self.verticalLayout_136.setSpacing(0) + self.verticalLayout_136.setObjectName(u"verticalLayout_136") + self.verticalLayout_136.setContentsMargins(0, 0, 0, 0) + self.Button_TTS_GPTSoVITS_Execute = QPushButton(self.Page_TTS_GPTSoVITS_Execute) + self.Button_TTS_GPTSoVITS_Execute.setObjectName(u"Button_TTS_GPTSoVITS_Execute") + sizePolicy3.setHeightForWidth(self.Button_TTS_GPTSoVITS_Execute.sizePolicy().hasHeightForWidth()) + self.Button_TTS_GPTSoVITS_Execute.setSizePolicy(sizePolicy3) + self.Button_TTS_GPTSoVITS_Execute.setMinimumSize(QSize(0, 30)) + self.Button_TTS_GPTSoVITS_Execute.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" " border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" "}\n" -"QSpinBox::down-arrow {\n" -" border-image: url(:/(Double)" - "SpinBox_Icon/Sources/DownArrow.png);\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" "}\n" "\n" "\n" @@ -11934,65 +17365,34 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-style: solid;\n" "}") - self.SpinBox_Train_VITS_BatchSize.setMinimum(-999999) - self.SpinBox_Train_VITS_BatchSize.setMaximum(999999) - self.gridLayout_60.addWidget(self.SpinBox_Train_VITS_BatchSize, 1, 0, 1, 3) - - - self.verticalLayout_17.addWidget(self.Frame_Train_VITS_BatchSize) + self.verticalLayout_136.addWidget(self.Button_TTS_GPTSoVITS_Execute) - self.Frame_Train_VITS_UsePretrainedModels = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) - self.Frame_Train_VITS_UsePretrainedModels.setObjectName(u"Frame_Train_VITS_UsePretrainedModels") - self.Frame_Train_VITS_UsePretrainedModels.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_UsePretrainedModels.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_61 = QGridLayout(self.Frame_Train_VITS_UsePretrainedModels) - self.gridLayout_61.setSpacing(12) - self.gridLayout_61.setObjectName(u"gridLayout_61") - self.gridLayout_61.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_UsePretrainedModels = QLabel(self.Frame_Train_VITS_UsePretrainedModels) - self.Label_Train_VITS_UsePretrainedModels.setObjectName(u"Label_Train_VITS_UsePretrainedModels") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_UsePretrainedModels.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_UsePretrainedModels.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_UsePretrainedModels.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" -" background-color: transparent;\n" + self.StackedWidget_TTS_GPTSoVITS.addWidget(self.Page_TTS_GPTSoVITS_Execute) + self.Page_TTS_GPTSoVITS_Terminate = QWidget() + self.Page_TTS_GPTSoVITS_Terminate.setObjectName(u"Page_TTS_GPTSoVITS_Terminate") + self.verticalLayout_138 = QVBoxLayout(self.Page_TTS_GPTSoVITS_Terminate) + self.verticalLayout_138.setSpacing(0) + self.verticalLayout_138.setObjectName(u"verticalLayout_138") + self.verticalLayout_138.setContentsMargins(0, 0, 0, 0) + self.Button_TTS_GPTSoVITS_Terminate = QPushButton(self.Page_TTS_GPTSoVITS_Terminate) + self.Button_TTS_GPTSoVITS_Terminate.setObjectName(u"Button_TTS_GPTSoVITS_Terminate") + sizePolicy3.setHeightForWidth(self.Button_TTS_GPTSoVITS_Terminate.sizePolicy().hasHeightForWidth()) + self.Button_TTS_GPTSoVITS_Terminate.setSizePolicy(sizePolicy3) + self.Button_TTS_GPTSoVITS_Terminate.setMinimumSize(QSize(0, 30)) + self.Button_TTS_GPTSoVITS_Terminate.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" " padding: 0px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}") - - self.gridLayout_61.addWidget(self.Label_Train_VITS_UsePretrainedModels, 0, 0, 1, 1) - - self.HorizontalSpacer_Train_VITS_UsePretrainedModels = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_61.addItem(self.HorizontalSpacer_Train_VITS_UsePretrainedModels, 0, 1, 1, 1) - - self.Button_Train_VITS_UsePretrainedModels_Undo = QPushButton(self.Frame_Train_VITS_UsePretrainedModels) - self.Button_Train_VITS_UsePretrainedModels_Undo.setObjectName(u"Button_Train_VITS_UsePretrainedModels_Undo") - self.Button_Train_VITS_UsePretrainedModels_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_UsePretrainedModels_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_UsePretrainedModels_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" -" background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" +" border-color: rgb(90, 90, 90);\n" "}\n" "QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" "}\n" "\n" "\n" @@ -12003,205 +17403,279 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_61.addWidget(self.Button_Train_VITS_UsePretrainedModels_Undo, 0, 2, 1, 1) + self.verticalLayout_138.addWidget(self.Button_TTS_GPTSoVITS_Terminate) - self.CheckBox_Train_VITS_UsePretrainedModels = QCheckBox(self.Frame_Train_VITS_UsePretrainedModels) - self.CheckBox_Train_VITS_UsePretrainedModels.setObjectName(u"CheckBox_Train_VITS_UsePretrainedModels") - self.CheckBox_Train_VITS_UsePretrainedModels.setMinimumSize(QSize(0, 27)) - self.CheckBox_Train_VITS_UsePretrainedModels.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" spacing: 12.3px;\n" -" color: rgba(255, 255, 255, 210);\n" + self.StackedWidget_TTS_GPTSoVITS.addWidget(self.Page_TTS_GPTSoVITS_Terminate) + + self.horizontalLayout_56.addWidget(self.StackedWidget_TTS_GPTSoVITS) + + + self.gridLayout_109.addWidget(self.ProgressBar_TTS_GPTSoVITS, 1, 0, 1, 3) + + self.gridLayout_109.setColumnStretch(0, 3) + self.gridLayout_109.setColumnStretch(1, 10) + self.gridLayout_109.setColumnStretch(2, 7) + self.StackedWidget_Pages_TTS.addWidget(self.Subpage_TTS_GPTSoVITS) + self.Subpage_TTS_VITS = QWidget() + self.Subpage_TTS_VITS.setObjectName(u"Subpage_TTS_VITS") + self.gridLayout_20 = QGridLayout(self.Subpage_TTS_VITS) + self.gridLayout_20.setSpacing(12) + self.gridLayout_20.setObjectName(u"gridLayout_20") + self.gridLayout_20.setContentsMargins(0, 0, 0, 0) + self.Widget_Left_TTS_VITS = QWidget(self.Subpage_TTS_VITS) + self.Widget_Left_TTS_VITS.setObjectName(u"Widget_Left_TTS_VITS") + self.Widget_Left_TTS_VITS.setMinimumSize(QSize(150, 0)) + self.Widget_Left_TTS_VITS.setStyleSheet(u"QWidget {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QWidget:hover {\n" +"}") + self.verticalLayout_11 = QVBoxLayout(self.Widget_Left_TTS_VITS) + self.verticalLayout_11.setSpacing(12) + self.verticalLayout_11.setObjectName(u"verticalLayout_11") + self.verticalLayout_11.setContentsMargins(12, 12, 12, 12) + self.TreeWidget_Catalogue_TTS_VITS = QTreeWidget(self.Widget_Left_TTS_VITS) + __qtreewidgetitem8 = QTreeWidgetItem(self.TreeWidget_Catalogue_TTS_VITS) + QTreeWidgetItem(__qtreewidgetitem8) + self.TreeWidget_Catalogue_TTS_VITS.setObjectName(u"TreeWidget_Catalogue_TTS_VITS") + self.TreeWidget_Catalogue_TTS_VITS.setStyleSheet(u"QTreeView {\n" +" /*font-size: 12px;\n" +" text-align: center;*/\n" " background-color: transparent;\n" -" padding: 0px;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" +"\n" +"QTreeView::item {\n" +" background-color: transparent;\n" +" padding: 2.4px;\n" +"}\n" +"QTreeView::item:hover {\n" +" background-color: rgba(66, 66, 66, 198);\n" +"}\n" +"QTreeView::item:selected {\n" +" background-color: ;\n" "}\n" "\n" -"QCheckBox::indicator {\n" -" width: 24px;\n" -" height: 24px;\n" +"QTreeView::branch {\n" " background-color: transparent;\n" -" padding: 1.2px;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QTreeView::branch:open:has-children {\n" +" image: ;\n" +"}\n" +"QTreeView::branch:closed:has-children {\n" +" image: ;\n" +"}\n" +"QTreeWidget::branch:adjoins-item {\n" +" background-color: ;\n" +"}\n" +"\n" +"\n" +"QScrollBar {\n" +" background-color: rgba(45, 45, 45, 135);\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" "}\n" -"QCheckBox::indicator:hover {\n" -" background-color: rgba(255, 255, 255, 21);\n" +"QScrollBar:hover {\n" +" background-color: r" + "gba(33, 33, 33, 99);\n" "}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" "}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" "}\n" "\n" +"QScrollBar::sub-line, QScrollBar::add-line {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" +"QScrollBar::sub-page, QScrollBar::add-page {\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle {\n" +" background-color: rgba(90, 90, 90, 90);\n" " border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" +"}\n" +"QScrollBar::handle:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" "}") - self.gridLayout_61.addWidget(self.CheckBox_Train_VITS_UsePretrainedModels, 1, 0, 1, 3) + self.verticalLayout_11.addWidget(self.TreeWidget_Catalogue_TTS_VITS) - self.verticalLayout_17.addWidget(self.Frame_Train_VITS_UsePretrainedModels) + self.gridLayout_20.addWidget(self.Widget_Left_TTS_VITS, 0, 0, 1, 1) - self.Frame_Train_VITS_ModelPathPretrainedG = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) - self.Frame_Train_VITS_ModelPathPretrainedG.setObjectName(u"Frame_Train_VITS_ModelPathPretrainedG") - self.Frame_Train_VITS_ModelPathPretrainedG.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_ModelPathPretrainedG.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" + self.ScrollArea_Middle_TTS_VITS = QScrollArea(self.Subpage_TTS_VITS) + self.ScrollArea_Middle_TTS_VITS.setObjectName(u"ScrollArea_Middle_TTS_VITS") + self.ScrollArea_Middle_TTS_VITS.setMinimumSize(QSize(600, 0)) + self.ScrollArea_Middle_TTS_VITS.setStyleSheet(u"QScrollArea {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollArea:hover {\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" " background-color: transparent;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_65 = QGridLayout(self.Frame_Train_VITS_ModelPathPretrainedG) - self.gridLayout_65.setSpacing(12) - self.gridLayout_65.setObjectName(u"gridLayout_65") - self.gridLayout_65.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_ModelPathPretrainedG = QLabel(self.Frame_Train_VITS_ModelPathPretrainedG) - self.Label_Train_VITS_ModelPathPretrainedG.setObjectName(u"Label_Train_VITS_ModelPathPretrainedG") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_ModelPathPretrainedG.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_ModelPathPretrainedG.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_ModelPathPretrainedG.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" " background-color: transparent;\n" -" padding: 0px;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" " + "height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: rgb(90, 90, 90);\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" -"}") - - self.gridLayout_65.addWidget(self.Label_Train_VITS_ModelPathPretrainedG, 0, 0, 1, 1) - - self.HorizontalSpacer_Train_VITS_ModelPathPretrainedG = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_65.addItem(self.HorizontalSpacer_Train_VITS_ModelPathPretrainedG, 0, 1, 1, 1) - - self.Button_Train_VITS_ModelPathPretrainedG_Undo = QPushButton(self.Frame_Train_VITS_ModelPathPretrainedG) - self.Button_Train_VITS_ModelPathPretrainedG_Undo.setObjectName(u"Button_Train_VITS_ModelPathPretrainedG_Undo") - self.Button_Train_VITS_ModelPathPretrainedG_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_ModelPathPretrainedG_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_ModelPathPretrainedG_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" -" background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" +" border-color: transparent;\n" +" margin: 0px;\n" "}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" "}\n" "\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" -"}") - - self.gridLayout_65.addWidget(self.Button_Train_VITS_ModelPathPretrainedG_Undo, 0, 2, 1, 1) - - self.LineEdit_Train_VITS_ModelPathPretrainedG = LineEditBase(self.Frame_Train_VITS_ModelPathPretrainedG) - self.LineEdit_Train_VITS_ModelPathPretrainedG.setObjectName(u"LineEdit_Train_VITS_ModelPathPretrainedG") - self.LineEdit_Train_VITS_ModelPathPretrainedG.setMinimumSize(QSize(0, 27)) - - self.gridLayout_65.addWidget(self.LineEdit_Train_VITS_ModelPathPretrainedG, 1, 0, 1, 3) - - - self.verticalLayout_17.addWidget(self.Frame_Train_VITS_ModelPathPretrainedG) - - self.Frame_Train_VITS_ModelPathPretrainedD = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) - self.Frame_Train_VITS_ModelPathPretrainedD.setObjectName(u"Frame_Train_VITS_ModelPathPretrainedD") - self.Frame_Train_VITS_ModelPathPretrainedD.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_ModelPathPretrainedD.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" " background-color: transparent;\n" -" border-width: 0px;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" borde" + "r-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_66 = QGridLayout(self.Frame_Train_VITS_ModelPathPretrainedD) - self.gridLayout_66.setSpacing(12) - self.gridLayout_66.setObjectName(u"gridLayout_66") - self.gridLayout_66.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_ModelPathPretrainedD = QLabel(self.Frame_Train_VITS_ModelPathPretrainedD) - self.Label_Train_VITS_ModelPathPretrainedD.setObjectName(u"Label_Train_VITS_ModelPathPretrainedD") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_ModelPathPretrainedD.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_ModelPathPretrainedD.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_ModelPathPretrainedD.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" +"\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" " background-color: transparent;\n" -" padding: 0px;\n" +"}\n" +"\n" +"QScrollBar::handle:horizontal {\n" +" background-color: rgb(90, 90, 90);\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" "}") - - self.gridLayout_66.addWidget(self.Label_Train_VITS_ModelPathPretrainedD, 0, 0, 1, 1) - - self.HorizontalSpacer_Train_VITS_ModelPathPretrainedD = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_66.addItem(self.HorizontalSpacer_Train_VITS_ModelPathPretrainedD, 0, 1, 1, 1) - - self.Button_Train_VITS_ModelPathPretrainedD_Undo = QPushButton(self.Frame_Train_VITS_ModelPathPretrainedD) - self.Button_Train_VITS_ModelPathPretrainedD_Undo.setObjectName(u"Button_Train_VITS_ModelPathPretrainedD_Undo") - self.Button_Train_VITS_ModelPathPretrainedD_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_ModelPathPretrainedD_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_ModelPathPretrainedD_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" + self.ScrollArea_Middle_TTS_VITS.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) + self.ScrollArea_Middle_TTS_VITS.setWidgetResizable(True) + self.ScrollArea_Middle_WidgetContents_TTS_VITS = QWidget() + self.ScrollArea_Middle_WidgetContents_TTS_VITS.setObjectName(u"ScrollArea_Middle_WidgetContents_TTS_VITS") + self.ScrollArea_Middle_WidgetContents_TTS_VITS.setGeometry(QRect(0, 0, 591, 1261)) + self.verticalLayout_19 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_TTS_VITS) + self.verticalLayout_19.setSpacing(12) + self.verticalLayout_19.setObjectName(u"verticalLayout_19") + self.verticalLayout_19.setContentsMargins(12, 12, 12, 12) + self.GroupBox_TTS_VITS_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_TTS_VITS) + self.GroupBox_TTS_VITS_InputParams.setObjectName(u"GroupBox_TTS_VITS_InputParams") + self.GroupBox_TTS_VITS_InputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +" border-width: 1px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +" border-color: transparent;\n" "}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" "}") - - self.gridLayout_66.addWidget(self.Button_Train_VITS_ModelPathPretrainedD_Undo, 0, 2, 1, 1) - - self.LineEdit_Train_VITS_ModelPathPretrainedD = LineEditBase(self.Frame_Train_VITS_ModelPathPretrainedD) - self.LineEdit_Train_VITS_ModelPathPretrainedD.setObjectName(u"LineEdit_Train_VITS_ModelPathPretrainedD") - self.LineEdit_Train_VITS_ModelPathPretrainedD.setMinimumSize(QSize(0, 27)) - - self.gridLayout_66.addWidget(self.LineEdit_Train_VITS_ModelPathPretrainedD, 1, 0, 1, 3) - - - self.verticalLayout_17.addWidget(self.Frame_Train_VITS_ModelPathPretrainedD) - - self.Frame_Train_VITS_KeepOriginalSpeakers = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) - self.Frame_Train_VITS_KeepOriginalSpeakers.setObjectName(u"Frame_Train_VITS_KeepOriginalSpeakers") - self.Frame_Train_VITS_KeepOriginalSpeakers.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_KeepOriginalSpeakers.setStyleSheet(u"QFrame {\n" + self.verticalLayout_120 = QVBoxLayout(self.GroupBox_TTS_VITS_InputParams) + self.verticalLayout_120.setSpacing(0) + self.verticalLayout_120.setObjectName(u"verticalLayout_120") + self.verticalLayout_120.setContentsMargins(0, 12, 0, 12) + self.Frame_TTS_VITS_InputParams_BasicSettings = QFrame(self.GroupBox_TTS_VITS_InputParams) + self.Frame_TTS_VITS_InputParams_BasicSettings.setObjectName(u"Frame_TTS_VITS_InputParams_BasicSettings") + self.verticalLayout_132 = QVBoxLayout(self.Frame_TTS_VITS_InputParams_BasicSettings) + self.verticalLayout_132.setSpacing(0) + self.verticalLayout_132.setObjectName(u"verticalLayout_132") + self.verticalLayout_132.setContentsMargins(0, 0, 0, 0) + self.Frame_TTS_VITS_ConfigPathLoad = QFrame(self.Frame_TTS_VITS_InputParams_BasicSettings) + self.Frame_TTS_VITS_ConfigPathLoad.setObjectName(u"Frame_TTS_VITS_ConfigPathLoad") + self.Frame_TTS_VITS_ConfigPathLoad.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_VITS_ConfigPathLoad.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -12210,15 +17684,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_67 = QGridLayout(self.Frame_Train_VITS_KeepOriginalSpeakers) - self.gridLayout_67.setSpacing(12) - self.gridLayout_67.setObjectName(u"gridLayout_67") - self.gridLayout_67.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_KeepOriginalSpeakers = QLabel(self.Frame_Train_VITS_KeepOriginalSpeakers) - self.Label_Train_VITS_KeepOriginalSpeakers.setObjectName(u"Label_Train_VITS_KeepOriginalSpeakers") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_KeepOriginalSpeakers.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_KeepOriginalSpeakers.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_KeepOriginalSpeakers.setStyleSheet(u"QLabel {\n" + self.gridLayout_69 = QGridLayout(self.Frame_TTS_VITS_ConfigPathLoad) + self.gridLayout_69.setSpacing(12) + self.gridLayout_69.setObjectName(u"gridLayout_69") + self.gridLayout_69.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_VITS_ConfigPathLoad = QLabel(self.Frame_TTS_VITS_ConfigPathLoad) + self.Label_TTS_VITS_ConfigPathLoad.setObjectName(u"Label_TTS_VITS_ConfigPathLoad") + sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_ConfigPathLoad.sizePolicy().hasHeightForWidth()) + self.Label_TTS_VITS_ConfigPathLoad.setSizePolicy(sizePolicy5) + self.Label_TTS_VITS_ConfigPathLoad.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -12228,73 +17702,27 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_67.addWidget(self.Label_Train_VITS_KeepOriginalSpeakers, 0, 0, 1, 1) - - self.HorizontalSpacer_Train_VITS_KeepOriginalSpeakers = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_67.addItem(self.HorizontalSpacer_Train_VITS_KeepOriginalSpeakers, 0, 1, 1, 1) + self.gridLayout_69.addWidget(self.Label_TTS_VITS_ConfigPathLoad, 0, 0, 1, 1) - self.Button_Train_VITS_KeepOriginalSpeakers_Undo = QPushButton(self.Frame_Train_VITS_KeepOriginalSpeakers) - self.Button_Train_VITS_KeepOriginalSpeakers_Undo.setObjectName(u"Button_Train_VITS_KeepOriginalSpeakers_Undo") - self.Button_Train_VITS_KeepOriginalSpeakers_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_KeepOriginalSpeakers_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_KeepOriginalSpeakers_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" -" background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") + self.HorizontalSpacer_TTS_VITS_ConfigPathLoad = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_67.addWidget(self.Button_Train_VITS_KeepOriginalSpeakers_Undo, 0, 2, 1, 1) + self.gridLayout_69.addItem(self.HorizontalSpacer_TTS_VITS_ConfigPathLoad, 0, 1, 1, 1) - self.CheckBox_Train_VITS_KeepOriginalSpeakers = QCheckBox(self.Frame_Train_VITS_KeepOriginalSpeakers) - self.CheckBox_Train_VITS_KeepOriginalSpeakers.setObjectName(u"CheckBox_Train_VITS_KeepOriginalSpeakers") - self.CheckBox_Train_VITS_KeepOriginalSpeakers.setMinimumSize(QSize(0, 27)) - self.CheckBox_Train_VITS_KeepOriginalSpeakers.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" spacing: 12.3px;\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" -"}\n" -"\n" -"QCheckBox::indicator {\n" -" width: 24px;\n" -" height: 24px;\n" -" background-color: transparent;\n" -" padding: 1.2px;\n" -" border-width: 0px;\n" + self.Button_TTS_VITS_ConfigPathLoad_Undo = QPushButton(self.Frame_TTS_VITS_ConfigPathLoad) + self.Button_TTS_VITS_ConfigPathLoad_Undo.setObjectName(u"Button_TTS_VITS_ConfigPathLoad_Undo") + self.Button_TTS_VITS_ConfigPathLoad_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_VITS_ConfigPathLoad_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_VITS_ConfigPathLoad_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QCheckBox::indicator:hover {\n" -" background-color: rgba(255, 255, 255, 21);\n" -"}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" -"}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" @@ -12305,15 +17733,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_67.addWidget(self.CheckBox_Train_VITS_KeepOriginalSpeakers, 1, 0, 1, 3) + self.gridLayout_69.addWidget(self.Button_TTS_VITS_ConfigPathLoad_Undo, 0, 2, 1, 1) + self.LineEdit_TTS_VITS_ConfigPathLoad = LineEditBase(self.Frame_TTS_VITS_ConfigPathLoad) + self.LineEdit_TTS_VITS_ConfigPathLoad.setObjectName(u"LineEdit_TTS_VITS_ConfigPathLoad") + self.LineEdit_TTS_VITS_ConfigPathLoad.setMinimumSize(QSize(0, 27)) - self.verticalLayout_17.addWidget(self.Frame_Train_VITS_KeepOriginalSpeakers) + self.gridLayout_69.addWidget(self.LineEdit_TTS_VITS_ConfigPathLoad, 1, 0, 1, 3) - self.Frame_Train_VITS_ConfigPathLoad = QFrame(self.Frame_Train_VITS_VITSParams_BasicSettings) - self.Frame_Train_VITS_ConfigPathLoad.setObjectName(u"Frame_Train_VITS_ConfigPathLoad") - self.Frame_Train_VITS_ConfigPathLoad.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_ConfigPathLoad.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_132.addWidget(self.Frame_TTS_VITS_ConfigPathLoad) + + self.Frame_TTS_VITS_ModelPathLoad = QFrame(self.Frame_TTS_VITS_InputParams_BasicSettings) + self.Frame_TTS_VITS_ModelPathLoad.setObjectName(u"Frame_TTS_VITS_ModelPathLoad") + self.Frame_TTS_VITS_ModelPathLoad.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_VITS_ModelPathLoad.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -12322,15 +17756,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_77 = QGridLayout(self.Frame_Train_VITS_ConfigPathLoad) - self.gridLayout_77.setSpacing(12) - self.gridLayout_77.setObjectName(u"gridLayout_77") - self.gridLayout_77.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_ConfigPathLoad = QLabel(self.Frame_Train_VITS_ConfigPathLoad) - self.Label_Train_VITS_ConfigPathLoad.setObjectName(u"Label_Train_VITS_ConfigPathLoad") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_ConfigPathLoad.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_ConfigPathLoad.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_ConfigPathLoad.setStyleSheet(u"QLabel {\n" + self.gridLayout_70 = QGridLayout(self.Frame_TTS_VITS_ModelPathLoad) + self.gridLayout_70.setSpacing(12) + self.gridLayout_70.setObjectName(u"gridLayout_70") + self.gridLayout_70.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_VITS_ModelPathLoad = QLabel(self.Frame_TTS_VITS_ModelPathLoad) + self.Label_TTS_VITS_ModelPathLoad.setObjectName(u"Label_TTS_VITS_ModelPathLoad") + sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_ModelPathLoad.sizePolicy().hasHeightForWidth()) + self.Label_TTS_VITS_ModelPathLoad.setSizePolicy(sizePolicy5) + self.Label_TTS_VITS_ModelPathLoad.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -12340,17 +17774,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_77.addWidget(self.Label_Train_VITS_ConfigPathLoad, 0, 0, 1, 1) + self.gridLayout_70.addWidget(self.Label_TTS_VITS_ModelPathLoad, 0, 0, 1, 1) - self.HorizontalSpacer_Train_VITS_ConfigPathLoad = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_TTS_VITS_ModelPathLoad = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_77.addItem(self.HorizontalSpacer_Train_VITS_ConfigPathLoad, 0, 1, 1, 1) + self.gridLayout_70.addItem(self.HorizontalSpacer_TTS_VITS_ModelPathLoad, 0, 1, 1, 1) - self.Button_Train_VITS_ConfigPathLoad_Undo = QPushButton(self.Frame_Train_VITS_ConfigPathLoad) - self.Button_Train_VITS_ConfigPathLoad_Undo.setObjectName(u"Button_Train_VITS_ConfigPathLoad_Undo") - self.Button_Train_VITS_ConfigPathLoad_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_ConfigPathLoad_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_ConfigPathLoad_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_TTS_VITS_ModelPathLoad_Undo = QPushButton(self.Frame_TTS_VITS_ModelPathLoad) + self.Button_TTS_VITS_ModelPathLoad_Undo.setObjectName(u"Button_TTS_VITS_ModelPathLoad_Undo") + self.Button_TTS_VITS_ModelPathLoad_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_VITS_ModelPathLoad_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_VITS_ModelPathLoad_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -12371,78 +17805,217 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_77.addWidget(self.Button_Train_VITS_ConfigPathLoad_Undo, 0, 2, 1, 1) + self.gridLayout_70.addWidget(self.Button_TTS_VITS_ModelPathLoad_Undo, 0, 2, 1, 1) - self.LineEdit_Train_VITS_ConfigPathLoad = LineEditBase(self.Frame_Train_VITS_ConfigPathLoad) - self.LineEdit_Train_VITS_ConfigPathLoad.setObjectName(u"LineEdit_Train_VITS_ConfigPathLoad") - self.LineEdit_Train_VITS_ConfigPathLoad.setMinimumSize(QSize(0, 27)) + self.LineEdit_TTS_VITS_ModelPathLoad = LineEditBase(self.Frame_TTS_VITS_ModelPathLoad) + self.LineEdit_TTS_VITS_ModelPathLoad.setObjectName(u"LineEdit_TTS_VITS_ModelPathLoad") + self.LineEdit_TTS_VITS_ModelPathLoad.setMinimumSize(QSize(0, 27)) - self.gridLayout_77.addWidget(self.LineEdit_Train_VITS_ConfigPathLoad, 1, 0, 1, 3) + self.gridLayout_70.addWidget(self.LineEdit_TTS_VITS_ModelPathLoad, 1, 0, 1, 3) - self.verticalLayout_17.addWidget(self.Frame_Train_VITS_ConfigPathLoad) + self.verticalLayout_132.addWidget(self.Frame_TTS_VITS_ModelPathLoad) - self.verticalLayout_114.addWidget(self.Frame_Train_VITS_VITSParams_BasicSettings) + self.verticalLayout_120.addWidget(self.Frame_TTS_VITS_InputParams_BasicSettings) - self.CheckBox_Train_VITS_VITSParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_Train_VITS_VITSParams) - self.CheckBox_Train_VITS_VITSParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_Train_VITS_VITSParams_Toggle_AdvanceSettings") - self.CheckBox_Train_VITS_VITSParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" font-weight: 630;\n" -" spacing: 12px;\n" -" color: rgba(255, 255, 255, 210);\n" + + self.verticalLayout_19.addWidget(self.GroupBox_TTS_VITS_InputParams) + + self.GroupBox_TTS_VITS_VITSParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_TTS_VITS) + self.GroupBox_TTS_VITS_VITSParams.setObjectName(u"GroupBox_TTS_VITS_VITSParams") + self.GroupBox_TTS_VITS_VITSParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" padding-top: 9px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" +" border-width: 1px;\n" " border-style: solid;\n" +" border-color: transparent;\n" "}\n" -"QCheckBox:hover {\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_117 = QVBoxLayout(self.GroupBox_TTS_VITS_VITSParams) + self.verticalLayout_117.setSpacing(0) + self.verticalLayout_117.setObjectName(u"verticalLayout_117") + self.verticalLayout_117.setContentsMargins(0, 12, 0, 12) + self.Frame_TTS_VITS_VITSParams_BasicSettings = QFrame(self.GroupBox_TTS_VITS_VITSParams) + self.Frame_TTS_VITS_VITSParams_BasicSettings.setObjectName(u"Frame_TTS_VITS_VITSParams_BasicSettings") + self.verticalLayout_131 = QVBoxLayout(self.Frame_TTS_VITS_VITSParams_BasicSettings) + self.verticalLayout_131.setSpacing(0) + self.verticalLayout_131.setObjectName(u"verticalLayout_131") + self.verticalLayout_131.setContentsMargins(0, 0, 0, 0) + self.Frame_TTS_VITS_Text = QFrame(self.Frame_TTS_VITS_VITSParams_BasicSettings) + self.Frame_TTS_VITS_Text.setObjectName(u"Frame_TTS_VITS_Text") + self.Frame_TTS_VITS_Text.setMinimumSize(QSize(0, 222)) + self.Frame_TTS_VITS_Text.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" "}\n" -"\n" -"QCheckBox::indicator {\n" -" width: 12px;\n" -" height: 12px;\n" -" background-color: transparent;\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.verticalLayout_98 = QVBoxLayout(self.Frame_TTS_VITS_Text) + self.verticalLayout_98.setSpacing(12) + self.verticalLayout_98.setObjectName(u"verticalLayout_98") + self.verticalLayout_98.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_VITS_Text = QLabel(self.Frame_TTS_VITS_Text) + self.Label_TTS_VITS_Text.setObjectName(u"Label_TTS_VITS_Text") + sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_Text.sizePolicy().hasHeightForWidth()) + self.Label_TTS_VITS_Text.setSizePolicy(sizePolicy5) + self.Label_TTS_VITS_Text.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" " padding: 0px;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.verticalLayout_98.addWidget(self.Label_TTS_VITS_Text) + + self.PlainTextEdit_TTS_VITS_Text = QPlainTextEdit(self.Frame_TTS_VITS_Text) + self.PlainTextEdit_TTS_VITS_Text.setObjectName(u"PlainTextEdit_TTS_VITS_Text") + sizePolicy3.setHeightForWidth(self.PlainTextEdit_TTS_VITS_Text.sizePolicy().hasHeightForWidth()) + self.PlainTextEdit_TTS_VITS_Text.setSizePolicy(sizePolicy3) + self.PlainTextEdit_TTS_VITS_Text.setStyleSheet(u"QPlainTextEdit {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QCheckBox::indicator:hover {\n" +"QPlainTextEdit:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:vertical {\n" +" height: 0px;\n" " background-color: transparent;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"" + "}\n" +"\n" +"QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" +"\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" "}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" +"\n" +"QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color" + ": transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"\n" +"QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" "\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" +"QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" +"}\n" +"QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" "}") - self.verticalLayout_114.addWidget(self.CheckBox_Train_VITS_VITSParams_Toggle_AdvanceSettings) + self.verticalLayout_98.addWidget(self.PlainTextEdit_TTS_VITS_Text) - self.Frame_Train_VITS_VITSParams_AdvanceSettings = QFrame(self.GroupBox_Train_VITS_VITSParams) - self.Frame_Train_VITS_VITSParams_AdvanceSettings.setObjectName(u"Frame_Train_VITS_VITSParams_AdvanceSettings") - self.Frame_Train_VITS_VITSParams_AdvanceSettings.setFrameShape(QFrame.StyledPanel) - self.Frame_Train_VITS_VITSParams_AdvanceSettings.setFrameShadow(QFrame.Raised) - self.verticalLayout_35 = QVBoxLayout(self.Frame_Train_VITS_VITSParams_AdvanceSettings) - self.verticalLayout_35.setSpacing(0) - self.verticalLayout_35.setObjectName(u"verticalLayout_35") - self.verticalLayout_35.setContentsMargins(0, 0, 0, 0) - self.Frame_Train_VITS_NumWorkers = QFrame(self.Frame_Train_VITS_VITSParams_AdvanceSettings) - self.Frame_Train_VITS_NumWorkers.setObjectName(u"Frame_Train_VITS_NumWorkers") - self.Frame_Train_VITS_NumWorkers.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_NumWorkers.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_131.addWidget(self.Frame_TTS_VITS_Text) + + self.Frame_TTS_VITS_Language = QFrame(self.Frame_TTS_VITS_VITSParams_BasicSettings) + self.Frame_TTS_VITS_Language.setObjectName(u"Frame_TTS_VITS_Language") + self.Frame_TTS_VITS_Language.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_VITS_Language.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -12451,15 +18024,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_63 = QGridLayout(self.Frame_Train_VITS_NumWorkers) - self.gridLayout_63.setSpacing(12) - self.gridLayout_63.setObjectName(u"gridLayout_63") - self.gridLayout_63.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_NumWorkers = QLabel(self.Frame_Train_VITS_NumWorkers) - self.Label_Train_VITS_NumWorkers.setObjectName(u"Label_Train_VITS_NumWorkers") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_NumWorkers.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_NumWorkers.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_NumWorkers.setStyleSheet(u"QLabel {\n" + self.gridLayout_79 = QGridLayout(self.Frame_TTS_VITS_Language) + self.gridLayout_79.setSpacing(12) + self.gridLayout_79.setObjectName(u"gridLayout_79") + self.gridLayout_79.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_VITS_Language = QLabel(self.Frame_TTS_VITS_Language) + self.Label_TTS_VITS_Language.setObjectName(u"Label_TTS_VITS_Language") + sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_Language.sizePolicy().hasHeightForWidth()) + self.Label_TTS_VITS_Language.setSizePolicy(sizePolicy5) + self.Label_TTS_VITS_Language.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -12469,17 +18042,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_63.addWidget(self.Label_Train_VITS_NumWorkers, 0, 0, 1, 1) + self.gridLayout_79.addWidget(self.Label_TTS_VITS_Language, 0, 0, 1, 1) - self.HorizontalSpacer_Train_VITS_NumWorkers = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_TTS_VITS_Language = QSpacerItem(415, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_63.addItem(self.HorizontalSpacer_Train_VITS_NumWorkers, 0, 1, 1, 1) + self.gridLayout_79.addItem(self.HorizontalSpacer_TTS_VITS_Language, 0, 1, 1, 1) - self.Button_Train_VITS_NumWorkers_Undo = QPushButton(self.Frame_Train_VITS_NumWorkers) - self.Button_Train_VITS_NumWorkers_Undo.setObjectName(u"Button_Train_VITS_NumWorkers_Undo") - self.Button_Train_VITS_NumWorkers_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_NumWorkers_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_NumWorkers_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_TTS_VITS_Language_Undo = QPushButton(self.Frame_TTS_VITS_Language) + self.Button_TTS_VITS_Language_Undo.setObjectName(u"Button_TTS_VITS_Language_Undo") + self.Button_TTS_VITS_Language_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_VITS_Language_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_VITS_Language_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -12500,16 +18073,14 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_63.addWidget(self.Button_Train_VITS_NumWorkers_Undo, 0, 2, 1, 1) + self.gridLayout_79.addWidget(self.Button_TTS_VITS_Language_Undo, 0, 2, 1, 1) - self.SpinBox_Train_VITS_NumWorkers = QSpinBox(self.Frame_Train_VITS_NumWorkers) - self.SpinBox_Train_VITS_NumWorkers.setObjectName(u"SpinBox_Train_VITS_NumWorkers") - self.SpinBox_Train_VITS_NumWorkers.setMinimumSize(QSize(0, 27)) - self.SpinBox_Train_VITS_NumWorkers.setStyleSheet(u"QSpinBox {\n" + self.ComboBox_TTS_VITS_Language = QComboBox(self.Frame_TTS_VITS_Language) + self.ComboBox_TTS_VITS_Language.setObjectName(u"ComboBox_TTS_VITS_Language") + self.ComboBox_TTS_VITS_Language.setMinimumSize(QSize(0, 27)) + self.ComboBox_TTS_VITS_Language.setStyleSheet(u"QComboBox {\n" " /*font-size: 12px;*/\n" " text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" " background-color: transparent;\n" " padding-top: 3px;\n" " padding-left: 6px;\n" @@ -12520,147 +18091,154 @@ def setupUi(self, MainWindow): " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QSpinBox:hover {\n" +"QComboBox:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" +"QComboBox::drop-down {\n" +" /*width: 12px;\n" +" height: 12px;*/\n" " subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" +" subcontrol-position: right;\n" +" margin-right: 6px;\n" +" border: none;\n" "}\n" -"QSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"\n" +"QComboBox::down-arrow {\n" +" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"QComboBox::down-arrow:on {\n" +" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" "}\n" "\n" -"QSpinBox::down-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" +"\n" +"QComboBox QAbstractItemView {\n" +" outline: none;\n" +" background-color: transparent;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QSpinBox::down-arrow {\n" -" border-image: url(:/(Double)" - "SpinBox_Icon/Sources/DownArrow.png);\n" +"\n" +"QCom" + "boBox QAbstractItemView::item {\n" +" /* height: 30px; */\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border: none;\n" +"}\n" +"QComboBox QAbstractItemView::item:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"QComboBox QAbstractItemView::item:selected {\n" +" background-color: rgba(120, 120, 120, 120);\n" "}\n" "\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -"}") - self.SpinBox_Train_VITS_NumWorkers.setMinimum(-999999) - self.SpinBox_Train_VITS_NumWorkers.setMaximum(999999) - - self.gridLayout_63.addWidget(self.SpinBox_Train_VITS_NumWorkers, 1, 0, 1, 3) - - - self.verticalLayout_35.addWidget(self.Frame_Train_VITS_NumWorkers) - - self.Frame_Train_VITS_FP16Run = QFrame(self.Frame_Train_VITS_VITSParams_AdvanceSettings) - self.Frame_Train_VITS_FP16Run.setObjectName(u"Frame_Train_VITS_FP16Run") - self.Frame_Train_VITS_FP16Run.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_FP16Run.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" +" height: 0px;\n" " background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" -" border-style: solid;\n" +" border-radius: 0px;\n" +"" + " border-style: solid;\n" "}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_64 = QGridLayout(self.Frame_Train_VITS_FP16Run) - self.gridLayout_64.setSpacing(12) - self.gridLayout_64.setObjectName(u"gridLayout_64") - self.gridLayout_64.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_FP16Run = QLabel(self.Frame_Train_VITS_FP16Run) - self.Label_Train_VITS_FP16Run.setObjectName(u"Label_Train_VITS_FP16Run") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_FP16Run.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_FP16Run.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_FP16Run.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" " background-color: transparent;\n" -" padding: 0px;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" -"}") - - self.gridLayout_64.addWidget(self.Label_Train_VITS_FP16Run, 0, 0, 1, 1) - - self.HorizontalSpacer_Train_VITS_FP16Run = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_64.addItem(self.HorizontalSpacer_Train_VITS_FP16Run, 0, 1, 1, 1) - - self.Button_Train_VITS_FP16Run_Undo = QPushButton(self.Frame_Train_VITS_FP16Run) - self.Button_Train_VITS_FP16Run_Undo.setObjectName(u"Button_Train_VITS_FP16Run_Undo") - self.Button_Train_VITS_FP16Run_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_FP16Run_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_FP16Run_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" " background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - - self.gridLayout_64.addWidget(self.Button_Train_VITS_FP16Run_Undo, 0, 2, 1, 1) - - self.CheckBox_Train_VITS_FP16Run = QCheckBox(self.Frame_Train_VITS_FP16Run) - self.CheckBox_Train_VITS_FP16Run.setObjectName(u"CheckBox_Train_VITS_FP16Run") - self.CheckBox_Train_VITS_FP16Run.setMinimumSize(QSize(0, 27)) - self.CheckBox_Train_VITS_FP16Run.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" spacing: 12.3px;\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" +" borde" + "r-color: transparent;\n" +" margin: 0px;\n" "}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" "}\n" "\n" -"QCheckBox::indicator {\n" -" width: 24px;\n" -" height: 24px;\n" -" background-color: transparent;\n" -" padding: 1.2px;\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"QCheckBox::indicator:hover {\n" -" background-color: rgba(255, 255, 255, 21);\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" "}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" " + "border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" @@ -12671,49 +18249,15 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_64.addWidget(self.CheckBox_Train_VITS_FP16Run, 1, 0, 1, 3) - - - self.verticalLayout_35.addWidget(self.Frame_Train_VITS_FP16Run) - - - self.verticalLayout_114.addWidget(self.Frame_Train_VITS_VITSParams_AdvanceSettings) + self.gridLayout_79.addWidget(self.ComboBox_TTS_VITS_Language, 1, 0, 1, 3) - self.verticalLayout_28.addWidget(self.GroupBox_Train_VITS_VITSParams) + self.verticalLayout_131.addWidget(self.Frame_TTS_VITS_Language) - self.GroupBox_Train_VITS_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_Train_VITS) - self.GroupBox_Train_VITS_OutputParams.setObjectName(u"GroupBox_Train_VITS_OutputParams") - self.GroupBox_Train_VITS_OutputParams.setStyleSheet(u"QGroupBox {\n" -" font-size: 15px;\n" -" margin-top: 1.5ex;\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 1px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -"}\n" -"QGroupBox::title {\n" -" left: 9px;\n" -" margin-left: 0px;\n" -" subcontrol-origin: margin;\n" -" subcontrol-position: top left;\n" -" padding: 3px;\n" -"}") - self.verticalLayout_145 = QVBoxLayout(self.GroupBox_Train_VITS_OutputParams) - self.verticalLayout_145.setSpacing(0) - self.verticalLayout_145.setObjectName(u"verticalLayout_145") - self.verticalLayout_145.setContentsMargins(0, 12, 0, 12) - self.Frame_Train_VITS_OutputParams_BasicSettings = QFrame(self.GroupBox_Train_VITS_OutputParams) - self.Frame_Train_VITS_OutputParams_BasicSettings.setObjectName(u"Frame_Train_VITS_OutputParams_BasicSettings") - self.verticalLayout_26 = QVBoxLayout(self.Frame_Train_VITS_OutputParams_BasicSettings) - self.verticalLayout_26.setSpacing(0) - self.verticalLayout_26.setObjectName(u"verticalLayout_26") - self.verticalLayout_26.setContentsMargins(0, 0, 0, 0) - self.Frame_Train_VITS_EvalInterval = QFrame(self.Frame_Train_VITS_OutputParams_BasicSettings) - self.Frame_Train_VITS_EvalInterval.setObjectName(u"Frame_Train_VITS_EvalInterval") - self.Frame_Train_VITS_EvalInterval.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_EvalInterval.setStyleSheet(u"QFrame {\n" + self.Frame_TTS_VITS_Speaker = QFrame(self.Frame_TTS_VITS_VITSParams_BasicSettings) + self.Frame_TTS_VITS_Speaker.setObjectName(u"Frame_TTS_VITS_Speaker") + self.Frame_TTS_VITS_Speaker.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_VITS_Speaker.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -12722,15 +18266,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_62 = QGridLayout(self.Frame_Train_VITS_EvalInterval) - self.gridLayout_62.setSpacing(12) - self.gridLayout_62.setObjectName(u"gridLayout_62") - self.gridLayout_62.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_EvalInterval = QLabel(self.Frame_Train_VITS_EvalInterval) - self.Label_Train_VITS_EvalInterval.setObjectName(u"Label_Train_VITS_EvalInterval") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_EvalInterval.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_EvalInterval.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_EvalInterval.setStyleSheet(u"QLabel {\n" + self.verticalLayout_104 = QVBoxLayout(self.Frame_TTS_VITS_Speaker) + self.verticalLayout_104.setSpacing(12) + self.verticalLayout_104.setObjectName(u"verticalLayout_104") + self.verticalLayout_104.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_VITS_Speaker = QLabel(self.Frame_TTS_VITS_Speaker) + self.Label_TTS_VITS_Speaker.setObjectName(u"Label_TTS_VITS_Speaker") + sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_Speaker.sizePolicy().hasHeightForWidth()) + self.Label_TTS_VITS_Speaker.setSizePolicy(sizePolicy5) + self.Label_TTS_VITS_Speaker.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -12740,152 +18284,172 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_62.addWidget(self.Label_Train_VITS_EvalInterval, 0, 0, 1, 1) - - self.HorizontalSpacer_Train_VITS_EvalInterval = QSpacerItem(443, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_62.addItem(self.HorizontalSpacer_Train_VITS_EvalInterval, 0, 1, 1, 1) + self.verticalLayout_104.addWidget(self.Label_TTS_VITS_Speaker) - self.Button_Train_VITS_EvalInterval_Undo = QPushButton(self.Frame_Train_VITS_EvalInterval) - self.Button_Train_VITS_EvalInterval_Undo.setObjectName(u"Button_Train_VITS_EvalInterval_Undo") - self.Button_Train_VITS_EvalInterval_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_EvalInterval_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_EvalInterval_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" + self.ComboBox_TTS_VITS_Speaker = QComboBox(self.Frame_TTS_VITS_Speaker) + self.ComboBox_TTS_VITS_Speaker.setObjectName(u"ComboBox_TTS_VITS_Speaker") + self.ComboBox_TTS_VITS_Speaker.setMinimumSize(QSize(0, 27)) + self.ComboBox_TTS_VITS_Speaker.setStyleSheet(u"QComboBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" " background-color: transparent;\n" -" padding: 4.5px;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" " border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QPushButton:hover {\n" +"QComboBox:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" +"QComboBox::drop-down {\n" +" /*width: 12px;\n" +" height: 12px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: right;\n" +" margin-right: 6px;\n" +" border: none;\n" +"}\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" +"QComboBox::down-arrow {\n" +" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"QComboBox::down-arrow:on {\n" +" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractItemView {\n" +" outline: none;\n" +" background-color: transparent;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -"}") - - self.gridLayout_62.addWidget(self.Button_Train_VITS_EvalInterval_Undo, 0, 2, 1, 1) - - self.SpinBox_Train_VITS_EvalInterval = QSpinBox(self.Frame_Train_VITS_EvalInterval) - self.SpinBox_Train_VITS_EvalInterval.setObjectName(u"SpinBox_Train_VITS_EvalInterval") - self.SpinBox_Train_VITS_EvalInterval.setMinimumSize(QSize(0, 27)) - self.SpinBox_Train_VITS_EvalInterval.setStyleSheet(u"QSpinBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"\n" +"QCom" + "boBox QAbstractItemView::item {\n" +" /* height: 30px; */\n" " background-color: transparent;\n" " padding-top: 3px;\n" " padding-left: 6px;\n" " padding-bottom: 3px;\n" " padding-right: 6px;\n" -" border-width: 1.2px;\n" +" border: none;\n" +"}\n" +"QComboBox QAbstractItemView::item:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"QComboBox QAbstractItemView::item:selected {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" +" border-color: transparent;\n" +" margin: 0px;\n" "}\n" -"QSpinBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" "}\n" "\n" -"QSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +"" + " border-style: solid;\n" "}\n" -"QSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" "\n" -"QSpinBox::down-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" -"QSpinBox::down-arrow {\n" -" border-image: url(:/(Double)" - "SpinBox_Icon/Sources/DownArrow.png);\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" borde" + "r-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" "}\n" "\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - self.SpinBox_Train_VITS_EvalInterval.setMinimum(-999999) - self.SpinBox_Train_VITS_EvalInterval.setMaximum(999999) - - self.gridLayout_62.addWidget(self.SpinBox_Train_VITS_EvalInterval, 1, 0, 1, 3) - - - self.verticalLayout_26.addWidget(self.Frame_Train_VITS_EvalInterval) - - self.Frame_Train_VITS_OutputDir = QFrame(self.Frame_Train_VITS_OutputParams_BasicSettings) - self.Frame_Train_VITS_OutputDir.setObjectName(u"Frame_Train_VITS_OutputDir") - self.Frame_Train_VITS_OutputDir.setMinimumSize(QSize(0, 105)) - self.Frame_Train_VITS_OutputDir.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" " background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_68 = QGridLayout(self.Frame_Train_VITS_OutputDir) - self.gridLayout_68.setSpacing(12) - self.gridLayout_68.setObjectName(u"gridLayout_68") - self.gridLayout_68.setContentsMargins(21, 12, 21, 12) - self.Label_Train_VITS_OutputDir = QLabel(self.Frame_Train_VITS_OutputDir) - self.Label_Train_VITS_OutputDir.setObjectName(u"Label_Train_VITS_OutputDir") - sizePolicy5.setHeightForWidth(self.Label_Train_VITS_OutputDir.sizePolicy().hasHeightForWidth()) - self.Label_Train_VITS_OutputDir.setSizePolicy(sizePolicy5) - self.Label_Train_VITS_OutputDir.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" " background-color: transparent;\n" -" padding: 0px;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" -"}") - - self.gridLayout_68.addWidget(self.Label_Train_VITS_OutputDir, 0, 0, 1, 1) - - self.HorizontalSpacer_Train_VITS_OutputDir = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_68.addItem(self.HorizontalSpacer_Train_VITS_OutputDir, 0, 1, 1, 1) - - self.Button_Train_VITS_OutputDir_Undo = QPushButton(self.Frame_Train_VITS_OutputDir) - self.Button_Train_VITS_OutputDir_Undo.setObjectName(u"Button_Train_VITS_OutputDir_Undo") - self.Button_Train_VITS_OutputDir_Undo.setMinimumSize(QSize(27, 27)) - self.Button_Train_VITS_OutputDir_Undo.setMaximumSize(QSize(27, 27)) - self.Button_Train_VITS_OutputDir_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" " background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" " + "border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" @@ -12896,484 +18460,578 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_68.addWidget(self.Button_Train_VITS_OutputDir_Undo, 0, 2, 1, 1) - - self.LineEdit_Train_VITS_OutputDir = LineEditBase(self.Frame_Train_VITS_OutputDir) - self.LineEdit_Train_VITS_OutputDir.setObjectName(u"LineEdit_Train_VITS_OutputDir") - self.LineEdit_Train_VITS_OutputDir.setMinimumSize(QSize(0, 27)) - - self.gridLayout_68.addWidget(self.LineEdit_Train_VITS_OutputDir, 1, 0, 1, 3) - - - self.verticalLayout_26.addWidget(self.Frame_Train_VITS_OutputDir) - - - self.verticalLayout_145.addWidget(self.Frame_Train_VITS_OutputParams_BasicSettings) - - - self.verticalLayout_28.addWidget(self.GroupBox_Train_VITS_OutputParams) - - self.VerticalSpacer_Train_VITS = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - - self.verticalLayout_28.addItem(self.VerticalSpacer_Train_VITS) + self.verticalLayout_104.addWidget(self.ComboBox_TTS_VITS_Speaker) - self.ScrollArea_Middle_Train_VITS.setWidget(self.ScrollArea_Middle_WidgetContents_Train_VITS) - self.gridLayout_22.addWidget(self.ScrollArea_Middle_Train_VITS, 0, 1, 1, 1) + self.verticalLayout_131.addWidget(self.Frame_TTS_VITS_Speaker) - self.gridLayout_22.setColumnStretch(0, 3) - self.gridLayout_22.setColumnStretch(1, 10) - self.gridLayout_22.setColumnStretch(2, 7) - self.StackedWidget_Pages_Train.addWidget(self.Subpage_Train_VITS) - self.verticalLayout_43.addWidget(self.StackedWidget_Pages_Train) + self.verticalLayout_117.addWidget(self.Frame_TTS_VITS_VITSParams_BasicSettings) - self.StackedWidget_Pages.addWidget(self.Page_Train) - self.Page_TTS = QWidget() - self.Page_TTS.setObjectName(u"Page_TTS") - self.verticalLayout_42 = QVBoxLayout(self.Page_TTS) - self.verticalLayout_42.setSpacing(21) - self.verticalLayout_42.setObjectName(u"verticalLayout_42") - self.verticalLayout_42.setContentsMargins(21, 12, 21, 12) - self.Frame_TTS_Top = QFrame(self.Page_TTS) - self.Frame_TTS_Top.setObjectName(u"Frame_TTS_Top") - self.Frame_TTS_Top.setMinimumSize(QSize(0, 60)) - self.Frame_TTS_Top.setStyleSheet(u"QFrame {\n" -" background-color: rgba(36, 36, 36, 123);\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - self.horizontalLayout_81 = QHBoxLayout(self.Frame_TTS_Top) - self.horizontalLayout_81.setSpacing(0) - self.horizontalLayout_81.setObjectName(u"horizontalLayout_81") - self.horizontalLayout_81.setContentsMargins(0, 0, 0, 0) - self.ToolButton_VoiceConverter_Title = QToolButton(self.Frame_TTS_Top) - self.ToolButton_VoiceConverter_Title.setObjectName(u"ToolButton_VoiceConverter_Title") - sizePolicy1.setHeightForWidth(self.ToolButton_VoiceConverter_Title.sizePolicy().hasHeightForWidth()) - self.ToolButton_VoiceConverter_Title.setSizePolicy(sizePolicy1) - self.ToolButton_VoiceConverter_Title.setStyleSheet(u"QToolButton {\n" -" font-size: 24px;\n" -" /*text-align: center;*/\n" -" color: rgba(201, 210, 222, 210);\n" -" padding-left: 12px;\n" -" padding-right: 12px;\n" + self.CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_TTS_VITS_VITSParams) + self.CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings") + self.CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" +" font-size: 12px;\n" +" font-weight: 630;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +" padding-top: 9px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" "}\n" -"QToolButton:hover {\n" -" color: rgba(210, 222, 234, 234);\n" -" background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +"QCheckBox:hover {\n" +" color: rgb(255, 255, 255);\n" +"}\n" +"\n" +"QCheckBox::indicator {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(120, 180, 240, 123);\n" "}\n" -"QToolButton:checked {\n" -" color: rgba(210, 222, 234, 255);\n" +"QCheckBox::indicator:hover {\n" " background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" -" border-style: solid;\n" -" border-bottom-color: rgba(120, 180, 240, 210);\n" "}\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" +"}\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" +"}\n" +"\n" "\n" "QToolTip {\n" -" color:" - " rgba(255, 255, 255, 210);\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" " border-width: 0px;\n" " border-style: solid;\n" "}") - self.horizontalLayout_81.addWidget(self.ToolButton_VoiceConverter_Title) + self.verticalLayout_117.addWidget(self.CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings) - self.Frame_TTS_Title_Spacer = QLabel(self.Frame_TTS_Top) - self.Frame_TTS_Title_Spacer.setObjectName(u"Frame_TTS_Title_Spacer") - sizePolicy4.setHeightForWidth(self.Frame_TTS_Title_Spacer.sizePolicy().hasHeightForWidth()) - self.Frame_TTS_Title_Spacer.setSizePolicy(sizePolicy4) - self.Frame_TTS_Title_Spacer.setStyleSheet(u"QLabel {\n" -" font-size: 24px;\n" -" /*text-align: center;\n" + self.Frame_TTS_VITS_VITSParams_AdvanceSettings = QFrame(self.GroupBox_TTS_VITS_VITSParams) + self.Frame_TTS_VITS_VITSParams_AdvanceSettings.setObjectName(u"Frame_TTS_VITS_VITSParams_AdvanceSettings") + self.verticalLayout_118 = QVBoxLayout(self.Frame_TTS_VITS_VITSParams_AdvanceSettings) + self.verticalLayout_118.setSpacing(0) + self.verticalLayout_118.setObjectName(u"verticalLayout_118") + self.verticalLayout_118.setContentsMargins(0, 0, 0, 0) + self.Frame_TTS_VITS_EmotionStrength = QFrame(self.Frame_TTS_VITS_VITSParams_AdvanceSettings) + self.Frame_TTS_VITS_EmotionStrength.setObjectName(u"Frame_TTS_VITS_EmotionStrength") + self.Frame_TTS_VITS_EmotionStrength.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_VITS_EmotionStrength.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" -" padding-left: 12px;\n" -" padding-right: 12px;*/\n" " background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_71 = QGridLayout(self.Frame_TTS_VITS_EmotionStrength) + self.gridLayout_71.setSpacing(12) + self.gridLayout_71.setObjectName(u"gridLayout_71") + self.gridLayout_71.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_VITS_EmotionStrength = QLabel(self.Frame_TTS_VITS_EmotionStrength) + self.Label_TTS_VITS_EmotionStrength.setObjectName(u"Label_TTS_VITS_EmotionStrength") + sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_EmotionStrength.sizePolicy().hasHeightForWidth()) + self.Label_TTS_VITS_EmotionStrength.setSizePolicy(sizePolicy5) + self.Label_TTS_VITS_EmotionStrength.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" "}") - self.horizontalLayout_81.addWidget(self.Frame_TTS_Title_Spacer) + self.gridLayout_71.addWidget(self.Label_TTS_VITS_EmotionStrength, 0, 0, 1, 1) + self.HorizontalSpacer_TTS_VITS_EmotionStrength = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.verticalLayout_42.addWidget(self.Frame_TTS_Top) + self.gridLayout_71.addItem(self.HorizontalSpacer_TTS_VITS_EmotionStrength, 0, 1, 1, 1) - self.StackedWidget_Pages_TTS = QStackedWidget(self.Page_TTS) - self.StackedWidget_Pages_TTS.setObjectName(u"StackedWidget_Pages_TTS") - self.StackedWidget_Pages_TTS.setStyleSheet(u"QWidget {\n" -" background-color: transparent;\n" -"}\n" -"\n" -"\n" -"/*\n" -"QTabWidget {\n" -" background-color: transparent;\n" -"}\n" -"QTabWidget::tab-bar {\n" -"}\n" -"QTabWidget::pane {\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"\n" -"QTabBar::tab {\n" -" font-size: 18px;\n" -" font-weight: 420;\n" -" spacing: 12px;\n" -" color: rgba(255, 255, 255, 210);\n" + self.Button_TTS_VITS_EmotionStrength_Undo = QPushButton(self.Frame_TTS_VITS_EmotionStrength) + self.Button_TTS_VITS_EmotionStrength_Undo.setObjectName(u"Button_TTS_VITS_EmotionStrength_Undo") + self.Button_TTS_VITS_EmotionStrength_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_VITS_EmotionStrength_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_VITS_EmotionStrength_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" -" padding: 12px;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" -"}\n" -"QTabBar::tab:selected {\n" -" color: rgba(255, 255, 255, 255);\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QTabBar::tab:hover:!selected {\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" -"QTabBar QToolButton {\n" -"}\n" -"QTabBar QToolButton:hover {\n" -"}\n" -"*/") - self.Subpage_TTS_VITS = QWidget() - self.Subpage_TTS_VITS.setObjectName(u"Subpage_TTS_VITS") - self.gridLayout_20 = QGridLayout(self.Subpage_TTS_VITS) - self.gridLayout_20.setSpacing(12) - self.gridLayout_20.setObjectName(u"gridLayout_20") - self.gridLayout_20.setContentsMargins(0, 0, 0, 0) - self.Widget_Left_TTS_VITS = QWidget(self.Subpage_TTS_VITS) - self.Widget_Left_TTS_VITS.setObjectName(u"Widget_Left_TTS_VITS") - self.Widget_Left_TTS_VITS.setMinimumSize(QSize(150, 0)) - self.Widget_Left_TTS_VITS.setStyleSheet(u"QWidget {\n" -" background-color: rgba(36, 36, 36, 123);\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" " border-style: solid;\n" -"}\n" -"QWidget:hover {\n" "}") - self.verticalLayout_11 = QVBoxLayout(self.Widget_Left_TTS_VITS) - self.verticalLayout_11.setSpacing(12) - self.verticalLayout_11.setObjectName(u"verticalLayout_11") - self.verticalLayout_11.setContentsMargins(12, 12, 12, 12) - self.TreeWidget_Catalogue_TTS_VITS = QTreeWidget(self.Widget_Left_TTS_VITS) - __qtreewidgetitem5 = QTreeWidgetItem(self.TreeWidget_Catalogue_TTS_VITS) - QTreeWidgetItem(__qtreewidgetitem5) - self.TreeWidget_Catalogue_TTS_VITS.setObjectName(u"TreeWidget_Catalogue_TTS_VITS") - self.TreeWidget_Catalogue_TTS_VITS.setStyleSheet(u"QTreeView {\n" -" /*font-size: 12px;\n" -" text-align: center;*/\n" + + self.gridLayout_71.addWidget(self.Button_TTS_VITS_EmotionStrength_Undo, 0, 2, 1, 1) + + self.ChildFrame_TTS_VITS_EmotionStrength = QFrame(self.Frame_TTS_VITS_EmotionStrength) + self.ChildFrame_TTS_VITS_EmotionStrength.setObjectName(u"ChildFrame_TTS_VITS_EmotionStrength") + sizePolicy5.setHeightForWidth(self.ChildFrame_TTS_VITS_EmotionStrength.sizePolicy().hasHeightForWidth()) + self.ChildFrame_TTS_VITS_EmotionStrength.setSizePolicy(sizePolicy5) + self.ChildFrame_TTS_VITS_EmotionStrength.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"\n" -"QTreeView::item {\n" +"QFrame:hover {\n" " background-color: transparent;\n" -" padding: 2.4px;\n" -"}\n" -"QTreeView::item:hover {\n" -" background-color: rgba(66, 66, 66, 198);\n" -"}\n" -"QTreeView::item:selected {\n" -" background-color: ;\n" -"}\n" -"\n" -"QTreeView::branch {\n" -" background-color: transparent;\n" +"}") + self.horizontalLayout_43 = QHBoxLayout(self.ChildFrame_TTS_VITS_EmotionStrength) + self.horizontalLayout_43.setSpacing(12) + self.horizontalLayout_43.setObjectName(u"horizontalLayout_43") + self.horizontalLayout_43.setContentsMargins(0, 0, 0, 0) + self.HorizontalSlider_TTS_VITS_EmotionStrength = QSlider(self.ChildFrame_TTS_VITS_EmotionStrength) + self.HorizontalSlider_TTS_VITS_EmotionStrength.setObjectName(u"HorizontalSlider_TTS_VITS_EmotionStrength") + self.HorizontalSlider_TTS_VITS_EmotionStrength.setMinimumSize(QSize(0, 27)) + self.HorizontalSlider_TTS_VITS_EmotionStrength.setStyleSheet(u"QSlider::groove:horizontal {\n" +" height: 1.2px;\n" +" background-color: rgba(201, 210, 222, 123);\n" " border-width: 0px;\n" -" border-radius: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" "}\n" -"QTreeView::branch:open:has-children {\n" -" image: ;\n" -"}\n" -"QTreeView::branch:closed:has-children {\n" -" image: ;\n" -"}\n" -"QTreeWidget::branch:adjoins-item {\n" -" background-color: ;\n" +"QSlider::groove:horizontal:hover {\n" +" background-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"\n" -"QScrollBar {\n" -" background-color: rgba(45, 45, 45, 135);\n" +"QSlider::handle:horizontal {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: rgba(201, 210, 222, 210);\n" +" margin-top: -6px;\n" +" margin-bottom: -6px;\n" " border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" +" /*border-color: rgba(201, 210, 222, 123);*/\n" "}\n" -"QScrollBar:hover {\n" -" background-color: r" - "gba(33, 33, 33, 99);\n" +"QSlider::handle:horizontal:hover {\n" +" background-color: rgba(210, 222, 234, 234);\n" +" /*border-color: rgba(201, 210, 222, 210);*/\n" +"}") + self.HorizontalSlider_TTS_VITS_EmotionStrength.setOrientation(Qt.Horizontal) + + self.horizontalLayout_43.addWidget(self.HorizontalSlider_TTS_VITS_EmotionStrength) + + self.DoubleSpinBox_TTS_VITS_EmotionStrength = QDoubleSpinBox(self.ChildFrame_TTS_VITS_EmotionStrength) + self.DoubleSpinBox_TTS_VITS_EmotionStrength.setObjectName(u"DoubleSpinBox_TTS_VITS_EmotionStrength") + self.DoubleSpinBox_TTS_VITS_EmotionStrength.setMinimumSize(QSize(0, 27)) + self.DoubleSpinBox_TTS_VITS_EmotionStrength.setStyleSheet(u"QDoubleSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" +"}\n" +"QDoubleSpinBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QScrollBar::horizontal {\n" -" height: 9px;\n" +"QDoubleSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" "}\n" -"QScrollBar::vertical {\n" -" width: 9px;\n" +"QDoubleSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" "}\n" "\n" -"QScrollBar::sub-line, QScrollBar::add-line {\n" -" background-color: transparent;\n" +"QDoubleSpinBox::down-button {\n" +" /*width: 9px;\n" +" /*height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" +"}\n" +"QDoubleSpinBox::down-arr" + "ow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" "}\n" "\n" -"QScrollBar::sub-page, QScrollBar::add-page {\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.horizontalLayout_43.addWidget(self.DoubleSpinBox_TTS_VITS_EmotionStrength) + + + self.gridLayout_71.addWidget(self.ChildFrame_TTS_VITS_EmotionStrength, 1, 0, 1, 3) + + + self.verticalLayout_118.addWidget(self.Frame_TTS_VITS_EmotionStrength) + + self.Frame_TTS_VITS_PhonemeDuration = QFrame(self.Frame_TTS_VITS_VITSParams_AdvanceSettings) + self.Frame_TTS_VITS_PhonemeDuration.setObjectName(u"Frame_TTS_VITS_PhonemeDuration") + self.Frame_TTS_VITS_PhonemeDuration.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_VITS_PhonemeDuration.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" "}\n" -"\n" -"QScrollBar::handle {\n" -" background-color: rgba(90, 90, 90, 90);\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_72 = QGridLayout(self.Frame_TTS_VITS_PhonemeDuration) + self.gridLayout_72.setSpacing(12) + self.gridLayout_72.setObjectName(u"gridLayout_72") + self.gridLayout_72.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_VITS_PhonemeDuration = QLabel(self.Frame_TTS_VITS_PhonemeDuration) + self.Label_TTS_VITS_PhonemeDuration.setObjectName(u"Label_TTS_VITS_PhonemeDuration") + sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_PhonemeDuration.sizePolicy().hasHeightForWidth()) + self.Label_TTS_VITS_PhonemeDuration.setSizePolicy(sizePolicy5) + self.Label_TTS_VITS_PhonemeDuration.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" -"}\n" -"QScrollBar::handle:hover {\n" -" background-color: rgba(120, 120, 120, 120);\n" "}") - self.verticalLayout_11.addWidget(self.TreeWidget_Catalogue_TTS_VITS) + self.gridLayout_72.addWidget(self.Label_TTS_VITS_PhonemeDuration, 0, 0, 1, 1) + self.HorizontalSpacer_TTS_VITS_PhonemeDuration = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_20.addWidget(self.Widget_Left_TTS_VITS, 0, 0, 1, 1) + self.gridLayout_72.addItem(self.HorizontalSpacer_TTS_VITS_PhonemeDuration, 0, 1, 1, 1) - self.ScrollArea_Middle_TTS_VITS = QScrollArea(self.Subpage_TTS_VITS) - self.ScrollArea_Middle_TTS_VITS.setObjectName(u"ScrollArea_Middle_TTS_VITS") - self.ScrollArea_Middle_TTS_VITS.setMinimumSize(QSize(600, 0)) - self.ScrollArea_Middle_TTS_VITS.setStyleSheet(u"QScrollArea {\n" -" background-color: rgba(36, 36, 36, 123);\n" -" border-width: 0px;\n" + self.Button_TTS_VITS_PhonemeDuration_Undo = QPushButton(self.Frame_TTS_VITS_PhonemeDuration) + self.Button_TTS_VITS_PhonemeDuration_Undo.setObjectName(u"Button_TTS_VITS_PhonemeDuration_Undo") + self.Button_TTS_VITS_PhonemeDuration_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_VITS_PhonemeDuration_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_VITS_PhonemeDuration_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QScrollArea:hover {\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" -"QScrollBar::vertical {\n" -" width: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.gridLayout_72.addWidget(self.Button_TTS_VITS_PhonemeDuration_Undo, 0, 2, 1, 1) + + self.ChildFrame_TTS_VITS_PhonemeDuration = QFrame(self.Frame_TTS_VITS_PhonemeDuration) + self.ChildFrame_TTS_VITS_PhonemeDuration.setObjectName(u"ChildFrame_TTS_VITS_PhonemeDuration") + sizePolicy5.setHeightForWidth(self.ChildFrame_TTS_VITS_PhonemeDuration.sizePolicy().hasHeightForWidth()) + self.ChildFrame_TTS_VITS_PhonemeDuration.setSizePolicy(sizePolicy5) + self.ChildFrame_TTS_VITS_PhonemeDuration.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: transparent;\n" +"}") + self.horizontalLayout_44 = QHBoxLayout(self.ChildFrame_TTS_VITS_PhonemeDuration) + self.horizontalLayout_44.setSpacing(12) + self.horizontalLayout_44.setObjectName(u"horizontalLayout_44") + self.horizontalLayout_44.setContentsMargins(0, 0, 0, 0) + self.HorizontalSlider_TTS_VITS_PhonemeDuration = QSlider(self.ChildFrame_TTS_VITS_PhonemeDuration) + self.HorizontalSlider_TTS_VITS_PhonemeDuration.setObjectName(u"HorizontalSlider_TTS_VITS_PhonemeDuration") + self.HorizontalSlider_TTS_VITS_PhonemeDuration.setMinimumSize(QSize(0, 27)) + self.HorizontalSlider_TTS_VITS_PhonemeDuration.setStyleSheet(u"QSlider::groove:horizontal {\n" +" height: 1.2px;\n" +" background-color: rgba(201, 210, 222, 123);\n" +" border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" "}\n" -"QScrollBar::vertical:hover {\n" -" background-color: rgb(60, 60, 60);\n" +"QSlider::groove:horizontal:hover {\n" +" background-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QScrollBar::add-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: bottom;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" +"QSlider::handle:horizontal {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: rgba(201, 210, 222, 210);\n" +" margin-top: -6px;\n" +" margin-bottom: -6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" +" /*border-color: rgba(201, 210, 222, 123);*/\n" "}\n" -"\n" -"QScrollBar::sub-line:vertical {\n" -" height: 0px;\n" +"QSlider::handle:horizontal:hover {\n" +" background-color: rgba(210, 222, 234, 234);\n" +" /*border-color: rgba(201, 210, 222, 210);*/\n" +"}") + self.HorizontalSlider_TTS_VITS_PhonemeDuration.setOrientation(Qt.Horizontal) + + self.horizontalLayout_44.addWidget(self.HorizontalSlider_TTS_VITS_PhonemeDuration) + + self.DoubleSpinBox_TTS_VITS_PhonemeDuration = QDoubleSpinBox(self.ChildFrame_TTS_VITS_PhonemeDuration) + self.DoubleSpinBox_TTS_VITS_PhonemeDuration.setObjectName(u"DoubleSpinBox_TTS_VITS_PhonemeDuration") + self.DoubleSpinBox_TTS_VITS_PhonemeDuration.setMinimumSize(QSize(0, 27)) + self.DoubleSpinBox_TTS_VITS_PhonemeDuration.setStyleSheet(u"QDoubleSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" " background-color: transparent;\n" -" subcontrol-position: top;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"\n" -"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" -" width: 0px;\n" -" " - "height: 0px;\n" -" background-color: transparent;\n" +"QDoubleSpinBox:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QScrollBar::handle:vertical {\n" -" background-color: rgb(90, 90, 90);\n" +"QDoubleSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" "}\n" -"QScrollBar::handle:vertical:hover {\n" -" background-color: rgb(120, 120, 120);\n" +"QDoubleSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" "}\n" "\n" -"\n" -"QScrollBar::horizontal {\n" -" height: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" +"QDoubleSpinBox::down-button {\n" +" /*width: 9px;\n" +" /*height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" "}\n" -"QScrollBar::horizontal:hover {\n" -" background-color: rgb(60, 60, 60);\n" +"QDoubleSpinBox::down-arr" + "ow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" "}\n" "\n" -"QScrollBar::add-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" -"}\n" -"\n" -"QScrollBar::sub-line:horizontal {\n" -" width: 0px;\n" +"}") + + self.horizontalLayout_44.addWidget(self.DoubleSpinBox_TTS_VITS_PhonemeDuration) + + + self.gridLayout_72.addWidget(self.ChildFrame_TTS_VITS_PhonemeDuration, 1, 0, 1, 3) + + + self.verticalLayout_118.addWidget(self.Frame_TTS_VITS_PhonemeDuration) + + self.Frame_TTS_VITS_SpeechRate = QFrame(self.Frame_TTS_VITS_VITSParams_AdvanceSettings) + self.Frame_TTS_VITS_SpeechRate.setObjectName(u"Frame_TTS_VITS_SpeechRate") + self.Frame_TTS_VITS_SpeechRate.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_VITS_SpeechRate.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" -" borde" - "r-width: 0px;\n" -" border-radius: 0px;\n" +" border-width: 0px;\n" " border-style: solid;\n" "}\n" -"\n" -"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" +"}") + self.gridLayout_73 = QGridLayout(self.Frame_TTS_VITS_SpeechRate) + self.gridLayout_73.setSpacing(12) + self.gridLayout_73.setObjectName(u"gridLayout_73") + self.gridLayout_73.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_VITS_SpeechRate = QLabel(self.Frame_TTS_VITS_SpeechRate) + self.Label_TTS_VITS_SpeechRate.setObjectName(u"Label_TTS_VITS_SpeechRate") + sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_SpeechRate.sizePolicy().hasHeightForWidth()) + self.Label_TTS_VITS_SpeechRate.setSizePolicy(sizePolicy5) + self.Label_TTS_VITS_SpeechRate.setStyleSheet(u"QLabel {\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" -"}\n" -"\n" -"QScrollBar::handle:horizontal {\n" -" background-color: rgb(90, 90, 90);\n" +" padding: 0px;\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" -"}\n" -"QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" "}") - self.ScrollArea_Middle_TTS_VITS.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) - self.ScrollArea_Middle_TTS_VITS.setWidgetResizable(True) - self.ScrollArea_Middle_WidgetContents_TTS_VITS = QWidget() - self.ScrollArea_Middle_WidgetContents_TTS_VITS.setObjectName(u"ScrollArea_Middle_WidgetContents_TTS_VITS") - self.ScrollArea_Middle_WidgetContents_TTS_VITS.setGeometry(QRect(0, 0, 591, 1261)) - self.verticalLayout_19 = QVBoxLayout(self.ScrollArea_Middle_WidgetContents_TTS_VITS) - self.verticalLayout_19.setSpacing(12) - self.verticalLayout_19.setObjectName(u"verticalLayout_19") - self.verticalLayout_19.setContentsMargins(12, 12, 12, 12) - self.GroupBox_TTS_VITS_InputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_TTS_VITS) - self.GroupBox_TTS_VITS_InputParams.setObjectName(u"GroupBox_TTS_VITS_InputParams") - self.GroupBox_TTS_VITS_InputParams.setStyleSheet(u"QGroupBox {\n" -" font-size: 15px;\n" -" margin-top: 1.5ex;\n" -" color: rgb(255, 255, 255);\n" + + self.gridLayout_73.addWidget(self.Label_TTS_VITS_SpeechRate, 0, 0, 1, 1) + + self.HorizontalSpacer_TTS_VITS_SpeechRate = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_73.addItem(self.HorizontalSpacer_TTS_VITS_SpeechRate, 0, 1, 1, 1) + + self.Button_TTS_VITS_SpeechRate_Undo = QPushButton(self.Frame_TTS_VITS_SpeechRate) + self.Button_TTS_VITS_SpeechRate_Undo.setObjectName(u"Button_TTS_VITS_SpeechRate_Undo") + self.Button_TTS_VITS_SpeechRate_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_VITS_SpeechRate_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_VITS_SpeechRate_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" -" border-width: 1px;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -" border-color: transparent;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QGroupBox::title {\n" -" left: 9px;\n" -" margin-left: 0px;\n" -" subcontrol-origin: margin;\n" -" subcontrol-position: top left;\n" -" padding: 3px;\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" "}") - self.verticalLayout_120 = QVBoxLayout(self.GroupBox_TTS_VITS_InputParams) - self.verticalLayout_120.setSpacing(0) - self.verticalLayout_120.setObjectName(u"verticalLayout_120") - self.verticalLayout_120.setContentsMargins(0, 12, 0, 12) - self.Frame_TTS_VITS_InputParams_BasicSettings = QFrame(self.GroupBox_TTS_VITS_InputParams) - self.Frame_TTS_VITS_InputParams_BasicSettings.setObjectName(u"Frame_TTS_VITS_InputParams_BasicSettings") - self.verticalLayout_132 = QVBoxLayout(self.Frame_TTS_VITS_InputParams_BasicSettings) - self.verticalLayout_132.setSpacing(0) - self.verticalLayout_132.setObjectName(u"verticalLayout_132") - self.verticalLayout_132.setContentsMargins(0, 0, 0, 0) - self.Frame_TTS_VITS_ConfigPathLoad = QFrame(self.Frame_TTS_VITS_InputParams_BasicSettings) - self.Frame_TTS_VITS_ConfigPathLoad.setObjectName(u"Frame_TTS_VITS_ConfigPathLoad") - self.Frame_TTS_VITS_ConfigPathLoad.setMinimumSize(QSize(0, 105)) - self.Frame_TTS_VITS_ConfigPathLoad.setStyleSheet(u"QFrame {\n" + + self.gridLayout_73.addWidget(self.Button_TTS_VITS_SpeechRate_Undo, 0, 2, 1, 1) + + self.ChildFrame_TTS_VITS_SpeechRate = QFrame(self.Frame_TTS_VITS_SpeechRate) + self.ChildFrame_TTS_VITS_SpeechRate.setObjectName(u"ChildFrame_TTS_VITS_SpeechRate") + sizePolicy5.setHeightForWidth(self.ChildFrame_TTS_VITS_SpeechRate.sizePolicy().hasHeightForWidth()) + self.ChildFrame_TTS_VITS_SpeechRate.setSizePolicy(sizePolicy5) + self.ChildFrame_TTS_VITS_SpeechRate.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" "QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_69 = QGridLayout(self.Frame_TTS_VITS_ConfigPathLoad) - self.gridLayout_69.setSpacing(12) - self.gridLayout_69.setObjectName(u"gridLayout_69") - self.gridLayout_69.setContentsMargins(21, 12, 21, 12) - self.Label_TTS_VITS_ConfigPathLoad = QLabel(self.Frame_TTS_VITS_ConfigPathLoad) - self.Label_TTS_VITS_ConfigPathLoad.setObjectName(u"Label_TTS_VITS_ConfigPathLoad") - sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_ConfigPathLoad.sizePolicy().hasHeightForWidth()) - self.Label_TTS_VITS_ConfigPathLoad.setSizePolicy(sizePolicy5) - self.Label_TTS_VITS_ConfigPathLoad.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" -" padding: 0px;\n" +"}") + self.horizontalLayout_45 = QHBoxLayout(self.ChildFrame_TTS_VITS_SpeechRate) + self.horizontalLayout_45.setSpacing(12) + self.horizontalLayout_45.setObjectName(u"horizontalLayout_45") + self.horizontalLayout_45.setContentsMargins(0, 0, 0, 0) + self.HorizontalSlider_TTS_VITS_SpeechRate = QSlider(self.ChildFrame_TTS_VITS_SpeechRate) + self.HorizontalSlider_TTS_VITS_SpeechRate.setObjectName(u"HorizontalSlider_TTS_VITS_SpeechRate") + self.HorizontalSlider_TTS_VITS_SpeechRate.setMinimumSize(QSize(0, 27)) + self.HorizontalSlider_TTS_VITS_SpeechRate.setStyleSheet(u"QSlider::groove:horizontal {\n" +" height: 1.2px;\n" +" background-color: rgba(201, 210, 222, 123);\n" " border-width: 0px;\n" -" border-radius: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" +"}\n" +"QSlider::groove:horizontal:hover {\n" +" background-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" +"QSlider::handle:horizontal {\n" +" width: 12px;\n" +" height: 12px;\n" +" background-color: rgba(201, 210, 222, 210);\n" +" margin-top: -6px;\n" +" margin-bottom: -6px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" /*border-color: rgba(201, 210, 222, 123);*/\n" +"}\n" +"QSlider::handle:horizontal:hover {\n" +" background-color: rgba(210, 222, 234, 234);\n" +" /*border-color: rgba(201, 210, 222, 210);*/\n" "}") + self.HorizontalSlider_TTS_VITS_SpeechRate.setOrientation(Qt.Horizontal) - self.gridLayout_69.addWidget(self.Label_TTS_VITS_ConfigPathLoad, 0, 0, 1, 1) - - self.HorizontalSpacer_TTS_VITS_ConfigPathLoad = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_69.addItem(self.HorizontalSpacer_TTS_VITS_ConfigPathLoad, 0, 1, 1, 1) + self.horizontalLayout_45.addWidget(self.HorizontalSlider_TTS_VITS_SpeechRate) - self.Button_TTS_VITS_ConfigPathLoad_Undo = QPushButton(self.Frame_TTS_VITS_ConfigPathLoad) - self.Button_TTS_VITS_ConfigPathLoad_Undo.setObjectName(u"Button_TTS_VITS_ConfigPathLoad_Undo") - self.Button_TTS_VITS_ConfigPathLoad_Undo.setMinimumSize(QSize(27, 27)) - self.Button_TTS_VITS_ConfigPathLoad_Undo.setMaximumSize(QSize(27, 27)) - self.Button_TTS_VITS_ConfigPathLoad_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" + self.DoubleSpinBox_TTS_VITS_SpeechRate = QDoubleSpinBox(self.ChildFrame_TTS_VITS_SpeechRate) + self.DoubleSpinBox_TTS_VITS_SpeechRate.setObjectName(u"DoubleSpinBox_TTS_VITS_SpeechRate") + self.DoubleSpinBox_TTS_VITS_SpeechRate.setMinimumSize(QSize(0, 27)) + self.DoubleSpinBox_TTS_VITS_SpeechRate.setStyleSheet(u"QDoubleSpinBox {\n" +" /*font-size: 12px;*/\n" +" text-align: left;\n" +" color: rgb(255, 255, 255);\n" +" selection-background-color: darkgrey;\n" " background-color: transparent;\n" -" padding: 4.5px;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" " border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QPushButton:hover {\n" +"QDoubleSpinBox:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" +"QDoubleSpinBox::up-button {\n" +" /*width: 9px;\n" +" height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: top right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QDoubleSpinBox::up-arrow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"}\n" +"\n" +"QDoubleSpinBox::down-button {\n" +" /*width: 9px;\n" +" /*height: 9px;*/\n" +" subcontrol-origin: padding;\n" +" subcontrol-position: bottom right;\n" +" margin-right: 4.5px;\n" +" border-width: 0px;\n" +"}\n" +"QDoubleSpinBox::down-arr" + "ow {\n" +" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" +"}\n" +"\n" "\n" "QToolTip {\n" " color: rgba(255, 255, 255, 210);\n" @@ -13382,21 +19040,52 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_69.addWidget(self.Button_TTS_VITS_ConfigPathLoad_Undo, 0, 2, 1, 1) + self.horizontalLayout_45.addWidget(self.DoubleSpinBox_TTS_VITS_SpeechRate) - self.LineEdit_TTS_VITS_ConfigPathLoad = LineEditBase(self.Frame_TTS_VITS_ConfigPathLoad) - self.LineEdit_TTS_VITS_ConfigPathLoad.setObjectName(u"LineEdit_TTS_VITS_ConfigPathLoad") - self.LineEdit_TTS_VITS_ConfigPathLoad.setMinimumSize(QSize(0, 27)) - self.gridLayout_69.addWidget(self.LineEdit_TTS_VITS_ConfigPathLoad, 1, 0, 1, 3) + self.gridLayout_73.addWidget(self.ChildFrame_TTS_VITS_SpeechRate, 1, 0, 1, 3) - self.verticalLayout_132.addWidget(self.Frame_TTS_VITS_ConfigPathLoad) + self.verticalLayout_118.addWidget(self.Frame_TTS_VITS_SpeechRate) - self.Frame_TTS_VITS_ModelPathLoad = QFrame(self.Frame_TTS_VITS_InputParams_BasicSettings) - self.Frame_TTS_VITS_ModelPathLoad.setObjectName(u"Frame_TTS_VITS_ModelPathLoad") - self.Frame_TTS_VITS_ModelPathLoad.setMinimumSize(QSize(0, 105)) - self.Frame_TTS_VITS_ModelPathLoad.setStyleSheet(u"QFrame {\n" + + self.verticalLayout_117.addWidget(self.Frame_TTS_VITS_VITSParams_AdvanceSettings) + + + self.verticalLayout_19.addWidget(self.GroupBox_TTS_VITS_VITSParams) + + self.GroupBox_TTS_VITS_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_TTS_VITS) + self.GroupBox_TTS_VITS_OutputParams.setObjectName(u"GroupBox_TTS_VITS_OutputParams") + self.GroupBox_TTS_VITS_OutputParams.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_156 = QVBoxLayout(self.GroupBox_TTS_VITS_OutputParams) + self.verticalLayout_156.setSpacing(0) + self.verticalLayout_156.setObjectName(u"verticalLayout_156") + self.verticalLayout_156.setContentsMargins(0, 12, 0, 12) + self.Frame_TTS_VITS_OutputParams_BasicSettings = QFrame(self.GroupBox_TTS_VITS_OutputParams) + self.Frame_TTS_VITS_OutputParams_BasicSettings.setObjectName(u"Frame_TTS_VITS_OutputParams_BasicSettings") + self.verticalLayout_158 = QVBoxLayout(self.Frame_TTS_VITS_OutputParams_BasicSettings) + self.verticalLayout_158.setSpacing(0) + self.verticalLayout_158.setObjectName(u"verticalLayout_158") + self.verticalLayout_158.setContentsMargins(0, 0, 0, 0) + self.Frame_TTS_VITS_AudioPathSave = QFrame(self.Frame_TTS_VITS_OutputParams_BasicSettings) + self.Frame_TTS_VITS_AudioPathSave.setObjectName(u"Frame_TTS_VITS_AudioPathSave") + self.Frame_TTS_VITS_AudioPathSave.setMinimumSize(QSize(0, 105)) + self.Frame_TTS_VITS_AudioPathSave.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 0px;\n" @@ -13405,15 +19094,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " background-color: rgba(33, 33, 33, 99);\n" "}") - self.gridLayout_70 = QGridLayout(self.Frame_TTS_VITS_ModelPathLoad) - self.gridLayout_70.setSpacing(12) - self.gridLayout_70.setObjectName(u"gridLayout_70") - self.gridLayout_70.setContentsMargins(21, 12, 21, 12) - self.Label_TTS_VITS_ModelPathLoad = QLabel(self.Frame_TTS_VITS_ModelPathLoad) - self.Label_TTS_VITS_ModelPathLoad.setObjectName(u"Label_TTS_VITS_ModelPathLoad") - sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_ModelPathLoad.sizePolicy().hasHeightForWidth()) - self.Label_TTS_VITS_ModelPathLoad.setSizePolicy(sizePolicy5) - self.Label_TTS_VITS_ModelPathLoad.setStyleSheet(u"QLabel {\n" + self.gridLayout_74 = QGridLayout(self.Frame_TTS_VITS_AudioPathSave) + self.gridLayout_74.setSpacing(12) + self.gridLayout_74.setObjectName(u"gridLayout_74") + self.gridLayout_74.setContentsMargins(21, 12, 21, 12) + self.Label_TTS_VITS_AudioPathSave = QLabel(self.Frame_TTS_VITS_AudioPathSave) + self.Label_TTS_VITS_AudioPathSave.setObjectName(u"Label_TTS_VITS_AudioPathSave") + sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_AudioPathSave.sizePolicy().hasHeightForWidth()) + self.Label_TTS_VITS_AudioPathSave.setSizePolicy(sizePolicy5) + self.Label_TTS_VITS_AudioPathSave.setStyleSheet(u"QLabel {\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -13423,17 +19112,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_70.addWidget(self.Label_TTS_VITS_ModelPathLoad, 0, 0, 1, 1) + self.gridLayout_74.addWidget(self.Label_TTS_VITS_AudioPathSave, 0, 0, 1, 1) - self.HorizontalSpacer_TTS_VITS_ModelPathLoad = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.HorizontalSpacer_TTS_VITS_AudioPathSave = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_70.addItem(self.HorizontalSpacer_TTS_VITS_ModelPathLoad, 0, 1, 1, 1) + self.gridLayout_74.addItem(self.HorizontalSpacer_TTS_VITS_AudioPathSave, 0, 1, 1, 1) - self.Button_TTS_VITS_ModelPathLoad_Undo = QPushButton(self.Frame_TTS_VITS_ModelPathLoad) - self.Button_TTS_VITS_ModelPathLoad_Undo.setObjectName(u"Button_TTS_VITS_ModelPathLoad_Undo") - self.Button_TTS_VITS_ModelPathLoad_Undo.setMinimumSize(QSize(27, 27)) - self.Button_TTS_VITS_ModelPathLoad_Undo.setMaximumSize(QSize(27, 27)) - self.Button_TTS_VITS_ModelPathLoad_Undo.setStyleSheet(u"QPushButton {\n" + self.Button_TTS_VITS_AudioPathSave_Undo = QPushButton(self.Frame_TTS_VITS_AudioPathSave) + self.Button_TTS_VITS_AudioPathSave_Undo.setObjectName(u"Button_TTS_VITS_AudioPathSave_Undo") + self.Button_TTS_VITS_AudioPathSave_Undo.setMinimumSize(QSize(27, 27)) + self.Button_TTS_VITS_AudioPathSave_Undo.setMaximumSize(QSize(27, 27)) + self.Button_TTS_VITS_AudioPathSave_Undo.setStyleSheet(u"QPushButton {\n" " image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" " padding: 4.5px;\n" @@ -13454,104 +19143,57 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_70.addWidget(self.Button_TTS_VITS_ModelPathLoad_Undo, 0, 2, 1, 1) + self.gridLayout_74.addWidget(self.Button_TTS_VITS_AudioPathSave_Undo, 0, 2, 1, 1) - self.LineEdit_TTS_VITS_ModelPathLoad = LineEditBase(self.Frame_TTS_VITS_ModelPathLoad) - self.LineEdit_TTS_VITS_ModelPathLoad.setObjectName(u"LineEdit_TTS_VITS_ModelPathLoad") - self.LineEdit_TTS_VITS_ModelPathLoad.setMinimumSize(QSize(0, 27)) + self.LineEdit_TTS_VITS_AudioPathSave = LineEditBase(self.Frame_TTS_VITS_AudioPathSave) + self.LineEdit_TTS_VITS_AudioPathSave.setObjectName(u"LineEdit_TTS_VITS_AudioPathSave") + self.LineEdit_TTS_VITS_AudioPathSave.setMinimumSize(QSize(0, 27)) - self.gridLayout_70.addWidget(self.LineEdit_TTS_VITS_ModelPathLoad, 1, 0, 1, 3) + self.gridLayout_74.addWidget(self.LineEdit_TTS_VITS_AudioPathSave, 1, 0, 1, 3) - self.verticalLayout_132.addWidget(self.Frame_TTS_VITS_ModelPathLoad) + self.verticalLayout_158.addWidget(self.Frame_TTS_VITS_AudioPathSave) - self.verticalLayout_120.addWidget(self.Frame_TTS_VITS_InputParams_BasicSettings) + self.verticalLayout_156.addWidget(self.Frame_TTS_VITS_OutputParams_BasicSettings) - self.verticalLayout_19.addWidget(self.GroupBox_TTS_VITS_InputParams) + self.verticalLayout_19.addWidget(self.GroupBox_TTS_VITS_OutputParams) - self.GroupBox_TTS_VITS_VITSParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_TTS_VITS) - self.GroupBox_TTS_VITS_VITSParams.setObjectName(u"GroupBox_TTS_VITS_VITSParams") - self.GroupBox_TTS_VITS_VITSParams.setStyleSheet(u"QGroupBox {\n" -" font-size: 15px;\n" -" margin-top: 1.5ex;\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 1px;\n" -" border-style: solid;\n" -" border-color: transparent;\n" -"}\n" -"QGroupBox::title {\n" -" left: 9px;\n" -" margin-left: 0px;\n" -" subcontrol-origin: margin;\n" -" subcontrol-position: top left;\n" -" padding: 3px;\n" -"}") - self.verticalLayout_117 = QVBoxLayout(self.GroupBox_TTS_VITS_VITSParams) - self.verticalLayout_117.setSpacing(0) - self.verticalLayout_117.setObjectName(u"verticalLayout_117") - self.verticalLayout_117.setContentsMargins(0, 12, 0, 12) - self.Frame_TTS_VITS_VITSParams_BasicSettings = QFrame(self.GroupBox_TTS_VITS_VITSParams) - self.Frame_TTS_VITS_VITSParams_BasicSettings.setObjectName(u"Frame_TTS_VITS_VITSParams_BasicSettings") - self.verticalLayout_131 = QVBoxLayout(self.Frame_TTS_VITS_VITSParams_BasicSettings) - self.verticalLayout_131.setSpacing(0) - self.verticalLayout_131.setObjectName(u"verticalLayout_131") - self.verticalLayout_131.setContentsMargins(0, 0, 0, 0) - self.Frame_TTS_VITS_Text = QFrame(self.Frame_TTS_VITS_VITSParams_BasicSettings) - self.Frame_TTS_VITS_Text.setObjectName(u"Frame_TTS_VITS_Text") - self.Frame_TTS_VITS_Text.setMinimumSize(QSize(0, 222)) - self.Frame_TTS_VITS_Text.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" + self.VerticalSpacer_TTS_VITS = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_19.addItem(self.VerticalSpacer_TTS_VITS) + + self.ScrollArea_Middle_TTS_VITS.setWidget(self.ScrollArea_Middle_WidgetContents_TTS_VITS) + + self.gridLayout_20.addWidget(self.ScrollArea_Middle_TTS_VITS, 0, 1, 1, 1) + + self.Widget_Right_TTS_VITS = QWidget(self.Subpage_TTS_VITS) + self.Widget_Right_TTS_VITS.setObjectName(u"Widget_Right_TTS_VITS") + self.Widget_Right_TTS_VITS.setStyleSheet(u"QWidget {\n" +" background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.verticalLayout_98 = QVBoxLayout(self.Frame_TTS_VITS_Text) - self.verticalLayout_98.setSpacing(12) - self.verticalLayout_98.setObjectName(u"verticalLayout_98") - self.verticalLayout_98.setContentsMargins(21, 12, 21, 12) - self.Label_TTS_VITS_Text = QLabel(self.Frame_TTS_VITS_Text) - self.Label_TTS_VITS_Text.setObjectName(u"Label_TTS_VITS_Text") - sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_Text.sizePolicy().hasHeightForWidth()) - self.Label_TTS_VITS_Text.setSizePolicy(sizePolicy5) - self.Label_TTS_VITS_Text.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" -" background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" +"QWidget:hover {\n" "}") - - self.verticalLayout_98.addWidget(self.Label_TTS_VITS_Text) - - self.PlainTextEdit_TTS_VITS_Text = QPlainTextEdit(self.Frame_TTS_VITS_Text) - self.PlainTextEdit_TTS_VITS_Text.setObjectName(u"PlainTextEdit_TTS_VITS_Text") - sizePolicy3.setHeightForWidth(self.PlainTextEdit_TTS_VITS_Text.sizePolicy().hasHeightForWidth()) - self.PlainTextEdit_TTS_VITS_Text.setSizePolicy(sizePolicy3) - self.PlainTextEdit_TTS_VITS_Text.setStyleSheet(u"QPlainTextEdit {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" + self.gridLayout_18 = QGridLayout(self.Widget_Right_TTS_VITS) + self.gridLayout_18.setSpacing(12) + self.gridLayout_18.setObjectName(u"gridLayout_18") + self.gridLayout_18.setContentsMargins(12, 12, 12, 12) + self.TextBrowser_Params_TTS_VITS = QTextBrowser(self.Widget_Right_TTS_VITS) + self.TextBrowser_Params_TTS_VITS.setObjectName(u"TextBrowser_Params_TTS_VITS") + sizePolicy1.setHeightForWidth(self.TextBrowser_Params_TTS_VITS.sizePolicy().hasHeightForWidth()) + self.TextBrowser_Params_TTS_VITS.setSizePolicy(sizePolicy1) + self.TextBrowser_Params_TTS_VITS.setStyleSheet(u"QTextBrowser {\n" +" background-color: rgba(33, 33, 33, 99);\n" +" /*padding-top: 1.5px;*/\n" +" /*padding-bottom: 1.5px;*/\n" +" padding-left: 15px;\n" " padding-right: 6px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +" border-width: 1px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QPlainTextEdit:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +" border-color:transparent;\n" "}\n" "\n" "\n" @@ -13565,7 +19207,7 @@ def setupUi(self, MainWindow): " margin: 0px;\n" "}\n" "QScrollBar::vertical:hover {\n" -" background-color: rgb(60, 60, 60);\n" +" background-color: rgba(33, 33, 33, 99);\n" "}\n" "\n" "QScrollBar::add-line:vertical {\n" @@ -13576,8 +19218,7 @@ def setupUi(self, MainWindow): " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" -"" - "}\n" +"}\n" "\n" "QScrollBar::sub-line:vertical {\n" " height: 0px;\n" @@ -13586,7 +19227,8 @@ def setupUi(self, MainWindow): " subcontrol-origin: margin;\n" " border-width: 0px;\n" " border-radius: 0px;\n" -" border-style: solid;\n" +" bord" + "er-style: solid;\n" "}\n" "\n" "QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" @@ -13621,8 +19263,7 @@ def setupUi(self, MainWindow): "\n" "QScrollBar::add-line:horizontal {\n" " width: 0px;\n" -" background-color" - ": transparent;\n" +" background-color: transparent;\n" " subcontrol-position: left;\n" " subcontrol-origin: margin;\n" " border-width: 0px;\n" @@ -13631,7 +19272,8 @@ def setupUi(self, MainWindow): "}\n" "\n" "QScrollBar::sub-line:horizontal {\n" -" width: 0px;\n" +" width: 0px" + ";\n" " background-color: transparent;\n" " subcontrol-position: right;\n" " subcontrol-origin: margin;\n" @@ -13656,62 +19298,22 @@ def setupUi(self, MainWindow): " background-color: rgb(120, 120, 120);\n" "}") - self.verticalLayout_98.addWidget(self.PlainTextEdit_TTS_VITS_Text) - - - self.verticalLayout_131.addWidget(self.Frame_TTS_VITS_Text) - - self.Frame_TTS_VITS_Language = QFrame(self.Frame_TTS_VITS_VITSParams_BasicSettings) - self.Frame_TTS_VITS_Language.setObjectName(u"Frame_TTS_VITS_Language") - self.Frame_TTS_VITS_Language.setMinimumSize(QSize(0, 105)) - self.Frame_TTS_VITS_Language.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_79 = QGridLayout(self.Frame_TTS_VITS_Language) - self.gridLayout_79.setSpacing(12) - self.gridLayout_79.setObjectName(u"gridLayout_79") - self.gridLayout_79.setContentsMargins(21, 12, 21, 12) - self.Label_TTS_VITS_Language = QLabel(self.Frame_TTS_VITS_Language) - self.Label_TTS_VITS_Language.setObjectName(u"Label_TTS_VITS_Language") - sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_Language.sizePolicy().hasHeightForWidth()) - self.Label_TTS_VITS_Language.setSizePolicy(sizePolicy5) - self.Label_TTS_VITS_Language.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" -" background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}") - - self.gridLayout_79.addWidget(self.Label_TTS_VITS_Language, 0, 0, 1, 1) - - self.HorizontalSpacer_TTS_VITS_Language = QSpacerItem(415, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_79.addItem(self.HorizontalSpacer_TTS_VITS_Language, 0, 1, 1, 1) + self.gridLayout_18.addWidget(self.TextBrowser_Params_TTS_VITS, 0, 0, 1, 1) - self.Button_TTS_VITS_Language_Undo = QPushButton(self.Frame_TTS_VITS_Language) - self.Button_TTS_VITS_Language_Undo.setObjectName(u"Button_TTS_VITS_Language_Undo") - self.Button_TTS_VITS_Language_Undo.setMinimumSize(QSize(27, 27)) - self.Button_TTS_VITS_Language_Undo.setMaximumSize(QSize(27, 27)) - self.Button_TTS_VITS_Language_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" + self.Button_CheckOutput_TTS_VITS = QPushButton(self.Widget_Right_TTS_VITS) + self.Button_CheckOutput_TTS_VITS.setObjectName(u"Button_CheckOutput_TTS_VITS") + self.Button_CheckOutput_TTS_VITS.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" font-size: 12px;\n" " background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" +" padding: 9.9px;\n" +" border-width: 1.5px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" +" border-color: rgb(90, 90, 90);\n" "}\n" "QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +" border-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" @@ -13722,284 +19324,336 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_79.addWidget(self.Button_TTS_VITS_Language_Undo, 0, 2, 1, 1) + self.gridLayout_18.addWidget(self.Button_CheckOutput_TTS_VITS, 1, 0, 1, 1) - self.ComboBox_TTS_VITS_Language = QComboBox(self.Frame_TTS_VITS_Language) - self.ComboBox_TTS_VITS_Language.setObjectName(u"ComboBox_TTS_VITS_Language") - self.ComboBox_TTS_VITS_Language.setMinimumSize(QSize(0, 27)) - self.ComboBox_TTS_VITS_Language.setStyleSheet(u"QComboBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" + + self.gridLayout_20.addWidget(self.Widget_Right_TTS_VITS, 0, 2, 1, 1) + + self.ProgressBar_TTS_VITS = QProgressBar(self.Subpage_TTS_VITS) + self.ProgressBar_TTS_VITS.setObjectName(u"ProgressBar_TTS_VITS") + self.ProgressBar_TTS_VITS.setMinimumSize(QSize(0, 30)) + self.ProgressBar_TTS_VITS.setStyleSheet(u"QProgressBar {\n" +" text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" background-color: rgb(60, 60, 60);\n" +" padding: 0px;\n" +" border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QComboBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" -"}\n" -"\n" -"QComboBox::drop-down {\n" -" /*width: 12px;\n" -" height: 12px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: right;\n" -" margin-right: 6px;\n" -" border: none;\n" -"}\n" -"\n" -"QComboBox::down-arrow {\n" -" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" -"}\n" -"QComboBox::down-arrow:on {\n" -" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" "}\n" "\n" -"\n" -"QComboBox QAbstractItemView {\n" -" outline: none;\n" -" background-color: transparent;\n" -" border-width: 1.2px;\n" +"QProgressBar:chunk {\n" +" border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"\n" -"QCom" - "boBox QAbstractItemView::item {\n" -" /* height: 30px; */\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border: none;\n" -"}\n" -"QComboBox QAbstractItemView::item:hover {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"QComboBox QAbstractItemView::item:selected {\n" -" background-color: rgba(120, 120, 120, 120);\n" +" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" +"}") + self.ProgressBar_TTS_VITS.setValue(0) + self.ProgressBar_TTS_VITS.setTextVisible(False) + self.horizontalLayout_48 = QHBoxLayout(self.ProgressBar_TTS_VITS) + self.horizontalLayout_48.setSpacing(0) + self.horizontalLayout_48.setObjectName(u"horizontalLayout_48") + self.horizontalLayout_48.setContentsMargins(0, 0, 0, 0) + self.StackedWidget_TTS_VITS = QStackedWidget(self.ProgressBar_TTS_VITS) + self.StackedWidget_TTS_VITS.setObjectName(u"StackedWidget_TTS_VITS") + self.StackedWidget_TTS_VITS.setMaximumSize(QSize(16777215, 30)) + self.StackedWidget_TTS_VITS.setStyleSheet(u"QWidget {\n" +" background-color: rgba(90, 90, 90, 45);\n" "}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" -" width: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" +"QWidget:hover {\n" +" background-color: rgba(120, 120, 120, 60);\n" +"}") + self.Page_TTS_VITS_Execute = QWidget() + self.Page_TTS_VITS_Execute.setObjectName(u"Page_TTS_VITS_Execute") + self.verticalLayout_112 = QVBoxLayout(self.Page_TTS_VITS_Execute) + self.verticalLayout_112.setSpacing(0) + self.verticalLayout_112.setObjectName(u"verticalLayout_112") + self.verticalLayout_112.setContentsMargins(0, 0, 0, 0) + self.Button_TTS_VITS_Execute = QPushButton(self.Page_TTS_VITS_Execute) + self.Button_TTS_VITS_Execute.setObjectName(u"Button_TTS_VITS_Execute") + sizePolicy3.setHeightForWidth(self.Button_TTS_VITS_Execute.sizePolicy().hasHeightForWidth()) + self.Button_TTS_VITS_Execute.setSizePolicy(sizePolicy3) + self.Button_TTS_VITS_Execute.setMinimumSize(QSize(0, 30)) + self.Button_TTS_VITS_Execute.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" +" border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" +" border-color: rgb(90, 90, 90);\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" -" background-color: rgb(60, 60, 60);\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -"" - " border-style: solid;\n" -"}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" -" background-color: transparent;\n" +"}") + + self.verticalLayout_112.addWidget(self.Button_TTS_VITS_Execute) + + self.StackedWidget_TTS_VITS.addWidget(self.Page_TTS_VITS_Execute) + self.Page_TTS_VITS_Terminate = QWidget() + self.Page_TTS_VITS_Terminate.setObjectName(u"Page_TTS_VITS_Terminate") + self.verticalLayout_113 = QVBoxLayout(self.Page_TTS_VITS_Terminate) + self.verticalLayout_113.setSpacing(0) + self.verticalLayout_113.setObjectName(u"verticalLayout_113") + self.verticalLayout_113.setContentsMargins(0, 0, 0, 0) + self.Button_TTS_VITS_Terminate = QPushButton(self.Page_TTS_VITS_Terminate) + self.Button_TTS_VITS_Terminate.setObjectName(u"Button_TTS_VITS_Terminate") + sizePolicy3.setHeightForWidth(self.Button_TTS_VITS_Terminate.sizePolicy().hasHeightForWidth()) + self.Button_TTS_VITS_Terminate.setSizePolicy(sizePolicy3) + self.Button_TTS_VITS_Terminate.setMinimumSize(QSize(0, 30)) + self.Button_TTS_VITS_Terminate.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" color: rgba(255, 255, 255, 210);\n" +" /*background-color: rgba(90, 90, 90, 45);*/\n" +" padding: 0px;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" -" background-color: rgb(120, 120, 120);\n" +"QPushButton:hover {\n" +" color: rgba(255, 255, 255, 240);\n" +" /*background-color: rgba(120, 120, 120, 60);*/\n" "}\n" "\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" -" height: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" -" border-radius: 6px;\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" " border-style: solid;\n" -" borde" - "r-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" -" background-color: rgb(60, 60, 60);\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" +"}") + + self.verticalLayout_113.addWidget(self.Button_TTS_VITS_Terminate) + + self.StackedWidget_TTS_VITS.addWidget(self.Page_TTS_VITS_Terminate) + + self.horizontalLayout_48.addWidget(self.StackedWidget_TTS_VITS) + + + self.gridLayout_20.addWidget(self.ProgressBar_TTS_VITS, 1, 0, 1, 3) + + self.gridLayout_20.setColumnStretch(0, 3) + self.gridLayout_20.setColumnStretch(1, 10) + self.gridLayout_20.setColumnStretch(2, 7) + self.StackedWidget_Pages_TTS.addWidget(self.Subpage_TTS_VITS) + + self.verticalLayout_42.addWidget(self.StackedWidget_Pages_TTS) + + self.StackedWidget_Pages.addWidget(self.Page_TTS) + self.Page_Settings = QWidget() + self.Page_Settings.setObjectName(u"Page_Settings") + self.verticalLayout_78 = QVBoxLayout(self.Page_Settings) + self.verticalLayout_78.setSpacing(21) + self.verticalLayout_78.setObjectName(u"verticalLayout_78") + self.verticalLayout_78.setContentsMargins(21, 12, 21, 12) + self.Frame_Settings_Top = QFrame(self.Page_Settings) + self.Frame_Settings_Top.setObjectName(u"Frame_Settings_Top") + self.Frame_Settings_Top.setMinimumSize(QSize(0, 60)) + self.Frame_Settings_Top.setStyleSheet(u"QFrame {\n" +" background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" -" width: 0px;\n" +"}") + self.horizontalLayout_4 = QHBoxLayout(self.Frame_Settings_Top) + self.horizontalLayout_4.setSpacing(0) + self.horizontalLayout_4.setObjectName(u"horizontalLayout_4") + self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0) + self.ToolButton_Settings_Title_Client = QToolButton(self.Frame_Settings_Top) + self.ToolButton_Settings_Title_Client.setObjectName(u"ToolButton_Settings_Title_Client") + sizePolicy1.setHeightForWidth(self.ToolButton_Settings_Title_Client.sizePolicy().hasHeightForWidth()) + self.ToolButton_Settings_Title_Client.setSizePolicy(sizePolicy1) + self.ToolButton_Settings_Title_Client.setStyleSheet(u"QToolButton {\n" +" font-size: 24px;\n" +" /*text-align: center;*/\n" +" color: rgba(201, 210, 222, 210);\n" +" padding-left: 12px;\n" +" padding-right: 12px;\n" " background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" " border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" +"QToolButton:hover {\n" +" color: rgba(210, 222, 234, 234);\n" " background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 123);\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" +"QToolButton:checked {\n" +" color: rgba(210, 222, 234, 255);\n" " background-color: transparent;\n" -" " - "border-width: 0px;\n" -" border-radius: 0px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" " border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 210);\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}\n" -"\n" "\n" "QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" +" color:" + " rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" " border-width: 0px;\n" " border-style: solid;\n" "}") - self.gridLayout_79.addWidget(self.ComboBox_TTS_VITS_Language, 1, 0, 1, 3) - - - self.verticalLayout_131.addWidget(self.Frame_TTS_VITS_Language) + self.horizontalLayout_4.addWidget(self.ToolButton_Settings_Title_Client) - self.Frame_TTS_VITS_Speaker = QFrame(self.Frame_TTS_VITS_VITSParams_BasicSettings) - self.Frame_TTS_VITS_Speaker.setObjectName(u"Frame_TTS_VITS_Speaker") - self.Frame_TTS_VITS_Speaker.setMinimumSize(QSize(0, 105)) - self.Frame_TTS_VITS_Speaker.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" + self.ToolButton_Settings_Title_Tools = QToolButton(self.Frame_Settings_Top) + self.ToolButton_Settings_Title_Tools.setObjectName(u"ToolButton_Settings_Title_Tools") + sizePolicy1.setHeightForWidth(self.ToolButton_Settings_Title_Tools.sizePolicy().hasHeightForWidth()) + self.ToolButton_Settings_Title_Tools.setSizePolicy(sizePolicy1) + self.ToolButton_Settings_Title_Tools.setStyleSheet(u"QToolButton {\n" +" font-size: 24px;\n" +" /*text-align: center;*/\n" +" color: rgba(201, 210, 222, 210);\n" +" padding-left: 12px;\n" +" padding-right: 12px;\n" " background-color: transparent;\n" -" border-width: 0px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" " border-style: solid;\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" "}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.verticalLayout_104 = QVBoxLayout(self.Frame_TTS_VITS_Speaker) - self.verticalLayout_104.setSpacing(12) - self.verticalLayout_104.setObjectName(u"verticalLayout_104") - self.verticalLayout_104.setContentsMargins(21, 12, 21, 12) - self.Label_TTS_VITS_Speaker = QLabel(self.Frame_TTS_VITS_Speaker) - self.Label_TTS_VITS_Speaker.setObjectName(u"Label_TTS_VITS_Speaker") - sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_Speaker.sizePolicy().hasHeightForWidth()) - self.Label_TTS_VITS_Speaker.setSizePolicy(sizePolicy5) - self.Label_TTS_VITS_Speaker.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" +"QToolButton:hover {\n" +" color: rgba(210, 222, 234, 234);\n" " background-color: transparent;\n" -" padding: 0px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 123);\n" +"}\n" +"QToolButton:checked {\n" +" color: rgba(210, 222, 234, 255);\n" +" background-color: transparent;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" +" border-style: solid;\n" +" border-bottom-color: rgba(120, 180, 240, 210);\n" +"}\n" +"\n" +"QToolTip {\n" +" color:" + " rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" "}") - self.verticalLayout_104.addWidget(self.Label_TTS_VITS_Speaker) + self.horizontalLayout_4.addWidget(self.ToolButton_Settings_Title_Tools) - self.ComboBox_TTS_VITS_Speaker = QComboBox(self.Frame_TTS_VITS_Speaker) - self.ComboBox_TTS_VITS_Speaker.setObjectName(u"ComboBox_TTS_VITS_Speaker") - self.ComboBox_TTS_VITS_Speaker.setMinimumSize(QSize(0, 27)) - self.ComboBox_TTS_VITS_Speaker.setStyleSheet(u"QComboBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" + self.Frame_Settings_Title_Spacer = QLabel(self.Frame_Settings_Top) + self.Frame_Settings_Title_Spacer.setObjectName(u"Frame_Settings_Title_Spacer") + sizePolicy4.setHeightForWidth(self.Frame_Settings_Title_Spacer.sizePolicy().hasHeightForWidth()) + self.Frame_Settings_Title_Spacer.setSizePolicy(sizePolicy4) + self.Frame_Settings_Title_Spacer.setStyleSheet(u"QLabel {\n" +" font-size: 24px;\n" +" /*text-align: center;\n" +" color: rgb(255, 255, 255);\n" +" padding-left: 12px;\n" +" padding-right: 12px;*/\n" " background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QComboBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}") + + self.horizontalLayout_4.addWidget(self.Frame_Settings_Title_Spacer) + + + self.verticalLayout_78.addWidget(self.Frame_Settings_Top) + + self.StackedWidget_Pages_Settings = QStackedWidget(self.Page_Settings) + self.StackedWidget_Pages_Settings.setObjectName(u"StackedWidget_Pages_Settings") + self.StackedWidget_Pages_Settings.setStyleSheet(u"QWidget {\n" +" background-color: transparent;\n" "}\n" "\n" -"QComboBox::drop-down {\n" -" /*width: 12px;\n" -" height: 12px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: right;\n" -" margin-right: 6px;\n" -" border: none;\n" -"}\n" "\n" -"QComboBox::down-arrow {\n" -" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" +"/*\n" +"QTabWidget {\n" +" background-color: transparent;\n" "}\n" -"QComboBox::down-arrow:on {\n" -" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" +"QTabWidget::tab-bar {\n" +"}\n" +"QTabWidget::pane {\n" +" border-width: 0px;\n" +" border-style: solid;\n" "}\n" "\n" "\n" -"QComboBox QAbstractItemView {\n" -" outline: none;\n" +"QTabBar::tab {\n" +" font-size: 18px;\n" +" font-weight: 420;\n" +" spacing: 12px;\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +" padding: 12px;\n" +" border-top-width: 0px;\n" +" border-right-width: 0px;\n" +" border-bottom-width: 3px;\n" +" border-left-width: 0px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" +" border-bottom-color: rgba(123, 123, 123, 123);\n" +"}\n" +"QTabBar::tab:selected {\n" +" color: rgba(255, 255, 255, 255);\n" +"}\n" +"QTabBar::tab:hover:!selected {\n" "}\n" "\n" -"QCom" - "boBox QAbstractItemView::item {\n" -" /* height: 30px; */\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border: none;\n" +"\n" +"QTabBar QToolButton {\n" "}\n" -"QComboBox QAbstractItemView::item:hover {\n" -" background-color: rgba(120, 120, 120, 120);\n" +"QTabBar QToolButton:hover {\n" "}\n" -"QComboBox QAbstractItemView::item:selected {\n" -" background-color: rgba(120, 120, 120, 120);\n" +"*/") + self.SubPage_Settings_Client = QWidget() + self.SubPage_Settings_Client.setObjectName(u"SubPage_Settings_Client") + self.gridLayout_80 = QGridLayout(self.SubPage_Settings_Client) + self.gridLayout_80.setSpacing(12) + self.gridLayout_80.setObjectName(u"gridLayout_80") + self.gridLayout_80.setContentsMargins(0, 0, 0, 0) + self.ScrollArea_Settings_Client = QScrollArea(self.SubPage_Settings_Client) + self.ScrollArea_Settings_Client.setObjectName(u"ScrollArea_Settings_Client") + self.ScrollArea_Settings_Client.setStyleSheet(u"QScrollArea {\n" +" background-color: rgba(36, 36, 36, 123);\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}\n" +"QScrollArea:hover {\n" "}\n" "\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" +"QScrollBar::vertical {\n" " width: 9px;\n" " background-color: rgb(45, 45, 45);\n" " border-width: 1px;\n" @@ -14008,63 +19662,62 @@ def setupUi(self, MainWindow): " border-color: transparent;\n" " margin: 0px;\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" +"QScrollBar::vertical:hover {\n" " background-color: rgb(60, 60, 60);\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" +"QScrollBar::add-line:vertical {\n" " height: 0px;\n" " background-color: transparent;\n" -" subcontrol-position: left;\n" +" subcontrol-position: bottom;\n" " subcontrol-origin: margin;\n" " border-width: 0px;\n" " border-radius: 0px;\n" -"" - " border-style: solid;\n" +" border-style: solid;\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" +"QScrollBar::sub-line:vertical {\n" " height: 0px;\n" " background-color: transparent;\n" -" subcontrol-position: right;\n" +" subcontrol-position: top;\n" " subcontrol-origin: margin;\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" +"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" " width: 0px;\n" -" height: 0px;\n" +" " + "height: 0px;\n" " background-color: transparent;\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" -" background-color: transparent;\n" +"QScrollBar::handle:vertical {\n" +" background-color: rgb(90, 90, 90);\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" +"QScrollBar::handle:vertical:hover {\n" " background-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" +"QScrollBar::horizontal {\n" " height: 9px;\n" " background-color: rgb(45, 45, 45);\n" " border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" borde" - "r-color: transparent;\n" +" border-color: transparent;\n" " margin: 0px;\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" +"QScrollBar::horizontal:hover {\n" " background-color: rgb(60, 60, 60);\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" +"QScrollBar::add-line:horizontal {\n" " width: 0px;\n" " background-color: transparent;\n" " subcontrol-position: left;\n" @@ -14074,222 +19727,102 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" +"QScrollBar::sub-line:horizontal {\n" " width: 0px;\n" " background-color: transparent;\n" " subcontrol-position: right;\n" " subcontrol-origin: margin;\n" -" border-width: 0px;\n" +" borde" + "r-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {\n" " width: 0px;\n" " height: 0px;\n" " background-color: transparent;\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" -" background-color: transparent;\n" -" " - "border-width: 0px;\n" +"QScrollBar::handle:horizontal {\n" +" background-color: rgb(90, 90, 90);\n" +" border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" +"QScrollBar::handle:horizontal:hover {\n" " background-color: rgb(120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - - self.verticalLayout_104.addWidget(self.ComboBox_TTS_VITS_Speaker) - - - self.verticalLayout_131.addWidget(self.Frame_TTS_VITS_Speaker) - - - self.verticalLayout_117.addWidget(self.Frame_TTS_VITS_VITSParams_BasicSettings) - - self.CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings = QCheckBox(self.GroupBox_TTS_VITS_VITSParams) - self.CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings.setObjectName(u"CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings") - self.CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings.setStyleSheet(u"QCheckBox {\n" -" font-size: 12px;\n" -" font-weight: 630;\n" -" spacing: 12px;\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" padding-top: 9px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" -"}\n" -"\n" -"QCheckBox::indicator {\n" -" width: 12px;\n" -" height: 12px;\n" -" background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"QCheckBox::indicator:hover {\n" -" background-color: transparent;\n" -"}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/RightCaret.png);\n" -"}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/DownCaret.png);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" "}") - - self.verticalLayout_117.addWidget(self.CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings) - - self.Frame_TTS_VITS_VITSParams_AdvanceSettings = QFrame(self.GroupBox_TTS_VITS_VITSParams) - self.Frame_TTS_VITS_VITSParams_AdvanceSettings.setObjectName(u"Frame_TTS_VITS_VITSParams_AdvanceSettings") - self.verticalLayout_118 = QVBoxLayout(self.Frame_TTS_VITS_VITSParams_AdvanceSettings) - self.verticalLayout_118.setSpacing(0) - self.verticalLayout_118.setObjectName(u"verticalLayout_118") - self.verticalLayout_118.setContentsMargins(0, 0, 0, 0) - self.Frame_TTS_VITS_EmotionStrength = QFrame(self.Frame_TTS_VITS_VITSParams_AdvanceSettings) - self.Frame_TTS_VITS_EmotionStrength.setObjectName(u"Frame_TTS_VITS_EmotionStrength") - self.Frame_TTS_VITS_EmotionStrength.setMinimumSize(QSize(0, 105)) - self.Frame_TTS_VITS_EmotionStrength.setStyleSheet(u"QFrame {\n" + self.ScrollArea_Settings_Client.setWidgetResizable(True) + self.ScrollAreaWidgetContents_Settings_Client = QWidget() + self.ScrollAreaWidgetContents_Settings_Client.setObjectName(u"ScrollAreaWidgetContents_Settings_Client") + self.ScrollAreaWidgetContents_Settings_Client.setGeometry(QRect(0, 0, 1028, 561)) + self.verticalLayout_106 = QVBoxLayout(self.ScrollAreaWidgetContents_Settings_Client) + self.verticalLayout_106.setSpacing(0) + self.verticalLayout_106.setObjectName(u"verticalLayout_106") + self.verticalLayout_106.setContentsMargins(0, 0, 0, 0) + self.GroupBox_Settings_Client_Outlook = QGroupBox(self.ScrollAreaWidgetContents_Settings_Client) + self.GroupBox_Settings_Client_Outlook.setObjectName(u"GroupBox_Settings_Client_Outlook") + self.GroupBox_Settings_Client_Outlook.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_71 = QGridLayout(self.Frame_TTS_VITS_EmotionStrength) - self.gridLayout_71.setSpacing(12) - self.gridLayout_71.setObjectName(u"gridLayout_71") - self.gridLayout_71.setContentsMargins(21, 12, 21, 12) - self.Label_TTS_VITS_EmotionStrength = QLabel(self.Frame_TTS_VITS_EmotionStrength) - self.Label_TTS_VITS_EmotionStrength.setObjectName(u"Label_TTS_VITS_EmotionStrength") - sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_EmotionStrength.sizePolicy().hasHeightForWidth()) - self.Label_TTS_VITS_EmotionStrength.setSizePolicy(sizePolicy5) - self.Label_TTS_VITS_EmotionStrength.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" -" background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}") - - self.gridLayout_71.addWidget(self.Label_TTS_VITS_EmotionStrength, 0, 0, 1, 1) - - self.HorizontalSpacer_TTS_VITS_EmotionStrength = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_71.addItem(self.HorizontalSpacer_TTS_VITS_EmotionStrength, 0, 1, 1, 1) - - self.Button_TTS_VITS_EmotionStrength_Undo = QPushButton(self.Frame_TTS_VITS_EmotionStrength) - self.Button_TTS_VITS_EmotionStrength_Undo.setObjectName(u"Button_TTS_VITS_EmotionStrength_Undo") - self.Button_TTS_VITS_EmotionStrength_Undo.setMinimumSize(QSize(27, 27)) - self.Button_TTS_VITS_EmotionStrength_Undo.setMaximumSize(QSize(27, 27)) - self.Button_TTS_VITS_EmotionStrength_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" -" background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +" border-width: 1px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +" border-color: transparent;\n" "}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" "}") - - self.gridLayout_71.addWidget(self.Button_TTS_VITS_EmotionStrength_Undo, 0, 2, 1, 1) - - self.ChildFrame_TTS_VITS_EmotionStrength = QFrame(self.Frame_TTS_VITS_EmotionStrength) - self.ChildFrame_TTS_VITS_EmotionStrength.setObjectName(u"ChildFrame_TTS_VITS_EmotionStrength") - sizePolicy5.setHeightForWidth(self.ChildFrame_TTS_VITS_EmotionStrength.sizePolicy().hasHeightForWidth()) - self.ChildFrame_TTS_VITS_EmotionStrength.setSizePolicy(sizePolicy5) - self.ChildFrame_TTS_VITS_EmotionStrength.setStyleSheet(u"QFrame {\n" + self.verticalLayout_13 = QVBoxLayout(self.GroupBox_Settings_Client_Outlook) + self.verticalLayout_13.setSpacing(0) + self.verticalLayout_13.setObjectName(u"verticalLayout_13") + self.verticalLayout_13.setContentsMargins(0, 12, 0, 12) + self.Frame_Setting_Language = QFrame(self.GroupBox_Settings_Client_Outlook) + self.Frame_Setting_Language.setObjectName(u"Frame_Setting_Language") + self.Frame_Setting_Language.setMinimumSize(QSize(0, 90)) + self.Frame_Setting_Language.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" border-width: 0px;\n" +" border-width: 1px;\n" " border-style: solid;\n" +" border-color: rgb(45, 45, 45);\n" "}\n" "QFrame:hover {\n" -" background-color: transparent;\n" +" border-color: rgb(60, 60, 60);\n" "}") - self.horizontalLayout_43 = QHBoxLayout(self.ChildFrame_TTS_VITS_EmotionStrength) - self.horizontalLayout_43.setSpacing(12) - self.horizontalLayout_43.setObjectName(u"horizontalLayout_43") - self.horizontalLayout_43.setContentsMargins(0, 0, 0, 0) - self.HorizontalSlider_TTS_VITS_EmotionStrength = QSlider(self.ChildFrame_TTS_VITS_EmotionStrength) - self.HorizontalSlider_TTS_VITS_EmotionStrength.setObjectName(u"HorizontalSlider_TTS_VITS_EmotionStrength") - self.HorizontalSlider_TTS_VITS_EmotionStrength.setMinimumSize(QSize(0, 27)) - self.HorizontalSlider_TTS_VITS_EmotionStrength.setStyleSheet(u"QSlider::groove:horizontal {\n" -" height: 1.2px;\n" -" background-color: rgba(201, 210, 222, 123);\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"QSlider::groove:horizontal:hover {\n" -" background-color: rgba(201, 210, 222, 210);\n" -"}\n" -"\n" -"QSlider::handle:horizontal {\n" -" width: 12px;\n" -" height: 12px;\n" -" background-color: rgba(201, 210, 222, 210);\n" -" margin-top: -6px;\n" -" margin-bottom: -6px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" + self.horizontalLayout_66 = QHBoxLayout(self.Frame_Setting_Language) + self.horizontalLayout_66.setSpacing(12) + self.horizontalLayout_66.setObjectName(u"horizontalLayout_66") + self.horizontalLayout_66.setContentsMargins(21, 12, 21, 12) + self.Label_Setting_Language = QLabel(self.Frame_Setting_Language) + self.Label_Setting_Language.setObjectName(u"Label_Setting_Language") + sizePolicy4.setHeightForWidth(self.Label_Setting_Language.sizePolicy().hasHeightForWidth()) + self.Label_Setting_Language.setSizePolicy(sizePolicy4) + self.Label_Setting_Language.setStyleSheet(u"QLabel {\n" +" font-size: 15px;\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" -" /*border-color: rgba(201, 210, 222, 123);*/\n" -"}\n" -"QSlider::handle:horizontal:hover {\n" -" background-color: rgba(210, 222, 234, 234);\n" -" /*border-color: rgba(201, 210, 222, 210);*/\n" "}") - self.HorizontalSlider_TTS_VITS_EmotionStrength.setOrientation(Qt.Horizontal) - self.horizontalLayout_43.addWidget(self.HorizontalSlider_TTS_VITS_EmotionStrength) + self.horizontalLayout_66.addWidget(self.Label_Setting_Language) - self.DoubleSpinBox_TTS_VITS_EmotionStrength = QDoubleSpinBox(self.ChildFrame_TTS_VITS_EmotionStrength) - self.DoubleSpinBox_TTS_VITS_EmotionStrength.setObjectName(u"DoubleSpinBox_TTS_VITS_EmotionStrength") - self.DoubleSpinBox_TTS_VITS_EmotionStrength.setMinimumSize(QSize(0, 27)) - self.DoubleSpinBox_TTS_VITS_EmotionStrength.setStyleSheet(u"QDoubleSpinBox {\n" + self.ComboBox_Setting_Language = QComboBox(self.Frame_Setting_Language) + self.ComboBox_Setting_Language.setObjectName(u"ComboBox_Setting_Language") + self.ComboBox_Setting_Language.setMinimumSize(QSize(123, 30)) + self.ComboBox_Setting_Language.setStyleSheet(u"QComboBox {\n" " /*font-size: 12px;*/\n" " text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" " background-color: transparent;\n" " padding-top: 3px;\n" " padding-left: 6px;\n" @@ -14300,209 +19833,154 @@ def setupUi(self, MainWindow): " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QDoubleSpinBox:hover {\n" +"QComboBox:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QDoubleSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" +"QComboBox::drop-down {\n" +" /*width: 12px;\n" +" height: 12px;*/\n" " subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" -"}\n" -"QDoubleSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +" subcontrol-position: right;\n" +" margin-right: 6px;\n" +" border: none;\n" "}\n" "\n" -"QDoubleSpinBox::down-button {\n" -" /*width: 9px;\n" -" /*height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" +"QComboBox::down-arrow {\n" +" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" "}\n" -"QDoubleSpinBox::down-arr" - "ow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" +"QComboBox::down-arrow:on {\n" +" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" "}\n" "\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - - self.horizontalLayout_43.addWidget(self.DoubleSpinBox_TTS_VITS_EmotionStrength) - - - self.gridLayout_71.addWidget(self.ChildFrame_TTS_VITS_EmotionStrength, 1, 0, 1, 3) - - - self.verticalLayout_118.addWidget(self.Frame_TTS_VITS_EmotionStrength) - - self.Frame_TTS_VITS_PhonemeDuration = QFrame(self.Frame_TTS_VITS_VITSParams_AdvanceSettings) - self.Frame_TTS_VITS_PhonemeDuration.setObjectName(u"Frame_TTS_VITS_PhonemeDuration") - self.Frame_TTS_VITS_PhonemeDuration.setMinimumSize(QSize(0, 105)) - self.Frame_TTS_VITS_PhonemeDuration.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" -"}") - self.gridLayout_72 = QGridLayout(self.Frame_TTS_VITS_PhonemeDuration) - self.gridLayout_72.setSpacing(12) - self.gridLayout_72.setObjectName(u"gridLayout_72") - self.gridLayout_72.setContentsMargins(21, 12, 21, 12) - self.Label_TTS_VITS_PhonemeDuration = QLabel(self.Frame_TTS_VITS_PhonemeDuration) - self.Label_TTS_VITS_PhonemeDuration.setObjectName(u"Label_TTS_VITS_PhonemeDuration") - sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_PhonemeDuration.sizePolicy().hasHeightForWidth()) - self.Label_TTS_VITS_PhonemeDuration.setSizePolicy(sizePolicy5) - self.Label_TTS_VITS_PhonemeDuration.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" -" background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}") - - self.gridLayout_72.addWidget(self.Label_TTS_VITS_PhonemeDuration, 0, 0, 1, 1) - - self.HorizontalSpacer_TTS_VITS_PhonemeDuration = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_72.addItem(self.HorizontalSpacer_TTS_VITS_PhonemeDuration, 0, 1, 1, 1) - - self.Button_TTS_VITS_PhonemeDuration_Undo = QPushButton(self.Frame_TTS_VITS_PhonemeDuration) - self.Button_TTS_VITS_PhonemeDuration_Undo.setObjectName(u"Button_TTS_VITS_PhonemeDuration_Undo") - self.Button_TTS_VITS_PhonemeDuration_Undo.setMinimumSize(QSize(27, 27)) - self.Button_TTS_VITS_PhonemeDuration_Undo.setMaximumSize(QSize(27, 27)) - self.Button_TTS_VITS_PhonemeDuration_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" +"QComboBox QAbstractItemView {\n" +" outline: none;\n" " background-color: transparent;\n" -" padding: 4.5px;\n" " border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"\n" +"QCom" + "boBox QAbstractItemView::item {\n" +" /* height: 30px; */\n" +" background-color: transparent;\n" +" padding-top: 3px;\n" +" padding-left: 6px;\n" +" padding-bottom: 3px;\n" +" padding-right: 6px;\n" +" border: none;\n" +"}\n" +"QComboBox QAbstractItemView::item:hover {\n" +" background-color: rgba(120, 120, 120, 120);\n" +"}\n" +"QComboBox QAbstractItemView::item:selected {\n" +" background-color: rgba(120, 120, 120, 120);\n" "}\n" "\n" "\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" +" width: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -"}") - - self.gridLayout_72.addWidget(self.Button_TTS_VITS_PhonemeDuration_Undo, 0, 2, 1, 1) - - self.ChildFrame_TTS_VITS_PhonemeDuration = QFrame(self.Frame_TTS_VITS_PhonemeDuration) - self.ChildFrame_TTS_VITS_PhonemeDuration.setObjectName(u"ChildFrame_TTS_VITS_PhonemeDuration") - sizePolicy5.setHeightForWidth(self.ChildFrame_TTS_VITS_PhonemeDuration.sizePolicy().hasHeightForWidth()) - self.ChildFrame_TTS_VITS_PhonemeDuration.setSizePolicy(sizePolicy5) - self.ChildFrame_TTS_VITS_PhonemeDuration.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" +" border-color: transparent;\n" +" margin: 0px;\n" +"}\n" +"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" +" height: 0px;\n" " background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" -" border-style: solid;\n" +" border-radius: 0px;\n" +"" + " border-style: solid;\n" "}\n" -"QFrame:hover {\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" +" height: 0px;\n" " background-color: transparent;\n" -"}") - self.horizontalLayout_44 = QHBoxLayout(self.ChildFrame_TTS_VITS_PhonemeDuration) - self.horizontalLayout_44.setSpacing(12) - self.horizontalLayout_44.setObjectName(u"horizontalLayout_44") - self.horizontalLayout_44.setContentsMargins(0, 0, 0, 0) - self.HorizontalSlider_TTS_VITS_PhonemeDuration = QSlider(self.ChildFrame_TTS_VITS_PhonemeDuration) - self.HorizontalSlider_TTS_VITS_PhonemeDuration.setObjectName(u"HorizontalSlider_TTS_VITS_PhonemeDuration") - self.HorizontalSlider_TTS_VITS_PhonemeDuration.setMinimumSize(QSize(0, 27)) - self.HorizontalSlider_TTS_VITS_PhonemeDuration.setStyleSheet(u"QSlider::groove:horizontal {\n" -" height: 1.2px;\n" -" background-color: rgba(201, 210, 222, 123);\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" "}\n" -"QSlider::groove:horizontal:hover {\n" -" background-color: rgba(201, 210, 222, 210);\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" "}\n" "\n" -"QSlider::handle:horizontal {\n" -" width: 12px;\n" -" height: 12px;\n" -" background-color: rgba(201, 210, 222, 210);\n" -" margin-top: -6px;\n" -" margin-bottom: -6px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" +" background-color: transparent;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" -" /*border-color: rgba(201, 210, 222, 123);*/\n" "}\n" -"QSlider::handle:horizontal:hover {\n" -" background-color: rgba(210, 222, 234, 234);\n" -" /*border-color: rgba(201, 210, 222, 210);*/\n" -"}") - self.HorizontalSlider_TTS_VITS_PhonemeDuration.setOrientation(Qt.Horizontal) - - self.horizontalLayout_44.addWidget(self.HorizontalSlider_TTS_VITS_PhonemeDuration) - - self.DoubleSpinBox_TTS_VITS_PhonemeDuration = QDoubleSpinBox(self.ChildFrame_TTS_VITS_PhonemeDuration) - self.DoubleSpinBox_TTS_VITS_PhonemeDuration.setObjectName(u"DoubleSpinBox_TTS_VITS_PhonemeDuration") - self.DoubleSpinBox_TTS_VITS_PhonemeDuration.setMinimumSize(QSize(0, 27)) - self.DoubleSpinBox_TTS_VITS_PhonemeDuration.setStyleSheet(u"QDoubleSpinBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" -" color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" +" background-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" +" height: 9px;\n" +" background-color: rgb(45, 45, 45);\n" +" border-width: 1px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" +" borde" + "r-color: transparent;\n" +" margin: 0px;\n" "}\n" -"QDoubleSpinBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" +" background-color: rgb(60, 60, 60);\n" +"}\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" "\n" -"QDoubleSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" +"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" +" width: 0px;\n" +" background-color: transparent;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" -"QDoubleSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"\n" +"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" +" width: 0px;\n" +" height: 0px;\n" +" background-color: transparent;\n" "}\n" "\n" -"QDoubleSpinBox::down-button {\n" -" /*width: 9px;\n" -" /*height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" +" background-color: transparent;\n" +" " + "border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" "}\n" -"QDoubleSpinBox::down-arr" - "ow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" +"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" +" background-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" @@ -14513,35 +19991,59 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_44.addWidget(self.DoubleSpinBox_TTS_VITS_PhonemeDuration) + self.horizontalLayout_66.addWidget(self.ComboBox_Setting_Language) - self.gridLayout_72.addWidget(self.ChildFrame_TTS_VITS_PhonemeDuration, 1, 0, 1, 3) + self.verticalLayout_13.addWidget(self.Frame_Setting_Language) - self.verticalLayout_118.addWidget(self.Frame_TTS_VITS_PhonemeDuration) + self.verticalLayout_106.addWidget(self.GroupBox_Settings_Client_Outlook) - self.Frame_TTS_VITS_SpeechRate = QFrame(self.Frame_TTS_VITS_VITSParams_AdvanceSettings) - self.Frame_TTS_VITS_SpeechRate.setObjectName(u"Frame_TTS_VITS_SpeechRate") - self.Frame_TTS_VITS_SpeechRate.setMinimumSize(QSize(0, 105)) - self.Frame_TTS_VITS_SpeechRate.setStyleSheet(u"QFrame {\n" + self.GroupBox_Settings_Client_Function = QGroupBox(self.ScrollAreaWidgetContents_Settings_Client) + self.GroupBox_Settings_Client_Function.setObjectName(u"GroupBox_Settings_Client_Function") + self.GroupBox_Settings_Client_Function.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" border-width: 0px;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_84 = QVBoxLayout(self.GroupBox_Settings_Client_Function) + self.verticalLayout_84.setSpacing(0) + self.verticalLayout_84.setObjectName(u"verticalLayout_84") + self.verticalLayout_84.setContentsMargins(0, 12, 0, 12) + self.Frame_Setting_AutoUpdate = QFrame(self.GroupBox_Settings_Client_Function) + self.Frame_Setting_AutoUpdate.setObjectName(u"Frame_Setting_AutoUpdate") + self.Frame_Setting_AutoUpdate.setMinimumSize(QSize(0, 90)) + self.Frame_Setting_AutoUpdate.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" " border-style: solid;\n" +" border-color: rgb(45, 45, 45);\n" "}\n" "QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" +" border-color: rgb(60, 60, 60);\n" "}") - self.gridLayout_73 = QGridLayout(self.Frame_TTS_VITS_SpeechRate) - self.gridLayout_73.setSpacing(12) - self.gridLayout_73.setObjectName(u"gridLayout_73") - self.gridLayout_73.setContentsMargins(21, 12, 21, 12) - self.Label_TTS_VITS_SpeechRate = QLabel(self.Frame_TTS_VITS_SpeechRate) - self.Label_TTS_VITS_SpeechRate.setObjectName(u"Label_TTS_VITS_SpeechRate") - sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_SpeechRate.sizePolicy().hasHeightForWidth()) - self.Label_TTS_VITS_SpeechRate.setSizePolicy(sizePolicy5) - self.Label_TTS_VITS_SpeechRate.setStyleSheet(u"QLabel {\n" + self.horizontalLayout_65 = QHBoxLayout(self.Frame_Setting_AutoUpdate) + self.horizontalLayout_65.setSpacing(12) + self.horizontalLayout_65.setObjectName(u"horizontalLayout_65") + self.horizontalLayout_65.setContentsMargins(21, 12, 21, 12) + self.Label_Setting_AutoUpdate = QLabel(self.Frame_Setting_AutoUpdate) + self.Label_Setting_AutoUpdate.setObjectName(u"Label_Setting_AutoUpdate") + sizePolicy4.setHeightForWidth(self.Label_Setting_AutoUpdate.sizePolicy().hasHeightForWidth()) + self.Label_Setting_AutoUpdate.setSizePolicy(sizePolicy4) + self.Label_Setting_AutoUpdate.setStyleSheet(u"QLabel {\n" +" font-size: 15px;\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" @@ -14551,134 +20053,44 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_73.addWidget(self.Label_TTS_VITS_SpeechRate, 0, 0, 1, 1) - - self.HorizontalSpacer_TTS_VITS_SpeechRate = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_73.addItem(self.HorizontalSpacer_TTS_VITS_SpeechRate, 0, 1, 1, 1) + self.horizontalLayout_65.addWidget(self.Label_Setting_AutoUpdate) - self.Button_TTS_VITS_SpeechRate_Undo = QPushButton(self.Frame_TTS_VITS_SpeechRate) - self.Button_TTS_VITS_SpeechRate_Undo.setObjectName(u"Button_TTS_VITS_SpeechRate_Undo") - self.Button_TTS_VITS_SpeechRate_Undo.setMinimumSize(QSize(27, 27)) - self.Button_TTS_VITS_SpeechRate_Undo.setMaximumSize(QSize(27, 27)) - self.Button_TTS_VITS_SpeechRate_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" -" background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" + self.CheckBox_Setting_AutoUpdate = QCheckBox(self.Frame_Setting_AutoUpdate) + self.CheckBox_Setting_AutoUpdate.setObjectName(u"CheckBox_Setting_AutoUpdate") + sizePolicy5.setHeightForWidth(self.CheckBox_Setting_AutoUpdate.sizePolicy().hasHeightForWidth()) + self.CheckBox_Setting_AutoUpdate.setSizePolicy(sizePolicy5) + self.CheckBox_Setting_AutoUpdate.setMinimumSize(QSize(0, 30)) + self.CheckBox_Setting_AutoUpdate.setStyleSheet(u"QCheckBox {\n" +" font-size: 15px;\n" +" spacing: 12.3px;\n" " color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - - self.gridLayout_73.addWidget(self.Button_TTS_VITS_SpeechRate_Undo, 0, 2, 1, 1) - - self.ChildFrame_TTS_VITS_SpeechRate = QFrame(self.Frame_TTS_VITS_SpeechRate) - self.ChildFrame_TTS_VITS_SpeechRate.setObjectName(u"ChildFrame_TTS_VITS_SpeechRate") - sizePolicy5.setHeightForWidth(self.ChildFrame_TTS_VITS_SpeechRate.sizePolicy().hasHeightForWidth()) - self.ChildFrame_TTS_VITS_SpeechRate.setSizePolicy(sizePolicy5) - self.ChildFrame_TTS_VITS_SpeechRate.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}\n" -"QFrame:hover {\n" " background-color: transparent;\n" -"}") - self.horizontalLayout_45 = QHBoxLayout(self.ChildFrame_TTS_VITS_SpeechRate) - self.horizontalLayout_45.setSpacing(12) - self.horizontalLayout_45.setObjectName(u"horizontalLayout_45") - self.horizontalLayout_45.setContentsMargins(0, 0, 0, 0) - self.HorizontalSlider_TTS_VITS_SpeechRate = QSlider(self.ChildFrame_TTS_VITS_SpeechRate) - self.HorizontalSlider_TTS_VITS_SpeechRate.setObjectName(u"HorizontalSlider_TTS_VITS_SpeechRate") - self.HorizontalSlider_TTS_VITS_SpeechRate.setMinimumSize(QSize(0, 27)) - self.HorizontalSlider_TTS_VITS_SpeechRate.setStyleSheet(u"QSlider::groove:horizontal {\n" -" height: 1.2px;\n" -" background-color: rgba(201, 210, 222, 123);\n" +" padding: 0px;\n" " border-width: 0px;\n" " border-radius: 6px;\n" " border-style: solid;\n" "}\n" -"QSlider::groove:horizontal:hover {\n" -" background-color: rgba(201, 210, 222, 210);\n" -"}\n" -"\n" -"QSlider::handle:horizontal {\n" -" width: 12px;\n" -" height: 12px;\n" -" background-color: rgba(201, 210, 222, 210);\n" -" margin-top: -6px;\n" -" margin-bottom: -6px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" /*border-color: rgba(201, 210, 222, 123);*/\n" -"}\n" -"QSlider::handle:horizontal:hover {\n" -" background-color: rgba(210, 222, 234, 234);\n" -" /*border-color: rgba(201, 210, 222, 210);*/\n" -"}") - self.HorizontalSlider_TTS_VITS_SpeechRate.setOrientation(Qt.Horizontal) - - self.horizontalLayout_45.addWidget(self.HorizontalSlider_TTS_VITS_SpeechRate) - - self.DoubleSpinBox_TTS_VITS_SpeechRate = QDoubleSpinBox(self.ChildFrame_TTS_VITS_SpeechRate) - self.DoubleSpinBox_TTS_VITS_SpeechRate.setObjectName(u"DoubleSpinBox_TTS_VITS_SpeechRate") - self.DoubleSpinBox_TTS_VITS_SpeechRate.setMinimumSize(QSize(0, 27)) - self.DoubleSpinBox_TTS_VITS_SpeechRate.setStyleSheet(u"QDoubleSpinBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" +"QCheckBox:hover {\n" " color: rgb(255, 255, 255);\n" -" selection-background-color: darkgrey;\n" -" background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"QDoubleSpinBox:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QDoubleSpinBox::up-button {\n" -" /*width: 9px;\n" -" height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: top right;\n" -" margin-right: 4.5px;\n" +"QCheckBox::indicator {\n" +" width: 30px;\n" +" height: 30px;\n" +" background-color: transparent;\n" +" padding: 0px;\n" " border-width: 0px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" "}\n" -"QDoubleSpinBox::up-arrow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/UpArrow.png);\n" +"QCheckBox::indicator:hover {\n" +" background-color: rgba(255, 255, 255, 21);\n" "}\n" -"\n" -"QDoubleSpinBox::down-button {\n" -" /*width: 9px;\n" -" /*height: 9px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: bottom right;\n" -" margin-right: 4.5px;\n" -" border-width: 0px;\n" +"QCheckBox::indicator:unchecked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" "}\n" -"QDoubleSpinBox::down-arr" - "ow {\n" -" border-image: url(:/(Double)SpinBox_Icon/Sources/DownArrow.png);\n" +"QCheckBox::indicator:checked {\n" +" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" "}\n" "\n" "\n" @@ -14689,23 +20101,17 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_45.addWidget(self.DoubleSpinBox_TTS_VITS_SpeechRate) - - - self.gridLayout_73.addWidget(self.ChildFrame_TTS_VITS_SpeechRate, 1, 0, 1, 3) - - - self.verticalLayout_118.addWidget(self.Frame_TTS_VITS_SpeechRate) + self.horizontalLayout_65.addWidget(self.CheckBox_Setting_AutoUpdate) - self.verticalLayout_117.addWidget(self.Frame_TTS_VITS_VITSParams_AdvanceSettings) + self.verticalLayout_84.addWidget(self.Frame_Setting_AutoUpdate) - self.verticalLayout_19.addWidget(self.GroupBox_TTS_VITS_VITSParams) + self.verticalLayout_106.addWidget(self.GroupBox_Settings_Client_Function) - self.GroupBox_TTS_VITS_OutputParams = QGroupBox(self.ScrollArea_Middle_WidgetContents_TTS_VITS) - self.GroupBox_TTS_VITS_OutputParams.setObjectName(u"GroupBox_TTS_VITS_OutputParams") - self.GroupBox_TTS_VITS_OutputParams.setStyleSheet(u"QGroupBox {\n" + self.GroupBox_Settings_Client_Operation = QGroupBox(self.ScrollAreaWidgetContents_Settings_Client) + self.GroupBox_Settings_Client_Operation.setObjectName(u"GroupBox_Settings_Client_Operation") + self.GroupBox_Settings_Client_Operation.setStyleSheet(u"QGroupBox {\n" " font-size: 15px;\n" " margin-top: 1.5ex;\n" " color: rgb(255, 255, 255);\n" @@ -14721,67 +20127,68 @@ def setupUi(self, MainWindow): " subcontrol-position: top left;\n" " padding: 3px;\n" "}") - self.verticalLayout_156 = QVBoxLayout(self.GroupBox_TTS_VITS_OutputParams) - self.verticalLayout_156.setSpacing(0) - self.verticalLayout_156.setObjectName(u"verticalLayout_156") - self.verticalLayout_156.setContentsMargins(0, 12, 0, 12) - self.Frame_TTS_VITS_OutputParams_BasicSettings = QFrame(self.GroupBox_TTS_VITS_OutputParams) - self.Frame_TTS_VITS_OutputParams_BasicSettings.setObjectName(u"Frame_TTS_VITS_OutputParams_BasicSettings") - self.verticalLayout_158 = QVBoxLayout(self.Frame_TTS_VITS_OutputParams_BasicSettings) - self.verticalLayout_158.setSpacing(0) - self.verticalLayout_158.setObjectName(u"verticalLayout_158") - self.verticalLayout_158.setContentsMargins(0, 0, 0, 0) - self.Frame_TTS_VITS_AudioPathSave = QFrame(self.Frame_TTS_VITS_OutputParams_BasicSettings) - self.Frame_TTS_VITS_AudioPathSave.setObjectName(u"Frame_TTS_VITS_AudioPathSave") - self.Frame_TTS_VITS_AudioPathSave.setMinimumSize(QSize(0, 105)) - self.Frame_TTS_VITS_AudioPathSave.setStyleSheet(u"QFrame {\n" + self.verticalLayout_85 = QVBoxLayout(self.GroupBox_Settings_Client_Operation) + self.verticalLayout_85.setSpacing(0) + self.verticalLayout_85.setObjectName(u"verticalLayout_85") + self.verticalLayout_85.setContentsMargins(0, 12, 0, 12) + self.Frame_Setting_Operation = QFrame(self.GroupBox_Settings_Client_Operation) + self.Frame_Setting_Operation.setObjectName(u"Frame_Setting_Operation") + self.Frame_Setting_Operation.setMinimumSize(QSize(0, 90)) + self.Frame_Setting_Operation.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" border-width: 0px;\n" +" border-width: 1px;\n" " border-style: solid;\n" +" border-color: rgb(45, 45, 45);\n" "}\n" "QFrame:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" +" border-color: rgb(60, 60, 60);\n" "}") - self.gridLayout_74 = QGridLayout(self.Frame_TTS_VITS_AudioPathSave) - self.gridLayout_74.setSpacing(12) - self.gridLayout_74.setObjectName(u"gridLayout_74") - self.gridLayout_74.setContentsMargins(21, 12, 21, 12) - self.Label_TTS_VITS_AudioPathSave = QLabel(self.Frame_TTS_VITS_AudioPathSave) - self.Label_TTS_VITS_AudioPathSave.setObjectName(u"Label_TTS_VITS_AudioPathSave") - sizePolicy5.setHeightForWidth(self.Label_TTS_VITS_AudioPathSave.sizePolicy().hasHeightForWidth()) - self.Label_TTS_VITS_AudioPathSave.setSizePolicy(sizePolicy5) - self.Label_TTS_VITS_AudioPathSave.setStyleSheet(u"QLabel {\n" -" /*text-align: center;*/\n" -" /*color: rgb(255, 255, 255);*/\n" + self.horizontalLayout_6 = QHBoxLayout(self.Frame_Setting_Operation) + self.horizontalLayout_6.setSpacing(42) + self.horizontalLayout_6.setObjectName(u"horizontalLayout_6") + self.horizontalLayout_6.setContentsMargins(21, 12, 21, 12) + self.Button_Setting_ClientRebooter = QPushButton(self.Frame_Setting_Operation) + self.Button_Setting_ClientRebooter.setObjectName(u"Button_Setting_ClientRebooter") + self.Button_Setting_ClientRebooter.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" font-size: 12px;\n" " background-color: transparent;\n" -" padding: 0px;\n" +" padding: 12px;\n" +" border-width: 1.5px;\n" +" border-radius: 6px;\n" +" border-style: solid;\n" +" border-color: rgb(90, 90, 90);\n" +"}\n" +"QPushButton:hover {\n" +" border-color: rgb(120, 120, 120);\n" +"}\n" +"\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" "}") - self.gridLayout_74.addWidget(self.Label_TTS_VITS_AudioPathSave, 0, 0, 1, 1) - - self.HorizontalSpacer_TTS_VITS_AudioPathSave = QSpacerItem(445, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_74.addItem(self.HorizontalSpacer_TTS_VITS_AudioPathSave, 0, 1, 1, 1) + self.horizontalLayout_6.addWidget(self.Button_Setting_ClientRebooter) - self.Button_TTS_VITS_AudioPathSave_Undo = QPushButton(self.Frame_TTS_VITS_AudioPathSave) - self.Button_TTS_VITS_AudioPathSave_Undo.setObjectName(u"Button_TTS_VITS_AudioPathSave_Undo") - self.Button_TTS_VITS_AudioPathSave_Undo.setMinimumSize(QSize(27, 27)) - self.Button_TTS_VITS_AudioPathSave_Undo.setMaximumSize(QSize(27, 27)) - self.Button_TTS_VITS_AudioPathSave_Undo.setStyleSheet(u"QPushButton {\n" -" image: url(:/Button_Icon/Sources/Undo.png);\n" + self.Button_Setting_IntegrityChecker = QPushButton(self.Frame_Setting_Operation) + self.Button_Setting_IntegrityChecker.setObjectName(u"Button_Setting_IntegrityChecker") + self.Button_Setting_IntegrityChecker.setMinimumSize(QSize(123, 0)) + self.Button_Setting_IntegrityChecker.setStyleSheet(u"QPushButton {\n" +" text-align: center;\n" +" font-size: 12px;\n" " background-color: transparent;\n" -" padding: 4.5px;\n" -" border-width: 1.2px;\n" +" padding: 12px;\n" +" border-width: 1.5px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" +" border-color: rgb(90, 90, 90);\n" "}\n" "QPushButton:hover {\n" -" border-color: rgba(201, 210, 222, 210);\n" +" border-color: rgb(120, 120, 120);\n" "}\n" "\n" "\n" @@ -14792,57 +20199,44 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.gridLayout_74.addWidget(self.Button_TTS_VITS_AudioPathSave_Undo, 0, 2, 1, 1) - - self.LineEdit_TTS_VITS_AudioPathSave = LineEditBase(self.Frame_TTS_VITS_AudioPathSave) - self.LineEdit_TTS_VITS_AudioPathSave.setObjectName(u"LineEdit_TTS_VITS_AudioPathSave") - self.LineEdit_TTS_VITS_AudioPathSave.setMinimumSize(QSize(0, 27)) - - self.gridLayout_74.addWidget(self.LineEdit_TTS_VITS_AudioPathSave, 1, 0, 1, 3) + self.horizontalLayout_6.addWidget(self.Button_Setting_IntegrityChecker) + self.HorizontalSpacer_Setting_Operation = QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.verticalLayout_158.addWidget(self.Frame_TTS_VITS_AudioPathSave) + self.horizontalLayout_6.addItem(self.HorizontalSpacer_Setting_Operation) + self.horizontalLayout_6.setStretch(0, 2) + self.horizontalLayout_6.setStretch(1, 2) + self.horizontalLayout_6.setStretch(2, 6) - self.verticalLayout_156.addWidget(self.Frame_TTS_VITS_OutputParams_BasicSettings) + self.verticalLayout_85.addWidget(self.Frame_Setting_Operation) - self.verticalLayout_19.addWidget(self.GroupBox_TTS_VITS_OutputParams) + self.verticalLayout_106.addWidget(self.GroupBox_Settings_Client_Operation) - self.VerticalSpacer_TTS_VITS = QSpacerItem(0, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + self.VerticalSpacer_Settings_Client = QSpacerItem(20, 174, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - self.verticalLayout_19.addItem(self.VerticalSpacer_TTS_VITS) + self.verticalLayout_106.addItem(self.VerticalSpacer_Settings_Client) - self.ScrollArea_Middle_TTS_VITS.setWidget(self.ScrollArea_Middle_WidgetContents_TTS_VITS) + self.ScrollArea_Settings_Client.setWidget(self.ScrollAreaWidgetContents_Settings_Client) - self.gridLayout_20.addWidget(self.ScrollArea_Middle_TTS_VITS, 0, 1, 1, 1) + self.gridLayout_80.addWidget(self.ScrollArea_Settings_Client, 0, 0, 1, 1) - self.Widget_Right_TTS_VITS = QWidget(self.Subpage_TTS_VITS) - self.Widget_Right_TTS_VITS.setObjectName(u"Widget_Right_TTS_VITS") - self.Widget_Right_TTS_VITS.setStyleSheet(u"QWidget {\n" + self.StackedWidget_Pages_Settings.addWidget(self.SubPage_Settings_Client) + self.SubPage_Settings_Tools = QWidget() + self.SubPage_Settings_Tools.setObjectName(u"SubPage_Settings_Tools") + self.gridLayout_93 = QGridLayout(self.SubPage_Settings_Tools) + self.gridLayout_93.setSpacing(12) + self.gridLayout_93.setObjectName(u"gridLayout_93") + self.gridLayout_93.setContentsMargins(0, 0, 0, 0) + self.ScrollArea_Settings_Tools = QScrollArea(self.SubPage_Settings_Tools) + self.ScrollArea_Settings_Tools.setObjectName(u"ScrollArea_Settings_Tools") + self.ScrollArea_Settings_Tools.setStyleSheet(u"QScrollArea {\n" " background-color: rgba(36, 36, 36, 123);\n" " border-width: 0px;\n" " border-style: solid;\n" "}\n" -"QWidget:hover {\n" -"}") - self.gridLayout_18 = QGridLayout(self.Widget_Right_TTS_VITS) - self.gridLayout_18.setSpacing(12) - self.gridLayout_18.setObjectName(u"gridLayout_18") - self.gridLayout_18.setContentsMargins(12, 12, 12, 12) - self.TextBrowser_Params_TTS_VITS = QTextBrowser(self.Widget_Right_TTS_VITS) - self.TextBrowser_Params_TTS_VITS.setObjectName(u"TextBrowser_Params_TTS_VITS") - sizePolicy1.setHeightForWidth(self.TextBrowser_Params_TTS_VITS.sizePolicy().hasHeightForWidth()) - self.TextBrowser_Params_TTS_VITS.setSizePolicy(sizePolicy1) - self.TextBrowser_Params_TTS_VITS.setStyleSheet(u"QTextBrowser {\n" -" background-color: rgba(33, 33, 33, 99);\n" -" /*padding-top: 1.5px;*/\n" -" /*padding-bottom: 1.5px;*/\n" -" padding-left: 15px;\n" -" padding-right: 6px;\n" -" border-width: 1px;\n" -" border-style: solid;\n" -" border-color:transparent;\n" +"QScrollArea:hover {\n" "}\n" "\n" "\n" @@ -14856,7 +20250,7 @@ def setupUi(self, MainWindow): " margin: 0px;\n" "}\n" "QScrollBar::vertical:hover {\n" -" background-color: rgba(33, 33, 33, 99);\n" +" background-color: rgb(60, 60, 60);\n" "}\n" "\n" "QScrollBar::add-line:vertical {\n" @@ -14876,18 +20270,18 @@ def setupUi(self, MainWindow): " subcontrol-origin: margin;\n" " border-width: 0px;\n" " border-radius: 0px;\n" -" bord" - "er-style: solid;\n" +" border-style: solid;\n" "}\n" "\n" "QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" " width: 0px;\n" -" height: 0px;\n" +" " + "height: 0px;\n" " background-color: transparent;\n" "}\n" "\n" "QScrollBar::handle:vertical {\n" -" background-color: transparent;\n" +" background-color: rgb(90, 90, 90);\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" @@ -14921,12 +20315,12 @@ def setupUi(self, MainWindow): "}\n" "\n" "QScrollBar::sub-line:horizontal {\n" -" width: 0px" - ";\n" +" width: 0px;\n" " background-color: transparent;\n" " subcontrol-position: right;\n" " subcontrol-origin: margin;\n" -" border-width: 0px;\n" +" borde" + "r-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" "}\n" @@ -14938,7 +20332,7 @@ def setupUi(self, MainWindow): "}\n" "\n" "QScrollBar::handle:horizontal {\n" -" background-color: transparent;\n" +" background-color: rgb(90, 90, 90);\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" @@ -14946,133 +20340,90 @@ def setupUi(self, MainWindow): "QScrollBar::handle:horizontal:hover {\n" " background-color: rgb(120, 120, 120);\n" "}") - - self.gridLayout_18.addWidget(self.TextBrowser_Params_TTS_VITS, 0, 0, 1, 1) - - self.Button_CheckOutput_TTS_VITS = QPushButton(self.Widget_Right_TTS_VITS) - self.Button_CheckOutput_TTS_VITS.setObjectName(u"Button_CheckOutput_TTS_VITS") - self.Button_CheckOutput_TTS_VITS.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" font-size: 12px;\n" + self.ScrollArea_Settings_Tools.setWidgetResizable(True) + self.ScrollAreaWidgetContents_Settings_Tools = QWidget() + self.ScrollAreaWidgetContents_Settings_Tools.setObjectName(u"ScrollAreaWidgetContents_Settings_Tools") + self.ScrollAreaWidgetContents_Settings_Tools.setGeometry(QRect(0, 0, 237, 811)) + self.verticalLayout_105 = QVBoxLayout(self.ScrollAreaWidgetContents_Settings_Tools) + self.verticalLayout_105.setSpacing(0) + self.verticalLayout_105.setObjectName(u"verticalLayout_105") + self.verticalLayout_105.setContentsMargins(0, 0, 0, 0) + self.GroupBox_Settings_Tools_Path = QGroupBox(self.ScrollAreaWidgetContents_Settings_Tools) + self.GroupBox_Settings_Tools_Path.setObjectName(u"GroupBox_Settings_Tools_Path") + self.GroupBox_Settings_Tools_Path.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" padding: 9.9px;\n" -" border-width: 1.5px;\n" -" border-radius: 6px;\n" +" border-width: 1px;\n" " border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgb(120, 120, 120);\n" +" border-color: transparent;\n" "}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" "}") - - self.gridLayout_18.addWidget(self.Button_CheckOutput_TTS_VITS, 1, 0, 1, 1) - - - self.gridLayout_20.addWidget(self.Widget_Right_TTS_VITS, 0, 2, 1, 1) - - self.ProgressBar_TTS_VITS = QProgressBar(self.Subpage_TTS_VITS) - self.ProgressBar_TTS_VITS.setObjectName(u"ProgressBar_TTS_VITS") - self.ProgressBar_TTS_VITS.setMinimumSize(QSize(0, 30)) - self.ProgressBar_TTS_VITS.setStyleSheet(u"QProgressBar {\n" -" text-align: center;\n" + self.verticalLayout_83 = QVBoxLayout(self.GroupBox_Settings_Tools_Path) + self.verticalLayout_83.setSpacing(0) + self.verticalLayout_83.setObjectName(u"verticalLayout_83") + self.verticalLayout_83.setContentsMargins(0, 12, 0, 12) + self.Frame_Process_OutputRoot = QFrame(self.GroupBox_Settings_Tools_Path) + self.Frame_Process_OutputRoot.setObjectName(u"Frame_Process_OutputRoot") + self.Frame_Process_OutputRoot.setMinimumSize(QSize(0, 90)) + self.Frame_Process_OutputRoot.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" -" background-color: rgb(60, 60, 60);\n" -" padding: 0px;\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -"}\n" -"\n" -"QProgressBar:chunk {\n" -" border-width: 0px;\n" -" border-radius: 6px;\n" +" background-color: transparent;\n" +" border-width: 1px;\n" " border-style: solid;\n" -" background-color: qlineargradient(spread: pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgb(60, 60, 60), stop:1 rgb(123, 123, 123));\n" -"}") - self.ProgressBar_TTS_VITS.setValue(0) - self.ProgressBar_TTS_VITS.setTextVisible(False) - self.horizontalLayout_48 = QHBoxLayout(self.ProgressBar_TTS_VITS) - self.horizontalLayout_48.setSpacing(0) - self.horizontalLayout_48.setObjectName(u"horizontalLayout_48") - self.horizontalLayout_48.setContentsMargins(0, 0, 0, 0) - self.StackedWidget_TTS_VITS = QStackedWidget(self.ProgressBar_TTS_VITS) - self.StackedWidget_TTS_VITS.setObjectName(u"StackedWidget_TTS_VITS") - self.StackedWidget_TTS_VITS.setMaximumSize(QSize(16777215, 30)) - self.StackedWidget_TTS_VITS.setStyleSheet(u"QWidget {\n" -" background-color: rgba(90, 90, 90, 45);\n" +" border-color: rgb(45, 45, 45);\n" "}\n" -"QWidget:hover {\n" -" background-color: rgba(120, 120, 120, 60);\n" +"QFrame:hover {\n" +" border-color: rgb(60, 60, 60);\n" "}") - self.Page_TTS_VITS_Execute = QWidget() - self.Page_TTS_VITS_Execute.setObjectName(u"Page_TTS_VITS_Execute") - self.verticalLayout_112 = QVBoxLayout(self.Page_TTS_VITS_Execute) - self.verticalLayout_112.setSpacing(0) - self.verticalLayout_112.setObjectName(u"verticalLayout_112") - self.verticalLayout_112.setContentsMargins(0, 0, 0, 0) - self.Button_TTS_VITS_Execute = QPushButton(self.Page_TTS_VITS_Execute) - self.Button_TTS_VITS_Execute.setObjectName(u"Button_TTS_VITS_Execute") - sizePolicy3.setHeightForWidth(self.Button_TTS_VITS_Execute.sizePolicy().hasHeightForWidth()) - self.Button_TTS_VITS_Execute.setSizePolicy(sizePolicy3) - self.Button_TTS_VITS_Execute.setMinimumSize(QSize(0, 30)) - self.Button_TTS_VITS_Execute.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" color: rgba(255, 255, 255, 210);\n" -" /*background-color: rgba(90, 90, 90, 45);*/\n" + self.horizontalLayout_19 = QHBoxLayout(self.Frame_Process_OutputRoot) + self.horizontalLayout_19.setSpacing(12) + self.horizontalLayout_19.setObjectName(u"horizontalLayout_19") + self.horizontalLayout_19.setContentsMargins(21, 12, 21, 12) + self.Label_Process_OutputRoot = QLabel(self.Frame_Process_OutputRoot) + self.Label_Process_OutputRoot.setObjectName(u"Label_Process_OutputRoot") + sizePolicy4.setHeightForWidth(self.Label_Process_OutputRoot.sizePolicy().hasHeightForWidth()) + self.Label_Process_OutputRoot.setSizePolicy(sizePolicy4) + self.Label_Process_OutputRoot.setStyleSheet(u"QLabel {\n" +" font-size: 15px;\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" " padding: 0px;\n" " border-width: 0px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" -"}\n" -"QPushButton:hover {\n" -" color: rgba(255, 255, 255, 240);\n" -" /*background-color: rgba(120, 120, 120, 60);*/\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" "}") - self.verticalLayout_112.addWidget(self.Button_TTS_VITS_Execute) + self.horizontalLayout_19.addWidget(self.Label_Process_OutputRoot) - self.StackedWidget_TTS_VITS.addWidget(self.Page_TTS_VITS_Execute) - self.Page_TTS_VITS_Terminate = QWidget() - self.Page_TTS_VITS_Terminate.setObjectName(u"Page_TTS_VITS_Terminate") - self.verticalLayout_113 = QVBoxLayout(self.Page_TTS_VITS_Terminate) - self.verticalLayout_113.setSpacing(0) - self.verticalLayout_113.setObjectName(u"verticalLayout_113") - self.verticalLayout_113.setContentsMargins(0, 0, 0, 0) - self.Button_TTS_VITS_Terminate = QPushButton(self.Page_TTS_VITS_Terminate) - self.Button_TTS_VITS_Terminate.setObjectName(u"Button_TTS_VITS_Terminate") - sizePolicy3.setHeightForWidth(self.Button_TTS_VITS_Terminate.sizePolicy().hasHeightForWidth()) - self.Button_TTS_VITS_Terminate.setSizePolicy(sizePolicy3) - self.Button_TTS_VITS_Terminate.setMinimumSize(QSize(0, 30)) - self.Button_TTS_VITS_Terminate.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" color: rgba(255, 255, 255, 210);\n" -" /*background-color: rgba(90, 90, 90, 45);*/\n" -" padding: 0px;\n" -" border-width: 0px;\n" + self.LineEdit_Process_OutputRoot = LineEditBase(self.Frame_Process_OutputRoot) + self.LineEdit_Process_OutputRoot.setObjectName(u"LineEdit_Process_OutputRoot") + self.LineEdit_Process_OutputRoot.setMaximumSize(QSize(16777215, 30)) + + self.horizontalLayout_19.addWidget(self.LineEdit_Process_OutputRoot) + + self.Button_Process_OutputRoot_Undo = QPushButton(self.Frame_Process_OutputRoot) + self.Button_Process_OutputRoot_Undo.setObjectName(u"Button_Process_OutputRoot_Undo") + self.Button_Process_OutputRoot_Undo.setMaximumSize(QSize(30, 30)) + self.Button_Process_OutputRoot_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" "QPushButton:hover {\n" -" color: rgba(255, 255, 255, 240);\n" -" /*background-color: rgba(120, 120, 120, 60);*/\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" @@ -15083,129 +20434,83 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.verticalLayout_113.addWidget(self.Button_TTS_VITS_Terminate) - - self.StackedWidget_TTS_VITS.addWidget(self.Page_TTS_VITS_Terminate) - - self.horizontalLayout_48.addWidget(self.StackedWidget_TTS_VITS) - - - self.gridLayout_20.addWidget(self.ProgressBar_TTS_VITS, 1, 0, 1, 3) + self.horizontalLayout_19.addWidget(self.Button_Process_OutputRoot_Undo) - self.gridLayout_20.setColumnStretch(0, 3) - self.gridLayout_20.setColumnStretch(1, 10) - self.gridLayout_20.setColumnStretch(2, 7) - self.StackedWidget_Pages_TTS.addWidget(self.Subpage_TTS_VITS) - self.verticalLayout_42.addWidget(self.StackedWidget_Pages_TTS) + self.verticalLayout_83.addWidget(self.Frame_Process_OutputRoot) - self.StackedWidget_Pages.addWidget(self.Page_TTS) - self.Page_Settings = QWidget() - self.Page_Settings.setObjectName(u"Page_Settings") - self.verticalLayout_109 = QVBoxLayout(self.Page_Settings) - self.verticalLayout_109.setSpacing(21) - self.verticalLayout_109.setObjectName(u"verticalLayout_109") - self.verticalLayout_109.setContentsMargins(21, 12, 21, 12) - self.Frame_Settings_Top = QFrame(self.Page_Settings) - self.Frame_Settings_Top.setObjectName(u"Frame_Settings_Top") - self.Frame_Settings_Top.setMinimumSize(QSize(0, 60)) - self.Frame_Settings_Top.setStyleSheet(u"QFrame {\n" -" background-color: rgba(36, 36, 36, 123);\n" + self.Frame_ASR_VPR_OutputRoot = QFrame(self.GroupBox_Settings_Tools_Path) + self.Frame_ASR_VPR_OutputRoot.setObjectName(u"Frame_ASR_VPR_OutputRoot") + self.Frame_ASR_VPR_OutputRoot.setMinimumSize(QSize(0, 105)) + self.Frame_ASR_VPR_OutputRoot.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" " border-width: 0px;\n" " border-style: solid;\n" +"}\n" +"QFrame:hover {\n" +" background-color: rgba(33, 33, 33, 99);\n" "}") - self.horizontalLayout_4 = QHBoxLayout(self.Frame_Settings_Top) - self.horizontalLayout_4.setSpacing(0) - self.horizontalLayout_4.setObjectName(u"horizontalLayout_4") - self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0) - self.ToolButton_Settings_Title = QToolButton(self.Frame_Settings_Top) - self.ToolButton_Settings_Title.setObjectName(u"ToolButton_Settings_Title") - sizePolicy1.setHeightForWidth(self.ToolButton_Settings_Title.sizePolicy().hasHeightForWidth()) - self.ToolButton_Settings_Title.setSizePolicy(sizePolicy1) - self.ToolButton_Settings_Title.setStyleSheet(u"QToolButton {\n" -" font-size: 24px;\n" + self.horizontalLayout_25 = QHBoxLayout(self.Frame_ASR_VPR_OutputRoot) + self.horizontalLayout_25.setSpacing(12) + self.horizontalLayout_25.setObjectName(u"horizontalLayout_25") + self.horizontalLayout_25.setContentsMargins(21, 12, 21, 12) + self.Label_ASR_VPR_OutputRoot = QLabel(self.Frame_ASR_VPR_OutputRoot) + self.Label_ASR_VPR_OutputRoot.setObjectName(u"Label_ASR_VPR_OutputRoot") + sizePolicy4.setHeightForWidth(self.Label_ASR_VPR_OutputRoot.sizePolicy().hasHeightForWidth()) + self.Label_ASR_VPR_OutputRoot.setSizePolicy(sizePolicy4) + self.Label_ASR_VPR_OutputRoot.setStyleSheet(u"QLabel {\n" +" font-size: 15px;\n" " /*text-align: center;*/\n" -" color: rgba(201, 210, 222, 210);\n" -" padding-left: 12px;\n" -" padding-right: 12px;\n" +" /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +" padding: 0px;\n" +" border-width: 0px;\n" +" border-radius: 0px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" -"}/*\n" -"QToolButton:hover {\n" -" color: rgba(210, 222, 234, 234);\n" +"}") + + self.horizontalLayout_25.addWidget(self.Label_ASR_VPR_OutputRoot) + + self.LineEdit_ASR_VPR_OutputRoot = LineEditBase(self.Frame_ASR_VPR_OutputRoot) + self.LineEdit_ASR_VPR_OutputRoot.setObjectName(u"LineEdit_ASR_VPR_OutputRoot") + self.LineEdit_ASR_VPR_OutputRoot.setMaximumSize(QSize(16777215, 30)) + + self.horizontalLayout_25.addWidget(self.LineEdit_ASR_VPR_OutputRoot) + + self.Button_ASR_VPR_OutputRoot_Undo = QPushButton(self.Frame_ASR_VPR_OutputRoot) + self.Button_ASR_VPR_OutputRoot_Undo.setObjectName(u"Button_ASR_VPR_OutputRoot_Undo") + self.Button_ASR_VPR_OutputRoot_Undo.setMaximumSize(QSize(30, 30)) + self.Button_ASR_VPR_OutputRoot_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" -" border-bottom-color: rgba(120, 180, 240, 123);\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QToolButton:checked {\n" -" color: rgba(210, 222, 234, 255);\n" -" background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" -" border-style: solid;\n" -" border-bottom-color: rgba(120, 180, 240, 210);\n" -"}*/\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" +"}\n" +"\n" "\n" "QToolTip {\n" -" co" - "lor: rgba(255, 255, 255, 210);\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" " border-width: 0px;\n" " border-style: solid;\n" "}") - self.horizontalLayout_4.addWidget(self.ToolButton_Settings_Title) - - self.Frame_Settings_Title_Spacer = QLabel(self.Frame_Settings_Top) - self.Frame_Settings_Title_Spacer.setObjectName(u"Frame_Settings_Title_Spacer") - sizePolicy4.setHeightForWidth(self.Frame_Settings_Title_Spacer.sizePolicy().hasHeightForWidth()) - self.Frame_Settings_Title_Spacer.setSizePolicy(sizePolicy4) - self.Frame_Settings_Title_Spacer.setStyleSheet(u"QLabel {\n" -" font-size: 24px;\n" -" /*text-align: center;\n" -" color: rgb(255, 255, 255);\n" -" padding-left: 12px;\n" -" padding-right: 12px;*/\n" -" background-color: transparent;\n" -" border-top-width: 0px;\n" -" border-right-width: 0px;\n" -" border-bottom-width: 3px;\n" -" border-left-width: 0px;\n" -" border-style: solid;\n" -" border-bottom-color: rgba(123, 123, 123, 123);\n" -"}") - - self.horizontalLayout_4.addWidget(self.Frame_Settings_Title_Spacer) + self.horizontalLayout_25.addWidget(self.Button_ASR_VPR_OutputRoot_Undo) - self.verticalLayout_109.addWidget(self.Frame_Settings_Top) + self.verticalLayout_83.addWidget(self.Frame_ASR_VPR_OutputRoot) - self.Frame_Settings_Middle = QFrame(self.Page_Settings) - self.Frame_Settings_Middle.setObjectName(u"Frame_Settings_Middle") - self.Frame_Settings_Middle.setStyleSheet(u"QFrame {\n" -" background-color: rgba(36, 36, 36, 123);\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - self.verticalLayout_13 = QVBoxLayout(self.Frame_Settings_Middle) - self.verticalLayout_13.setSpacing(0) - self.verticalLayout_13.setObjectName(u"verticalLayout_13") - self.verticalLayout_13.setContentsMargins(0, 0, 0, 0) - self.Frame_Setting_Language = QFrame(self.Frame_Settings_Middle) - self.Frame_Setting_Language.setObjectName(u"Frame_Setting_Language") - self.Frame_Setting_Language.setMinimumSize(QSize(0, 90)) - self.Frame_Setting_Language.setStyleSheet(u"QFrame {\n" + self.Frame_STT_Whisper_OutputRoot = QFrame(self.GroupBox_Settings_Tools_Path) + self.Frame_STT_Whisper_OutputRoot.setObjectName(u"Frame_STT_Whisper_OutputRoot") + self.Frame_STT_Whisper_OutputRoot.setMinimumSize(QSize(0, 90)) + self.Frame_STT_Whisper_OutputRoot.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 1px;\n" @@ -15215,13 +20520,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " border-color: rgb(60, 60, 60);\n" "}") - self.horizontalLayout_66 = QHBoxLayout(self.Frame_Setting_Language) - self.horizontalLayout_66.setSpacing(12) - self.horizontalLayout_66.setObjectName(u"horizontalLayout_66") - self.horizontalLayout_66.setContentsMargins(21, 12, 21, 12) - self.Label_Setting_Language = QLabel(self.Frame_Setting_Language) - self.Label_Setting_Language.setObjectName(u"Label_Setting_Language") - self.Label_Setting_Language.setStyleSheet(u"QLabel {\n" + self.horizontalLayout_20 = QHBoxLayout(self.Frame_STT_Whisper_OutputRoot) + self.horizontalLayout_20.setSpacing(12) + self.horizontalLayout_20.setObjectName(u"horizontalLayout_20") + self.horizontalLayout_20.setContentsMargins(21, 12, 21, 12) + self.Label_STT_Whisper_OutputRoot = QLabel(self.Frame_STT_Whisper_OutputRoot) + self.Label_STT_Whisper_OutputRoot.setObjectName(u"Label_STT_Whisper_OutputRoot") + sizePolicy4.setHeightForWidth(self.Label_STT_Whisper_OutputRoot.sizePolicy().hasHeightForWidth()) + self.Label_STT_Whisper_OutputRoot.setSizePolicy(sizePolicy4) + self.Label_STT_Whisper_OutputRoot.setStyleSheet(u"QLabel {\n" " font-size: 15px;\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" @@ -15232,177 +20539,166 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_66.addWidget(self.Label_Setting_Language) + self.horizontalLayout_20.addWidget(self.Label_STT_Whisper_OutputRoot) - self.HorizontalSpacer_Setting_Language = QSpacerItem(969, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.LineEdit_STT_Whisper_OutputRoot = LineEditBase(self.Frame_STT_Whisper_OutputRoot) + self.LineEdit_STT_Whisper_OutputRoot.setObjectName(u"LineEdit_STT_Whisper_OutputRoot") + self.LineEdit_STT_Whisper_OutputRoot.setMaximumSize(QSize(16777215, 30)) - self.horizontalLayout_66.addItem(self.HorizontalSpacer_Setting_Language) + self.horizontalLayout_20.addWidget(self.LineEdit_STT_Whisper_OutputRoot) - self.ComboBox_Setting_Language = QComboBox(self.Frame_Setting_Language) - self.ComboBox_Setting_Language.setObjectName(u"ComboBox_Setting_Language") - self.ComboBox_Setting_Language.setMinimumSize(QSize(123, 0)) - self.ComboBox_Setting_Language.setMaximumSize(QSize(123, 16777215)) - self.ComboBox_Setting_Language.setStyleSheet(u"QComboBox {\n" -" /*font-size: 12px;*/\n" -" text-align: left;\n" + self.Button_STT_Whisper_OutputRoot_Undo = QPushButton(self.Frame_STT_Whisper_OutputRoot) + self.Button_STT_Whisper_OutputRoot_Undo.setObjectName(u"Button_STT_Whisper_OutputRoot_Undo") + self.Button_STT_Whisper_OutputRoot_Undo.setMaximumSize(QSize(30, 30)) + self.Button_STT_Whisper_OutputRoot_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" +" padding: 4.5px;\n" " border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" " border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QComboBox:hover {\n" +"QPushButton:hover {\n" " border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QComboBox::drop-down {\n" -" /*width: 12px;\n" -" height: 12px;*/\n" -" subcontrol-origin: padding;\n" -" subcontrol-position: right;\n" -" margin-right: 6px;\n" -" border: none;\n" -"}\n" -"\n" -"QComboBox::down-arrow {\n" -" border-image: url(:/ComboBox_Icon/Sources/DownArrow.png);\n" -"}\n" -"QComboBox::down-arrow:on {\n" -" border-image: url(:/ComboBox_Icon/Sources/UpArrow.png);\n" -"}\n" -"\n" "\n" -"QComboBox QAbstractItemView {\n" -" outline: none;\n" -" background-color: transparent;\n" -" border-width: 1.2px;\n" -" border-radius: 6px;\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" +" border-width: 0px;\n" " border-style: solid;\n" -" border-color: rgba(201, 210, 222, 123);\n" -"}\n" -"\n" -"QCom" - "boBox QAbstractItemView::item {\n" -" /* height: 30px; */\n" +"}") + + self.horizontalLayout_20.addWidget(self.Button_STT_Whisper_OutputRoot_Undo) + + + self.verticalLayout_83.addWidget(self.Frame_STT_Whisper_OutputRoot) + + self.Frame_DAT_GPTSoVITS_OutputRoot = QFrame(self.GroupBox_Settings_Tools_Path) + self.Frame_DAT_GPTSoVITS_OutputRoot.setObjectName(u"Frame_DAT_GPTSoVITS_OutputRoot") + self.Frame_DAT_GPTSoVITS_OutputRoot.setMinimumSize(QSize(0, 90)) + self.Frame_DAT_GPTSoVITS_OutputRoot.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" " background-color: transparent;\n" -" padding-top: 3px;\n" -" padding-left: 6px;\n" -" padding-bottom: 3px;\n" -" padding-right: 6px;\n" -" border: none;\n" -"}\n" -"QComboBox QAbstractItemView::item:hover {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"QComboBox QAbstractItemView::item:selected {\n" -" background-color: rgba(120, 120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical {\n" -" width: 9px;\n" -" background-color: rgb(45, 45, 45);\n" " border-width: 1px;\n" -" border-radius: 6px;\n" " border-style: solid;\n" -" border-color: transparent;\n" -" margin: 0px;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::vertical:hover {\n" -" background-color: rgb(60, 60, 60);\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:vertical {\n" -" height: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -"" - " border-style: solid;\n" +" border-color: rgb(45, 45, 45);\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:vertical {\n" -" height: 0px;\n" +"QFrame:hover {\n" +" border-color: rgb(60, 60, 60);\n" +"}") + self.horizontalLayout_21 = QHBoxLayout(self.Frame_DAT_GPTSoVITS_OutputRoot) + self.horizontalLayout_21.setSpacing(12) + self.horizontalLayout_21.setObjectName(u"horizontalLayout_21") + self.horizontalLayout_21.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_GPTSoVITS_OutputRoot = QLabel(self.Frame_DAT_GPTSoVITS_OutputRoot) + self.Label_DAT_GPTSoVITS_OutputRoot.setObjectName(u"Label_DAT_GPTSoVITS_OutputRoot") + sizePolicy4.setHeightForWidth(self.Label_DAT_GPTSoVITS_OutputRoot.sizePolicy().hasHeightForWidth()) + self.Label_DAT_GPTSoVITS_OutputRoot.setSizePolicy(sizePolicy4) + self.Label_DAT_GPTSoVITS_OutputRoot.setStyleSheet(u"QLabel {\n" +" font-size: 15px;\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" +" padding: 0px;\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:vertical, QComboBox QAbstractScrollArea QScrollBar::sub-page:vertical {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical {\n" +"}") + + self.horizontalLayout_21.addWidget(self.Label_DAT_GPTSoVITS_OutputRoot) + + self.LineEdit_DAT_GPTSoVITS_OutputRoot = LineEditBase(self.Frame_DAT_GPTSoVITS_OutputRoot) + self.LineEdit_DAT_GPTSoVITS_OutputRoot.setObjectName(u"LineEdit_DAT_GPTSoVITS_OutputRoot") + self.LineEdit_DAT_GPTSoVITS_OutputRoot.setMaximumSize(QSize(16777215, 30)) + + self.horizontalLayout_21.addWidget(self.LineEdit_DAT_GPTSoVITS_OutputRoot) + + self.Button_DAT_GPTSoVITS_OutputRoot_Undo = QPushButton(self.Frame_DAT_GPTSoVITS_OutputRoot) + self.Button_DAT_GPTSoVITS_OutputRoot_Undo.setObjectName(u"Button_DAT_GPTSoVITS_OutputRoot_Undo") + self.Button_DAT_GPTSoVITS_OutputRoot_Undo.setMaximumSize(QSize(30, 30)) + self.Button_DAT_GPTSoVITS_OutputRoot_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" -" border-width: 0px;\n" -" border-radius: 0px;\n" -" border-style: solid;\n" -"}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:vertical:hover {\n" -" background-color: rgb(120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal {\n" -" height: 9px;\n" -" background-color: rgb(45, 45, 45);\n" -" border-width: 1px;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" -" border-style: solid;\n" -" borde" - "r-color: transparent;\n" -" margin: 0px;\n" +" border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::horizontal:hover {\n" -" background-color: rgb(60, 60, 60);\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QComboBox QAbstractScrollArea QScrollBar::add-line:horizontal {\n" -" width: 0px;\n" -" background-color: transparent;\n" -" subcontrol-position: left;\n" -" subcontrol-origin: margin;\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" +" background-color: transparent;\n" " border-width: 0px;\n" -" border-radius: 0px;\n" " border-style: solid;\n" +"}") + + self.horizontalLayout_21.addWidget(self.Button_DAT_GPTSoVITS_OutputRoot_Undo) + + + self.verticalLayout_83.addWidget(self.Frame_DAT_GPTSoVITS_OutputRoot) + + self.Frame_DAT_VITS_OutputRoot = QFrame(self.GroupBox_Settings_Tools_Path) + self.Frame_DAT_VITS_OutputRoot.setObjectName(u"Frame_DAT_VITS_OutputRoot") + self.Frame_DAT_VITS_OutputRoot.setMinimumSize(QSize(0, 90)) + self.Frame_DAT_VITS_OutputRoot.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: rgb(45, 45, 45);\n" "}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::sub-line:horizontal {\n" -" width: 0px;\n" +"QFrame:hover {\n" +" border-color: rgb(60, 60, 60);\n" +"}") + self.horizontalLayout_22 = QHBoxLayout(self.Frame_DAT_VITS_OutputRoot) + self.horizontalLayout_22.setSpacing(12) + self.horizontalLayout_22.setObjectName(u"horizontalLayout_22") + self.horizontalLayout_22.setContentsMargins(21, 12, 21, 12) + self.Label_DAT_VITS_OutputRoot = QLabel(self.Frame_DAT_VITS_OutputRoot) + self.Label_DAT_VITS_OutputRoot.setObjectName(u"Label_DAT_VITS_OutputRoot") + sizePolicy4.setHeightForWidth(self.Label_DAT_VITS_OutputRoot.sizePolicy().hasHeightForWidth()) + self.Label_DAT_VITS_OutputRoot.setSizePolicy(sizePolicy4) + self.Label_DAT_VITS_OutputRoot.setStyleSheet(u"QLabel {\n" +" font-size: 15px;\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" " background-color: transparent;\n" -" subcontrol-position: right;\n" -" subcontrol-origin: margin;\n" +" padding: 0px;\n" " border-width: 0px;\n" " border-radius: 0px;\n" " border-style: solid;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::add-page:horizontal, QComboBox QAbstractScrollArea QScrollBar::sub-page:horizontal {\n" -" width: 0px;\n" -" height: 0px;\n" -" background-color: transparent;\n" -"}\n" -"\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal {\n" +"}") + + self.horizontalLayout_22.addWidget(self.Label_DAT_VITS_OutputRoot) + + self.LineEdit_DAT_VITS_OutputRoot = LineEditBase(self.Frame_DAT_VITS_OutputRoot) + self.LineEdit_DAT_VITS_OutputRoot.setObjectName(u"LineEdit_DAT_VITS_OutputRoot") + self.LineEdit_DAT_VITS_OutputRoot.setMaximumSize(QSize(16777215, 30)) + + self.horizontalLayout_22.addWidget(self.LineEdit_DAT_VITS_OutputRoot) + + self.Button_DAT_VITS_OutputRoot_Undo = QPushButton(self.Frame_DAT_VITS_OutputRoot) + self.Button_DAT_VITS_OutputRoot_Undo.setObjectName(u"Button_DAT_VITS_OutputRoot_Undo") + self.Button_DAT_VITS_OutputRoot_Undo.setMaximumSize(QSize(30, 30)) + self.Button_DAT_VITS_OutputRoot_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" -" " - "border-width: 0px;\n" -" border-radius: 0px;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" +" border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QComboBox QAbstractScrollArea QScrollBar::handle:horizontal:hover {\n" -" background-color: rgb(120, 120, 120);\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" @@ -15413,15 +20709,15 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_66.addWidget(self.ComboBox_Setting_Language) + self.horizontalLayout_22.addWidget(self.Button_DAT_VITS_OutputRoot_Undo) - self.verticalLayout_13.addWidget(self.Frame_Setting_Language) + self.verticalLayout_83.addWidget(self.Frame_DAT_VITS_OutputRoot) - self.Frame_Setting_AutoUpdate = QFrame(self.Frame_Settings_Middle) - self.Frame_Setting_AutoUpdate.setObjectName(u"Frame_Setting_AutoUpdate") - self.Frame_Setting_AutoUpdate.setMinimumSize(QSize(0, 90)) - self.Frame_Setting_AutoUpdate.setStyleSheet(u"QFrame {\n" + self.Frame_Train_GPTSoVITS_OutputRoot = QFrame(self.GroupBox_Settings_Tools_Path) + self.Frame_Train_GPTSoVITS_OutputRoot.setObjectName(u"Frame_Train_GPTSoVITS_OutputRoot") + self.Frame_Train_GPTSoVITS_OutputRoot.setMinimumSize(QSize(0, 90)) + self.Frame_Train_GPTSoVITS_OutputRoot.setStyleSheet(u"QFrame {\n" " color: rgb(255, 255, 255);\n" " background-color: transparent;\n" " border-width: 1px;\n" @@ -15431,13 +20727,15 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " border-color: rgb(60, 60, 60);\n" "}") - self.horizontalLayout_65 = QHBoxLayout(self.Frame_Setting_AutoUpdate) - self.horizontalLayout_65.setSpacing(12) - self.horizontalLayout_65.setObjectName(u"horizontalLayout_65") - self.horizontalLayout_65.setContentsMargins(21, 12, 21, 12) - self.Label_Setting_AutoUpdate = QLabel(self.Frame_Setting_AutoUpdate) - self.Label_Setting_AutoUpdate.setObjectName(u"Label_Setting_AutoUpdate") - self.Label_Setting_AutoUpdate.setStyleSheet(u"QLabel {\n" + self.horizontalLayout_23 = QHBoxLayout(self.Frame_Train_GPTSoVITS_OutputRoot) + self.horizontalLayout_23.setSpacing(12) + self.horizontalLayout_23.setObjectName(u"horizontalLayout_23") + self.horizontalLayout_23.setContentsMargins(21, 12, 21, 12) + self.Label_Train_GPTSoVITS_OutputRoot = QLabel(self.Frame_Train_GPTSoVITS_OutputRoot) + self.Label_Train_GPTSoVITS_OutputRoot.setObjectName(u"Label_Train_GPTSoVITS_OutputRoot") + sizePolicy4.setHeightForWidth(self.Label_Train_GPTSoVITS_OutputRoot.sizePolicy().hasHeightForWidth()) + self.Label_Train_GPTSoVITS_OutputRoot.setSizePolicy(sizePolicy4) + self.Label_Train_GPTSoVITS_OutputRoot.setStyleSheet(u"QLabel {\n" " font-size: 15px;\n" " /*text-align: center;*/\n" " /*color: rgb(255, 255, 255);*/\n" @@ -15448,49 +20746,97 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_65.addWidget(self.Label_Setting_AutoUpdate) + self.horizontalLayout_23.addWidget(self.Label_Train_GPTSoVITS_OutputRoot) - self.HorizontalSpacer_Setting_AutoUpdate = QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.LineEdit_Train_GPTSoVITS_OutputRoot = LineEditBase(self.Frame_Train_GPTSoVITS_OutputRoot) + self.LineEdit_Train_GPTSoVITS_OutputRoot.setObjectName(u"LineEdit_Train_GPTSoVITS_OutputRoot") + self.LineEdit_Train_GPTSoVITS_OutputRoot.setMaximumSize(QSize(16777215, 30)) - self.horizontalLayout_65.addItem(self.HorizontalSpacer_Setting_AutoUpdate) + self.horizontalLayout_23.addWidget(self.LineEdit_Train_GPTSoVITS_OutputRoot) - self.CheckBox_Setting_AutoUpdate = QCheckBox(self.Frame_Setting_AutoUpdate) - self.CheckBox_Setting_AutoUpdate.setObjectName(u"CheckBox_Setting_AutoUpdate") - sizePolicy5.setHeightForWidth(self.CheckBox_Setting_AutoUpdate.sizePolicy().hasHeightForWidth()) - self.CheckBox_Setting_AutoUpdate.setSizePolicy(sizePolicy5) - self.CheckBox_Setting_AutoUpdate.setMinimumSize(QSize(123, 0)) - self.CheckBox_Setting_AutoUpdate.setMaximumSize(QSize(123, 16777215)) - self.CheckBox_Setting_AutoUpdate.setStyleSheet(u"QCheckBox {\n" -" font-size: 15px;\n" -" spacing: 12.3px;\n" -" color: rgba(255, 255, 255, 210);\n" + self.Button_Train_GPTSoVITS_OutputRoot_Undo = QPushButton(self.Frame_Train_GPTSoVITS_OutputRoot) + self.Button_Train_GPTSoVITS_OutputRoot_Undo.setObjectName(u"Button_Train_GPTSoVITS_OutputRoot_Undo") + self.Button_Train_GPTSoVITS_OutputRoot_Undo.setMaximumSize(QSize(30, 30)) + self.Button_Train_GPTSoVITS_OutputRoot_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" " background-color: transparent;\n" -" padding: 0px;\n" -" border-width: 0px;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QCheckBox:hover {\n" -" color: rgb(255, 255, 255);\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" -"QCheckBox::indicator {\n" -" width: 30px;\n" -" height: 30px;\n" +"\n" +"QToolTip {\n" +" color: rgba(255, 255, 255, 210);\n" " background-color: transparent;\n" +" border-width: 0px;\n" +" border-style: solid;\n" +"}") + + self.horizontalLayout_23.addWidget(self.Button_Train_GPTSoVITS_OutputRoot_Undo) + + + self.verticalLayout_83.addWidget(self.Frame_Train_GPTSoVITS_OutputRoot) + + self.Frame_Train_VITS_OutputRoot = QFrame(self.GroupBox_Settings_Tools_Path) + self.Frame_Train_VITS_OutputRoot.setObjectName(u"Frame_Train_VITS_OutputRoot") + self.Frame_Train_VITS_OutputRoot.setMinimumSize(QSize(0, 90)) + self.Frame_Train_VITS_OutputRoot.setStyleSheet(u"QFrame {\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: rgb(45, 45, 45);\n" +"}\n" +"QFrame:hover {\n" +" border-color: rgb(60, 60, 60);\n" +"}") + self.horizontalLayout_24 = QHBoxLayout(self.Frame_Train_VITS_OutputRoot) + self.horizontalLayout_24.setSpacing(12) + self.horizontalLayout_24.setObjectName(u"horizontalLayout_24") + self.horizontalLayout_24.setContentsMargins(21, 12, 21, 12) + self.Label_Train_VITS_OutputRoot = QLabel(self.Frame_Train_VITS_OutputRoot) + self.Label_Train_VITS_OutputRoot.setObjectName(u"Label_Train_VITS_OutputRoot") + sizePolicy4.setHeightForWidth(self.Label_Train_VITS_OutputRoot.sizePolicy().hasHeightForWidth()) + self.Label_Train_VITS_OutputRoot.setSizePolicy(sizePolicy4) + self.Label_Train_VITS_OutputRoot.setStyleSheet(u"QLabel {\n" +" font-size: 15px;\n" +" /*text-align: center;*/\n" +" /*color: rgb(255, 255, 255);*/\n" +" background-color: transparent;\n" " padding: 0px;\n" " border-width: 0px;\n" +" border-radius: 0px;\n" +" border-style: solid;\n" +"}") + + self.horizontalLayout_24.addWidget(self.Label_Train_VITS_OutputRoot) + + self.LineEdit_Train_VITS_OutputRoot = LineEditBase(self.Frame_Train_VITS_OutputRoot) + self.LineEdit_Train_VITS_OutputRoot.setObjectName(u"LineEdit_Train_VITS_OutputRoot") + self.LineEdit_Train_VITS_OutputRoot.setMaximumSize(QSize(16777215, 30)) + + self.horizontalLayout_24.addWidget(self.LineEdit_Train_VITS_OutputRoot) + + self.Button_Train_VITS_OutputRoot_Undo = QPushButton(self.Frame_Train_VITS_OutputRoot) + self.Button_Train_VITS_OutputRoot_Undo.setObjectName(u"Button_Train_VITS_OutputRoot_Undo") + self.Button_Train_VITS_OutputRoot_Undo.setMaximumSize(QSize(30, 30)) + self.Button_Train_VITS_OutputRoot_Undo.setStyleSheet(u"QPushButton {\n" +" image: url(:/Button_Icon/Sources/Undo.png);\n" +" background-color: transparent;\n" +" padding: 4.5px;\n" +" border-width: 1.2px;\n" " border-radius: 6px;\n" " border-style: solid;\n" +" border-color: rgba(201, 210, 222, 123);\n" "}\n" -"QCheckBox::indicator:hover {\n" -" background-color: rgba(255, 255, 255, 21);\n" -"}\n" -"QCheckBox::indicator:unchecked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOff.png);\n" -"}\n" -"QCheckBox::indicator:checked {\n" -" border-image: url(:/CheckBox_Icon/Sources/ToggleOn.png);\n" +"QPushButton:hover {\n" +" border-color: rgba(201, 210, 222, 210);\n" "}\n" "\n" "\n" @@ -15501,12 +20847,37 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_65.addWidget(self.CheckBox_Setting_AutoUpdate) + self.horizontalLayout_24.addWidget(self.Button_Train_VITS_OutputRoot_Undo) - self.verticalLayout_13.addWidget(self.Frame_Setting_AutoUpdate) + self.verticalLayout_83.addWidget(self.Frame_Train_VITS_OutputRoot) - self.Frame_Setting_Synchronizer = QFrame(self.Frame_Settings_Middle) + + self.verticalLayout_105.addWidget(self.GroupBox_Settings_Tools_Path) + + self.GroupBox_Settings_Tools_Function = QGroupBox(self.ScrollAreaWidgetContents_Settings_Tools) + self.GroupBox_Settings_Tools_Function.setObjectName(u"GroupBox_Settings_Tools_Function") + self.GroupBox_Settings_Tools_Function.setStyleSheet(u"QGroupBox {\n" +" font-size: 15px;\n" +" margin-top: 1.5ex;\n" +" color: rgb(255, 255, 255);\n" +" background-color: transparent;\n" +" border-width: 1px;\n" +" border-style: solid;\n" +" border-color: transparent;\n" +"}\n" +"QGroupBox::title {\n" +" left: 9px;\n" +" margin-left: 0px;\n" +" subcontrol-origin: margin;\n" +" subcontrol-position: top left;\n" +" padding: 3px;\n" +"}") + self.verticalLayout_82 = QVBoxLayout(self.GroupBox_Settings_Tools_Function) + self.verticalLayout_82.setSpacing(0) + self.verticalLayout_82.setObjectName(u"verticalLayout_82") + self.verticalLayout_82.setContentsMargins(0, 12, 0, 12) + self.Frame_Setting_Synchronizer = QFrame(self.GroupBox_Settings_Tools_Function) self.Frame_Setting_Synchronizer.setObjectName(u"Frame_Setting_Synchronizer") self.Frame_Setting_Synchronizer.setMinimumSize(QSize(0, 90)) self.Frame_Setting_Synchronizer.setStyleSheet(u"QFrame {\n" @@ -15519,12 +20890,14 @@ def setupUi(self, MainWindow): "QFrame:hover {\n" " border-color: rgb(60, 60, 60);\n" "}") - self.horizontalLayout_67 = QHBoxLayout(self.Frame_Setting_Synchronizer) - self.horizontalLayout_67.setSpacing(12) - self.horizontalLayout_67.setObjectName(u"horizontalLayout_67") - self.horizontalLayout_67.setContentsMargins(21, 12, 21, 12) + self.horizontalLayout_74 = QHBoxLayout(self.Frame_Setting_Synchronizer) + self.horizontalLayout_74.setSpacing(12) + self.horizontalLayout_74.setObjectName(u"horizontalLayout_74") + self.horizontalLayout_74.setContentsMargins(21, 12, 21, 12) self.Label_Setting_Synchronizer = QLabel(self.Frame_Setting_Synchronizer) self.Label_Setting_Synchronizer.setObjectName(u"Label_Setting_Synchronizer") + sizePolicy4.setHeightForWidth(self.Label_Setting_Synchronizer.sizePolicy().hasHeightForWidth()) + self.Label_Setting_Synchronizer.setSizePolicy(sizePolicy4) self.Label_Setting_Synchronizer.setStyleSheet(u"QLabel {\n" " font-size: 15px;\n" " /*text-align: center;*/\n" @@ -15536,18 +20909,13 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_67.addWidget(self.Label_Setting_Synchronizer) - - self.HorizontalSpacer_Setting_Synchronizer = QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.horizontalLayout_67.addItem(self.HorizontalSpacer_Setting_Synchronizer) + self.horizontalLayout_74.addWidget(self.Label_Setting_Synchronizer) self.CheckBox_Setting_Synchronizer = QCheckBox(self.Frame_Setting_Synchronizer) self.CheckBox_Setting_Synchronizer.setObjectName(u"CheckBox_Setting_Synchronizer") sizePolicy5.setHeightForWidth(self.CheckBox_Setting_Synchronizer.sizePolicy().hasHeightForWidth()) self.CheckBox_Setting_Synchronizer.setSizePolicy(sizePolicy5) - self.CheckBox_Setting_Synchronizer.setMinimumSize(QSize(123, 0)) - self.CheckBox_Setting_Synchronizer.setMaximumSize(QSize(123, 16777215)) + self.CheckBox_Setting_Synchronizer.setMinimumSize(QSize(0, 30)) self.CheckBox_Setting_Synchronizer.setStyleSheet(u"QCheckBox {\n" " font-size: 15px;\n" " spacing: 12.3px;\n" @@ -15589,97 +20957,21 @@ def setupUi(self, MainWindow): " border-style: solid;\n" "}") - self.horizontalLayout_67.addWidget(self.CheckBox_Setting_Synchronizer) - - - self.verticalLayout_13.addWidget(self.Frame_Setting_Synchronizer) - - self.Frame_Setting_Operation = QFrame(self.Frame_Settings_Middle) - self.Frame_Setting_Operation.setObjectName(u"Frame_Setting_Operation") - self.Frame_Setting_Operation.setMinimumSize(QSize(0, 90)) - self.Frame_Setting_Operation.setStyleSheet(u"QFrame {\n" -" color: rgb(255, 255, 255);\n" -" background-color: transparent;\n" -" border-width: 1px;\n" -" border-style: solid;\n" -" border-color: rgb(45, 45, 45);\n" -"}\n" -"QFrame:hover {\n" -" border-color: rgb(60, 60, 60);\n" -"}") - self.horizontalLayout_6 = QHBoxLayout(self.Frame_Setting_Operation) - self.horizontalLayout_6.setSpacing(42) - self.horizontalLayout_6.setObjectName(u"horizontalLayout_6") - self.horizontalLayout_6.setContentsMargins(21, 12, 21, 12) - self.Button_Setting_ClientRebooter = QPushButton(self.Frame_Setting_Operation) - self.Button_Setting_ClientRebooter.setObjectName(u"Button_Setting_ClientRebooter") - self.Button_Setting_ClientRebooter.setMinimumSize(QSize(123, 0)) - self.Button_Setting_ClientRebooter.setMaximumSize(QSize(123, 16777215)) - self.Button_Setting_ClientRebooter.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" font-size: 12px;\n" -" background-color: transparent;\n" -" padding: 12px;\n" -" border-width: 1.5px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgb(120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - - self.horizontalLayout_6.addWidget(self.Button_Setting_ClientRebooter) - - self.Button_Setting_IntegrityChecker = QPushButton(self.Frame_Setting_Operation) - self.Button_Setting_IntegrityChecker.setObjectName(u"Button_Setting_IntegrityChecker") - self.Button_Setting_IntegrityChecker.setMinimumSize(QSize(123, 0)) - self.Button_Setting_IntegrityChecker.setMaximumSize(QSize(123, 16777215)) - self.Button_Setting_IntegrityChecker.setStyleSheet(u"QPushButton {\n" -" text-align: center;\n" -" font-size: 12px;\n" -" background-color: transparent;\n" -" padding: 12px;\n" -" border-width: 1.5px;\n" -" border-radius: 6px;\n" -" border-style: solid;\n" -" border-color: rgb(90, 90, 90);\n" -"}\n" -"QPushButton:hover {\n" -" border-color: rgb(120, 120, 120);\n" -"}\n" -"\n" -"\n" -"QToolTip {\n" -" color: rgba(255, 255, 255, 210);\n" -" background-color: transparent;\n" -" border-width: 0px;\n" -" border-style: solid;\n" -"}") - - self.horizontalLayout_6.addWidget(self.Button_Setting_IntegrityChecker) + self.horizontalLayout_74.addWidget(self.CheckBox_Setting_Synchronizer) - self.HorizontalSpacer_Setting_Operation = QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.horizontalLayout_6.addItem(self.HorizontalSpacer_Setting_Operation) + self.verticalLayout_82.addWidget(self.Frame_Setting_Synchronizer) - self.verticalLayout_13.addWidget(self.Frame_Setting_Operation) + self.verticalLayout_105.addWidget(self.GroupBox_Settings_Tools_Function) + self.ScrollArea_Settings_Tools.setWidget(self.ScrollAreaWidgetContents_Settings_Tools) - self.verticalLayout_109.addWidget(self.Frame_Settings_Middle) + self.gridLayout_93.addWidget(self.ScrollArea_Settings_Tools, 0, 0, 1, 1) - self.VerticalSpacer_Settings = QSpacerItem(20, 378, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + self.StackedWidget_Pages_Settings.addWidget(self.SubPage_Settings_Tools) - self.verticalLayout_109.addItem(self.VerticalSpacer_Settings) + self.verticalLayout_78.addWidget(self.StackedWidget_Pages_Settings) self.StackedWidget_Pages.addWidget(self.Page_Settings) self.Page_Info = QWidget() @@ -16355,10 +21647,13 @@ def setupUi(self, MainWindow): self.StackedWidget_Pages_ASR.setCurrentIndex(0) self.StackedWidget_Pages_STT.setCurrentIndex(0) self.StackedWidget_Pages_Dataset.setCurrentIndex(0) + self.StackedWidget_DAT_GPTSoVITS.setCurrentIndex(0) self.StackedWidget_DAT_VITS.setCurrentIndex(0) self.StackedWidget_Pages_Train.setCurrentIndex(0) + self.StackedWidget_Train_GPTSoVITS.setCurrentIndex(0) self.StackedWidget_Train_VITS.setCurrentIndex(0) self.StackedWidget_Pages_TTS.setCurrentIndex(0) + self.StackedWidget_Pages_Settings.setCurrentIndex(0) QMetaObject.connectSlotsByName(MainWindow) @@ -16392,11 +21687,14 @@ def retranslateUi(self, MainWindow): self.Label_Env_Install_PyReqs_Status.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.Label_Env_Install_Pytorch.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.Label_Env_Install_Pytorch_Status.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.ToolButton_Models_Process_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) self.ToolButton_Models_ASR_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) self.ToolButton_Models_STT_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) self.ToolButton_Models_TTS_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) + self.TabWidget_Models_Process.setTabText(self.TabWidget_Models_Process.indexOf(self.Tab_Models_Process_UVR), QCoreApplication.translate("MainWindow", u"Tab 1", None)) self.TabWidget_Models_ASR.setTabText(self.TabWidget_Models_ASR.indexOf(self.Tab_Models_ASR_VPR), QCoreApplication.translate("MainWindow", u"Tab 1", None)) self.TabWidget_Models_STT.setTabText(self.TabWidget_Models_STT.indexOf(self.Tab_Models_STT_Whisper), QCoreApplication.translate("MainWindow", u"Tab 1", None)) + self.TabWidget_Models_TTS.setTabText(self.TabWidget_Models_TTS.indexOf(self.Tab_Models_TTS_GPTSoVITS), QCoreApplication.translate("MainWindow", u"\u9875", None)) self.TabWidget_Models_TTS.setTabText(self.TabWidget_Models_TTS.indexOf(self.Tab_Models_TTS_VITS), QCoreApplication.translate("MainWindow", u"Tab 1", None)) self.ToolButton_AudioProcessor_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) ___qtreewidgetitem = self.TreeWidget_Catalogue_Process.headerItem() @@ -16412,10 +21710,15 @@ def retranslateUi(self, MainWindow): self.GroupBox_Process_InputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox1", None)) self.Label_Process_MediaDirInput.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) - self.GroupBox_Process_AudioSlicerParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox2", None)) + self.GroupBox_Process_DenoiserParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox2", None)) + self.Label_Process_DenoiseAudio.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.CheckBox_Process_DenoiseAudio.setText(QCoreApplication.translate("MainWindow", u"CheckBox", None)) + self.Label_Process_DenoiseModelPath.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_Process_DenoiseTarget.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.GroupBox_Process_SlicerParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox2", None)) self.Label_Process_SliceAudio.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.CheckBox_Process_SliceAudio.setText(QCoreApplication.translate("MainWindow", u"CheckBox", None)) - self.CheckBox_Process_AudioSlicerParams_Toggle_AdvanceSettings.setText(QCoreApplication.translate("MainWindow", u"CheckBox2", None)) + self.CheckBox_Process_SlicerParams_Toggle_AdvanceSettings.setText(QCoreApplication.translate("MainWindow", u"CheckBox2", None)) self.Label_Process_RMSThreshold.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.Label_Process_AudioLengthMin.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.Label_Process_SilentIntervalMin.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) @@ -16423,7 +21726,7 @@ def retranslateUi(self, MainWindow): self.Label_Process_SilenceKeptMax.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.GroupBox_Process_OutputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox3", None)) self.Label_Process_MediaFormatOutput.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) - self.Label_Process_MediaDirOutput.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_Process_OutputDirName.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.CheckBox_Process_OutputParams_Toggle_AdvanceSettings.setText(QCoreApplication.translate("MainWindow", u"CheckBox2", None)) self.Label_Process_SampleRate.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.Label_Process_SampleWidth.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) @@ -16452,7 +21755,9 @@ def retranslateUi(self, MainWindow): self.Label_ASR_VPR_FeatureMethod.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.Label_ASR_VPR_DurationOfAudio.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.GroupBox_ASR_VPR_OutputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox3", None)) - self.Label_ASR_VPR_AudioSpeakersDataPath.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_ASR_VPR_OutputDirName.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.CheckBox_ASR_VPR_OutputParams_Toggle_AdvanceSettings.setText(QCoreApplication.translate("MainWindow", u"CheckBox3", None)) + self.Label_ASR_VPR_AudioSpeakersDataName.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.ToolButton_VoiceTranscriber_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) ___qtreewidgetitem6 = self.TreeWidget_Catalogue_STT_Whisper.headerItem() ___qtreewidgetitem6.setText(0, QCoreApplication.translate("MainWindow", u"HeaderView", None)); @@ -16479,18 +21784,39 @@ def retranslateUi(self, MainWindow): self.Label_STT_Whisper_Verbose.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.CheckBox_STT_Whisper_Verbose.setText(QCoreApplication.translate("MainWindow", u"CheckBox", None)) self.GroupBox_STT_Whisper_OutputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox3", None)) - self.Label_STT_Whisper_SRTDir.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) - self.ToolButton_DatasetCreator_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) - ___qtreewidgetitem9 = self.TreeWidget_Catalogue_DAT_VITS.headerItem() + self.Label_STT_Whisper_OutputDirName.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.ToolButton_DatasetCreator_Title_GPTSoVITS.setText(QCoreApplication.translate("MainWindow", u"Label", None)) + self.ToolButton_DatasetCreator_Title_VITS.setText(QCoreApplication.translate("MainWindow", u"Label", None)) + ___qtreewidgetitem9 = self.TreeWidget_Catalogue_DAT_GPTSoVITS.headerItem() ___qtreewidgetitem9.setText(0, QCoreApplication.translate("MainWindow", u"HeaderView", None)); - __sortingEnabled3 = self.TreeWidget_Catalogue_DAT_VITS.isSortingEnabled() - self.TreeWidget_Catalogue_DAT_VITS.setSortingEnabled(False) - ___qtreewidgetitem10 = self.TreeWidget_Catalogue_DAT_VITS.topLevelItem(0) + __sortingEnabled3 = self.TreeWidget_Catalogue_DAT_GPTSoVITS.isSortingEnabled() + self.TreeWidget_Catalogue_DAT_GPTSoVITS.setSortingEnabled(False) + ___qtreewidgetitem10 = self.TreeWidget_Catalogue_DAT_GPTSoVITS.topLevelItem(0) ___qtreewidgetitem10.setText(0, QCoreApplication.translate("MainWindow", u"RootItem", None)); ___qtreewidgetitem11 = ___qtreewidgetitem10.child(0) ___qtreewidgetitem11.setText(0, QCoreApplication.translate("MainWindow", u"ChildItem", None)); - self.TreeWidget_Catalogue_DAT_VITS.setSortingEnabled(__sortingEnabled3) + self.TreeWidget_Catalogue_DAT_GPTSoVITS.setSortingEnabled(__sortingEnabled3) + + self.GroupBox_DAT_GPTSoVITS_InputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox1", None)) + self.Label_DAT_GPTSoVITS_AudioSpeakersDataPath.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_DAT_GPTSoVITS_SRTDir.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.GroupBox_DAT_GPTSoVITS_GPTSoVITSParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox2", None)) + self.Label_DAT_GPTSoVITS_DataFormat.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.GroupBox_DAT_GPTSoVITS_OutputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox3", None)) + self.Label_DAT_GPTSoVITS_OutputDirName.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.CheckBox_DAT_GPTSoVITS_OutputParams_Toggle_AdvanceSettings.setText(QCoreApplication.translate("MainWindow", u"CheckBox3", None)) + self.Label_DAT_GPTSoVITS_FileListName.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + ___qtreewidgetitem12 = self.TreeWidget_Catalogue_DAT_VITS.headerItem() + ___qtreewidgetitem12.setText(0, QCoreApplication.translate("MainWindow", u"HeaderView", None)); + + __sortingEnabled4 = self.TreeWidget_Catalogue_DAT_VITS.isSortingEnabled() + self.TreeWidget_Catalogue_DAT_VITS.setSortingEnabled(False) + ___qtreewidgetitem13 = self.TreeWidget_Catalogue_DAT_VITS.topLevelItem(0) + ___qtreewidgetitem13.setText(0, QCoreApplication.translate("MainWindow", u"RootItem", None)); + ___qtreewidgetitem14 = ___qtreewidgetitem13.child(0) + ___qtreewidgetitem14.setText(0, QCoreApplication.translate("MainWindow", u"ChildItem", None)); + self.TreeWidget_Catalogue_DAT_VITS.setSortingEnabled(__sortingEnabled4) self.GroupBox_DAT_VITS_InputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox1", None)) self.Label_DAT_VITS_AudioSpeakersDataPath.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) @@ -16507,22 +21833,48 @@ def retranslateUi(self, MainWindow): self.Label_DAT_VITS_ToMono.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.CheckBox_DAT_VITS_ToMono.setText(QCoreApplication.translate("MainWindow", u"CheckBox", None)) self.GroupBox_DAT_VITS_OutputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox3", None)) - self.Label_DAT_VITS_ToStandaloneForm.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) - self.CheckBox_DAT_VITS_ToStandaloneForm.setText(QCoreApplication.translate("MainWindow", u"CheckBox", None)) - self.Label_DAT_VITS_WAVDirSplit.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) - self.Label_DAT_VITS_FileListPathTraining.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) - self.Label_DAT_VITS_FileListPathValidation.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) - self.ToolButton_VoiceTrainer_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) - ___qtreewidgetitem12 = self.TreeWidget_Catalogue_Train_VITS.headerItem() - ___qtreewidgetitem12.setText(0, QCoreApplication.translate("MainWindow", u"HeaderView", None)); + self.Label_DAT_VITS_OutputDirName.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.CheckBox_DAT_VITS_OutputParams_Toggle_AdvanceSettings.setText(QCoreApplication.translate("MainWindow", u"CheckBox3", None)) + self.Label_DAT_VITS_FileListNameTraining.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_DAT_VITS_FileListNameValidation.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.ToolButton_VoiceTrainer_Title_GPTSoVITS.setText(QCoreApplication.translate("MainWindow", u"Label", None)) + self.ToolButton_VoiceTrainer_Title_VITS.setText(QCoreApplication.translate("MainWindow", u"Label", None)) + ___qtreewidgetitem15 = self.TreeWidget_Catalogue_Train_GPTSoVITS.headerItem() + ___qtreewidgetitem15.setText(0, QCoreApplication.translate("MainWindow", u"HeaderView", None)); - __sortingEnabled4 = self.TreeWidget_Catalogue_Train_VITS.isSortingEnabled() + __sortingEnabled5 = self.TreeWidget_Catalogue_Train_GPTSoVITS.isSortingEnabled() + self.TreeWidget_Catalogue_Train_GPTSoVITS.setSortingEnabled(False) + ___qtreewidgetitem16 = self.TreeWidget_Catalogue_Train_GPTSoVITS.topLevelItem(0) + ___qtreewidgetitem16.setText(0, QCoreApplication.translate("MainWindow", u"RootItem", None)); + ___qtreewidgetitem17 = ___qtreewidgetitem16.child(0) + ___qtreewidgetitem17.setText(0, QCoreApplication.translate("MainWindow", u"ChildItem", None)); + self.TreeWidget_Catalogue_Train_GPTSoVITS.setSortingEnabled(__sortingEnabled5) + + self.GroupBox_Train_GPTSoVITS_InputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox1", None)) + self.Label_Train_GPTSoVITS_FileListPath.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.GroupBox_Train_GPTSoVITS_GPTSoVITSParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox2", None)) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS1.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS2G.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_Train_GPTSoVITS_ModelDirPretrainedBert.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_Train_GPTSoVITS_ModelDirPretrainedSSL.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_Train_GPTSoVITS_ModelPathPretrainedS2D.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.CheckBox_Train_GPTSoVITS_GPTSoVITSParams_Toggle_AdvanceSettings.setText(QCoreApplication.translate("MainWindow", u"CheckBox2", None)) + self.Label_Train_GPTSoVITS_FP16Run.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.CheckBox_Train_GPTSoVITS_FP16Run.setText(QCoreApplication.translate("MainWindow", u"CheckBox", None)) + self.GroupBox_Train_GPTSoVITS_OutputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox3", None)) + self.Label_Train_GPTSoVITS_OutputDirName.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.CheckBox_Train_GPTSoVITS_OutputParams_Toggle_AdvanceSettings.setText(QCoreApplication.translate("MainWindow", u"CheckBox3", None)) + self.Label_Train_GPTSoVITS_LogDir.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + ___qtreewidgetitem18 = self.TreeWidget_Catalogue_Train_VITS.headerItem() + ___qtreewidgetitem18.setText(0, QCoreApplication.translate("MainWindow", u"HeaderView", None)); + + __sortingEnabled6 = self.TreeWidget_Catalogue_Train_VITS.isSortingEnabled() self.TreeWidget_Catalogue_Train_VITS.setSortingEnabled(False) - ___qtreewidgetitem13 = self.TreeWidget_Catalogue_Train_VITS.topLevelItem(0) - ___qtreewidgetitem13.setText(0, QCoreApplication.translate("MainWindow", u"RootItem", None)); - ___qtreewidgetitem14 = ___qtreewidgetitem13.child(0) - ___qtreewidgetitem14.setText(0, QCoreApplication.translate("MainWindow", u"ChildItem", None)); - self.TreeWidget_Catalogue_Train_VITS.setSortingEnabled(__sortingEnabled4) + ___qtreewidgetitem19 = self.TreeWidget_Catalogue_Train_VITS.topLevelItem(0) + ___qtreewidgetitem19.setText(0, QCoreApplication.translate("MainWindow", u"RootItem", None)); + ___qtreewidgetitem20 = ___qtreewidgetitem19.child(0) + ___qtreewidgetitem20.setText(0, QCoreApplication.translate("MainWindow", u"ChildItem", None)); + self.TreeWidget_Catalogue_Train_VITS.setSortingEnabled(__sortingEnabled6) self.GroupBox_Train_VITS_InputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox1", None)) self.Label_Train_VITS_FileListPathTraining.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) @@ -16543,18 +21895,40 @@ def retranslateUi(self, MainWindow): self.CheckBox_Train_VITS_FP16Run.setText(QCoreApplication.translate("MainWindow", u"CheckBox", None)) self.GroupBox_Train_VITS_OutputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox3", None)) self.Label_Train_VITS_EvalInterval.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) - self.Label_Train_VITS_OutputDir.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) - self.ToolButton_VoiceConverter_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) - ___qtreewidgetitem15 = self.TreeWidget_Catalogue_TTS_VITS.headerItem() - ___qtreewidgetitem15.setText(0, QCoreApplication.translate("MainWindow", u"HeaderView", None)); - - __sortingEnabled5 = self.TreeWidget_Catalogue_TTS_VITS.isSortingEnabled() + self.Label_Train_VITS_OutputDirName.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.CheckBox_Train_VITS_OutputParams_Toggle_AdvanceSettings.setText(QCoreApplication.translate("MainWindow", u"CheckBox3", None)) + self.Label_Train_VITS_LogDir.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.ToolButton_VoiceConverter_Title_GPTSoVITS.setText(QCoreApplication.translate("MainWindow", u"Label", None)) + self.ToolButton_VoiceConverter_Title_VITS.setText(QCoreApplication.translate("MainWindow", u"Label", None)) + ___qtreewidgetitem21 = self.TreeWidget_Catalogue_TTS_GPTSoVITS.headerItem() + ___qtreewidgetitem21.setText(0, QCoreApplication.translate("MainWindow", u"HeaderView", None)); + + __sortingEnabled7 = self.TreeWidget_Catalogue_TTS_GPTSoVITS.isSortingEnabled() + self.TreeWidget_Catalogue_TTS_GPTSoVITS.setSortingEnabled(False) + ___qtreewidgetitem22 = self.TreeWidget_Catalogue_TTS_GPTSoVITS.topLevelItem(0) + ___qtreewidgetitem22.setText(0, QCoreApplication.translate("MainWindow", u"RootItem", None)); + ___qtreewidgetitem23 = ___qtreewidgetitem22.child(0) + ___qtreewidgetitem23.setText(0, QCoreApplication.translate("MainWindow", u"ChildItem", None)); + self.TreeWidget_Catalogue_TTS_GPTSoVITS.setSortingEnabled(__sortingEnabled7) + + self.GroupBox_TTS_GPTSoVITS_InputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox1", None)) + self.Label_TTS_GPTSoVITS_ModelPathLoadS1.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_TTS_GPTSoVITS_ModelPathLoadS2G.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_TTS_GPTSoVITS_ModelDirLoadBert.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_TTS_GPTSoVITS_ModelDirLoadSSL.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.GroupBox_TTS_GPTSoVITS_GPTSoVITSParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox2", None)) + self.Label_TTS_GPTSoVITS_FP16Run.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.CheckBox_TTS_GPTSoVITS_FP16Run.setText(QCoreApplication.translate("MainWindow", u"CheckBox", None)) + ___qtreewidgetitem24 = self.TreeWidget_Catalogue_TTS_VITS.headerItem() + ___qtreewidgetitem24.setText(0, QCoreApplication.translate("MainWindow", u"HeaderView", None)); + + __sortingEnabled8 = self.TreeWidget_Catalogue_TTS_VITS.isSortingEnabled() self.TreeWidget_Catalogue_TTS_VITS.setSortingEnabled(False) - ___qtreewidgetitem16 = self.TreeWidget_Catalogue_TTS_VITS.topLevelItem(0) - ___qtreewidgetitem16.setText(0, QCoreApplication.translate("MainWindow", u"RootItem", None)); - ___qtreewidgetitem17 = ___qtreewidgetitem16.child(0) - ___qtreewidgetitem17.setText(0, QCoreApplication.translate("MainWindow", u"ChildItem", None)); - self.TreeWidget_Catalogue_TTS_VITS.setSortingEnabled(__sortingEnabled5) + ___qtreewidgetitem25 = self.TreeWidget_Catalogue_TTS_VITS.topLevelItem(0) + ___qtreewidgetitem25.setText(0, QCoreApplication.translate("MainWindow", u"RootItem", None)); + ___qtreewidgetitem26 = ___qtreewidgetitem25.child(0) + ___qtreewidgetitem26.setText(0, QCoreApplication.translate("MainWindow", u"ChildItem", None)); + self.TreeWidget_Catalogue_TTS_VITS.setSortingEnabled(__sortingEnabled8) self.GroupBox_TTS_VITS_InputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox1", None)) self.Label_TTS_VITS_ConfigPathLoad.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) @@ -16569,10 +21943,23 @@ def retranslateUi(self, MainWindow): self.Label_TTS_VITS_SpeechRate.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.GroupBox_TTS_VITS_OutputParams.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox3", None)) self.Label_TTS_VITS_AudioPathSave.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) - self.ToolButton_Settings_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) + self.ToolButton_Settings_Title_Client.setText(QCoreApplication.translate("MainWindow", u"Label", None)) + self.ToolButton_Settings_Title_Tools.setText(QCoreApplication.translate("MainWindow", u"Label", None)) + self.GroupBox_Settings_Client_Outlook.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox", None)) self.Label_Setting_Language.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.GroupBox_Settings_Client_Function.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox", None)) self.Label_Setting_AutoUpdate.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.CheckBox_Setting_AutoUpdate.setText(QCoreApplication.translate("MainWindow", u"CheckBox", None)) + self.GroupBox_Settings_Client_Operation.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox", None)) + self.GroupBox_Settings_Tools_Path.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox", None)) + self.Label_Process_OutputRoot.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_ASR_VPR_OutputRoot.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_STT_Whisper_OutputRoot.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_DAT_GPTSoVITS_OutputRoot.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_DAT_VITS_OutputRoot.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_Train_GPTSoVITS_OutputRoot.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.Label_Train_VITS_OutputRoot.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.GroupBox_Settings_Tools_Function.setTitle(QCoreApplication.translate("MainWindow", u"GroupBox", None)) self.Label_Setting_Synchronizer.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) self.CheckBox_Setting_Synchronizer.setText(QCoreApplication.translate("MainWindow", u"CheckBox", None)) self.ToolButton_Info_Title.setText(QCoreApplication.translate("MainWindow", u"Label", None)) diff --git a/EVT_GUI/Window.py b/EVT_GUI/Window.py index cf2579d..958b12f 100644 --- a/EVT_GUI/Window.py +++ b/EVT_GUI/Window.py @@ -35,8 +35,6 @@ class Window_ChildWindow_ASR(ChildWindowBase): def __init__(self, parent = None): super().__init__(parent, min_width = 960, min_height = 540) - self.setWindowModality(Qt.ApplicationModal) - self.ui.setupUi(self) self.setTitleBar(self.ui.TitleBar) @@ -54,8 +52,6 @@ class Window_ChildWindow_STT(ChildWindowBase): def __init__(self, parent = None): super().__init__(parent, min_width = 960, min_height = 540) - self.setWindowModality(Qt.ApplicationModal) - self.ui.setupUi(self) self.setTitleBar(self.ui.TitleBar) @@ -73,8 +69,6 @@ class Window_ChildWindow_TTS(ChildWindowBase): def __init__(self, parent = None): super().__init__(parent, min_width = 450, min_height = 300) - self.setWindowModality(Qt.ApplicationModal) - self.ui.setupUi(self) self.setTitleBar(self.ui.TitleBar) @@ -87,109 +81,6 @@ def InitDefaultStyleSheet(self, Theme: str) -> None: ############################################################################################################################## -class MessageBoxBase(DialogBase): - ''' - ''' - ButtonDict = { - QMessageBox.NoButton: QDialogButtonBox.NoButton, - QMessageBox.Ok: QDialogButtonBox.Ok, - QMessageBox.Cancel: QDialogButtonBox.Cancel, - QMessageBox.Yes: QDialogButtonBox.Yes, - QMessageBox.No: QDialogButtonBox.No, - QMessageBox.Retry: QDialogButtonBox.Retry, - QMessageBox.Ignore: QDialogButtonBox.Ignore, - QMessageBox.Open: QDialogButtonBox.Open, - QMessageBox.Close: QDialogButtonBox.Close, - QMessageBox.Save: QDialogButtonBox.Save, - QMessageBox.Discard: QDialogButtonBox.Discard, - QMessageBox.Apply: QDialogButtonBox.Apply, - QMessageBox.RestoreDefaults: QDialogButtonBox.RestoreDefaults, - QMessageBox.Ok | QMessageBox.Cancel: QDialogButtonBox.Ok | QDialogButtonBox.Cancel, - QMessageBox.Yes | QMessageBox.No: QDialogButtonBox.Yes | QDialogButtonBox.No, - QMessageBox.Retry | QMessageBox.Ignore: QDialogButtonBox.Retry | QDialogButtonBox.Ignore, - QMessageBox.Open | QMessageBox.Close: QDialogButtonBox.Open | QDialogButtonBox.Close, - QMessageBox.Save | QMessageBox.Discard: QDialogButtonBox.Save | QDialogButtonBox.Discard, - QMessageBox.Apply | QMessageBox.RestoreDefaults: QDialogButtonBox.Apply | QDialogButtonBox.RestoreDefaults - } - - def __init__(self, - parent: Optional[QWidget] = None, - min_width = 630, - min_height = 420 - ): - super().__init__(parent, Qt.Dialog, min_width, min_height) - - self.setWindowModality(Qt.ApplicationModal) - self.setModal(True) - - self.Label = QLabel(str(), parent = self) - - self.ButtonBox = QDialogButtonBox(parent = self) - self.ButtonBox.accepted.connect(self.accept) - self.ButtonBox.rejected.connect(self.reject) - self.ButtonBox.setOrientation(Qt.Horizontal) - - self.Layout = QVBoxLayout() - self.Layout.setAlignment(Qt.AlignCenter) - self.Layout.setContentsMargins(21, 12, 21, 12) - self.Layout.setSpacing(21) - self.Layout.addWidget(self.Label) - self.Layout.addWidget(self.ButtonBox) - self.setLayout(self.Layout) - - self.setIcon(QMessageBox.Information) - self.setText('Text') - self.setStandardButtons(QMessageBox.NoButton) - - def setIcon(self, arg__1): - if arg__1 == QMessageBox.Question: - self.setWindowIcon(QApplication.style().standardIcon(QStyle.SP_MessageBoxQuestion)) - if arg__1 == QMessageBox.Information: - self.setWindowIcon(QApplication.style().standardIcon(QStyle.SP_MessageBoxInformation)) - if arg__1 == QMessageBox.Warning: - self.setWindowIcon(QApplication.style().standardIcon(QStyle.SP_MessageBoxWarning)) - if arg__1 == QMessageBox.Critical: - self.setWindowIcon(QApplication.style().standardIcon(QStyle.SP_MessageBoxCritical)) - - def setText(self, text: str): - Function_SetText( - Widget = self.Label, - Text = SetRichText( - Title = text, - TitleAlign = 'center' - ) - ) - - def setStandardButtons(self, buttons: QMessageBox.StandardButton): - self.ButtonBox.setStandardButtons(self.ButtonDict.get(buttons)) - ''' - for PushButton in self.ButtonBox.buttons(): - StandardButton = FindKey(self.ButtonDict, self.ButtonBox.standardButton(PushButton)) - PushButton.clicked.connect(lambda: ComponentsSignals.Signal_ClickedButton.emit(StandardButton)) if PushButton is not None else None - ''' - - def exec(self) -> int: - Result = super().exec() - StandardButton = FindKey(self.ButtonDict, Result) - return StandardButton if StandardButton is not None else Result - - def InsertItem(self, Item: QObject, Position: str = 'Center'): - if isinstance(Item, QWidget): - if Position is 'Top': - self.Layout.insertWidget(0, Item) - if Position is 'Center': - self.Layout.insertWidget(1, Item) - if Position is 'Bottom': - self.Layout.insertWidget(2, Item) - if isinstance(Item, QLayout): - if Position is 'Top': - self.Layout.insertLayout(0, Item) - if Position is 'Center': - self.Layout.insertLayout(1, Item) - if Position is 'Bottom': - self.Layout.insertLayout(2, Item) - - class MessageBox_Stacked(MessageBoxBase): ''' ''' @@ -242,7 +133,7 @@ def __init__(self, parent: QWidget = None): Layout.addWidget(self.ButtonP) Layout.addWidget(self.StackedWidget) Layout.addWidget(self.ButtonN) - self.InsertItem(Layout, Position = 'Top') + self.Layout.insertLayout(0, Layout) def SetContent(self, Images: list, Texts: list): Function_SetNoContents(self.StackedWidget) @@ -322,7 +213,7 @@ def __init__(self, parent: QWidget = None): Layout.setSpacing(21) Layout.addWidget(self.Button1, 1, 0, 1, 2) Layout.addWidget(self.Button2, 2, 0, 1, 2) - self.InsertItem(Layout, Position = 'Bottom') + self.Layout.insertLayout(2, Layout) class MessageBox_LineEdit(MessageBoxBase): @@ -372,7 +263,7 @@ def __init__(self, parent: QWidget = None): Layout.addWidget(self.LineEdit, 2, 0, 1, 2) Layout.addWidget(self.Button_Cancel, 3, 0, 1, 1) Layout.addWidget(self.Button_Confirm, 3, 1, 1, 1) - self.InsertItem(Layout, Position = 'Bottom') + self.Layout.insertLayout(2, Layout) def SetContent(self, Title: str, Body:str): self.setText(Title) diff --git a/README.md b/README.md index 383508c..1236211 100644 --- a/README.md +++ b/README.md @@ -46,9 +46,9 @@
Voice Convertion
这些功能依次关联,能够形成一套完整的工作流 -
These functions are independent of each other but seamlessly integrated to form a complete workflow +
These functions can be seamlessly integrated to form a complete workflow
用户可以根据自己的需求有选择性地使用,亦或者依次通过这些工具将未经处理的语音文件逐步变为理想的语音模型 -
Users can use these tools selectively according to their own needs, or use them in sequence to gradually transform raw audio files into ideal speech models. +
Users can use these tools selectively according to their own needs, or use them in sequence to gradually transform raw audio files into ideal speech models ### 鸣谢
Acknowledgement @@ -60,6 +60,7 @@ - [whisper](https://github.com/openai/whisper) - [SRT-to-CSV-and-audio-split](https://github.com/tobiasrordorf/SRT-to-CSV-and-audio-split) - [vits](https://github.com/CjangCjengh/vits) +- [GPT-SoVITS](https://github.com/RVC-Boss/GPT-SoVITS) ## 注意事项
Consideration @@ -218,7 +219,7 @@
**A**: 开代理或者直接用懒人包 - **Q**: 好多参数都不清楚要如何设置该怎么办? -
**A**: 不明白的话使用默认值就好,至于有些参数(如语音识别工具中的“判断阈值”)可能要视实际效果多调试几次 +
**A**: 不明白的话使用默认值就好 - **Q**: 你这永久免费开源...它保真吗?
**A**: 嗯哼~♪ diff --git a/Run.ipynb b/Run.ipynb index e1d5372..ca560ec 100644 --- a/Run.ipynb +++ b/Run.ipynb @@ -154,14 +154,16 @@ "#@title [Tool] AudioProcessor 该工具会将媒体文件批量转换为音频文件然后自动切除音频的静音部分\n", "%cd /content/Easy-Voice-Toolkit\n", "\n", + "from datetime import date\n", + "from pathlib import Path\n", "from EVT_Core.Process.Process import Audio_Processing\n", "\n", "class Execute_Audio_Processing:\n", " '''\n", " Change media format to WAV and cut off the silent parts\n", " '''\n", - " #@markdown **媒体输入目录**:需要输出为音频文件的媒体文件的目录(注意:结尾不需要斜杠)\n", - " Media_Dir_Input: str = '/content/drive/MyDrive/%EVT/MediaInput%' #@param {type:\"string\"}\n", + " #@markdown **媒体输入目录**:需要输出为音频文件的媒体文件的目录\n", + " Media_Dir_Input: str = '/content/drive/MyDrive/%MediaInput%' #@param {type:\"string\"}\n", " #@markdown **媒体输出格式**:需要输出为的音频文件的格式\n", " Media_Format_Output: str = 'wav' #@param [\"flac\", \"wav\", \"mp3\", \"aac\", \"ogg\", \"m4a\", \"wma\", \"aiff\", \"au\"]\n", " #@markdown **启用静音切除**:音频中的静音部分将被切除\n", @@ -182,12 +184,11 @@ " SampleWidth: int = None #@param [\"None\", 8, 16, 24, 32]\n", " #@markdown **合并声道**:将输出音频的声道合并为单声道\n", " ToMono: bool = False #@param {type:\"boolean\"}\n", - " #@markdown **媒体输出目录**:于保存最后生成的音频文件的目录(注意:结尾不需要斜杠)\n", - " Media_Dir_Output: str = '/content/drive/MyDrive/%EVT/ProcessResult%' #@param {type:\"string\"}\n", + " #@markdown **输出目录**:用于保存最后生成的音频文件的目录\n", + " Media_Dir_Output: str = f'/content/drive/MyDrive/EVT/音频处理结果/{date.today()}' #@param {type:\"string\"}\n", "\n", "AudioConvertandSlice = Audio_Processing(\n", " Execute_Audio_Processing.Media_Dir_Input,\n", - " Execute_Audio_Processing.Media_Dir_Output,\n", " Execute_Audio_Processing.Media_Format_Output,\n", " Execute_Audio_Processing.SampleRate if Execute_Audio_Processing.SampleRate != \"None\" else None,\n", " Execute_Audio_Processing.SampleWidth if Execute_Audio_Processing.SampleWidth != \"None\" else None,\n", @@ -197,7 +198,9 @@ " Execute_Audio_Processing.Audio_Length_Min,\n", " Execute_Audio_Processing.Silent_Interval_Min,\n", " Execute_Audio_Processing.Hop_Size,\n", - " Execute_Audio_Processing.Silence_Kept_Max\n", + " Execute_Audio_Processing.Silence_Kept_Max,\n", + " Path(Execute_Audio_Processing.Media_Dir_Output).parent.__str__(),\n", + " Path(Execute_Audio_Processing.Media_Dir_Output).name\n", ")\n", "AudioConvertandSlice.Process_Audio()" ] @@ -220,16 +223,18 @@ "#@title [Tool] VoiceIdentifier 该工具会在不同说话人的音频中批量筛选出属于同一说话人的音频\n", "%cd /content/Easy-Voice-Toolkit\n", "\n", + "from datetime import date\n", + "from pathlib import Path\n", "from EVT_Core.ASR.VPR.Identify import Voice_Identifying\n", "\n", "class Execute_Voice_Identifying:\n", " '''\n", " Contrast the voice and filter out the similar ones\n", " '''\n", - " #@markdown **音频输入目录**:需要进行语音识别筛选的音频文件的目录(注意:结尾不需要斜杠)\n", - " Audio_Dir_Input: str = '/content/drive/MyDrive/%EVT/ProcessResult%' #@param {type:\"string\"}\n", + " #@markdown **音频输入目录**:需要进行语音识别筛选的音频文件的目录\n", + " Audio_Dir_Input: str = '/content/drive/MyDrive/%...%' #@param {type:\"string\"}\n", " #@markdown **目标人物与音频**:目标人物的名字及其语音文件的所在路径\n", - " StdAudioSpeaker: dict = {'%SpeakerName%': '/content/drive/MyDrive/%EVT/Audio.wav%'} #@param {type:\"raw\"}\n", + " StdAudioSpeaker: dict = {'%SpeakerName%': '/content/drive/MyDrive/%StdAudio.wav%'} #@param {type:\"raw\"}\n", " #@markdown **模型加载路径**:用于加载的声纹识别模型的所在路径\n", " Model_Path: str = '/content/drive/MyDrive/%EVT/Model_Download/ASR/VPR/Ecapa-Tdnn_spectrogram.pth%'\n", " #@markdown **判断阈值**:判断是否为同一人的阈值,若参与比对的说话人声音相识度较高可以增加该值\n", @@ -240,13 +245,12 @@ " Feature_Method: str = 'spectrogram' #@param [\"spectrogram\", \"melspectrogram\"]\n", " #@markdown **音频长度**:用于预测的音频长度\n", " Duration_of_Audio: float = 3.00 #@param {type:\"number\"}\n", - " #@markdown **语音识别结果保存路径**:用于保存识别得到的音频文件与对应说话人的信息文件的路径\n", - " AudioSpeakersData_Path: str = '/content/drive/MyDrive/%EVT/ASRResult/AudioSpeakersData.txt%' #@param {type:\"string\"}\n", - " #@markdown **音频文件保存目录**:用于保存拥有匹配人物的音频文件的目录\n", - " MoveToDst: str = '/content/drive/MyDrive/%EVT/ASRResult%' #@param {type:\"string\"}\n", + " #@markdown **输出目录**:用于保存最后生成的结果文件的目录\n", + " Output_Dir: str = f'/content/drive/MyDrive/EVT/语音识别结果/{date.today()}' #@param {type:\"string\"}\n", + " #@markdown **识别结果文本名**:用于保存最后生成的记录音频文件与对应说话人的txt文件的名字\n", + " AudioSpeakersDataName: str = 'Recgonition' #@param {type:\"string\"}\n", "\n", "import os, shutil\n", - "from pathlib import Path\n", "def ASRResult_Update(AudioSpeakersData_Path: str, MoveToDst: str):\n", " os.makedirs(MoveToDst, exist_ok = True) if Path(MoveToDst).exists() == False else None\n", " with open(AudioSpeakersData_Path, mode = 'w', encoding = 'utf-8') as AudioSpeakersData:\n", @@ -265,18 +269,20 @@ "AudioContrastInference = Voice_Identifying(\n", " Execute_Voice_Identifying.StdAudioSpeaker,\n", " Execute_Voice_Identifying.Audio_Dir_Input,\n", - " Execute_Voice_Identifying.AudioSpeakersData_Path,\n", " Execute_Voice_Identifying.Model_Path,\n", " Execute_Voice_Identifying.Model_Type,\n", " Execute_Voice_Identifying.Feature_Method,\n", " Execute_Voice_Identifying.DecisionThreshold,\n", - " Execute_Voice_Identifying.Duration_of_Audio\n", + " Execute_Voice_Identifying.Duration_of_Audio,\n", + " Path(Execute_Voice_Identifying.Output_Dir).parent.__str__(),\n", + " Path(Execute_Voice_Identifying.Output_Dir).name,\n", + " Execute_Voice_Identifying.AudioSpeakersDataName\n", ")\n", "AudioContrastInference.GetModel()\n", "AudioContrastInference.Inference()\n", "ASRResult_Update(\n", - " Execute_Voice_Identifying.AudioSpeakersData_Path,\n", - " Execute_Voice_Identifying.MoveToDst\n", + " Path(Execute_Voice_Identifying.Output_Dir).joinpath(Execute_Voice_Identifying.AudioSpeakersDataName) + \".txt\",\n", + " Execute_Voice_Identifying.Output_Dir\n", ")" ] }, @@ -298,14 +304,16 @@ "#@title [Tool] VoiceTranscriber 该工具会将语音文件的内容批量转换为带时间戳的文本并以字幕文件的形式保存\n", "%cd /content/Easy-Voice-Toolkit\n", "\n", + "from datetime import date\n", + "from pathlib import Path\n", "from EVT_Core.STT.Whisper.Transcribe import Voice_Transcribing\n", "\n", "class Execute_Voice_Transcribing:\n", " '''\n", " Transcribe WAV content to SRT\n", " '''\n", - " #@markdown **音频目录**:需要将语音内容转为文字的wav文件的目录(注意:结尾不需要斜杠)\n", - " Audio_Dir: str = '/content/drive/MyDrive/%EVT/ASRResult%' #@param {type:\"string\"}\n", + " #@markdown **音频目录**:需要将语音内容转为文字的wav文件的目录\n", + " Audio_Dir: str = '/content/drive/MyDrive/%EVT/语音识别结果/...%' #@param {type:\"string\"}\n", " #@markdown **模型加载路径**:用于加载的Whisper模型的所在路径\n", " Model_Path: str = '/content/drive/MyDrive/%EVT/Model_Download/STT/Whisper/small.pt%' #@param {type:\"string\"}\n", " #@markdown **标注语言信息**:标注音频中说话人所使用的语言,若用于VITS数据集制作则建议启用\n", @@ -316,17 +324,18 @@ " Verbose: bool = True #@param {type:\"boolean\"}\n", " #@markdown **关联上下文**:在音频之间的内容具有关联性时启用该项可以获得更好的效果,若模型陷入了失败循环则禁用此项\n", " Condition_on_Previous_Text: bool = False #@param {type:\"boolean\"}\n", - " #@markdown **字幕输出目录**:最后生成的字幕文件将会保存到该目录中(注意:结尾不需要斜杠)\n", - " SRT_Dir: str = '/content/drive/MyDrive/%EVT/STTResult%' #@param {type:\"string\"}\n", + " #@markdown **输出目录**:最后生成的字幕文件将会保存到该目录中\n", + " Output_Dir: str = f'/content/drive/MyDrive/EVT/语音转录结果/{date.today()}' #@param {type:\"string\"}\n", "\n", "WAVtoSRT = Voice_Transcribing(\n", " Execute_Voice_Transcribing.Model_Path,\n", " Execute_Voice_Transcribing.Audio_Dir,\n", - " Execute_Voice_Transcribing.SRT_Dir,\n", " Execute_Voice_Transcribing.Verbose,\n", " Execute_Voice_Transcribing.Add_LanguageInfo,\n", " Execute_Voice_Transcribing.Condition_on_Previous_Text,\n", - " Execute_Voice_Transcribing.fp16\n", + " Execute_Voice_Transcribing.fp16,\n", + " Path(Execute_Voice_Transcribing.Output_Dir).parent.__str__(),\n", + " Path(Execute_Voice_Transcribing.Output_Dir).name\n", ")\n", "WAVtoSRT.Transcriber()" ] @@ -336,7 +345,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Tool_DatasetCreator\n", + "### Tool_DatasetCreator - VITS2\n", "该工具会生成适用于语音模型训练的数据集" ] }, @@ -349,6 +358,8 @@ "#@title [Tool] DatasetCreator 该工具会生成适用于语音模型训练的数据集\n", "%cd /content/Easy-Voice-Toolkit\n", "\n", + "from datetime import date\n", + "from pathlib import Path\n", "from EVT_Core.Dataset.VITS.Create import Dataset_Creating\n", "\n", "class Execute_Dataset_Creating:\n", @@ -356,9 +367,9 @@ " Convert the whisper-generated SRT and split the WAV\n", " '''\n", " #@markdown **音频文件目录/语音识别结果文件路径**:音频文件的所在目录(要求按说话人分类),或者提供由语音识别得到的文本文件的所在路径\n", - " AudioSpeakersData_Path: str = '/content/drive/MyDrive/%EVT/ASRResult/AudioSpeakersData.txt%' #@param {type:\"string\"}\n", - " #@markdown **字幕输入目录**:需要转为适用于模型训练的csv文件的srt文件的目录(注意:结尾不需要斜杠)\n", - " SRT_Dir: str = '/content/drive/MyDrive/%EVT/STTResult/Transcript_SRT%' #@param {type:\"string\"}\n", + " AudioSpeakersData_Path: str = '/content/drive/MyDrive/%EVT/语音识别结果/...%' #@param {type:\"string\"}\n", + " #@markdown **字幕输入目录**:需要转为适用于模型训练的csv文件的srt文件的目录\n", + " SRT_Dir: str = '/content/drive/MyDrive/%EVT/语音转录结果/...%' #@param {type:\"string\"}\n", " #@markdown **添加辅助数据**:添加用以辅助训练的数据集,若当前语音数据的质量/数量较低则建议启用\n", " Add_AuxiliaryData: bool = False #@param {type:\"boolean\"}\n", " #@markdown **辅助数据文本路径**:辅助数据集的文本的所在路径\n", @@ -373,12 +384,12 @@ " ToMono: bool = True #@param {type:\"boolean\"}\n", " #@markdown **训练集占比**:划分给训练集的数据在数据集中所占的比例\n", " TrainRatio: float = 0.7 #@param {type:\"number\"}\n", - " #@markdown **音频输出目录**:用于保存最后处理完成的音频的目录(注意:结尾不需要斜杠)\n", - " WAV_Dir_Split: str = '/content/drive/MyDrive/%EVT/Dataset%' #@param {type:\"string\"}\n", - " #@markdown **训练集文本路径**:用于保存最后生成的训练集txt文件的路径\n", - " FileList_Path_Training: str = '/content/drive/MyDrive/%EVT/Dataset/Train.txt%' #@param {type:\"string\"}\n", - " #@markdown **验证集文本路径**:用于保存最后生成的验证集txt文件的路径\n", - " FileList_Path_Validation: str = '/content/drive/MyDrive/%EVT/Dataset/Valid.txt%' #@param {type:\"string\"}\n", + " #@markdown **输出目录**:用于保存最后生成的数据集的目录\n", + " Output_Dir: str = f'/content/drive/MyDrive/EVT/数据集制作结果/{date.today()}' #@param {type:\"string\"}\n", + " #@markdown **训练集文本名**:用于保存最后生成的训练集txt文件的名字\n", + " FileList_Name_Training: str = 'Train' #@param {type:\"string\"}\n", + " #@markdown **验证集文本名**:用于保存最后生成的验证集txt文件的名字\n", + " FileList_Name_Validation: str = 'Val' #@param {type:\"string\"}\n", "\n", "SRTtoCSVandSplitAudio = Dataset_Creating(\n", " Execute_Dataset_Creating.SRT_Dir,\n", @@ -386,13 +397,14 @@ " Execute_Dataset_Creating.SampleRate if Execute_Dataset_Creating.SampleRate != \"None\" else None,\n", " Execute_Dataset_Creating.SampleWidth if Execute_Dataset_Creating.SampleWidth != \"None\" else None,\n", " Execute_Dataset_Creating.ToMono,\n", - " Execute_Dataset_Creating.WAV_Dir_Split,\n", " Execute_Dataset_Creating.Add_AuxiliaryData,\n", " Execute_Dataset_Creating.AuxiliaryData_Path,\n", " Execute_Dataset_Creating.Add_UnmatchedLanguage,\n", " Execute_Dataset_Creating.TrainRatio,\n", - " Execute_Dataset_Creating.FileList_Path_Training,\n", - " Execute_Dataset_Creating.FileList_Path_Validation\n", + " Path(Execute_Dataset_Creating.Output_Dir).parent.__str__(),\n", + " Path(Execute_Dataset_Creating.Output_Dir).name,\n", + " Execute_Dataset_Creating.FileList_Name_Training,\n", + " Execute_Dataset_Creating.FileList_Name_Validation\n", ")\n", "SRTtoCSVandSplitAudio.CallingFunctions()" ] @@ -402,7 +414,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Tool_VoiceTrainer\n", + "### Tool_VoiceTrainer - VITS2\n", "该工具会训练出适用于语音合成的模型文件(若在使用过程中出现报错,可以尝试先`断开连接并删除运行时`,然后重新运行 Configure Colab 部分以及本代码块)" ] }, @@ -415,6 +427,8 @@ "#@title [Tool] VoiceTrainer 该工具会训练出适用于语音合成的模型文件\n", "%cd /content/Easy-Voice-Toolkit\n", "\n", + "from datetime import date\n", + "from pathlib import Path\n", "from EVT_Core.Train.VITS.Train import Voice_Training\n", "\n", "class Execute_Voice_Training:\n", @@ -422,9 +436,9 @@ " Preprocess and then start training\n", " '''\n", " #@markdown **训练集文本路径**:用于提供训练集音频路径及其语音内容的训练集txt文件的路径\n", - " FileList_Path_Training: str = '/content/drive/MyDrive/%EVT/Dataset/Train.txt%' #@param {type:\"string\"}\n", + " FileList_Path_Training: str = '/content/drive/MyDrive/%EVT/数据集制作结果/Train.txt%' #@param {type:\"string\"}\n", " #@markdown **验证集文本路径**:用于提供验证集音频路径及其语音内容的验证集txt文件的路径\n", - " FileList_Path_Validation: str = '/content/drive/MyDrive/%EVT/Dataset/Val.txt%' #@param {type:\"string\"}\n", + " FileList_Path_Validation: str = '/content/drive/MyDrive/%EVT/数据集制作结果/Val.txt%' #@param {type:\"string\"}\n", " #@markdown **迭代次数**:将全部样本完整迭代一轮的次数\n", " Epochs: int = 300 #@param {type:\"integer\"}\n", " #@markdown **批处理量**:每轮迭代中单位批次的样本数量(注意:最好设置为2的幂次)\n", @@ -446,7 +460,7 @@ " #@markdown **评估间隔**:每次保存模型所间隔的step数\n", " Eval_Interval: int = 1000 #@param {type:\"integer\"}\n", " #@markdown **输出目录**:用于存放生成的模型和配置文件的目录,若目录中已存在模型则会将其视为检查点(注意:当目录中存在多个模型时,编号最大的会被选为检查点)\n", - " Dir_Output: str = '/content/drive/MyDrive/EVT/TrainResult' #@param {type:\"string\"}\n", + " Output_Dir: str = f'/content/drive/MyDrive/EVT/模型训练结果/{date.today()}' #@param {type:\"string\"}\n", "\n", "# Load the TensorBoard notebook extension\n", "%load_ext tensorboard\n", @@ -466,7 +480,9 @@ " Execute_Voice_Training.Use_PretrainedModels,\n", " Execute_Voice_Training.Model_Path_Pretrained_G if Execute_Voice_Training.Model_Path_Pretrained_G != \"None\" else None,\n", " Execute_Voice_Training.Model_Path_Pretrained_D if Execute_Voice_Training.Model_Path_Pretrained_D != \"None\" else None,\n", - " Execute_Voice_Training.Dir_Output\n", + " Path(Execute_Voice_Training.Output_Dir).parent.__str__(),\n", + " Path(Execute_Voice_Training.Output_Dir).name,\n", + " \"/content/drive/MyDrive/EVT/log\"\n", ")\n", "PreprocessandTrain.Preprocessing_and_Training()" ] @@ -476,7 +492,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Tool_VoiceConverter\n", + "### Tool_VoiceConverter - VITS2\n", "该工具会将文字转为语音并生成音频文件" ] }, @@ -489,6 +505,8 @@ "#@title [Tool] VoiceConverter 该工具会将文字转为语音并生成音频文件\n", "%cd /content/Easy-Voice-Toolkit\n", "\n", + "from datetime import date\n", + "from pathlib import Path\n", "from EVT_Core.TTS.VITS.Convert import Voice_Converting\n", "\n", "class Execute_Voice_Converting:\n", @@ -496,9 +514,9 @@ " Convert text to speech and save as audio files\n", " '''\n", " #@markdown **配置加载路径**:该路径对应的配置文件会用于推理\n", - " Config_Path_Load: str = '/content/drive/MyDrive/%TrainResult/Config.json%' #@param {type:\"string\"}\n", + " Config_Path_Load: str = '/content/drive/MyDrive/%EVT/模型训练结果/Config.json%' #@param {type:\"string\"}\n", " #@markdown **G模型加载路径**:用于推理的生成器(Generator)模型所在路径\n", - " Model_Path_Load: str = '/content/drive/MyDrive/%TrainResult/G_*.pth%' #@param {type:\"string\"}\n", + " Model_Path_Load: str = '/content/drive/MyDrive/%EVT/模型训练结果/G_*.pth%' #@param {type:\"string\"}\n", " #@markdown **输入文字**:输入的文字会作为说话人的语音内容\n", " Text: str = '请输入语句' #@param {type:\"string\"}\n", " #@markdown **所用语言**:说话人/文字所使用的语言,若使用自动检测则保持'None'即可\n", @@ -512,7 +530,7 @@ " #@markdown **整体语速**:整体的说话速度\n", " SpeechRate: float = 1.0 #@param {type:\"number\"}\n", " #@markdown **音频保存路径**:用于保存推理得到的音频的路径\n", - " Audio_Path_Save: str = '/content/drive/MyDrive/%Audio_Converted.wav%' #@param {type:\"string\"}\n", + " Audio_Path_Save: str = f'/content/drive/MyDrive/EVT/语音合成结果/{date.today()}.wav' #@param {type:\"string\"}\n", "\n", "VoiceConverting = Voice_Converting(\n", " Execute_Voice_Converting.Config_Path_Load,\n", diff --git a/Run.py b/Run.py index ce14a4b..5ccf4cb 100644 --- a/Run.py +++ b/Run.py @@ -146,7 +146,7 @@ def Execute(self, Params: tuple): # Tools: VoiceIdentifier -class Execute_Voice_Identifying(QObject): +class Execute_Voice_Identifying_VPR(QObject): ''' Contrast the voice and filter out the similar ones ''' @@ -185,7 +185,7 @@ def Execute(self, Params: tuple): # Tools: VoiceTranscriber -class Execute_Voice_Transcribing(QObject): +class Execute_Voice_Transcribing_Whisper(QObject): ''' Transcribe WAV content to SRT ''' @@ -231,7 +231,44 @@ def Execute(self, Params: tuple): # Tools: DatasetCreator -class Execute_Dataset_Creating(QObject): +class Execute_Dataset_Creating_GPTSoVITS(QObject): + ''' + Convert the whisper-generated SRT to CSV and split the WAV + ''' + started = Signal() + finished = Signal(str) + + def __init__(self): + super().__init__() + + @Slot(tuple) + def Execute(self, Params: tuple): + self.started.emit() + + Output, Error = RunCMD( + Args = [ + f'cd "{ResourceDir}"', + 'python -c "' + 'from EVT_Core.Dataset.GPT_SoVITS.Create import Dataset_Creating; ' + f"SRTtoCSVandSplitAudio = Dataset_Creating{str(Params)}; " + 'SRTtoCSVandSplitAudio.CallingFunctions()"' + ], + ShowProgress = True, + CommunicateThroughConsole = True, + DecodeResult = True, + LogPath = LogPath + )[:2] + if 'error' in str(Error).lower(): + pass + elif 'traceback' in str(Output).lower(): + Error = "出错了,详情请见终端输出信息" + else: + Error = None + + self.finished.emit(str(Error)) + + +class Execute_Dataset_Creating_VITS(QObject): ''' Convert the whisper-generated SRT to CSV and split the WAV ''' @@ -269,7 +306,43 @@ def Execute(self, Params: tuple): # Tools: VoiceTrainer -class Execute_Voice_Training(QObject): +class Execute_Voice_Training_GPTSoVITS(QObject): + ''' + Preprocess and then start training + ''' + started = Signal() + finished = Signal(str) + + def __init__(self): + super().__init__() + + @Slot(tuple) + def Execute(self, Params: tuple): + self.started.emit() + + Output, Error = RunCMD( + Args = [ + f'cd "{ResourceDir}"', + 'python -c "' + 'from EVT_Core.Train.GPT_SoVITS.Train import Train; ' + f'Train{str(Params)}"' + ], + ShowProgress = True, + CommunicateThroughConsole = True, + DecodeResult = True, + LogPath = LogPath + )[:2] + if 'error' in str(Error).lower(): + pass + elif 'traceback' in str(Output).lower(): + Error = "出错了,详情请见终端输出信息" + else: + Error = None + + self.finished.emit(str(Error)) + + +class Execute_Voice_Training_VITS(QObject): ''' Preprocess and then start training ''' @@ -297,10 +370,7 @@ def Execute(self, Params: tuple): LogPath = LogPath )[:2] if 'error' in str(Error).lower(): - if "is not a directory" in str(Error).lower(): - Error = "请确保日志保存路径中没有中文等特殊字符" - if "specify the reduction dim" in str(Error).lower(): - Error = "请检查显存是否足够或者 batch size(批处理量)设置是否过高" + pass elif 'traceback' in str(Output).lower(): Error = "出错了,详情请见终端输出信息" else: @@ -310,6 +380,42 @@ def Execute(self, Params: tuple): # Tools: VoiceConverter +class Execute_Voice_Converting_GPTSoVITS(QObject): + ''' + Inference model + ''' + started = Signal() + finished = Signal(str) + + def __init__(self): + super().__init__() + + @Slot(tuple) + def Execute(self, Params: tuple): + self.started.emit() + + Output, Error = RunCMD( + Args = [ + f'cd "{ResourceDir}"', + 'python -c "' + 'from EVT_Core.TTS.GPT_SoVITS.Convert import Convert; ' + f'Convert{str(Params)}"' + ], + ShowProgress = True, + CommunicateThroughConsole = True, + DecodeResult = True, + LogPath = LogPath + )[:2] + if 'error' in str(Error).lower(): + pass + elif 'traceback' in str(Output).lower(): + Error = "出错了,详情请见终端输出信息" + else: + Error = None + + self.finished.emit(str(Error)) + + def Get_Speakers(Config_Path_Load): try: with open(Config_Path_Load, 'r', encoding = 'utf-8') as File: @@ -319,7 +425,7 @@ def Get_Speakers(Config_Path_Load): except: return str() -class Execute_Voice_Converting(QObject): +class Execute_Voice_Converting_VITS(QObject): ''' Inference model ''' @@ -363,18 +469,20 @@ def Execute(self, Params: tuple): self.finished.emit(str(Error)) - self.finished.emit(str(Error)) - # ClientFunc: GetModelsInfo class CustomSignals_ModelView(QObject): ''' Set up signals for model view ''' + Signal_Process_UVR = Signal(list) + Signal_ASR_VPR = Signal(list) Signal_STT_Whisper = Signal(list) + Signal_TTS_GPTSoVITS = Signal(list) + Signal_TTS_VITS = Signal(list) ModelViewSignals = CustomSignals_ModelView() @@ -400,14 +508,26 @@ def GetModelsInfo(self, ModelsDir: str, ModelsFormats: list): if ModelDict["tags"] == Tags: ModelDicts_Cloud.append(ModelDict) def GetModelInfo_Cloud(ModelDict): - ModelName = ModelDict["name"] - ModelSize = ModelDict["size"] - ModelDate = ModelDict["date"] - ModelSHA = ModelDict["SHA"] - ModelURL = ModelDict["downloadurl"] - ModelDir = Path(ModelsDir).joinpath("Downloaded") - DownloadParam = (ModelURL, ModelDir, ModelName, Path(ModelURL).suffix, ModelSHA) - ModelsInfo[ModelSHA] = [str(ModelName), str(ModelSize), str(ModelDate), tuple(DownloadParam)] + if isinstance(ModelDict["SHA"], dict): + Name = ModelDict["name"] + for Model, ModelSHA in ModelDict["SHA"].items(): + ModelName = Model + ModelSize = ModelDict["size"][Model] + ModelDate = ModelDict["date"][Model] + ModelSHA = ModelSHA + ModelURL = ModelDict["downloadurl"][Model] + ModelDir = Path(ModelsDir).joinpath("Downloaded", Name) + DownloadParam = (ModelURL, ModelDir, ModelName, Path(ModelURL).suffix, ModelSHA) + ModelsInfo[ModelSHA] = [str(f"[{Name}]{ModelName}"), str(ModelSize), str(ModelDate), tuple(DownloadParam)] + else: + ModelName = ModelDict["name"] + ModelSize = ModelDict["size"] + ModelDate = ModelDict["date"] + ModelSHA = ModelDict["SHA"] + ModelURL = ModelDict["downloadurl"] + ModelDir = Path(ModelsDir).joinpath("Downloaded") + DownloadParam = (ModelURL, ModelDir, ModelName, Path(ModelURL).suffix, ModelSHA) + ModelsInfo[ModelSHA] = [str(ModelName), str(ModelSize), str(ModelDate), tuple(DownloadParam)] with ThreadPoolExecutor(max_workers = os.cpu_count()) as Executor: Executor.map( GetModelInfo_Cloud, @@ -416,11 +536,12 @@ def GetModelInfo_Cloud(ModelDict): ModelPaths_Local = [] for ModelsFormat in ModelsFormats: - ModelPaths_Local_Sep = GetPaths(ModelsDir, ModelsFormat) - ModelPaths_Local_Sep = [ModelPath_Local_Sep for ModelPath_Local_Sep in ModelPaths_Local_Sep if ModelPath_Local_Sep.endswith(ModelsFormat)] + ModelPaths_Local_Sep = ToIterable(GetPaths(ModelsDir, ModelsFormat)) + ModelPaths_Local_Sep = [ModelPath_Local_Sep for ModelPath_Local_Sep in ModelPaths_Local_Sep if ModelPath_Local_Sep is not None and ModelPath_Local_Sep.endswith(ModelsFormat)] ModelPaths_Local.extend(ModelPaths_Local_Sep) if ModelPaths_Local_Sep is not None else None ModelPaths_Local = list(set(ModelPaths_Local)) def GetModelInfo_Local(ModelPath): + Name = Path(ModelPath).parts[-2] if Path(ModelPath).parent.__str__() not in Path(ModelsDir).joinpath("Downloaded").__str__() else None ModelName = Path(ModelPath).stem ModelSize = round(Path(ModelPath).stat().st_size / (1024 ** 2), 1) ModelDate = datetime.fromtimestamp(Path(ModelPath).stat().st_mtime) @@ -428,7 +549,7 @@ def GetModelInfo_Local(ModelPath): ModelBytes = m.read() ModelSHA = hashlib.sha256(ModelBytes).hexdigest() ModelDir = Path(ModelPath).parent - ModelsInfo[ModelSHA] = [str(ModelName), str(ModelSize)+'MB', str(ModelDate), str(ModelDir)] + ModelsInfo[ModelSHA] = [str(f"[{Name}]{ModelName}" if Name is not None else ModelName), str(ModelSize)+'MB', str(ModelDate), str(ModelDir)] with ThreadPoolExecutor(max_workers = os.cpu_count()) as Executor: Executor.map( GetModelInfo_Local, @@ -439,6 +560,12 @@ def GetModelInfo_Local(ModelPath): @Slot() def Execute(self): + ModelViewSignals.Signal_Process_UVR.emit( + self.GetModelsInfo( + NormPath(Path(ModelsDir).joinpath('Process', 'UVR')), + ['pth', 'onnx'] + ) + ) ModelViewSignals.Signal_ASR_VPR.emit( self.GetModelsInfo( NormPath(Path(ModelsDir).joinpath('ASR', 'VPR')), @@ -451,6 +578,12 @@ def Execute(self): ['pt'] ) ) + ModelViewSignals.Signal_TTS_GPTSoVITS.emit( + self.GetModelsInfo( + NormPath(Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS')), + ['pth', 'ckpt', 'bin', 'json'] + ) + ) ModelViewSignals.Signal_TTS_VITS.emit( self.GetModelsInfo( NormPath(Path(ModelsDir).joinpath('TTS', 'VITS')), @@ -700,7 +833,7 @@ def Function_SetMethodExecutor(self, ClassInstance.finished.connect(lambda Error: MainWindowSignals.Signal_TaskStatus.emit(QualName, 'Finished') if Error == str(None) else None) if hasattr(ClassInstance, 'finished') else None ClassInstance.finished.connect(lambda Error: RunEvents(FinishEvents) if Error == str(None) else None) if hasattr(ClassInstance, 'finished') else None ClassInstance.finished.connect(lambda Error: MainWindowSignals.Signal_TaskStatus.emit(QualName, 'Failed') if Error != str(None) else None) if hasattr(ClassInstance, 'finished') else None - ClassInstance.finished.connect(lambda Error: Function_ShowMessageBox(QMessageBox.Warning, 'Failure', f'发生错误:\n{Error}') if Error != str(None) else None) if hasattr(ClassInstance, 'finished') else None + ClassInstance.finished.connect(lambda Error: Function_ShowMessageBox(self, QMessageBox.Warning, 'Failure', f'发生错误:\n{Error}') if Error != str(None) else None) if hasattr(ClassInstance, 'finished') else None if not isinstance(ClassInstance, QThread): WorkerThread = QThread() @@ -769,7 +902,7 @@ def TerminateMethod(): if TerminateButton is not None: TerminateButton.clicked.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, MessageType = QMessageBox.Question, WindowTitle = "Ask", Text = "当前任务仍在执行中,是否确认终止?", @@ -1049,7 +1182,7 @@ def Main(self): lambda: Config.EditConfig('Env', 'Aria2', 'Undetected'), ) EnvConfiguratorSignals.Signal_Aria2Undetected.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, WindowTitle = "Tip", Text = "未检测到Aria2,已开始下载", ButtonEvents = {QMessageBox.Ok: lambda: self.ui.Button_Menu_Download.click()} @@ -1059,7 +1192,7 @@ def Main(self): lambda: EnvConfiguratorSignals.Signal_Aria2Detected.emit() ) EnvConfiguratorSignals.Signal_Aria2InstallFailed.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, MessageType = QMessageBox.Warning, WindowTitle = "Warning", Text = "安装Aria2出错", @@ -1093,7 +1226,7 @@ def Main(self): lambda: Config.EditConfig('Env', 'FFmpeg', 'Undetected'), ) EnvConfiguratorSignals.Signal_FFmpegUndetected.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, WindowTitle = "Tip", Text = "未检测到FFmpeg,已开始下载", ButtonEvents = {QMessageBox.Ok: lambda: self.ui.Button_Menu_Download.click()} @@ -1103,7 +1236,7 @@ def Main(self): lambda: EnvConfiguratorSignals.Signal_FFmpegDetected.emit() ) EnvConfiguratorSignals.Signal_FFmpegInstallFailed.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, MessageType = QMessageBox.Warning, WindowTitle = "Warning", Text = "安装FFmpeg出错", @@ -1137,7 +1270,7 @@ def Main(self): lambda: Config.EditConfig('Env', 'Python', 'Undetected'), ) EnvConfiguratorSignals.Signal_PythonUndetected.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, WindowTitle = "Tip", Text = "未检测到3.8版本以上的Python,已开始下载", ButtonEvents = {QMessageBox.Ok: lambda: self.ui.Button_Menu_Download.click()} @@ -1147,7 +1280,7 @@ def Main(self): lambda: EnvConfiguratorSignals.Signal_PythonDetected.emit() ) EnvConfiguratorSignals.Signal_PythonInstallFailed.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, MessageType = QMessageBox.Warning, WindowTitle = "Warning", Text = "安装Python出错", @@ -1181,9 +1314,9 @@ def Main(self): lambda: Config.EditConfig('Env', 'PyReqs', 'Undetected'), ) EnvConfiguratorSignals.Signal_PyReqsUndetected.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, WindowTitle = "Tip", - Text = "未检测到Python依赖库,已开始下载", + Text = "缺失Python依赖库,已开始下载", ButtonEvents = {QMessageBox.Ok: lambda: self.ui.Button_Menu_Download.click()} ) ) @@ -1191,7 +1324,7 @@ def Main(self): lambda: EnvConfiguratorSignals.Signal_PyReqsDetected.emit() ) EnvConfiguratorSignals.Signal_PythonInstallFailed.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, MessageType = QMessageBox.Warning, WindowTitle = "Warning", Text = "安装Python依赖库出错" @@ -1225,9 +1358,9 @@ def Main(self): lambda: Config.EditConfig('Env', 'Pytorch', 'Undetected'), ) EnvConfiguratorSignals.Signal_PytorchUndetected.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, WindowTitle = "Tip", - Text = "未检测到Pytorch,已开始下载", + Text = "缺失Pytorch相关库,已开始下载", ButtonEvents = {QMessageBox.Ok: lambda: self.ui.Button_Menu_Download.click()} ) ) @@ -1235,7 +1368,7 @@ def Main(self): lambda: EnvConfiguratorSignals.Signal_PytorchDetected.emit() ) EnvConfiguratorSignals.Signal_PytorchInstallFailed.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, MessageType = QMessageBox.Warning, WindowTitle = "Warning", Text = "安装Pytorch出错", @@ -1263,14 +1396,38 @@ def Main(self): ) ) + self.ui.ToolButton_Models_Process_Title.setText(QCA.translate("ToolButton", '基本处理')) + self.ui.ToolButton_Models_Process_Title.setCheckable(True) + self.ui.ToolButton_Models_Process_Title.setChecked(True) + self.ui.ToolButton_Models_Process_Title.setAutoExclusive(True) + self.ui.ToolButton_Models_Process_Title.clicked.connect( + lambda: Function_AnimateStackedWidget( + StackedWidget = self.ui.StackedWidget_Pages_Models, + TargetIndex = 0 + ) + ) + self.ui.ToolButton_Models_Process_Title.setToolTip( + "基本处理模型" + ) + + self.ui.TabWidget_Models_Process.setTabText(0, 'UVR(人声分离)') + self.ui.Table_Models_Process_UVR.SetHorizontalHeaders(['名字', '大小', '日期', '操作']) + ModelViewSignals.Signal_Process_UVR.connect(self.ui.Table_Models_Process_UVR.SetValue) + self.ui.Table_Models_Process_UVR.Download.connect( + lambda Params: self.Function_SetMethodExecutor( + Method = Model_Downloader.Execute, + Params = Params + ) + ) + self.ui.ToolButton_Models_ASR_Title.setText(QCA.translate("ToolButton", 'ASR(识别)')) self.ui.ToolButton_Models_ASR_Title.setCheckable(True) - self.ui.ToolButton_Models_ASR_Title.setChecked(True) + self.ui.ToolButton_Models_ASR_Title.setChecked(False) self.ui.ToolButton_Models_ASR_Title.setAutoExclusive(True) self.ui.ToolButton_Models_ASR_Title.clicked.connect( lambda: Function_AnimateStackedWidget( StackedWidget = self.ui.StackedWidget_Pages_Models, - TargetIndex = 0 + TargetIndex = 1 ) ) self.ui.ToolButton_Models_ASR_Title.setToolTip( @@ -1278,7 +1435,6 @@ def Main(self): ) self.ui.TabWidget_Models_ASR.setTabText(0, 'VPR(声纹识别)') - self.ui.Table_Models_ASR_VPR.SetHorizontalHeaders(['名字', '大小', '日期', '操作']) ModelViewSignals.Signal_ASR_VPR.connect(self.ui.Table_Models_ASR_VPR.SetValue) self.ui.Table_Models_ASR_VPR.Download.connect( @@ -1295,7 +1451,7 @@ def Main(self): self.ui.ToolButton_Models_STT_Title.clicked.connect( lambda: Function_AnimateStackedWidget( StackedWidget = self.ui.StackedWidget_Pages_Models, - TargetIndex = 1 + TargetIndex = 2 ) ) self.ui.ToolButton_Models_STT_Title.setToolTip( @@ -1303,7 +1459,6 @@ def Main(self): ) self.ui.TabWidget_Models_STT.setTabText(0, 'Whisper') - self.ui.Table_Models_STT_Whisper.SetHorizontalHeaders(['名字', '大小', '日期', '操作']) ModelViewSignals.Signal_STT_Whisper.connect(self.ui.Table_Models_STT_Whisper.SetValue) self.ui.Table_Models_STT_Whisper.Download.connect( @@ -1320,15 +1475,24 @@ def Main(self): self.ui.ToolButton_Models_TTS_Title.clicked.connect( lambda: Function_AnimateStackedWidget( StackedWidget = self.ui.StackedWidget_Pages_Models, - TargetIndex = 2 + TargetIndex = 3 ) ) self.ui.ToolButton_Models_TTS_Title.setToolTip( "语音合成模型" ) - self.ui.TabWidget_Models_TTS.setTabText(0, 'VITS') + self.ui.TabWidget_Models_TTS.setTabText(0, 'GPT-SoVITS') + self.ui.Table_Models_TTS_GPTSoVITS.SetHorizontalHeaders(['名字', '大小', '日期', '操作']) + ModelViewSignals.Signal_TTS_GPTSoVITS.connect(self.ui.Table_Models_TTS_GPTSoVITS.SetValue) + self.ui.Table_Models_TTS_GPTSoVITS.Download.connect( + lambda Params: self.Function_SetMethodExecutor( + Method = Model_Downloader.Execute, + Params = Params + ) + ) + self.ui.TabWidget_Models_TTS.setTabText(1, 'VITS') self.ui.Table_Models_TTS_VITS.SetHorizontalHeaders(['名字', '大小', '日期', '操作']) ModelViewSignals.Signal_TTS_VITS.connect(self.ui.Table_Models_TTS_VITS.SetValue) self.ui.Table_Models_TTS_VITS.Download.connect( @@ -1343,7 +1507,7 @@ def Main(self): ############################################################# # Guidance - DialogBox_Process = MessageBox_Stacked() + DialogBox_Process = MessageBox_Stacked(self) DialogBox_Process.setWindowTitle('Guidance(该引导仅出现一次)') DialogBox_Process.SetContent( [ @@ -1398,14 +1562,13 @@ def Main(self): lambda Value: Config_Process.EditConfig('AudioProcessor', 'Media_Dir_Input', str(Value)) ) self.ui.LineEdit_Process_MediaDirInput.SetFileDialog( - Mode = "SelectDir" + Mode = "SelectFolder" ) self.ui.Button_Process_MediaDirInput_Undo.clicked.connect( lambda: self.ui.LineEdit_Process_MediaDirInput.setText('') ) - ''' - self.ui.GroupBox_Process_DenoiseParams.setTitle(QCA.translate("GroupBox", "降噪参数")) + self.ui.GroupBox_Process_DenoiserParams.setTitle(QCA.translate("GroupBox", "降噪参数")) Function_SetText( Widget = self.ui.Label_Process_DenoiseAudio, @@ -1416,24 +1579,84 @@ def Main(self): self.ui.CheckBox_Process_DenoiseAudio.setChecked( eval(Config_Process.GetValue('AudioProcessor', 'Denoise_Audio', 'True')) ) + Frame_Process_DenoiserParams_BasicSettings_DefaultHeight = self.ui.Frame_Process_DenoiserParams_BasicSettings.sizeHint().height() Function_ConfigureCheckBox( CheckBox = self.ui.CheckBox_Process_DenoiseAudio, CheckedText = "已启用", CheckedEvents = [ - lambda: Config_Process.EditConfig('AudioProcessor', 'Denoise_Audio', 'True') + lambda: Config_Process.EditConfig('AudioProcessor', 'Denoise_Audio', 'True'), + lambda: self.SetChildWidgetsVisibility( + self.ui.Frame_Process_DenoiserParams_BasicSettings, + Frame_Process_DenoiserParams_BasicSettings_DefaultHeight, + [ + self.ui.Frame_Process_DenoiseModelPath, + self.ui.Frame_Process_DenoiseTarget, + ], + True + ) ], UncheckedText = "未启用", UncheckedEvents = [ - lambda: Config_Process.EditConfig('AudioProcessor', 'Denoise_Audio', 'False') + lambda: Config_Process.EditConfig('AudioProcessor', 'Denoise_Audio', 'False'), + lambda: self.SetChildWidgetsVisibility( + self.ui.Frame_Process_DenoiserParams_BasicSettings, + Frame_Process_DenoiserParams_BasicSettings_DefaultHeight, + [ + self.ui.Frame_Process_DenoiseModelPath, + self.ui.Frame_Process_DenoiseTarget, + ], + False + ) ], TakeEffect = True ) self.ui.Button_Process_DenoiseAudio_Undo.clicked.connect( lambda: self.ui.CheckBox_Process_DenoiseAudio.setChecked(True) ) - ''' - self.ui.GroupBox_Process_AudioSlicerParams.setTitle(QCA.translate("GroupBox", "静音切除参数")) + Function_SetText( + Widget = self.ui.Label_Process_DenoiseModelPath, + Text = SetRichText( + Body = QCA.translate("Label", "uvr5模型路径\n用于uvr5降噪的模型文件的路径。") + ) + ) + Process_DenoiseModelPath_Default = Path(ModelsDir).joinpath('Process', 'UVR', 'Downloaded', 'HP5_only_main_vocal.pth').as_posix() if Path(ModelsDir).joinpath('Process', 'UVR', 'Downloaded', 'HP5_only_main_vocal.pth').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_Process_DenoiseModelPath, + Text = str(Config_Process.GetValue('AudioProcessor', 'Denoise_Model_Path', Process_DenoiseModelPath_Default)), + SetPlaceholderText = True, + PlaceholderText = Process_DenoiseModelPath_Default + ) + self.ui.LineEdit_Process_DenoiseModelPath.textChanged.connect( + lambda Value: Config_Process.EditConfig('AudioProcessor', 'Denoise_Model_Path', str(Value)) + ) + self.ui.LineEdit_Process_DenoiseModelPath.SetFileDialog( + Mode = "SelectFile", + FileType = "pth类型/onnx类型 (*.pth *.onnx)", + Directory = NormPath(Path(ModelsDir).joinpath('Process', 'UVR', 'Downloaded')) + ) + self.ui.Button_Process_DenoiseModelPath_Undo.clicked.connect( + lambda: self.ui.LineEdit_Process_DenoiseModelPath.setText(Process_DenoiseModelPath_Default) + ) + + Function_SetText( + Widget = self.ui.Label_Process_DenoiseTarget, + Text = SetRichText( + Body = QCA.translate("Label", "提取目标\n选择在降噪时要保留的声音对象。") + ) + ) + self.ui.ComboBox_Process_DenoiseTarget.addItems(['人声', '背景声']) + self.ui.ComboBox_Process_DenoiseTarget.setCurrentText( + str(Config_Process.GetValue('AudioProcessor', 'Denoise_Target', '人声')) + ) + self.ui.ComboBox_Process_DenoiseTarget.currentTextChanged.connect( + lambda Value: Config_Process.EditConfig('AudioProcessor', 'Denoise_Target', str(Value)) + ) + self.ui.Button_Process_DenoiseTarget_Undo.clicked.connect( + lambda: self.ui.ComboBox_Process_DenoiseTarget.setCurrentText('人声') + ) + + self.ui.GroupBox_Process_SlicerParams.setTitle(QCA.translate("GroupBox", "静音切除参数")) Function_SetText( Widget = self.ui.Label_Process_SliceAudio, @@ -1444,15 +1667,15 @@ def Main(self): self.ui.CheckBox_Process_SliceAudio.setChecked( eval(Config_Process.GetValue('AudioProcessor', 'Slice_Audio', 'True')) ) - Frame_Process_AudioSlicerParams_AdvanceSettings_DefaultHeight = self.ui.Frame_Process_AudioSlicerParams_AdvanceSettings.sizeHint().height() + Frame_Process_SlicerParams_AdvanceSettings_DefaultHeight = self.ui.Frame_Process_SlicerParams_AdvanceSettings.sizeHint().height() Function_ConfigureCheckBox( CheckBox = self.ui.CheckBox_Process_SliceAudio, CheckedText = "已启用", CheckedEvents = [ lambda: Config_Process.EditConfig('AudioProcessor', 'Slice_Audio', 'True'), lambda: self.SetChildWidgetsVisibility( - self.ui.Frame_Process_AudioSlicerParams_AdvanceSettings, - Frame_Process_AudioSlicerParams_AdvanceSettings_DefaultHeight, + self.ui.Frame_Process_SlicerParams_AdvanceSettings, + Frame_Process_SlicerParams_AdvanceSettings_DefaultHeight, [ self.ui.Frame_Process_RMSThreshold, self.ui.Frame_Process_HopSize, @@ -1461,15 +1684,15 @@ def Main(self): self.ui.Frame_Process_AudioLengthMin ], True, - True if self.ui.CheckBox_Process_AudioSlicerParams_Toggle_AdvanceSettings.isChecked() else False + True if self.ui.CheckBox_Process_SlicerParams_Toggle_AdvanceSettings.isChecked() else False ) ], UncheckedText = "未启用", UncheckedEvents = [ lambda: Config_Process.EditConfig('AudioProcessor', 'Slice_Audio', 'False'), lambda: self.SetChildWidgetsVisibility( - self.ui.Frame_Process_AudioSlicerParams_AdvanceSettings, - Frame_Process_AudioSlicerParams_AdvanceSettings_DefaultHeight, + self.ui.Frame_Process_SlicerParams_AdvanceSettings, + Frame_Process_SlicerParams_AdvanceSettings_DefaultHeight, [ self.ui.Frame_Process_RMSThreshold, self.ui.Frame_Process_HopSize, @@ -1478,7 +1701,7 @@ def Main(self): self.ui.Frame_Process_AudioLengthMin ], False, - True if self.ui.CheckBox_Process_AudioSlicerParams_Toggle_AdvanceSettings.isChecked() else False + True if self.ui.CheckBox_Process_SlicerParams_Toggle_AdvanceSettings.isChecked() else False ) ], TakeEffect = True @@ -1487,17 +1710,17 @@ def Main(self): lambda: self.ui.CheckBox_Process_SliceAudio.setChecked(True) ) - self.ui.CheckBox_Process_AudioSlicerParams_Toggle_AdvanceSettings.setChecked( + self.ui.CheckBox_Process_SlicerParams_Toggle_AdvanceSettings.setChecked( False #eval(Config_Process.GetValue('AudioProcessor', 'Toggle_AdvanceSettings', '')) ) Function_ConfigureCheckBox( - CheckBox = self.ui.CheckBox_Process_AudioSlicerParams_Toggle_AdvanceSettings, + CheckBox = self.ui.CheckBox_Process_SlicerParams_Toggle_AdvanceSettings, CheckedText = "高级设置", CheckedEvents = [ lambda: Function_AnimateFrame( - self.ui.Frame_Process_AudioSlicerParams_AdvanceSettings, + self.ui.Frame_Process_SlicerParams_AdvanceSettings, None, None, - 0, self.ui.Frame_Process_AudioSlicerParams_AdvanceSettings.sizeHint().height() if self.ui.CheckBox_Process_SliceAudio.isChecked() else 0, + 0, self.ui.Frame_Process_SlicerParams_AdvanceSettings.sizeHint().height() if self.ui.CheckBox_Process_SliceAudio.isChecked() else 0, 210, 'Extend' ), @@ -1506,9 +1729,9 @@ def Main(self): UncheckedText = "高级设置", UncheckedEvents = [ lambda: Function_AnimateFrame( - self.ui.Frame_Process_AudioSlicerParams_AdvanceSettings, + self.ui.Frame_Process_SlicerParams_AdvanceSettings, None, None, - 0, self.ui.Frame_Process_AudioSlicerParams_AdvanceSettings.sizeHint().height() if self.ui.CheckBox_Process_SliceAudio.isChecked() else 0, + 0, self.ui.Frame_Process_SlicerParams_AdvanceSettings.sizeHint().height() if self.ui.CheckBox_Process_SliceAudio.isChecked() else 0, 210, 'Reduce' ), @@ -1526,13 +1749,13 @@ def Main(self): self.ui.DoubleSpinBox_Process_RMSThreshold.setRange(-100, 0) #self.ui.DoubleSpinBox_Process_RMSThreshold.setSingleStep(0.01) self.ui.DoubleSpinBox_Process_RMSThreshold.setValue( - float(Config_Process.GetValue('AudioProcessor', 'RMS_Threshold', '-40.')) + float(Config_Process.GetValue('AudioProcessor', 'RMS_Threshold', '-34.')) ) self.ui.DoubleSpinBox_Process_RMSThreshold.valueChanged.connect( lambda Value: Config_Process.EditConfig('AudioProcessor', 'RMS_Threshold', str(Value)) ) self.ui.Button_Process_RMSThreshold_Undo.clicked.connect( - lambda: self.ui.DoubleSpinBox_Process_RMSThreshold.setValue(-40.) + lambda: self.ui.DoubleSpinBox_Process_RMSThreshold.setValue(-34.) ) Function_SetText( @@ -1581,14 +1804,14 @@ def Main(self): self.ui.SpinBox_Process_SilenceKeptMax.setRange(0, 10000) self.ui.SpinBox_Process_SilenceKeptMax.setSingleStep(1) self.ui.SpinBox_Process_SilenceKeptMax.setValue( - int(Config_Process.GetValue('AudioProcessor', 'Silence_Kept_Max', '1000')) + int(Config_Process.GetValue('AudioProcessor', 'Silence_Kept_Max', '500')) ) self.ui.SpinBox_Process_SilenceKeptMax.valueChanged.connect( lambda Value: Config_Process.EditConfig('AudioProcessor', 'Silence_Kept_Max', str(Value)) ) self.ui.SpinBox_Process_SilenceKeptMax.setToolTip(QCA.translate("ToolTip", "注意:这个值无需完全对应被分割音频中的静音长度。算法将自行检索最佳的分割位置。")) self.ui.Button_Process_SilenceKeptMax_Undo.clicked.connect( - lambda: self.ui.SpinBox_Process_SilenceKeptMax.setValue(1000) + lambda: self.ui.SpinBox_Process_SilenceKeptMax.setValue(500) ) Function_SetText( @@ -1600,13 +1823,13 @@ def Main(self): self.ui.SpinBox_Process_AudioLengthMin.setRange(300, 30000) self.ui.SpinBox_Process_AudioLengthMin.setSingleStep(1) self.ui.SpinBox_Process_AudioLengthMin.setValue( - int(Config_Process.GetValue('AudioProcessor', 'Audio_Length_Min', '3000')) + int(Config_Process.GetValue('AudioProcessor', 'Audio_Length_Min', '4000')) ) self.ui.SpinBox_Process_AudioLengthMin.valueChanged.connect( lambda Value: Config_Process.EditConfig('AudioProcessor', 'Audio_Length_Min', str(Value)) ) self.ui.Button_Process_AudioLengthMin_Undo.clicked.connect( - lambda: self.ui.SpinBox_Process_AudioLengthMin.setValue(3000) + lambda: self.ui.SpinBox_Process_AudioLengthMin.setValue(4000) ) self.ui.GroupBox_Process_OutputParams.setTitle(QCA.translate("GroupBox", "输出参数")) @@ -1629,38 +1852,36 @@ def Main(self): ) Function_SetText( - Widget = self.ui.Label_Process_MediaDirOutput, + Widget = self.ui.Label_Process_OutputDirName, Text = SetRichText( - Body = QCA.translate("Label", "媒体输出目录\n用于保存最后生成的音频文件的目录。") + Body = QCA.translate("Label", "输出目录名\n用于保存最后生成的音频文件的目录的名字。") ) ) - Process_MediaDirOutput_Default = Path(CurrentDir).joinpath('音频处理结果', f'{date.today()}').as_posix() + Process_OutputDirName_Default = str(date.today()) Function_SetText( - Widget = self.ui.LineEdit_Process_MediaDirOutput, - Text = str(Config_Process.GetValue('AudioProcessor', 'Media_Dir_Output', '')), + Widget = self.ui.LineEdit_Process_OutputDirName, + Text = str(Config_Process.GetValue('AudioProcessor', 'Output_Dir_Name', '')), SetPlaceholderText = True, - PlaceholderText = Process_MediaDirOutput_Default - ) - self.ui.LineEdit_Process_MediaDirOutput.textChanged.connect( - lambda Value: Config_Process.EditConfig('AudioProcessor', 'Media_Dir_Output', str(Value)) - ) - ''' - self.ui.LineEdit_Process_MediaDirOutput.textChanged.connect( - lambda Value: Function_ShowMessageBox( - MessageType = QMessageBox.Warning, - WindowTitle = "Warning", - Text = "输出路径与输入路径相同" - ) if Value == self.ui.LineEdit_Process_MediaDirInput.text() else None + PlaceholderText = Process_OutputDirName_Default ) - ''' - self.ui.LineEdit_Process_MediaDirOutput.SetFileDialog( - Mode = "SelectDir", - Directory = NormPath(Path(Process_MediaDirOutput_Default).parent) + self.ui.LineEdit_Process_OutputDirName.textChanged.connect( + lambda Value: Config_Process.EditConfig('AudioProcessor', 'Output_Dir_Name', str(Value)) ) - self.ui.Button_Process_MediaDirOutput_Undo.clicked.connect( - lambda: self.ui.LineEdit_Process_MediaDirOutput.setText(Process_MediaDirOutput_Default) + self.ui.LineEdit_Process_OutputDirName.RemoveFileDialogButton() + self.ui.Button_Process_OutputDirName_Undo.clicked.connect( + lambda: self.ui.LineEdit_Process_OutputDirName.setText(Process_OutputDirName_Default) ) + LineEdit_Process_OutputDir = QLineEdit() + def SetText_LineEdit_Process_OutputDir(): + DirText = Path(self.ui.LineEdit_Process_OutputRoot.text()).joinpath(self.ui.LineEdit_Process_OutputDirName.text()).as_posix() + LineEdit_Process_OutputDir.setText(DirText) + Alert = Path(DirText).exists() and list(Path(DirText).iterdir()) != [] + self.ui.LineEdit_Process_OutputDirName.Alert(True if Alert else False, f"注意:目录 {DirText} 已包含文件") + self.ui.LineEdit_Process_OutputDirName.textChanged.connect(SetText_LineEdit_Process_OutputDir) + self.ui.LineEdit_Process_OutputRoot.textChanged.connect(SetText_LineEdit_Process_OutputDir) + #SetText_LineEdit_Process_OutputDir() + self.ui.CheckBox_Process_OutputParams_Toggle_AdvanceSettings.setChecked(False) Function_ConfigureCheckBox( CheckBox = self.ui.CheckBox_Process_OutputParams_Toggle_AdvanceSettings, @@ -1751,10 +1972,12 @@ def Main(self): TreeWidget = self.ui.TreeWidget_Catalogue_Process, RootItemTexts = [ self.ui.GroupBox_Process_InputParams.title(), - self.ui.GroupBox_Process_AudioSlicerParams.title(), + self.ui.GroupBox_Process_DenoiserParams.title(), + self.ui.GroupBox_Process_SlicerParams.title(), self.ui.GroupBox_Process_OutputParams.title() ], ChildItemTexts = [ + ("基础设置"), ("基础设置"), ("基础设置","高级设置"), ("基础设置","高级设置") @@ -1773,31 +1996,41 @@ def Main(self): ) Function_ScrollToWidget( Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(1), - TargetWidget = self.ui.GroupBox_Process_AudioSlicerParams, + TargetWidget = self.ui.GroupBox_Process_DenoiserParams, ScrollArea = self.ui.ScrollArea_Middle_Process ) Function_ScrollToWidget( Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(1).child(0), - TargetWidget = self.ui.Frame_Process_AudioSlicerParams_BasicSettings, + TargetWidget = self.ui.Frame_Process_DenoiserParams_BasicSettings, ScrollArea = self.ui.ScrollArea_Middle_Process ) Function_ScrollToWidget( - Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(1).child(1), - TargetWidget = self.ui.Frame_Process_AudioSlicerParams_AdvanceSettings, + Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(2), + TargetWidget = self.ui.GroupBox_Process_SlicerParams, ScrollArea = self.ui.ScrollArea_Middle_Process ) Function_ScrollToWidget( - Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(2), + Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(2).child(0), + TargetWidget = self.ui.Frame_Process_SlicerParams_BasicSettings, + ScrollArea = self.ui.ScrollArea_Middle_Process + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(2).child(1), + TargetWidget = self.ui.Frame_Process_SlicerParams_AdvanceSettings, + ScrollArea = self.ui.ScrollArea_Middle_Process + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(3), TargetWidget = self.ui.GroupBox_Process_OutputParams, ScrollArea = self.ui.ScrollArea_Middle_Process ) Function_ScrollToWidget( - Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(2).child(0), + Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(3).child(0), TargetWidget = self.ui.Frame_Process_OutputParams_BasicSettings, ScrollArea = self.ui.ScrollArea_Middle_Process ) Function_ScrollToWidget( - Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(2).child(1), + Trigger = self.ui.TreeWidget_Catalogue_Process.topLevelItem(3).child(1), TargetWidget = self.ui.Frame_Process_OutputParams_AdvanceSettings, ScrollArea = self.ui.ScrollArea_Middle_Process ) @@ -1811,11 +2044,12 @@ def Main(self): ) ) - self.ui.Button_CheckOutput_Process.setText(QCA.translate("Button", "查看输出文件")) + self.ui.Button_CheckOutput_Process.setText(QCA.translate("Button", "打开输出目录")) Function_SetURL( Button = self.ui.Button_CheckOutput_Process, - URL = self.ui.LineEdit_Process_MediaDirOutput, - ButtonTooltip = "Click to open" + URL = self.ui.LineEdit_Process_OutputRoot, + ButtonTooltip = "Click to open", + CreateIfNotExist = True ) # Bottom @@ -1829,18 +2063,21 @@ def Main(self): Method = Execute_Audio_Processing.Execute, ParamsFrom = [ self.ui.LineEdit_Process_MediaDirInput, - self.ui.LineEdit_Process_MediaDirOutput, self.ui.ComboBox_Process_MediaFormatOutput, self.ui.ComboBox_Process_SampleRate, self.ui.ComboBox_Process_SampleWidth, self.ui.CheckBox_Process_ToMono, - #self.ui.CheckBox_Process_DenoiseAudio, + self.ui.CheckBox_Process_DenoiseAudio, + self.ui.LineEdit_Process_DenoiseModelPath, + self.ui.ComboBox_Process_DenoiseTarget, self.ui.CheckBox_Process_SliceAudio, self.ui.DoubleSpinBox_Process_RMSThreshold, self.ui.SpinBox_Process_AudioLengthMin, self.ui.SpinBox_Process_SilentIntervalMin, self.ui.SpinBox_Process_HopSize, - self.ui.SpinBox_Process_SilenceKeptMax + self.ui.SpinBox_Process_SilenceKeptMax, + self.ui.LineEdit_Process_OutputRoot, + self.ui.LineEdit_Process_OutputDirName ], EmptyAllowed = [ self.ui.ComboBox_Process_MediaFormatOutput, @@ -1848,11 +2085,9 @@ def Main(self): self.ui.ComboBox_Process_SampleWidth ], FinishEvents = [ - lambda: Function_ShowMessageBox( - QMessageBox.Question, "Ask", - "当前任务已执行结束,是否跳转至「语音识别」工具界面?", - QMessageBox.Yes|QMessageBox.No, - {QMessageBox.Yes: lambda: self.ui.Button_Menu_ASR.click()} + lambda: Function_ShowMessageBox(self, + QMessageBox.Information, "Tip", + "当前任务已执行结束。" ) ] ) @@ -1862,7 +2097,7 @@ def Main(self): ############################################################# # Guidance - DialogBox_ASR = MessageBox_Stacked() + DialogBox_ASR = MessageBox_Stacked(self) DialogBox_ASR.setWindowTitle('Guidance(该引导仅出现一次)') DialogBox_ASR.SetContent( [ @@ -1888,7 +2123,7 @@ def Main(self): Config_ASR = ManageConfig(Path_Config_ASR) # Top - self.ui.ToolButton_VoiceIdentifier_Title.setText(QCA.translate("ToolButton", "声纹识别")) + self.ui.ToolButton_VoiceIdentifier_Title.setText(QCA.translate("ToolButton", "VPR(声纹识别)")) self.ui.ToolButton_VoiceIdentifier_Title.setCheckable(True) self.ui.ToolButton_VoiceIdentifier_Title.setChecked(True) self.ui.ToolButton_VoiceIdentifier_Title.setAutoExclusive(True) @@ -1917,8 +2152,8 @@ def Main(self): lambda Value: Config_ASR.EditConfig('VPR', 'Audio_Dir_Input', str(Value)) ) self.ui.LineEdit_ASR_VPR_AudioDirInput.SetFileDialog( - Mode = "SelectDir", - Directory = NormPath(Path(Process_MediaDirOutput_Default).parent) + Mode = "SelectFolder", + Directory = Path(CurrentDir).joinpath('音频处理结果').as_posix() ) self.ui.Button_ASR_VPR_AudioDirInput_Undo.clicked.connect( lambda: self.ui.LineEdit_ASR_VPR_AudioDirInput.setText('') @@ -1927,7 +2162,7 @@ def Main(self): Function_SetText( Widget = self.ui.Label_ASR_VPR_StdAudioSpeaker, Text = SetRichText( - Body = QCA.translate("Label", "目标人物与音频\n目标人物的名字及其语音文件的所在路径。") + Body = QCA.translate("Label", "目标人物与音频\n目标人物的名字及其语音文件的路径。") ) ) self.ui.Table_ASR_VPR_StdAudioSpeaker.SetHorizontalHeaders(['人物姓名', '音频路径', '增删']) @@ -1962,7 +2197,7 @@ def Main(self): Function_SetText( Widget = self.ui.Label_ASR_VPR_ModelPath, Text = SetRichText( - Body = QCA.translate("Label", "模型加载路径\n用于加载的声纹识别模型的所在路径。") + Body = QCA.translate("Label", "模型加载路径\n用于加载的声纹识别模型的路径。") ) ) ASR_VPR_ModelPath_Default = Path(ModelsDir).joinpath('ASR', 'VPR', 'Downloaded', 'Ecapa-Tdnn_spectrogram.pth').as_posix() if Path(ModelsDir).joinpath('ASR', 'VPR', 'Downloaded', 'Ecapa-Tdnn_spectrogram.pth').exists() else '' @@ -2065,47 +2300,104 @@ def Main(self): self.ui.GroupBox_ASR_VPR_OutputParams.setTitle(QCA.translate("GroupBox", "输出参数")) Function_SetText( - Widget = self.ui.Label_ASR_VPR_AudioSpeakersDataPath, + Widget = self.ui.Label_ASR_VPR_OutputDirName, Text = SetRichText( - Body = QCA.translate("Label", "语音识别结果保存路径\n用于保存最后识别得到的记录音频文件与对应说话人的文件的路径。") + Body = QCA.translate("Label", "输出目录名\n用于保存最后生成的结果文件的目录的名字。") ) ) - ASR_VPR_AudioSpeakersDataPath_Default = Path(CurrentDir).joinpath('语音识别结果', '声纹识别', f'{date.today()}.txt').as_posix() + ASR_VPR_OutputDirName_Default = str(date.today()) Function_SetText( - Widget = self.ui.LineEdit_ASR_VPR_AudioSpeakersDataPath, + Widget = self.ui.LineEdit_ASR_VPR_OutputDirName, Text = str(Config_ASR.GetValue('VPR', 'Audio_Dir_Output', '')), SetPlaceholderText = True, - PlaceholderText = ASR_VPR_AudioSpeakersDataPath_Default + PlaceholderText = ASR_VPR_OutputDirName_Default ) - self.ui.LineEdit_ASR_VPR_AudioSpeakersDataPath.textChanged.connect( + self.ui.LineEdit_ASR_VPR_OutputDirName.textChanged.connect( lambda Value: Config_ASR.EditConfig('VPR', 'Audio_Dir_Output', str(Value)) ) - self.ui.LineEdit_ASR_VPR_AudioSpeakersDataPath.SetFileDialog( - Mode = "SaveFile", - FileType = "txt类型 (*.txt)", - Directory = NormPath(Path(ASR_VPR_AudioSpeakersDataPath_Default).parent) + self.ui.LineEdit_ASR_VPR_OutputDirName.RemoveFileDialogButton() + self.ui.Button_ASR_VPR_OutputDirName_Undo.clicked.connect( + lambda: self.ui.LineEdit_ASR_VPR_OutputDirName.setText(ASR_VPR_OutputDirName_Default) + ) + + self.ui.CheckBox_ASR_VPR_OutputParams_Toggle_AdvanceSettings.setChecked(False) + Function_ConfigureCheckBox( + CheckBox = self.ui.CheckBox_ASR_VPR_OutputParams_Toggle_AdvanceSettings, + CheckedText = "高级设置", + CheckedEvents = [ + lambda: Function_AnimateFrame( + self.ui.Frame_ASR_VPR_OutputParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_ASR_VPR_OutputParams_AdvanceSettings.sizeHint().height(), + 210, + 'Extend' + ) + ], + UncheckedText = "高级设置", + UncheckedEvents = [ + lambda: Function_AnimateFrame( + self.ui.Frame_ASR_VPR_OutputParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_ASR_VPR_OutputParams_AdvanceSettings.sizeHint().height(), + 210, + 'Reduce' + ) + ], + TakeEffect = True ) - self.ui.Button_ASR_VPR_AudioSpeakersDataPath_Undo.clicked.connect( - lambda: self.ui.LineEdit_ASR_VPR_AudioSpeakersDataPath.setText(ASR_VPR_AudioSpeakersDataPath_Default) + + Function_SetText( + Widget = self.ui.Label_ASR_VPR_AudioSpeakersDataName, + Text = SetRichText( + Body = QCA.translate("Label", "识别结果文本名\n用于保存最后生成的记录音频文件与对应说话人的txt文件的名字。") + ) ) + ASR_VPR_AudioSpeakersDataName_Default = "Recgonition_" + str(date.today()) + Function_SetText( + Widget = self.ui.LineEdit_ASR_VPR_AudioSpeakersDataName, + Text = str(Config_ASR.GetValue('VPR', 'FileList_Name', ASR_VPR_AudioSpeakersDataName_Default)), + SetPlaceholderText = True, + PlaceholderText = ASR_VPR_AudioSpeakersDataName_Default + ) + self.ui.LineEdit_ASR_VPR_AudioSpeakersDataName.textChanged.connect( + lambda Value: Config_ASR.EditConfig('VPR', 'FileList_Name', str(Value)) + ) + self.ui.LineEdit_ASR_VPR_AudioSpeakersDataName.RemoveFileDialogButton() + self.ui.Button_ASR_VPR_AudioSpeakersDataName_Undo.clicked.connect( + lambda: self.ui.LineEdit_ASR_VPR_AudioSpeakersDataName.setText(ASR_VPR_AudioSpeakersDataName_Default) + ) + + LineEdit_ASR_VPR_OutputDir = QLineEdit() + def SetText_LineEdit_ASR_VPR_OutputDir(): + DirText = Path(self.ui.LineEdit_ASR_VPR_OutputRoot.text()).joinpath(self.ui.LineEdit_ASR_VPR_OutputDirName.text()).as_posix() + LineEdit_ASR_VPR_OutputDir.setText(DirText) + Alert = Path(DirText).exists() and list(Path(DirText).iterdir()) != [] + self.ui.LineEdit_ASR_VPR_OutputDirName.Alert(True if Alert else False, f"注意:目录 {DirText} 已包含文件") + self.ui.LineEdit_ASR_VPR_OutputDirName.textChanged.connect(SetText_LineEdit_ASR_VPR_OutputDir) + self.ui.LineEdit_ASR_VPR_OutputRoot.textChanged.connect(SetText_LineEdit_ASR_VPR_OutputDir) + #SetText_LineEdit_ASR_VPR_OutputDir() + + LineEdit_ASR_VPR_AudioSpeakersDataPath = QLineEdit() + def SetText_LineEdit_ASR_VPR_AudioSpeakersDataPath(): + PathText = Path(LineEdit_ASR_VPR_OutputDir.text()).joinpath(self.ui.LineEdit_ASR_VPR_AudioSpeakersDataName.text()).as_posix() + ".txt" + LineEdit_ASR_VPR_AudioSpeakersDataPath.setText(PathText) + Alert = Path(PathText).exists() + self.ui.LineEdit_ASR_VPR_AudioSpeakersDataName.Alert(True if Alert else False, f"注意:路径 {PathText} 已存在") + self.ui.LineEdit_ASR_VPR_AudioSpeakersDataName.textChanged.connect(SetText_LineEdit_ASR_VPR_AudioSpeakersDataPath) + LineEdit_ASR_VPR_OutputDir.textChanged.connect(SetText_LineEdit_ASR_VPR_AudioSpeakersDataPath) + #SetText_LineEdit_ASR_VPR_AudioSpeakersDataPath() # ChildWindow - ChildWindow_ASR = Window_ChildWindow_ASR() + ChildWindow_ASR = Window_ChildWindow_ASR(self) ChildWindow_ASR.ui.Button_Close.clicked.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, QMessageBox.Question, "Ask", "确认放弃编辑?", QMessageBox.Yes|QMessageBox.No, { QMessageBox.Yes: lambda: ( - ChildWindow_ASR.hide(), - Function_ShowMessageBox( - QMessageBox.Question,"Ask", - "当前任务已执行结束,是否跳转至「语音转录」工具界面?", - QMessageBox.Yes|QMessageBox.No, - {QMessageBox.Yes: lambda: self.ui.Button_Menu_STT.click()} - ) + ChildWindow_ASR.close() ) } ) @@ -2128,62 +2420,41 @@ def Main(self): ChildWindow_ASR.ui.Table.SetHorizontalHeaders(['音频路径', '人物姓名', '相似度', '播放', '操作']) MainWindowSignals.Signal_TaskStatus.connect( lambda Task, Status: ChildWindow_ASR.ui.Table.SetValue( - ASRResult_Get(self.ui.LineEdit_ASR_VPR_AudioSpeakersDataPath.text()), + ASRResult_Get(LineEdit_ASR_VPR_AudioSpeakersDataPath.text()), list(self.ui.Table_ASR_VPR_StdAudioSpeaker.GetValue().keys()) + [''] - ) if Task == 'Execute_Voice_Identifying.Execute' and Status == 'Finished' else None + ) if Task == 'Execute_Voice_Identifying_VPR.Execute' and Status == 'Finished' else None ) ChildWindow_ASR.ui.CheckBox.setText("结束编辑时将拥有匹配人物的音频保存到:") ChildWindow_ASR.ui.CheckBox.setChecked(True) ChildWindow_ASR.ui.LineEdit.ClearDefaultStyleSheet() - ChildWindow_ASR.ui.LineEdit.setStyleSheet(ChildWindow_ASR.ui.LineEdit.styleSheet() + 'LineEditBase {border-width: 0px 0px 1px 0px;}') - Function_SetText( - Widget = ChildWindow_ASR.ui.LineEdit, - Text = '', - SetPlaceholderText = True, - PlaceholderText = NormPath(Path(CurrentDir).joinpath('语音识别结果', '声纹识别', str(date.today()))) - ) - ChildWindow_ASR.ui.LineEdit.SetFileDialog( - Mode = "SelectDir", - Directory = NormPath(Path(CurrentDir).joinpath('语音识别结果', '声纹识别')) - ) + ChildWindow_ASR.ui.LineEdit.setStyleSheet(ChildWindow_ASR.ui.LineEdit.styleSheet() + 'LineEditBase {border-width: 0px 0px 1px 0px; border-radius: 0px;}') + LineEdit_ASR_VPR_OutputDir.textChanged.connect(ChildWindow_ASR.ui.LineEdit.setText) + ChildWindow_ASR.ui.LineEdit.RemoveFileDialogButton() + ChildWindow_ASR.ui.LineEdit.setReadOnly(True) ChildWindow_ASR.ui.Button_Cancel.setText('取消') ChildWindow_ASR.ui.Button_Cancel.clicked.connect(ChildWindow_ASR.ui.Button_Close.click) ChildWindow_ASR.ui.Button_Confirm.setText('确认') ChildWindow_ASR.ui.Button_Confirm.clicked.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, QMessageBox.Question, "Ask", "确认应用编辑?", QMessageBox.Yes|QMessageBox.No, { QMessageBox.Yes: lambda: ( - (ASRResult_Save( + ASRResult_Save( ChildWindow_ASR.ui.Table.GetValue(), - self.ui.LineEdit_ASR_VPR_AudioSpeakersDataPath.text(), + LineEdit_ASR_VPR_AudioSpeakersDataPath.text(), ChildWindow_ASR.ui.CheckBox.isChecked(), ChildWindow_ASR.ui.LineEdit.text() ), - ChildWindow_ASR.hide(), - Function_ShowMessageBox( - QMessageBox.Question,"Ask", - "当前任务已执行结束,是否跳转至「语音转录」工具界面?", - QMessageBox.Yes|QMessageBox.No, - {QMessageBox.Yes: lambda: self.ui.Button_Menu_STT.click()} - )) if NormPath(ChildWindow_ASR.ui.LineEdit.text()) is not None else - Function_ShowMessageBox( - QMessageBox.Warning, "Warning", - "未正确设置保存路径!" - ) + ChildWindow_ASR.close() ) } ) ) - MainWindowSignals.Signal_TaskStatus.connect( - lambda Task, Status: ChildWindow_ASR.show() if Task == 'Execute_Voice_Identifying.Execute' and Status == 'Finished' else None - ) - # Left Function_SetTreeWidget( TreeWidget = self.ui.TreeWidget_Catalogue_ASR_VPR, @@ -2195,7 +2466,7 @@ def Main(self): ChildItemTexts = [ ("基础设置"), ("基础设置","高级设置"), - ("基础设置") + ("基础设置","高级设置") ], AddVertically = True ) @@ -2234,6 +2505,11 @@ def Main(self): TargetWidget = self.ui.Frame_ASR_VPR_OutputParams_BasicSettings, ScrollArea = self.ui.ScrollArea_Middle_ASR_VPR ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_ASR_VPR.topLevelItem(2).child(1), + TargetWidget = self.ui.Frame_ASR_VPR_OutputParams_AdvanceSettings, + ScrollArea = self.ui.ScrollArea_Middle_ASR_VPR + ) # Right MonitorFile_Config_VoiceIdentifier = MonitorFile(Path_Config_ASR) @@ -2244,14 +2520,12 @@ def Main(self): ) ) - self.ui.Button_CheckOutput_ASR_VPR.setText(QCA.translate("Button", "查看输出文件")) + self.ui.Button_CheckOutput_ASR_VPR.setText(QCA.translate("Button", "打开输出目录")) Function_SetURL( Button = self.ui.Button_CheckOutput_ASR_VPR, - URL = [ - self.ui.LineEdit_ASR_VPR_AudioSpeakersDataPath, - ChildWindow_ASR.ui.LineEdit - ], - ButtonTooltip = "Click to open" + URL = self.ui.LineEdit_ASR_VPR_OutputRoot, + ButtonTooltip = "Click to open", + CreateIfNotExist = True ) # Bottom @@ -2262,16 +2536,26 @@ def Main(self): TerminateButton = self.ui.Button_ASR_VPR_Terminate, ProgressBar = self.ui.ProgressBar_ASR_VPR, ConsoleWidget = self.ui.Frame_Console, - Method = Execute_Voice_Identifying.Execute, + Method = Execute_Voice_Identifying_VPR.Execute, ParamsFrom = [ self.ui.Table_ASR_VPR_StdAudioSpeaker, self.ui.LineEdit_ASR_VPR_AudioDirInput, - self.ui.LineEdit_ASR_VPR_AudioSpeakersDataPath, self.ui.LineEdit_ASR_VPR_ModelPath, self.ui.ComboBox_ASR_VPR_ModelType, self.ui.ComboBox_ASR_VPR_FeatureMethod, self.ui.DoubleSpinBox_ASR_VPR_DecisionThreshold, - self.ui.DoubleSpinBox_ASR_VPR_DurationOfAudio + self.ui.DoubleSpinBox_ASR_VPR_DurationOfAudio, + self.ui.LineEdit_ASR_VPR_OutputRoot, + self.ui.LineEdit_ASR_VPR_OutputDirName, + self.ui.LineEdit_ASR_VPR_AudioSpeakersDataName + ], + FinishEvents = [ + lambda: self.ShowMask(True, "正在加载表单"), + ChildWindow_ASR.exec, + lambda: Function_ShowMessageBox(self, + QMessageBox.Information, "Tip", + "当前任务已执行结束。" + ) ] ) @@ -2280,7 +2564,7 @@ def Main(self): ############################################################# # Guidance - DialogBox_STT = MessageBox_Stacked() + DialogBox_STT = MessageBox_Stacked(self) DialogBox_STT.setWindowTitle('Guidance(该引导仅出现一次)') DialogBox_STT.SetContent( [ @@ -2289,7 +2573,7 @@ def Main(self): ], [ '欢迎来到语音转录工具界面\n将语音文件的内容批量转换为带时间戳的文本并以字幕文件的形式保存', - '顶部区域用于切换当前工具类型(目前仅有一种)\n中间区域用于设置当前工具的各项参数;设置完毕后点击底部区域的按钮即可执行当前工具' + '顶部区域用于切换当前工具类型\n中间区域用于设置当前工具的各项参数;设置完毕后点击底部区域的按钮即可执行当前工具' ] ) self.ui.Button_Menu_STT.clicked.connect( @@ -2323,7 +2607,7 @@ def Main(self): Function_SetText( Widget = self.ui.Label_STT_Whisper_AudioDir, Text = SetRichText( - Body = QCA.translate("Label", "音频目录\n需要将语音内容转为文字的音频文件的所在目录。") + Body = QCA.translate("Label", "音频输入目录\n需要将语音内容转为文字的音频文件的所在目录。") ) ) Function_SetText( @@ -2335,7 +2619,7 @@ def Main(self): lambda Value: Config_STT.EditConfig('Whisper', 'Audio_Dir', str(Value)) ) self.ui.LineEdit_STT_Whisper_AudioDir.SetFileDialog( - Mode = "SelectDir" + Mode = "SelectFolder" ) self.ui.Button_STT_Whisper_AudioDir_Undo.clicked.connect( lambda: self.ui.LineEdit_STT_Whisper_AudioDir.setText('') @@ -2346,7 +2630,7 @@ def Main(self): Function_SetText( Widget = self.ui.Label_STT_Whisper_AddLanguageInfo, Text = SetRichText( - Body = QCA.translate("Label", "标注语言信息\n标注音频中说话人所使用的语言,若用于VITS数据集制作则建议启用。") + Body = QCA.translate("Label", "标注语言信息\n标注音频中说话人所使用的语言,若用于数据集制作则建议启用。") ) ) self.ui.CheckBox_STT_Whisper_AddLanguageInfo.setChecked( @@ -2371,7 +2655,7 @@ def Main(self): Function_SetText( Widget = self.ui.Label_STT_Whisper_ModelPath, Text = SetRichText( - Body = QCA.translate("Label", "模型加载路径\n用于加载的Whisper模型的所在路径。") + Body = QCA.translate("Label", "模型加载路径\n用于加载的Whisper模型的路径。") ) ) STT_Whisper_ModelPath_Default = Path(ModelsDir).joinpath('STT', 'Whisper', 'Downloaded', 'small.pt').as_posix() if Path(ModelsDir).joinpath('STT', 'Whisper', 'Downloaded', 'small.pt').exists() else '' @@ -2497,46 +2781,47 @@ def Main(self): self.ui.GroupBox_STT_Whisper_OutputParams.setTitle(QCA.translate("GroupBox", "输出参数")) Function_SetText( - Widget = self.ui.Label_STT_Whisper_SRTDir, + Widget = self.ui.Label_STT_Whisper_OutputDirName, Text = SetRichText( - Body = QCA.translate("Label", "字幕输出目录\n用于保存最后生成的字幕文件的目录。") + Body = QCA.translate("Label", "输出目录名\n用于保存最后生成的字幕文件的目录的名字。") ) ) - STT_Whisper_SRTDir_Default = Path(CurrentDir).joinpath('语音转录结果', 'Whisper', f'{date.today()}').as_posix() + STT_Whisper_OutputDirName_Default = str(date.today()) Function_SetText( - Widget = self.ui.LineEdit_STT_Whisper_SRTDir, - Text = str(Config_STT.GetValue('Whisper', 'SRT_Dir', '')), + Widget = self.ui.LineEdit_STT_Whisper_OutputDirName, + Text = str(Config_STT.GetValue('Whisper', 'SRT_Dir_Name', '')), SetPlaceholderText = True, - PlaceholderText = STT_Whisper_SRTDir_Default - ) - self.ui.LineEdit_STT_Whisper_SRTDir.textChanged.connect( - lambda Value: Config_STT.EditConfig('Whisper', 'SRT_Dir', str(Value)) + PlaceholderText = STT_Whisper_OutputDirName_Default ) - self.ui.LineEdit_STT_Whisper_SRTDir.SetFileDialog( - Mode = "SelectDir", - Directory = NormPath(Path(STT_Whisper_SRTDir_Default).parent) + self.ui.LineEdit_STT_Whisper_OutputDirName.textChanged.connect( + lambda Value: Config_STT.EditConfig('Whisper', 'SRT_Dir_Name', str(Value)) ) - self.ui.Button_STT_Whisper_SRTDir_Undo.clicked.connect( - lambda: self.ui.LineEdit_STT_Whisper_SRTDir.setText(STT_Whisper_SRTDir_Default) + self.ui.LineEdit_STT_Whisper_OutputDirName.RemoveFileDialogButton() + self.ui.Button_STT_Whisper_OutputDirName_Undo.clicked.connect( + lambda: self.ui.LineEdit_STT_Whisper_OutputDirName.setText(STT_Whisper_OutputDirName_Default) ) + LineEdit_STT_Whisper_OutputDir = QLineEdit() + def SetText_LineEdit_STT_Whisper_OutputDir(): + DirText = Path(self.ui.LineEdit_STT_Whisper_OutputRoot.text()).joinpath(self.ui.LineEdit_STT_Whisper_OutputDirName.text()).as_posix() + LineEdit_STT_Whisper_OutputDir.setText(DirText) + Alert = Path(DirText).exists() and list(Path(DirText).iterdir()) != [] + self.ui.LineEdit_STT_Whisper_OutputDirName.Alert(True if Alert else False, f"注意:目录 {DirText} 已包含文件") + self.ui.LineEdit_STT_Whisper_OutputDirName.textChanged.connect(SetText_LineEdit_STT_Whisper_OutputDir) + self.ui.LineEdit_STT_Whisper_OutputRoot.textChanged.connect(SetText_LineEdit_STT_Whisper_OutputDir) + #SetText_LineEdit_STT_Whisper_OutputDir() + # ChildWindow - ChildWindow_STT = Window_ChildWindow_STT() + ChildWindow_STT = Window_ChildWindow_STT(self) ChildWindow_STT.ui.Button_Close.clicked.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, QMessageBox.Question, "Ask", "确认放弃编辑?", QMessageBox.Yes|QMessageBox.No, { QMessageBox.Yes: lambda: ( - ChildWindow_STT.hide(), - Function_ShowMessageBox( - QMessageBox.Question,"Ask", - "当前任务已执行结束,是否跳转至「数据集制作」工具界面?", - QMessageBox.Yes|QMessageBox.No, - {QMessageBox.Yes: lambda: self.ui.Button_Menu_Dataset.click()} - ) + ChildWindow_STT.close() ) } ) @@ -2559,15 +2844,15 @@ def Main(self): ChildWindow_STT.ui.Table.SetHorizontalHeaders(['音频路径', '音频内容', '播放']) MainWindowSignals.Signal_TaskStatus.connect( lambda Task, Status: ChildWindow_STT.ui.Table.SetValue( - STTResult_Get(self.ui.LineEdit_STT_Whisper_SRTDir.text(), self.ui.LineEdit_STT_Whisper_AudioDir.text()) - ) if Task == 'Execute_Voice_Transcribing.Execute' and Status == 'Finished' else None + STTResult_Get(LineEdit_STT_Whisper_OutputDir.text(), self.ui.LineEdit_STT_Whisper_AudioDir.text()) + ) if Task == 'Execute_Voice_Transcribing_Whisper.Execute' and Status == 'Finished' else None ) ChildWindow_STT.ui.Button_Cancel.setText('取消') ChildWindow_STT.ui.Button_Cancel.clicked.connect(ChildWindow_STT.ui.Button_Close.click) ChildWindow_STT.ui.Button_Confirm.setText('确认') ChildWindow_STT.ui.Button_Confirm.clicked.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, QMessageBox.Question, "Ask", "确认应用编辑?", QMessageBox.Yes|QMessageBox.No, @@ -2575,24 +2860,14 @@ def Main(self): QMessageBox.Yes: lambda: ( STTResult_Save( ChildWindow_STT.ui.Table.GetValue(), - self.ui.LineEdit_STT_Whisper_SRTDir.text() + LineEdit_STT_Whisper_OutputDir.text() ), - ChildWindow_STT.hide(), - Function_ShowMessageBox( - QMessageBox.Question,"Ask", - "当前任务已执行结束,是否跳转至「数据集制作」工具界面?", - QMessageBox.Yes|QMessageBox.No, - {QMessageBox.Yes: lambda: self.ui.Button_Menu_Dataset.click()} - ) + ChildWindow_STT.close() ) } ) ) - MainWindowSignals.Signal_TaskStatus.connect( - lambda Task, Status: ChildWindow_STT.show() if Task == 'Execute_Voice_Transcribing.Execute' and Status == 'Finished' else None - ) - # Left Function_SetTreeWidget( TreeWidget = self.ui.TreeWidget_Catalogue_STT_Whisper, @@ -2653,11 +2928,12 @@ def Main(self): ) ) - self.ui.Button_CheckOutput_STT_Whisper.setText(QCA.translate("Button", "查看输出文件")) + self.ui.Button_CheckOutput_STT_Whisper.setText(QCA.translate("Button", "打开输出目录")) Function_SetURL( Button = self.ui.Button_CheckOutput_STT_Whisper, - URL = self.ui.LineEdit_STT_Whisper_SRTDir, - ButtonTooltip = "Click to open" + URL = self.ui.LineEdit_STT_Whisper_OutputRoot, + ButtonTooltip = "Click to open", + CreateIfNotExist = True ) # Bottom @@ -2668,15 +2944,24 @@ def Main(self): TerminateButton = self.ui.Button_STT_Whisper_Terminate, ProgressBar = self.ui.ProgressBar_STT_Whisper, ConsoleWidget = self.ui.Frame_Console, - Method = Execute_Voice_Transcribing.Execute, + Method = Execute_Voice_Transcribing_Whisper.Execute, ParamsFrom = [ self.ui.LineEdit_STT_Whisper_ModelPath, self.ui.LineEdit_STT_Whisper_AudioDir, - self.ui.LineEdit_STT_Whisper_SRTDir, self.ui.CheckBox_STT_Whisper_Verbose, self.ui.CheckBox_STT_Whisper_AddLanguageInfo, self.ui.CheckBox_STT_Whisper_ConditionOnPreviousText, - self.ui.CheckBox_STT_Whisper_fp16 + self.ui.CheckBox_STT_Whisper_fp16, + self.ui.LineEdit_STT_Whisper_OutputRoot, + self.ui.LineEdit_STT_Whisper_OutputDirName + ], + FinishEvents = [ + lambda: self.ShowMask(True, "正在加载表单"), + ChildWindow_STT.exec, + lambda: Function_ShowMessageBox(self, + QMessageBox.Information, "Tip", + "当前任务已执行结束。" + ) ] ) @@ -2685,7 +2970,7 @@ def Main(self): ############################################################# # Guidance - DialogBox_Dataset = MessageBox_Stacked() + DialogBox_Dataset = MessageBox_Stacked(self) DialogBox_Dataset.setWindowTitle('Guidance(该引导仅出现一次)') DialogBox_Dataset.SetContent( [ @@ -2694,7 +2979,7 @@ def Main(self): ], [ '欢迎来到数据集工具界面\n生成适用于语音模型训练的数据集。用户需要提供语音文件与对应的字幕文件', - '顶部区域用于切换当前工具类型(目前仅有一种)\n中间区域用于设置当前工具的各项参数;设置完毕后点击底部区域的按钮即可执行当前工具' + '顶部区域用于切换当前工具类型\n中间区域用于设置当前工具的各项参数;设置完毕后点击底部区域的按钮即可执行当前工具' ] ) self.ui.Button_Menu_Dataset.clicked.connect( @@ -2706,69 +2991,449 @@ def Main(self): type = Qt.QueuedConnection ) - # Config - Path_Config_DAT = NormPath(Path(ConfigDir).joinpath('Config_DAT.ini')) - Config_DAT = ManageConfig(Path_Config_DAT) + # GPT-SoVITS - Config + Path_Config_DAT_GPTSoVITS = NormPath(Path(ConfigDir).joinpath('Config_DAT_GPT-SoVITS.ini')) + Config_DAT_GPTSoVITS = ManageConfig(Path_Config_DAT_GPTSoVITS) - # Top - self.ui.ToolButton_DatasetCreator_Title.setText(QCA.translate("ToolButton", "VITS")) - self.ui.ToolButton_DatasetCreator_Title.setCheckable(True) - self.ui.ToolButton_DatasetCreator_Title.setChecked(True) - self.ui.ToolButton_DatasetCreator_Title.setAutoExclusive(True) - self.ui.ToolButton_DatasetCreator_Title.clicked.connect( + # GPT-SoVITS - Top + self.ui.ToolButton_DatasetCreator_Title_GPTSoVITS.setText(QCA.translate("ToolButton", "GPT-SoVITS")) + self.ui.ToolButton_DatasetCreator_Title_GPTSoVITS.setCheckable(True) + self.ui.ToolButton_DatasetCreator_Title_GPTSoVITS.setChecked(True) + self.ui.ToolButton_DatasetCreator_Title_GPTSoVITS.setAutoExclusive(True) + self.ui.ToolButton_DatasetCreator_Title_GPTSoVITS.clicked.connect( lambda: Function_AnimateStackedWidget( StackedWidget = self.ui.StackedWidget_Pages_Dataset, TargetIndex = 0 ) ) - # Middle - self.ui.GroupBox_DAT_VITS_InputParams.setTitle(QCA.translate("GroupBox", "输入参数")) + # GPT-SoVITS - Middle + self.ui.GroupBox_DAT_GPTSoVITS_InputParams.setTitle(QCA.translate("GroupBox", "输入参数")) - DialogBox_AudioSpeakersDataPath = MessageBox_Buttons() - DialogBox_AudioSpeakersDataPath.setText("请选择参数类型") - DialogBox_AudioSpeakersDataPath.Button1.setText("音频文件目录") - DialogBox_AudioSpeakersDataPath.Button1.clicked.connect( + DialogBox_GPTSoVITS_AudioSpeakersDataPath = MessageBox_Buttons(self) + DialogBox_GPTSoVITS_AudioSpeakersDataPath.setText("请选择参数类型") + DialogBox_GPTSoVITS_AudioSpeakersDataPath.Button1.setText("音频文件目录") + DialogBox_GPTSoVITS_AudioSpeakersDataPath.Button1.clicked.connect( lambda: ( - DialogBox_AudioSpeakersDataPath.hide(), - self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath.setText( + DialogBox_GPTSoVITS_AudioSpeakersDataPath.close(), + self.ui.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath.setText( Function_GetFileDialog( - Mode = "SelectDir", + Mode = "SelectFolder", Directory = NormPath(Path(ChildWindow_ASR.ui.LineEdit.text())) ) ) ) ) - DialogBox_AudioSpeakersDataPath.Button2.setText("语音识别结果文件路径") - DialogBox_AudioSpeakersDataPath.Button2.clicked.connect( + DialogBox_GPTSoVITS_AudioSpeakersDataPath.Button2.setText("语音识别结果文本路径") + DialogBox_GPTSoVITS_AudioSpeakersDataPath.Button2.clicked.connect( lambda: ( - DialogBox_AudioSpeakersDataPath.hide(), - self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath.setText( + DialogBox_GPTSoVITS_AudioSpeakersDataPath.close(), + self.ui.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath.setText( Function_GetFileDialog( Mode = "SelectFile", FileType = "txt类型 (*.txt)", - Directory = NormPath(Path(ASR_VPR_AudioSpeakersDataPath_Default).parent) + Directory = Path(CurrentDir).joinpath('语音识别结果', 'VPR').as_posix() ) ) ) ) Function_SetText( - Widget = self.ui.Label_DAT_VITS_AudioSpeakersDataPath, + Widget = self.ui.Label_DAT_GPTSoVITS_AudioSpeakersDataPath, Text = SetRichText( - Body = QCA.translate("Label", "音频文件目录/语音识别结果文件路径\n音频文件的所在目录(要求按说话人分类),或者提供由语音识别得到的文本文件。") + Body = QCA.translate("Label", "音频文件目录/语音识别结果文本路径\n音频文件的所在目录,或者提供由语音识别得到的文本文件。") ) ) Function_SetText( - Widget = self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath, - Text = str(Config_DAT.GetValue('VITS', 'WAV_Dir', '')), + Widget = self.ui.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath, + Text = str(Config_DAT_GPTSoVITS.GetValue('GPT-SoVITS', 'WAV_Dir', '')), SetPlaceholderText = True ) - self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath.textChanged.connect( - lambda Value: Config_DAT.EditConfig('VITS', 'WAV_Dir', str(Value)) + self.ui.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath.textChanged.connect( + lambda Value: Config_DAT_GPTSoVITS.EditConfig('GPT-SoVITS', 'WAV_Dir', str(Value)) + ) + self.ui.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath.Button.clicked.connect( + lambda: DialogBox_GPTSoVITS_AudioSpeakersDataPath.exec() + ) + self.ui.Button_DAT_GPTSoVITS_AudioSpeakersDataPath_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath.setText('') + ) + + Function_SetText( + Widget = self.ui.Label_DAT_GPTSoVITS_SRTDir, + Text = SetRichText( + Body = QCA.translate("Label", "字幕输入目录\n字幕文件的所在目录,字幕文件须与对应音频文件同名且在文本中注明所属语言。") + ) + ) + Function_SetText( + Widget = self.ui.LineEdit_DAT_GPTSoVITS_SRTDir, + Text = str(Config_DAT_GPTSoVITS.GetValue('GPT-SoVITS', 'SRT_Dir', '')), + SetPlaceholderText = True + ) + self.ui.LineEdit_DAT_GPTSoVITS_SRTDir.textChanged.connect( + lambda Value: Config_DAT_GPTSoVITS.EditConfig('GPT-SoVITS', 'SRT_Dir', str(Value)) + ) + self.ui.LineEdit_DAT_GPTSoVITS_SRTDir.SetFileDialog( + Mode = "SelectFolder", + Directory = Path(CurrentDir).joinpath('语音转录结果', 'Whisper').as_posix() + ) + self.ui.Button_DAT_GPTSoVITS_SRTDir_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_GPTSoVITS_SRTDir.setText('') + ) + + self.ui.GroupBox_DAT_GPTSoVITS_GPTSoVITSParams.setTitle(QCA.translate("GroupBox", "数据集参数")) + + Function_SetText( + Widget = self.ui.Label_DAT_GPTSoVITS_DataFormat, + Text = SetRichText( + Body = QCA.translate("Label", "数据文本格式\n数据集的文本格式,默认使用GPT-SoVITS的标准。") + ) + ) + DAT_GPTSoVITS_DataFormat_Default = '路径|人名|语言|文本' + Function_SetText( + Widget = self.ui.LineEdit_DAT_GPTSoVITS_DataFormat, + Text = str(Config_DAT_GPTSoVITS.GetValue('GPT-SoVITS', 'DataFormat_Path', DAT_GPTSoVITS_DataFormat_Default)), + SetPlaceholderText = True, + PlaceholderText = DAT_GPTSoVITS_DataFormat_Default + ) + self.ui.LineEdit_DAT_GPTSoVITS_DataFormat.textChanged.connect( + lambda Value: ( + Function_ShowMessageBox(self, + MessageType = QMessageBox.Warning, + WindowTitle = "Warning", + Text = "请保留关键词:'路径','人名','语言','文本'", + ), + self.ui.Button_DAT_GPTSoVITS_DataFormat_Undo.click(), + ) if not all(Keyword in Value for Keyword in ['路径', '人名', '语言', '文本']) else None + ) + self.ui.LineEdit_DAT_GPTSoVITS_DataFormat.textChanged.connect( + lambda Value: Config_DAT_GPTSoVITS.EditConfig('GPT-SoVITS', 'DataFormat_Path', str(Value)) + ) + self.ui.LineEdit_DAT_GPTSoVITS_DataFormat.RemoveFileDialogButton() + self.ui.Button_DAT_GPTSoVITS_DataFormat_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_GPTSoVITS_DataFormat.setText(DAT_GPTSoVITS_DataFormat_Default) + ) + + ''' + Function_SetText( + Widget = self.ui.Label_DAT_GPTSoVITS_AddAuxiliaryData, + Text = SetRichText( + Body = QCA.translate("Label", "添加辅助数据\n添加用以辅助训练的数据集,若当前语音数据的质量/数量较低则建议启用。") + ) + ) + self.ui.CheckBox_DAT_GPTSoVITS_AddAuxiliaryData.setChecked( + eval(Config_DAT_GPTSoVITS.GetValue('GPT-SoVITS', 'Add_AuxiliaryData', 'False')) + ) + Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings_DefaultHeight = self.ui.Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings.sizeHint().height() + Function_ConfigureCheckBox( + CheckBox = self.ui.CheckBox_DAT_GPTSoVITS_AddAuxiliaryData, + CheckedText = "已启用", + CheckedEvents = [ + lambda: Config_DAT_GPTSoVITS.EditConfig('GPT-SoVITS', 'Add_AuxiliaryData', 'True'), + lambda: self.SetChildWidgetsVisibility( + self.ui.Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings, + Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings_DefaultHeight, + [ + self.ui.Frame_DAT_GPTSoVITS_AuxiliaryDataPath + ], + True + ) + ], + UncheckedText = "未启用", + UncheckedEvents = [ + lambda: Config_DAT_GPTSoVITS.EditConfig('GPT-SoVITS', 'Add_AuxiliaryData', 'False'), + lambda: self.SetChildWidgetsVisibility( + self.ui.Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings, + Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings_DefaultHeight, + [ + self.ui.Frame_DAT_GPTSoVITS_AuxiliaryDataPath + ], + False + ) + ], + TakeEffect = True + ) + self.ui.Button_DAT_GPTSoVITS_AddAuxiliaryData_Undo.clicked.connect( + lambda: self.ui.CheckBox_DAT_GPTSoVITS_AddAuxiliaryData.setChecked(False) + ) + + Function_SetText( + Widget = self.ui.Label_DAT_GPTSoVITS_AuxiliaryDataPath, + Text = SetRichText( + Body = QCA.translate("Label", "辅助数据文本路径\n辅助数据集的文本的路径。") + ) + ) + DAT_GPTSoVITS_AuxiliaryDataPath_Default = Path(CurrentDir).joinpath('AuxiliaryData', 'GPT-SoVITS', 'AuxiliaryData.txt').as_posix() if Path(CurrentDir).joinpath('AuxiliaryData', 'VITS', 'AuxiliaryData.txt').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_DAT_GPTSoVITS_AuxiliaryDataPath, + Text = str(Config_DAT_GPTSoVITS.GetValue('GPT-SoVITS', 'AuxiliaryData_Path', DAT_GPTSoVITS_AuxiliaryDataPath_Default)), + SetPlaceholderText = True, + PlaceholderText = DAT_GPTSoVITS_AuxiliaryDataPath_Default + ) + self.ui.LineEdit_DAT_GPTSoVITS_AuxiliaryDataPath.textChanged.connect( + lambda Value: Config_DAT_GPTSoVITS.EditConfig('GPT-SoVITS', 'AuxiliaryData_Path', str(Value)) + ) + self.ui.LineEdit_DAT_GPTSoVITS_AuxiliaryDataPath.SetFileDialog( + Mode = "SelectFile", + FileType = "文本类型 (*.csv *.txt)", + Directory = NormPath(Path(CurrentDir).joinpath('AuxiliaryData', 'GPT-SoVITS')) + ) + self.ui.Button_DAT_GPTSoVITS_AuxiliaryDataPath_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_GPTSoVITS_AuxiliaryDataPath.setText(DAT_GPTSoVITS_AuxiliaryDataPath_Default) + ) + ''' + + self.ui.GroupBox_DAT_GPTSoVITS_OutputParams.setTitle(QCA.translate("GroupBox", "输出参数")) + + Function_SetText( + Widget = self.ui.Label_DAT_GPTSoVITS_OutputDirName, + Text = SetRichText( + Body = QCA.translate("Label", "输出目录名\n用于保存最后生成的数据集文件的目录的名字。") + ) + ) + DAT_GPTSoVITS_OutputDirName_Default = str(date.today()) + Function_SetText( + Widget = self.ui.LineEdit_DAT_GPTSoVITS_OutputDirName, + Text = str(Config_DAT_GPTSoVITS.GetValue('GPT-SoVITS', 'Output_Dir_Name', '')), + SetPlaceholderText = True, + PlaceholderText = DAT_GPTSoVITS_OutputDirName_Default + ) + self.ui.LineEdit_DAT_GPTSoVITS_OutputDirName.textChanged.connect( + lambda Value: Config_DAT_GPTSoVITS.EditConfig('GPT-SoVITS', 'Output_Dir_Name', str(Value)) + ) + self.ui.LineEdit_DAT_GPTSoVITS_OutputDirName.RemoveFileDialogButton() + self.ui.Button_DAT_GPTSoVITS_OutputDirName_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_GPTSoVITS_OutputDirName.setText(DAT_GPTSoVITS_OutputDirName_Default) + ) + + self.ui.CheckBox_DAT_GPTSoVITS_OutputParams_Toggle_AdvanceSettings.setChecked(False) + Function_ConfigureCheckBox( + CheckBox = self.ui.CheckBox_DAT_GPTSoVITS_OutputParams_Toggle_AdvanceSettings, + CheckedText = "高级设置", + CheckedEvents = [ + lambda: Function_AnimateFrame( + self.ui.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings.sizeHint().height(), + 210, + 'Extend' + ) + ], + UncheckedText = "高级设置", + UncheckedEvents = [ + lambda: Function_AnimateFrame( + self.ui.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings.sizeHint().height(), + 210, + 'Reduce' + ) + ], + TakeEffect = True + ) + + Function_SetText( + Widget = self.ui.Label_DAT_GPTSoVITS_FileListName, + Text = SetRichText( + Body = QCA.translate("Label", "数据集文本名\n用于保存最后生成的数据集txt文件的名字。") + ) + ) + DAT_GPTSoVITS_FileListName_Default = "Train_" + str(date.today()) + Function_SetText( + Widget = self.ui.LineEdit_DAT_GPTSoVITS_FileListName, + Text = str(Config_DAT_GPTSoVITS.GetValue('GPT-SoVITS', 'FileList_Name', DAT_GPTSoVITS_FileListName_Default)), + SetPlaceholderText = True, + PlaceholderText = DAT_GPTSoVITS_FileListName_Default + ) + self.ui.LineEdit_DAT_GPTSoVITS_FileListName.textChanged.connect( + lambda Value: Config_DAT_GPTSoVITS.EditConfig('GPT-SoVITS', 'FileList_Name', str(Value)) + ) + self.ui.LineEdit_DAT_GPTSoVITS_FileListName.RemoveFileDialogButton() + self.ui.Button_DAT_GPTSoVITS_FileListName_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_GPTSoVITS_FileListName.setText(DAT_GPTSoVITS_FileListName_Default) + ) + + LineEdit_DAT_GPTSoVITS_OutputDir = QLineEdit() + def SetText_LineEdit_DAT_GPTSoVITS_OutputDir(): + DirText = Path(self.ui.LineEdit_DAT_GPTSoVITS_OutputRoot.text()).joinpath(self.ui.LineEdit_DAT_GPTSoVITS_OutputDirName.text()).as_posix() + LineEdit_DAT_GPTSoVITS_OutputDir.setText(DirText) + Alert = Path(DirText).exists() and list(Path(DirText).iterdir()) != [] + self.ui.LineEdit_DAT_GPTSoVITS_OutputDirName.Alert(True if Alert else False, f"注意:目录 {DirText} 已包含文件") + self.ui.LineEdit_DAT_GPTSoVITS_OutputDirName.textChanged.connect(SetText_LineEdit_DAT_GPTSoVITS_OutputDir) + self.ui.LineEdit_DAT_GPTSoVITS_OutputRoot.textChanged.connect(SetText_LineEdit_DAT_GPTSoVITS_OutputDir) + #SetText_LineEdit_DAT_GPTSoVITS_OutputDir() + + LineEdit_DAT_GPTSoVITS_FileListPath = QLineEdit() + def SetText_LineEdit_DAT_GPTSoVITS_FileListPath(): + PathText = Path(LineEdit_DAT_GPTSoVITS_OutputDir.text()).joinpath(self.ui.LineEdit_DAT_GPTSoVITS_FileListName.text()).as_posix() + ".txt" + LineEdit_DAT_GPTSoVITS_FileListPath.setText(PathText) + Alert = Path(PathText).exists() + self.ui.LineEdit_DAT_GPTSoVITS_FileListName.Alert(True if Alert else False, f"注意:路径 {PathText} 已存在") + self.ui.LineEdit_DAT_GPTSoVITS_FileListName.textChanged.connect(SetText_LineEdit_DAT_GPTSoVITS_FileListPath) + LineEdit_DAT_GPTSoVITS_OutputDir.textChanged.connect(SetText_LineEdit_DAT_GPTSoVITS_FileListPath) + #SetText_LineEdit_DAT_GPTSoVITS_FileListPath() + + # GPT-SoVITS - Left + Function_SetTreeWidget( + TreeWidget = self.ui.TreeWidget_Catalogue_DAT_GPTSoVITS, + RootItemTexts = [ + self.ui.GroupBox_DAT_GPTSoVITS_InputParams.title(), + self.ui.GroupBox_DAT_GPTSoVITS_GPTSoVITSParams.title(), + self.ui.GroupBox_DAT_GPTSoVITS_OutputParams.title() + ], + ChildItemTexts = [ + ("基础设置"), + ("基础设置"), + ("基础设置","高级设置") + ], + AddVertically = True + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_DAT_GPTSoVITS.topLevelItem(0), + TargetWidget = self.ui.GroupBox_DAT_GPTSoVITS_InputParams, + ScrollArea = self.ui.ScrollArea_Middle_DAT_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_DAT_GPTSoVITS.topLevelItem(0).child(0), + TargetWidget = self.ui.Frame_DAT_GPTSoVITS_InputParams_BasicSettings, + ScrollArea = self.ui.ScrollArea_Middle_DAT_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_DAT_GPTSoVITS.topLevelItem(1), + TargetWidget = self.ui.GroupBox_DAT_GPTSoVITS_GPTSoVITSParams, + ScrollArea = self.ui.ScrollArea_Middle_DAT_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_DAT_GPTSoVITS.topLevelItem(1).child(0), + TargetWidget = self.ui.Frame_DAT_GPTSoVITS_GPTSoVITSParams_BasicSettings, + ScrollArea = self.ui.ScrollArea_Middle_DAT_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_DAT_GPTSoVITS.topLevelItem(2), + TargetWidget = self.ui.GroupBox_DAT_GPTSoVITS_OutputParams, + ScrollArea = self.ui.ScrollArea_Middle_DAT_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_DAT_GPTSoVITS.topLevelItem(2).child(0), + TargetWidget = self.ui.Frame_DAT_GPTSoVITS_OutputParams_BasicSettings, + ScrollArea = self.ui.ScrollArea_Middle_DAT_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_DAT_GPTSoVITS.topLevelItem(2).child(1), + TargetWidget = self.ui.Frame_DAT_GPTSoVITS_OutputParams_AdvanceSettings, + ScrollArea = self.ui.ScrollArea_Middle_DAT_GPTSoVITS + ) + + # GPT-SoVITS - Right + MonitorFile_Config_DatasetCreator_GPTSoVITS = MonitorFile(Path_Config_DAT_GPTSoVITS) + MonitorFile_Config_DatasetCreator_GPTSoVITS.start() + MonitorFile_Config_DatasetCreator_GPTSoVITS.Signal_FileContent.connect( + lambda FileContent: self.ui.TextBrowser_Params_DAT_GPTSoVITS.setText( + FileContent + ) + ) + + self.ui.Button_CheckOutput_DAT_GPTSoVITS.setText(QCA.translate("Button", "打开输出目录")) + Function_SetURL( + Button = self.ui.Button_CheckOutput_DAT_GPTSoVITS, + URL = self.ui.LineEdit_DAT_GPTSoVITS_OutputRoot, + ButtonTooltip = "Click to open", + CreateIfNotExist = True + ) + + # GPT-SoVITS - Bottom + self.ui.Button_DAT_GPTSoVITS_Execute.setToolTip("执行数据集制作") + self.ui.Button_DAT_GPTSoVITS_Terminate.setToolTip("终止数据集制作") + self.Function_SetMethodExecutor( + ExecuteButton = self.ui.Button_DAT_GPTSoVITS_Execute, + TerminateButton = self.ui.Button_DAT_GPTSoVITS_Terminate, + ProgressBar = self.ui.ProgressBar_DAT_GPTSoVITS, + ConsoleWidget = self.ui.Frame_Console, + Method = Execute_Dataset_Creating_GPTSoVITS.Execute, + ParamsFrom = [ + self.ui.LineEdit_DAT_GPTSoVITS_SRTDir, + self.ui.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath, + self.ui.LineEdit_DAT_GPTSoVITS_DataFormat, + #self.ui.CheckBox_DAT_GPTSoVITS_AddAuxiliaryData, + #self.ui.LineEdit_DAT_GPTSoVITS_AuxiliaryDataPath, + self.ui.LineEdit_DAT_GPTSoVITS_OutputRoot, + self.ui.LineEdit_DAT_GPTSoVITS_OutputDirName, + self.ui.LineEdit_DAT_GPTSoVITS_FileListName + ], + EmptyAllowed = [ + #self.ui.LineEdit_DAT_GPTSoVITS_AuxiliaryDataPath + ], + FinishEvents = [ + lambda: Function_ShowMessageBox(self, + QMessageBox.Information, "Tip", + "当前任务已执行结束。" + ) + ] + ) + + # VITS - Config + Path_Config_DAT_VITS = NormPath(Path(ConfigDir).joinpath('Config_DAT_VITS.ini')) + Config_DAT_VITS = ManageConfig(Path_Config_DAT_VITS) + + # VITS - Top + self.ui.ToolButton_DatasetCreator_Title_VITS.setText(QCA.translate("ToolButton", "VITS2")) + self.ui.ToolButton_DatasetCreator_Title_VITS.setCheckable(True) + self.ui.ToolButton_DatasetCreator_Title_VITS.setChecked(False) + self.ui.ToolButton_DatasetCreator_Title_VITS.setAutoExclusive(True) + self.ui.ToolButton_DatasetCreator_Title_VITS.clicked.connect( + lambda: Function_AnimateStackedWidget( + StackedWidget = self.ui.StackedWidget_Pages_Dataset, + TargetIndex = 1 + ) + ) + + # VITS - Middle + self.ui.GroupBox_DAT_VITS_InputParams.setTitle(QCA.translate("GroupBox", "输入参数")) + + DialogBox_VITS_AudioSpeakersDataPath = MessageBox_Buttons(self) + DialogBox_VITS_AudioSpeakersDataPath.setText("请选择参数类型") + DialogBox_VITS_AudioSpeakersDataPath.Button1.setText("音频文件目录") + DialogBox_VITS_AudioSpeakersDataPath.Button1.clicked.connect( + lambda: ( + DialogBox_VITS_AudioSpeakersDataPath.close(), + self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath.setText( + Function_GetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(ChildWindow_ASR.ui.LineEdit.text())) + ) + ) + ) + ) + DialogBox_VITS_AudioSpeakersDataPath.Button2.setText("语音识别结果文本路径") + DialogBox_VITS_AudioSpeakersDataPath.Button2.clicked.connect( + lambda: ( + DialogBox_VITS_AudioSpeakersDataPath.close(), + self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath.setText( + Function_GetFileDialog( + Mode = "SelectFile", + FileType = "txt类型 (*.txt)", + Directory = Path(CurrentDir).joinpath('语音识别结果', 'VPR').as_posix() + ) + ) + ) + ) + + Function_SetText( + Widget = self.ui.Label_DAT_VITS_AudioSpeakersDataPath, + Text = SetRichText( + Body = QCA.translate("Label", "音频文件目录/语音识别结果文本路径\n音频文件的所在目录(要求按说话人分类),或者提供由语音识别得到的文本文件。") + ) + ) + Function_SetText( + Widget = self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath, + Text = str(Config_DAT_VITS.GetValue('VITS', 'WAV_Dir', '')), + SetPlaceholderText = True + ) + self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath.textChanged.connect( + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'WAV_Dir', str(Value)) ) self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath.Button.clicked.connect( - lambda: DialogBox_AudioSpeakersDataPath.exec() + lambda: DialogBox_VITS_AudioSpeakersDataPath.exec() ) self.ui.Button_DAT_VITS_AudioSpeakersDataPath_Undo.clicked.connect( lambda: self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath.setText('') @@ -2777,20 +3442,20 @@ def Main(self): Function_SetText( Widget = self.ui.Label_DAT_VITS_SRTDir, Text = SetRichText( - Body = QCA.translate("Label", "SRT文件目录\n字幕文件的所在目录,字幕文件须与对应音频文件同名且在文本中注明所属语言。") + Body = QCA.translate("Label", "字幕输入目录\n字幕文件的所在目录,字幕文件须与对应音频文件同名且在文本中注明所属语言。") ) ) Function_SetText( Widget = self.ui.LineEdit_DAT_VITS_SRTDir, - Text = str(Config_DAT.GetValue('VITS', 'SRT_Dir', '')), + Text = str(Config_DAT_VITS.GetValue('VITS', 'SRT_Dir', '')), SetPlaceholderText = True ) self.ui.LineEdit_DAT_VITS_SRTDir.textChanged.connect( - lambda Value: Config_DAT.EditConfig('VITS', 'SRT_Dir', str(Value)) + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'SRT_Dir', str(Value)) ) self.ui.LineEdit_DAT_VITS_SRTDir.SetFileDialog( - Mode = "SelectDir", - Directory = NormPath(Path(STT_Whisper_SRTDir_Default).parent) + Mode = "SelectFolder", + Directory = Path(CurrentDir).joinpath('语音转录结果', 'Whisper').as_posix() ) self.ui.Button_DAT_VITS_SRTDir_Undo.clicked.connect( lambda: self.ui.LineEdit_DAT_VITS_SRTDir.setText('') @@ -2807,13 +3472,13 @@ def Main(self): DAT_VITS_DataFormat_Default = '路径|人名|[语言]文本[语言]' Function_SetText( Widget = self.ui.LineEdit_DAT_VITS_DataFormat, - Text = str(Config_DAT.GetValue('VITS', 'DataFormat_Path', DAT_VITS_DataFormat_Default)), + Text = str(Config_DAT_VITS.GetValue('VITS', 'DataFormat_Path', DAT_VITS_DataFormat_Default)), SetPlaceholderText = True, PlaceholderText = DAT_VITS_DataFormat_Default ) self.ui.LineEdit_DAT_VITS_DataFormat.textChanged.connect( lambda Value: ( - Function_ShowMessageBox( + Function_ShowMessageBox(self, MessageType = QMessageBox.Warning, WindowTitle = "Warning", Text = "请保留关键词:'路径','人名','语言','文本'", @@ -2822,7 +3487,7 @@ def Main(self): ) if not all(Keyword in Value for Keyword in ['路径', '人名', '语言', '文本']) else None ) self.ui.LineEdit_DAT_VITS_DataFormat.textChanged.connect( - lambda Value: Config_DAT.EditConfig('VITS', 'DataFormat_Path', str(Value)) + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'DataFormat_Path', str(Value)) ) self.ui.LineEdit_DAT_VITS_DataFormat.RemoveFileDialogButton() self.ui.Button_DAT_VITS_DataFormat_Undo.clicked.connect( @@ -2836,14 +3501,14 @@ def Main(self): ) ) self.ui.CheckBox_DAT_VITS_AddAuxiliaryData.setChecked( - eval(Config_DAT.GetValue('VITS', 'Add_AuxiliaryData', 'False')) + eval(Config_DAT_VITS.GetValue('VITS', 'Add_AuxiliaryData', 'False')) ) Frame_DAT_VITS_VITSParams_BasicSettings_DefaultHeight = self.ui.Frame_DAT_VITS_VITSParams_BasicSettings.sizeHint().height() Function_ConfigureCheckBox( CheckBox = self.ui.CheckBox_DAT_VITS_AddAuxiliaryData, CheckedText = "已启用", CheckedEvents = [ - lambda: Config_DAT.EditConfig('VITS', 'Add_AuxiliaryData', 'True'), + lambda: Config_DAT_VITS.EditConfig('VITS', 'Add_AuxiliaryData', 'True'), lambda: self.SetChildWidgetsVisibility( self.ui.Frame_DAT_VITS_VITSParams_BasicSettings, Frame_DAT_VITS_VITSParams_BasicSettings_DefaultHeight, @@ -2855,7 +3520,7 @@ def Main(self): ], UncheckedText = "未启用", UncheckedEvents = [ - lambda: Config_DAT.EditConfig('VITS', 'Add_AuxiliaryData', 'False'), + lambda: Config_DAT_VITS.EditConfig('VITS', 'Add_AuxiliaryData', 'False'), lambda: self.SetChildWidgetsVisibility( self.ui.Frame_DAT_VITS_VITSParams_BasicSettings, Frame_DAT_VITS_VITSParams_BasicSettings_DefaultHeight, @@ -2874,18 +3539,18 @@ def Main(self): Function_SetText( Widget = self.ui.Label_DAT_VITS_AuxiliaryDataPath, Text = SetRichText( - Body = QCA.translate("Label", "辅助数据文本路径\n辅助数据集的文本的所在路径。") + Body = QCA.translate("Label", "辅助数据文本路径\n辅助数据集的文本的路径。") ) ) DAT_VITS_AuxiliaryDataPath_Default = Path(CurrentDir).joinpath('AuxiliaryData', 'VITS', 'AuxiliaryData.txt').as_posix() if Path(CurrentDir).joinpath('AuxiliaryData', 'VITS', 'AuxiliaryData.txt').exists() else '' Function_SetText( Widget = self.ui.LineEdit_DAT_VITS_AuxiliaryDataPath, - Text = str(Config_DAT.GetValue('VITS', 'AuxiliaryData_Path', DAT_VITS_AuxiliaryDataPath_Default)), + Text = str(Config_DAT_VITS.GetValue('VITS', 'AuxiliaryData_Path', DAT_VITS_AuxiliaryDataPath_Default)), SetPlaceholderText = True, PlaceholderText = DAT_VITS_AuxiliaryDataPath_Default ) self.ui.LineEdit_DAT_VITS_AuxiliaryDataPath.textChanged.connect( - lambda Value: Config_DAT.EditConfig('VITS', 'AuxiliaryData_Path', str(Value)) + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'AuxiliaryData_Path', str(Value)) ) self.ui.LineEdit_DAT_VITS_AuxiliaryDataPath.SetFileDialog( Mode = "SelectFile", @@ -2931,10 +3596,10 @@ def Main(self): self.ui.DoubleSpinBox_DAT_VITS_TrainRatio.setRange(0.5, 0.9) self.ui.DoubleSpinBox_DAT_VITS_TrainRatio.setSingleStep(0.1) self.ui.DoubleSpinBox_DAT_VITS_TrainRatio.setValue( - float(Config_DAT.GetValue('VITS', 'TrainRatio', '0.7')) + float(Config_DAT_VITS.GetValue('VITS', 'TrainRatio', '0.7')) ) self.ui.DoubleSpinBox_DAT_VITS_TrainRatio.valueChanged.connect( - lambda Value: Config_DAT.EditConfig('VITS', 'TrainRatio', str(Value)) + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'TrainRatio', str(Value)) ) self.ui.Button_DAT_VITS_TrainRatio_Undo.clicked.connect( lambda: self.ui.DoubleSpinBox_DAT_VITS_TrainRatio.setValue(0.7) @@ -2948,10 +3613,10 @@ def Main(self): ) self.ui.ComboBox_DAT_VITS_SampleRate.addItems(['22050', '44100', '48000', '96000', '192000', 'None']) self.ui.ComboBox_DAT_VITS_SampleRate.setCurrentText( - str(Config_DAT.GetValue('VITS', 'SampleRate', '22050')) + str(Config_DAT_VITS.GetValue('VITS', 'SampleRate', '22050')) ) self.ui.ComboBox_DAT_VITS_SampleRate.currentTextChanged.connect( - lambda Value: Config_DAT.EditConfig('VITS', 'SampleRate', str(Value)) + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'SampleRate', str(Value)) ) self.ui.Button_DAT_VITS_SampleRate_Undo.clicked.connect( lambda: self.ui.ComboBox_DAT_VITS_SampleRate.setCurrentText('22050') @@ -2965,10 +3630,10 @@ def Main(self): ) self.ui.ComboBox_DAT_VITS_SampleWidth.addItems(['8', '16', '24', '32', '32 (Float)', 'None']) self.ui.ComboBox_DAT_VITS_SampleWidth.setCurrentText( - str(Config_DAT.GetValue('VITS', 'SampleWidth', '16')) + str(Config_DAT_VITS.GetValue('VITS', 'SampleWidth', '16')) ) self.ui.ComboBox_DAT_VITS_SampleWidth.currentTextChanged.connect( - lambda Value: Config_DAT.EditConfig('VITS', 'SampleWidth', str(Value)) + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'SampleWidth', str(Value)) ) self.ui.Button_DAT_VITS_SampleWidth_Undo.clicked.connect( lambda: self.ui.ComboBox_DAT_VITS_SampleWidth.setCurrentText('16') @@ -2981,17 +3646,17 @@ def Main(self): ) ) self.ui.CheckBox_DAT_VITS_ToMono.setChecked( - eval(Config_DAT.GetValue('VITS', 'ToMono', 'True')) + eval(Config_DAT_VITS.GetValue('VITS', 'ToMono', 'True')) ) Function_ConfigureCheckBox( CheckBox = self.ui.CheckBox_DAT_VITS_ToMono, CheckedText = "已启用", CheckedEvents = [ - lambda: Config_DAT.EditConfig('VITS', 'ToMono', 'True') + lambda: Config_DAT_VITS.EditConfig('VITS', 'ToMono', 'True') ], UncheckedText = "未启用", UncheckedEvents = [ - lambda: Config_DAT.EditConfig('VITS', 'ToMono', 'False') + lambda: Config_DAT_VITS.EditConfig('VITS', 'ToMono', 'False') ], TakeEffect = True ) @@ -3002,123 +3667,125 @@ def Main(self): self.ui.GroupBox_DAT_VITS_OutputParams.setTitle(QCA.translate("GroupBox", "输出参数")) Function_SetText( - Widget = self.ui.Label_DAT_VITS_ToStandaloneForm, + Widget = self.ui.Label_DAT_VITS_OutputDirName, Text = SetRichText( - Body = QCA.translate("Label", "输出为独立格式\n通过保持文本和音频的相对路径关系生成数据集以方便打包、上传等需求。") + Body = QCA.translate("Label", "输出目录名\n用于保存最后生成的数据集文件的目录的名字。") ) ) - self.ui.CheckBox_DAT_VITS_ToStandaloneForm.setChecked( - eval(Config_DAT.GetValue('VITS', 'ToStandaloneForm', 'True')) + DAT_VITS_OutputDirName_Default = str(date.today()) + Function_SetText( + Widget = self.ui.LineEdit_DAT_VITS_OutputDirName, + Text = str(Config_DAT_VITS.GetValue('VITS', 'Output_Dir_Name', '')), + SetPlaceholderText = True, + PlaceholderText = DAT_VITS_OutputDirName_Default + ) + self.ui.LineEdit_DAT_VITS_OutputDirName.textChanged.connect( + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'Output_Dir_Name', str(Value)) + ) + self.ui.LineEdit_DAT_VITS_OutputDirName.RemoveFileDialogButton() + self.ui.Button_DAT_VITS_OutputDirName_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_VITS_OutputDirName.setText(DAT_VITS_OutputDirName_Default) ) + + self.ui.CheckBox_DAT_VITS_OutputParams_Toggle_AdvanceSettings.setChecked(False) Function_ConfigureCheckBox( - CheckBox = self.ui.CheckBox_DAT_VITS_ToStandaloneForm, - CheckedText = "已启用", + CheckBox = self.ui.CheckBox_DAT_VITS_OutputParams_Toggle_AdvanceSettings, + CheckedText = "高级设置", CheckedEvents = [ - lambda: Config_DAT.EditConfig('VITS', 'ToStandaloneForm', 'True'), + lambda: Function_AnimateFrame( + self.ui.Frame_DAT_VITS_OutputParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_DAT_VITS_OutputParams_AdvanceSettings.sizeHint().height(), + 210, + 'Extend' + ) ], - UncheckedText = "未启用", + UncheckedText = "高级设置", UncheckedEvents = [ - lambda: Config_DAT.EditConfig('VITS', 'ToStandaloneForm', 'False'), + lambda: Function_AnimateFrame( + self.ui.Frame_DAT_VITS_OutputParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_DAT_VITS_OutputParams_AdvanceSettings.sizeHint().height(), + 210, + 'Reduce' + ) ], TakeEffect = True ) - self.ui.Button_DAT_VITS_ToStandaloneForm_Undo.clicked.connect( - lambda: self.ui.CheckBox_DAT_VITS_ToStandaloneForm.setChecked(True) - ) Function_SetText( - Widget = self.ui.Label_DAT_VITS_WAVDirSplit, + Widget = self.ui.Label_DAT_VITS_FileListNameTraining, Text = SetRichText( - Body = QCA.translate("Label", "音频输出目录\n用于保存最后处理完成的音频的目录。") + Body = QCA.translate("Label", "训练集文本名\n用于保存最后生成的训练集txt文件的名字。") ) ) - DAT_VITS_WAVDirSplit_Default = Path(CurrentDir).joinpath('数据集制作结果', 'VITS', f'{date.today()}').as_posix() + DAT_VITS_FileListNameTraining_Default = "Train_" + str(date.today()) Function_SetText( - Widget = self.ui.LineEdit_DAT_VITS_WAVDirSplit, - Text = str(Config_DAT.GetValue('VITS', 'WAV_Dir_Split', '')), + Widget = self.ui.LineEdit_DAT_VITS_FileListNameTraining, + Text = str(Config_DAT_VITS.GetValue('VITS', 'FileList_Name_Training', DAT_VITS_FileListNameTraining_Default)), SetPlaceholderText = True, - PlaceholderText = DAT_VITS_WAVDirSplit_Default + PlaceholderText = DAT_VITS_FileListNameTraining_Default ) - self.ui.LineEdit_DAT_VITS_WAVDirSplit.textChanged.connect( - lambda Value: Config_DAT.EditConfig('VITS', 'WAV_Dir_Split', str(Value)) + self.ui.LineEdit_DAT_VITS_FileListNameTraining.textChanged.connect( + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'FileList_Name_Training', str(Value)) ) - self.ui.LineEdit_DAT_VITS_WAVDirSplit.SetFileDialog( - Mode = "SelectDir", - Directory = NormPath(Path(DAT_VITS_WAVDirSplit_Default).parent) - ) - self.ui.Button_DAT_VITS_WAVDirSplit_Undo.clicked.connect( - lambda: self.ui.LineEdit_DAT_VITS_WAVDirSplit.setText(DAT_VITS_WAVDirSplit_Default) + self.ui.LineEdit_DAT_VITS_FileListNameTraining.RemoveFileDialogButton() + self.ui.Button_DAT_VITS_FileListNameTraining_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_VITS_FileListNameTraining.setText(DAT_VITS_FileListNameTraining_Default) ) Function_SetText( - Widget = self.ui.Label_DAT_VITS_FileListPathTraining, + Widget = self.ui.Label_DAT_VITS_FileListNameValidation, Text = SetRichText( - Body = QCA.translate("Label", "训练集文本路径\n用于保存最后生成的训练集txt文件的路径。") + Body = QCA.translate("Label", "验证集文本名\n用于保存最后生成的验证集txt文件的名字。") ) ) - DAT_VITS_FileListPathTraining_Default = Path(CurrentDir).joinpath('数据集制作结果', 'VITS', f'{date.today()}', 'Train.txt').as_posix() + DAT_VITS_FileListNameValidation_Default = "Val_" + str(date.today()) Function_SetText( - Widget = self.ui.LineEdit_DAT_VITS_FileListPathTraining, - Text = str(Config_DAT.GetValue('VITS', 'FileList_Path_Training', '')), + Widget = self.ui.LineEdit_DAT_VITS_FileListNameValidation, + Text = str(Config_DAT_VITS.GetValue('VITS', 'FileList_Name_Validation', DAT_VITS_FileListNameValidation_Default)), SetPlaceholderText = True, - PlaceholderText = DAT_VITS_FileListPathTraining_Default - ) - self.ui.LineEdit_DAT_VITS_FileListPathTraining.textChanged.connect( - lambda Value: ( - Function_ShowMessageBox( - WindowTitle = "Tip", - Text = "为输出数据集为独立格式,已调整文本路径至音频输出目录", - ), - self.ui.LineEdit_DAT_VITS_FileListPathTraining.setText(Path(self.ui.LineEdit_DAT_VITS_WAVDirSplit.text()).joinpath(Path(Value).name).as_posix()), - ) if self.ui.CheckBox_DAT_VITS_ToStandaloneForm.isChecked() and Path(Value).parent.as_posix() != Path(self.ui.LineEdit_DAT_VITS_WAVDirSplit.text()).as_posix() else None - ) - self.ui.LineEdit_DAT_VITS_FileListPathTraining.textChanged.connect( - lambda Value: Config_DAT.EditConfig('VITS', 'FileList_Path_Training', str(Value)) - ) - self.ui.LineEdit_DAT_VITS_FileListPathTraining.SetFileDialog( - Mode = "SaveFile", - FileType = "文本类型 (*.txt *.list)", - Directory = NormPath(Path(DAT_VITS_FileListPathTraining_Default).parent) - ) - self.ui.Button_DAT_VITS_FileListPathTraining_Undo.clicked.connect( - lambda: self.ui.LineEdit_DAT_VITS_FileListPathTraining.setText(DAT_VITS_FileListPathTraining_Default) - ) - - Function_SetText( - Widget = self.ui.Label_DAT_VITS_FileListPathValidation, - Text = SetRichText( - Body = QCA.translate("Label", "验证集文本路径\n用于保存最后生成的验证集txt文件的路径。") - ) - ) - DAT_VITS_FileListPathValidation_Default = Path(CurrentDir).joinpath('数据集制作结果', 'VITS', f'{date.today()}', 'Val.txt').as_posix() - Function_SetText( - Widget = self.ui.LineEdit_DAT_VITS_FileListPathValidation, - Text = str(Config_DAT.GetValue('VITS', 'FileList_Path_Validation', '')), - SetPlaceholderText = True, - PlaceholderText = DAT_VITS_FileListPathValidation_Default - ) - self.ui.LineEdit_DAT_VITS_FileListPathValidation.textChanged.connect( - lambda Value: ( - Function_ShowMessageBox( - WindowTitle = "Tip", - Text = "为输出数据集为独立格式,已调整文本路径至音频输出目录", - ), - self.ui.LineEdit_DAT_VITS_FileListPathValidation.setText(Path(self.ui.LineEdit_DAT_VITS_WAVDirSplit.text()).joinpath(Path(Value).name).as_posix()), - ) if self.ui.CheckBox_DAT_VITS_ToStandaloneForm.isChecked() and Path(Value).parent.as_posix() != Path(self.ui.LineEdit_DAT_VITS_WAVDirSplit.text()).as_posix() else None - ) - self.ui.LineEdit_DAT_VITS_FileListPathValidation.textChanged.connect( - lambda Value: Config_DAT.EditConfig('VITS', 'FileList_Path_Validation', str(Value)) - ) - self.ui.LineEdit_DAT_VITS_FileListPathValidation.SetFileDialog( - Mode = "SaveFile", - FileType = "文本类型 (*.txt *.list)", - Directory = NormPath(Path(DAT_VITS_FileListPathValidation_Default).parent) - ) - self.ui.Button_DAT_VITS_FileListPathValidation_Undo.clicked.connect( - lambda: self.ui.LineEdit_DAT_VITS_FileListPathValidation.setText(DAT_VITS_FileListPathValidation_Default) - ) - - # Left + PlaceholderText = DAT_VITS_FileListNameValidation_Default + ) + self.ui.LineEdit_DAT_VITS_FileListNameValidation.textChanged.connect( + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'FileList_Name_Validation', str(Value)) + ) + self.ui.LineEdit_DAT_VITS_FileListNameValidation.RemoveFileDialogButton() + self.ui.Button_DAT_VITS_FileListNameValidation_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_VITS_FileListNameValidation.setText(DAT_VITS_FileListNameValidation_Default) + ) + + LineEdit_DAT_VITS_OutputDir = QLineEdit() + def SetText_LineEdit_DAT_VITS_OutputDir(): + DirText = Path(self.ui.LineEdit_DAT_VITS_OutputRoot.text()).joinpath(self.ui.LineEdit_DAT_VITS_OutputDirName.text()).as_posix() + LineEdit_DAT_VITS_OutputDir.setText(DirText) + Alert = Path(DirText).exists() and list(Path(DirText).iterdir()) != [] + self.ui.LineEdit_DAT_VITS_OutputDirName.Alert(True if Alert else False, f"注意:目录 {DirText} 已包含文件") + self.ui.LineEdit_DAT_VITS_OutputDirName.textChanged.connect(SetText_LineEdit_DAT_VITS_OutputDir) + self.ui.LineEdit_DAT_VITS_OutputRoot.textChanged.connect(SetText_LineEdit_DAT_VITS_OutputDir) + #SetText_LineEdit_DAT_VITS_OutputDir() + + LineEdit_DAT_VITS_FileListPathTraining = QLineEdit() + def SetText_LineEdit_DAT_VITS_FileListPathTraining(): + PathText = Path(LineEdit_DAT_VITS_OutputDir.text()).joinpath(self.ui.LineEdit_DAT_VITS_FileListNameTraining.text()).as_posix() + ".txt" + LineEdit_DAT_VITS_FileListPathTraining.setText(PathText) + Alert = Path(PathText).exists() + self.ui.LineEdit_DAT_VITS_FileListNameTraining.Alert(True if Alert else False, f"注意:路径 {PathText} 已存在") + self.ui.LineEdit_DAT_VITS_FileListNameTraining.textChanged.connect(SetText_LineEdit_DAT_VITS_FileListPathTraining) + LineEdit_DAT_VITS_OutputDir.textChanged.connect(SetText_LineEdit_DAT_VITS_FileListPathTraining) + #SetText_LineEdit_DAT_VITS_FileListPathTraining() + + LineEdit_DAT_VITS_FileListPathValidation = QLineEdit() + def SetText_LineEdit_DAT_VITS_FileListPathValidation(): + PathText = Path(LineEdit_DAT_VITS_OutputDir.text()).joinpath(self.ui.LineEdit_DAT_VITS_FileListNameValidation.text()).as_posix() + ".txt" + LineEdit_DAT_VITS_FileListPathValidation.setText(PathText) + Alert = Path(PathText).exists() + self.ui.LineEdit_DAT_VITS_FileListNameValidation.Alert(True if Alert else False, f"注意:路径 {PathText} 已存在") + self.ui.LineEdit_DAT_VITS_FileListNameValidation.textChanged.connect(SetText_LineEdit_DAT_VITS_FileListPathValidation) + LineEdit_DAT_VITS_OutputDir.textChanged.connect(SetText_LineEdit_DAT_VITS_FileListPathValidation) + #SetText_LineEdit_DAT_VITS_FileListPathValidation() + + # VITS - Left Function_SetTreeWidget( TreeWidget = self.ui.TreeWidget_Catalogue_DAT_VITS, RootItemTexts = [ @@ -3129,7 +3796,7 @@ def Main(self): ChildItemTexts = [ ("基础设置"), ("基础设置","高级设置"), - ("基础设置") + ("基础设置","高级设置") ], AddVertically = True ) @@ -3168,27 +3835,30 @@ def Main(self): TargetWidget = self.ui.Frame_DAT_VITS_OutputParams_BasicSettings, ScrollArea = self.ui.ScrollArea_Middle_DAT_VITS ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_DAT_VITS.topLevelItem(2).child(1), + TargetWidget = self.ui.Frame_DAT_VITS_OutputParams_AdvanceSettings, + ScrollArea = self.ui.ScrollArea_Middle_DAT_VITS + ) - # Right - MonitorFile_Config_DatasetCreator = MonitorFile(Path_Config_DAT) - MonitorFile_Config_DatasetCreator.start() - MonitorFile_Config_DatasetCreator.Signal_FileContent.connect( + # VITS - Right + MonitorFile_Config_DatasetCreator_VITS = MonitorFile(Path_Config_DAT_VITS) + MonitorFile_Config_DatasetCreator_VITS.start() + MonitorFile_Config_DatasetCreator_VITS.Signal_FileContent.connect( lambda FileContent: self.ui.TextBrowser_Params_DAT_VITS.setText( FileContent ) ) - self.ui.Button_CheckOutput_DAT_VITS.setText(QCA.translate("Button", "查看输出文件")) + self.ui.Button_CheckOutput_DAT_VITS.setText(QCA.translate("Button", "打开输出目录")) Function_SetURL( Button = self.ui.Button_CheckOutput_DAT_VITS, - URL = [ - self.ui.LineEdit_DAT_VITS_FileListPathTraining, - self.ui.LineEdit_DAT_VITS_FileListPathValidation - ], - ButtonTooltip = "Click to open" + URL = self.ui.LineEdit_DAT_VITS_OutputRoot, + ButtonTooltip = "Click to open", + CreateIfNotExist = True ) - # Bottom + # VITS - Bottom self.ui.Button_DAT_VITS_Execute.setToolTip("执行数据集制作") self.ui.Button_DAT_VITS_Terminate.setToolTip("终止数据集制作") self.Function_SetMethodExecutor( @@ -3196,21 +3866,21 @@ def Main(self): TerminateButton = self.ui.Button_DAT_VITS_Terminate, ProgressBar = self.ui.ProgressBar_DAT_VITS, ConsoleWidget = self.ui.Frame_Console, - Method = Execute_Dataset_Creating.Execute, + Method = Execute_Dataset_Creating_VITS.Execute, ParamsFrom = [ self.ui.LineEdit_DAT_VITS_SRTDir, self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath, self.ui.ComboBox_DAT_VITS_SampleRate, self.ui.ComboBox_DAT_VITS_SampleWidth, self.ui.CheckBox_DAT_VITS_ToMono, - self.ui.LineEdit_DAT_VITS_WAVDirSplit, self.ui.LineEdit_DAT_VITS_DataFormat, self.ui.CheckBox_DAT_VITS_AddAuxiliaryData, self.ui.LineEdit_DAT_VITS_AuxiliaryDataPath, self.ui.DoubleSpinBox_DAT_VITS_TrainRatio, - self.ui.CheckBox_DAT_VITS_ToStandaloneForm, - self.ui.LineEdit_DAT_VITS_FileListPathTraining, - self.ui.LineEdit_DAT_VITS_FileListPathValidation + self.ui.LineEdit_DAT_VITS_OutputRoot, + self.ui.LineEdit_DAT_VITS_OutputDirName, + self.ui.LineEdit_DAT_VITS_FileListNameTraining, + self.ui.LineEdit_DAT_VITS_FileListNameValidation ], EmptyAllowed = [ self.ui.ComboBox_DAT_VITS_SampleRate, @@ -3218,11 +3888,9 @@ def Main(self): self.ui.LineEdit_DAT_VITS_AuxiliaryDataPath ], FinishEvents = [ - lambda: Function_ShowMessageBox( - QMessageBox.Question, "Ask", - "当前任务已执行结束,是否跳转至「语音训练」工具界面?", - QMessageBox.Yes|QMessageBox.No, - {QMessageBox.Yes: lambda: self.ui.Button_Menu_Train.click()} + lambda: Function_ShowMessageBox(self, + QMessageBox.Information, "Tip", + "当前任务已执行结束。" ) ] ) @@ -3232,7 +3900,7 @@ def Main(self): ############################################################# # Guidance - DialogBox_Train = MessageBox_Stacked() + DialogBox_Train = MessageBox_Stacked(self) DialogBox_Train.setWindowTitle('Guidance(该引导仅出现一次)') DialogBox_Train.SetContent( [ @@ -3253,43 +3921,517 @@ def Main(self): type = Qt.QueuedConnection ) - # Config - Path_Config_Train = NormPath(Path(ConfigDir).joinpath('Config_Train.ini')) - Config_Train = ManageConfig(Path_Config_Train) + # GPT-SoVITS - Config + Path_Config_Train_GPTSoVITS = NormPath(Path(ConfigDir).joinpath('Config_Train_GPT-SoVITS.ini')) + Config_Train_GPTSoVITS = ManageConfig(Path_Config_Train_GPTSoVITS) - # Top - self.ui.ToolButton_VoiceTrainer_Title.setText(QCA.translate("ToolButton", "VITS")) - self.ui.ToolButton_VoiceTrainer_Title.setCheckable(True) - self.ui.ToolButton_VoiceTrainer_Title.setChecked(True) - self.ui.ToolButton_VoiceTrainer_Title.setAutoExclusive(True) - self.ui.ToolButton_VoiceTrainer_Title.clicked.connect( + # GPT-SoVITS - Top + self.ui.ToolButton_VoiceTrainer_Title_GPTSoVITS.setText(QCA.translate("ToolButton", "GPT-SoVITS")) + self.ui.ToolButton_VoiceTrainer_Title_GPTSoVITS.setCheckable(True) + self.ui.ToolButton_VoiceTrainer_Title_GPTSoVITS.setChecked(True) + self.ui.ToolButton_VoiceTrainer_Title_GPTSoVITS.setAutoExclusive(True) + self.ui.ToolButton_VoiceTrainer_Title_GPTSoVITS.clicked.connect( lambda: Function_AnimateStackedWidget( StackedWidget = self.ui.StackedWidget_Pages_Train, TargetIndex = 0 ) ) - # Midlle + # GPT-SoVITS - Midlle + self.ui.GroupBox_Train_GPTSoVITS_InputParams.setTitle(QCA.translate("GroupBox", "输入参数")) + + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_FileListPath, + Text = SetRichText( + Body = QCA.translate("Label", "训练集文本路径\n用于提供训练集音频路径及其语音内容的训练集txt文件的路径。") + ) + ) + Function_SetText( + Widget = self.ui.LineEdit_Train_GPTSoVITS_FileListPath, + Text = str(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'FileList_Path', '')), + SetPlaceholderText = True + ) + self.ui.LineEdit_Train_GPTSoVITS_FileListPath.textChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'FileList_Path', str(Value)) + ) + self.ui.LineEdit_Train_GPTSoVITS_FileListPath.SetFileDialog( + Mode = "SelectFile", + FileType = "txt类型 (*.txt)", + Directory = Path(CurrentDir).joinpath('数据集制作结果', 'GPT-SoVITS').as_posix() + ) + self.ui.Button_Train_GPTSoVITS_FileListPath_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_GPTSoVITS_FileListPath.setText('') + ) + + self.ui.GroupBox_Train_GPTSoVITS_GPTSoVITSParams.setTitle(QCA.translate("GroupBox", "训练参数")) + + ''' + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_Epochs, + Text = SetRichText( + Body = QCA.translate("Label", "s1迭代轮数\n将全部样本完整迭代一轮的次数。") + ) + ) + self.ui.SpinBox_Train_GPTSoVITS_S1Epochs.setRange(1, 100) + self.ui.SpinBox_Train_GPTSoVITS_S1Epochs.setSingleStep(1) + self.ui.SpinBox_Train_GPTSoVITS_S1Epochs.setValue( + int(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'Epochs', '8')) + ) + self.ui.SpinBox_Train_GPTSoVITS_S1Epochs.valueChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'Epochs', str(Value)) + ) + self.ui.Button_Train_GPTSoVITS_S1Epochs_Undo.clicked.connect( + lambda: self.ui.SpinBox_Train_GPTSoVITS_S1Epochs.setValue(8) + ) + + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_S2Epochs, + Text = SetRichText( + Body = QCA.translate("Label", "s2迭代轮数\n将全部样本完整迭代一轮的次数。") + ) + ) + self.ui.SpinBox_Train_GPTSoVITS_S2Epochs.setRange(1, 100) + self.ui.SpinBox_Train_GPTSoVITS_S2Epochs.setSingleStep(1) + self.ui.SpinBox_Train_GPTSoVITS_S2Epochs.setValue( + int(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'Epochs', '15')) + ) + self.ui.SpinBox_Train_GPTSoVITS_S2Epochs.valueChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'Epochs', str(Value)) + ) + self.ui.Button_Train_GPTSoVITS_S2Epochs_Undo.clicked.connect( + lambda: self.ui.SpinBox_Train_GPTSoVITS_S2Epochs.setValue(15) + ) + ''' + + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_ModelPathPretrainedS1, + Text = SetRichText( + Body = QCA.translate("Label", "预训练s1模型路径\n预训练s1模型的路径。") + ) + ) + Train_GPTSoVITS_ModelPathPretrainedS1_Default = Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2', 's1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt').as_posix() if Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2', 's1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS1, + Text = str(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'Model_Path_Pretrained_s1', Train_GPTSoVITS_ModelPathPretrainedS1_Default)), + SetPlaceholderText = True, + PlaceholderText = Train_GPTSoVITS_ModelPathPretrainedS1_Default + ) + self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS1.textChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'Model_Path_Pretrained_s1', str(Value)) + ) + self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS1.SetFileDialog( + Mode = "SelectFile", + FileType = "ckpt类型 (*.ckpt)", + Directory = NormPath(Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2')) + ) + self.ui.Button_Train_GPTSoVITS_ModelPathPretrainedS1_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS1.setText(Train_GPTSoVITS_ModelPathPretrainedS1_Default) + ) + + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_ModelPathPretrainedS2G, + Text = SetRichText( + Body = QCA.translate("Label", "预训练s2G模型路径\n预训练s2G模型的路径。") + ) + ) + Train_GPTSoVITS_ModelPathPretrainedS2G_Default = Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2', 's2G488k.pth').as_posix() if Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2', 's2G488k.pth').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2G, + Text = str(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'Model_Path_Pretrained_s2G', Train_GPTSoVITS_ModelPathPretrainedS2G_Default)), + SetPlaceholderText = True, + PlaceholderText = Train_GPTSoVITS_ModelPathPretrainedS2G_Default + ) + self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2G.textChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'Model_Path_Pretrained_s2G', str(Value)) + ) + self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2G.SetFileDialog( + Mode = "SelectFile", + FileType = "pth类型 (*.pth)", + Directory = NormPath(Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2')) + ) + self.ui.Button_Train_GPTSoVITS_ModelPathPretrainedS2G_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2G.setText(Train_GPTSoVITS_ModelPathPretrainedS2G_Default) + ) + + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_ModelPathPretrainedS2D, + Text = SetRichText( + Body = QCA.translate("Label", "预训练s2D模型路径\n预训练s2D模型的路径。") + ) + ) + Train_GPTSoVITS_ModelPathPretrainedS2D_Default = Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2', 's2D488k.pth').as_posix() if Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2', 's2D488k.pth').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2D, + Text = str(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'Model_Path_Pretrained_s2D', Train_GPTSoVITS_ModelPathPretrainedS2D_Default)), + SetPlaceholderText = True, + PlaceholderText = Train_GPTSoVITS_ModelPathPretrainedS2D_Default + ) + self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2D.textChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'Model_Path_Pretrained_s2D', str(Value)) + ) + self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2D.SetFileDialog( + Mode = "SelectFile", + FileType = "pth类型 (*.pth)", + Directory = NormPath(Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2')) + ) + self.ui.Button_Train_GPTSoVITS_ModelPathPretrainedS2D_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2D.setText(Train_GPTSoVITS_ModelPathPretrainedS2D_Default) + ) + + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_ModelDirPretrainedBert, + Text = SetRichText( + Body = QCA.translate("Label", "预训练bert模型路径\n预训练bert模型(文件夹)的路径。") + ) + ) + Train_GPTSoVITS_ModelDirPretrainedBert_Default = Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 'chinese-roberta-wwm-ext-large').as_posix() if Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 'chinese-roberta-wwm-ext-large').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_Train_GPTSoVITS_ModelDirPretrainedBert, + Text = str(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'Model_Dir_Pretrained_bert', Train_GPTSoVITS_ModelDirPretrainedBert_Default)), + SetPlaceholderText = True, + PlaceholderText = Train_GPTSoVITS_ModelDirPretrainedBert_Default + ) + self.ui.LineEdit_Train_GPTSoVITS_ModelDirPretrainedBert.textChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'Model_Dir_Pretrained_bert', str(Value)) + ) + self.ui.LineEdit_Train_GPTSoVITS_ModelDirPretrainedBert.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded')) + ) + self.ui.Button_Train_GPTSoVITS_ModelDirPretrainedBert_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_GPTSoVITS_ModelDirPretrainedBert.setText(Train_GPTSoVITS_ModelDirPretrainedBert_Default) + ) + + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_ModelDirPretrainedSSL, + Text = SetRichText( + Body = QCA.translate("Label", "预训练ssl模型路径\n预训练ssl模型(文件夹)的路径。") + ) + ) + Train_GPTSoVITS_ModelDirPretrainedSSL_Default = Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 'chinese-hubert-base').as_posix() if Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 'chinese-hubert-base').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_Train_GPTSoVITS_ModelDirPretrainedSSL, + Text = str(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'Model_Dir_Pretrained_ssl', Train_GPTSoVITS_ModelDirPretrainedSSL_Default)), + SetPlaceholderText = True, + PlaceholderText = Train_GPTSoVITS_ModelDirPretrainedSSL_Default + ) + self.ui.LineEdit_Train_GPTSoVITS_ModelDirPretrainedSSL.textChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'Model_Dir_Pretrained_ssl', str(Value)) + ) + self.ui.LineEdit_Train_GPTSoVITS_ModelDirPretrainedSSL.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded')) + ) + self.ui.Button_Train_GPTSoVITS_ModelDirPretrainedSSL_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_GPTSoVITS_ModelDirPretrainedSSL.setText(Train_GPTSoVITS_ModelDirPretrainedSSL_Default) + ) + + self.ui.CheckBox_Train_GPTSoVITS_GPTSoVITSParams_Toggle_AdvanceSettings.setChecked(False) + Function_ConfigureCheckBox( + CheckBox = self.ui.CheckBox_Train_GPTSoVITS_GPTSoVITSParams_Toggle_AdvanceSettings, + CheckedText = "高级设置", + CheckedEvents = [ + lambda: Function_AnimateFrame( + self.ui.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings.sizeHint().height(), + 210, + 'Extend' + ) + ], + UncheckedText = "高级设置", + UncheckedEvents = [ + lambda: Function_AnimateFrame( + self.ui.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings.sizeHint().height(), + 210, + 'Reduce' + ) + ], + TakeEffect = True + ) + + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_FP16Run, + Text = SetRichText( + Body = QCA.translate("Label", "半精度训练\n通过混合了float16精度的训练方式减小显存占用。") + ) + ) + self.ui.CheckBox_Train_GPTSoVITS_FP16Run.setChecked( + eval(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'FP16_Run', 'False')) + ) + Function_ConfigureCheckBox( + CheckBox = self.ui.CheckBox_Train_GPTSoVITS_FP16Run, + CheckedText = "已启用", + CheckedEvents = [ + lambda: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'FP16_Run', 'True') + ], + UncheckedText = "未启用", + UncheckedEvents = [ + lambda: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'FP16_Run', 'False') + ], + TakeEffect = True + ) + self.ui.Button_Train_GPTSoVITS_FP16Run_Undo.clicked.connect( + lambda: self.ui.CheckBox_Train_GPTSoVITS_FP16Run.setChecked(False) + ) + + self.ui.GroupBox_Train_GPTSoVITS_OutputParams.setTitle(QCA.translate("GroupBox", "输出参数")) + + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_OutputDirName, + Text = SetRichText( + Body = QCA.translate("Label", "输出目录名\n存放训练所得模型的目录的名字。") + ) + ) + Train_GPTSoVITS_OutputDirName_Default = str(date.today()) + Function_SetText( + Widget = self.ui.LineEdit_Train_GPTSoVITS_OutputDirName, + Text = str(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'Output_Dir_Name', '')), + SetPlaceholderText = True, + PlaceholderText = Train_GPTSoVITS_OutputDirName_Default + ) + self.ui.LineEdit_Train_GPTSoVITS_OutputDirName.textChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'Output_Dir_Name', str(Value)) + ) + self.ui.LineEdit_Train_GPTSoVITS_OutputDirName.RemoveFileDialogButton() + self.ui.Button_Train_GPTSoVITS_OutputDirName_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_GPTSoVITS_OutputDirName.setText(Train_GPTSoVITS_OutputDirName_Default) + ) + + self.ui.CheckBox_Train_GPTSoVITS_OutputParams_Toggle_AdvanceSettings.setChecked(False) + Function_ConfigureCheckBox( + CheckBox = self.ui.CheckBox_Train_GPTSoVITS_OutputParams_Toggle_AdvanceSettings, + CheckedText = "高级设置", + CheckedEvents = [ + lambda: Function_AnimateFrame( + self.ui.Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings.sizeHint().height(), + 210, + 'Extend' + ) + ], + UncheckedText = "高级设置", + UncheckedEvents = [ + lambda: Function_AnimateFrame( + self.ui.Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings.sizeHint().height(), + 210, + 'Reduce' + ) + ], + TakeEffect = True + ) + + Function_SetText( + Widget = self.ui.Label_Train_GPTSoVITS_LogDir, + Text = SetRichText( + Body = QCA.translate("Label", "日志输出目录\n训练时生成的日志的存放目录。") + ) + ) + Train_GPTSoVITS_LogDir_Default = Path(Path(CurrentDir).root).joinpath('EVT_TrainLog', 'GPT-SoVITS', str(date.today())).as_posix() + Function_SetText( + Widget = self.ui.LineEdit_Train_GPTSoVITS_LogDir, + Text = str(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'Output_LogDir', Train_GPTSoVITS_LogDir_Default)), + SetPlaceholderText = True, + PlaceholderText = Train_GPTSoVITS_LogDir_Default + ) + self.ui.LineEdit_Train_GPTSoVITS_LogDir.textChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'Output_LogDir', str(Value)) + ) + self.ui.LineEdit_Train_GPTSoVITS_LogDir.textChanged.connect( + lambda Value: ( + Function_ShowMessageBox(self, + MessageType = QMessageBox.Warning, + WindowTitle = "Warning", + Text = "保存路径不支持非ASCII字符,请使用英文路径以避免训练报错", + ), + self.ui.LineEdit_Train_GPTSoVITS_LogDir.clear() + ) if not all(Char.isascii() for Char in Value) else None + ) + self.ui.LineEdit_Train_GPTSoVITS_LogDir.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(Train_GPTSoVITS_LogDir_Default).parent) + ) + self.ui.Button_Train_GPTSoVITS_LogDir_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_GPTSoVITS_LogDir.setText(Train_GPTSoVITS_LogDir_Default) + ) + + LineEdit_Train_GPTSoVITS_OutputDir = QLineEdit() + def SetText_LineEdit_Train_GPTSoVITS_OutputDir(): + DirText = Path(self.ui.LineEdit_Train_GPTSoVITS_OutputRoot.text()).joinpath(self.ui.LineEdit_Train_GPTSoVITS_OutputDirName.text()).as_posix() + LineEdit_Train_GPTSoVITS_OutputDir.setText(DirText) + Alert = Path(DirText).exists() and list(Path(DirText).iterdir()) != [] + self.ui.LineEdit_Train_GPTSoVITS_OutputDirName.Alert(True if Alert else False, f"注意:目录 {DirText} 已包含文件") + self.ui.LineEdit_Train_GPTSoVITS_OutputDirName.textChanged.connect(SetText_LineEdit_Train_GPTSoVITS_OutputDir) + self.ui.LineEdit_Train_GPTSoVITS_OutputRoot.textChanged.connect(SetText_LineEdit_Train_GPTSoVITS_OutputDir) + #SetText_LineEdit_Train_GPTSoVITS_OutputDir() + + # GPTSo-VITS - Left + Function_SetTreeWidget( + TreeWidget = self.ui.TreeWidget_Catalogue_Train_GPTSoVITS, + RootItemTexts = [ + self.ui.GroupBox_Train_GPTSoVITS_InputParams.title(), + self.ui.GroupBox_Train_GPTSoVITS_GPTSoVITSParams.title(), + self.ui.GroupBox_Train_GPTSoVITS_OutputParams.title() + ], + ChildItemTexts = [ + ("基础设置"), + ("基础设置","高级设置"), + ("基础设置","高级设置") + ], + AddVertically = True + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Train_GPTSoVITS.topLevelItem(0), + TargetWidget = self.ui.GroupBox_Train_GPTSoVITS_InputParams, + ScrollArea = self.ui.ScrollArea_Middle_Train_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Train_GPTSoVITS.topLevelItem(0).child(0), + TargetWidget = self.ui.Frame_Train_GPTSoVITS_InputParams_BasicSettings, + ScrollArea = self.ui.ScrollArea_Middle_Train_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Train_GPTSoVITS.topLevelItem(1), + TargetWidget = self.ui.GroupBox_Train_GPTSoVITS_GPTSoVITSParams, + ScrollArea = self.ui.ScrollArea_Middle_Train_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Train_GPTSoVITS.topLevelItem(1).child(0), + TargetWidget = self.ui.Frame_Train_GPTSoVITS_GPTSoVITSParams_BasicSettings, + ScrollArea = self.ui.ScrollArea_Middle_Train_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Train_GPTSoVITS.topLevelItem(1).child(1), + TargetWidget = self.ui.Frame_Train_GPTSoVITS_GPTSoVITSParams_AdvanceSettings, + ScrollArea = self.ui.ScrollArea_Middle_Train_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Train_GPTSoVITS.topLevelItem(2), + TargetWidget = self.ui.GroupBox_Train_GPTSoVITS_OutputParams, + ScrollArea = self.ui.ScrollArea_Middle_Train_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Train_GPTSoVITS.topLevelItem(2).child(0), + TargetWidget = self.ui.Frame_Train_GPTSoVITS_OutputParams_BasicSettings, + ScrollArea = self.ui.ScrollArea_Middle_Train_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Train_GPTSoVITS.topLevelItem(2).child(1), + TargetWidget = self.ui.Frame_Train_GPTSoVITS_OutputParams_AdvanceSettings, + ScrollArea = self.ui.ScrollArea_Middle_Train_GPTSoVITS + ) + + # GPT-SoVITS - Right + MonitorFile_Config_VoiceTrainer_GPTSoVITS = MonitorFile(Path_Config_Train_GPTSoVITS) + MonitorFile_Config_VoiceTrainer_GPTSoVITS.start() + MonitorFile_Config_VoiceTrainer_GPTSoVITS.Signal_FileContent.connect( + lambda FileContent: self.ui.TextBrowser_Params_Train_GPTSoVITS.setText( + FileContent + ) + ) + + self.ui.Button_RunTensorboard_Train_GPTSoVITS.setText("启动Tensorboard") + self.Function_SetMethodExecutor( + ExecuteButton = self.ui.Button_RunTensorboard_Train_GPTSoVITS, + Method = Tensorboard_Runner.Execute, + ParamsFrom = [ + self.ui.LineEdit_Train_GPTSoVITS_LogDir + ] + ) + + self.ui.Button_CheckOutput_Train_GPTSoVITS.setText(QCA.translate("Button", "打开输出目录")) + Function_SetURL( + Button = self.ui.Button_CheckOutput_Train_GPTSoVITS, + URL = self.ui.LineEdit_Train_GPTSoVITS_OutputRoot, + ButtonTooltip = "Click to open", + CreateIfNotExist = True + ) + + # GPT-SoVITS - Bottom + self.ui.Button_Train_GPTSoVITS_Execute.setToolTip("执行模型训练") + self.ui.Button_Train_GPTSoVITS_Terminate.setToolTip("终止模型训练") + self.Function_SetMethodExecutor( + ExecuteButton = self.ui.Button_Train_GPTSoVITS_Execute, + TerminateButton = self.ui.Button_Train_GPTSoVITS_Terminate, + ProgressBar = self.ui.ProgressBar_Train_GPTSoVITS, + ConsoleWidget = self.ui.Frame_Console, + Method = Execute_Voice_Training_GPTSoVITS.Execute, + ParamsFrom = [ + self.ui.LineEdit_Train_GPTSoVITS_FileListPath, + #self.ui.SpinBox_Train_GPTSoVITS_S1Epochs, + #self.ui.SpinBox_Train_GPTSoVITS_S1SaveInterval, + #self.ui.SpinBox_Train_GPTSoVITS_S2Epochs, + #self.ui.SpinBox_Train_GPTSoVITS_S2SaveInterval, + #self.ui.SpinBox_Train_GPTSoVITS_BatchSize, + self.ui.CheckBox_Train_GPTSoVITS_FP16Run, + self.ui.LineEdit_Train_GPTSoVITS_ModelDirPretrainedBert, + self.ui.LineEdit_Train_GPTSoVITS_ModelDirPretrainedSSL, + self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS1, + self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2G, + self.ui.LineEdit_Train_GPTSoVITS_ModelPathPretrainedS2D, + self.ui.LineEdit_Train_GPTSoVITS_OutputRoot, + self.ui.LineEdit_Train_GPTSoVITS_OutputDirName, + self.ui.LineEdit_Train_GPTSoVITS_LogDir + ], + FinishEvents = [ + lambda: Function_ShowMessageBox(self, + QMessageBox.Information, "Tip", + "当前任务已执行结束。" + ) + ] + ) + MainWindowSignals.Signal_TaskStatus.connect( + lambda Task, Status: Function_ShowMessageBox(self, + MessageType = QMessageBox.Question, + WindowTitle = "Ask", + Text = "是否稍后启用tensorboard?", + Buttons = QMessageBox.Yes|QMessageBox.No, + ButtonEvents = {QMessageBox.Yes: lambda: self.ui.Button_RunTensorboard_Train_GPTSoVITS.click()} + ) if Task == 'Execute_Voice_Training_GPTSoVITS.Execute' and Status == 'Started' else None + ) + + # VITS - Config + Path_Config_Train_VITS = NormPath(Path(ConfigDir).joinpath('Config_Train_VITS.ini')) + Config_Train_VITS = ManageConfig(Path_Config_Train_VITS) + + # VITS - Top + self.ui.ToolButton_VoiceTrainer_Title_VITS.setText(QCA.translate("ToolButton", "VITS2")) + self.ui.ToolButton_VoiceTrainer_Title_VITS.setCheckable(True) + self.ui.ToolButton_VoiceTrainer_Title_VITS.setChecked(False) + self.ui.ToolButton_VoiceTrainer_Title_VITS.setAutoExclusive(True) + self.ui.ToolButton_VoiceTrainer_Title_VITS.clicked.connect( + lambda: Function_AnimateStackedWidget( + StackedWidget = self.ui.StackedWidget_Pages_Train, + TargetIndex = 1 + ) + ) + + # VITS - Midlle self.ui.GroupBox_Train_VITS_InputParams.setTitle(QCA.translate("GroupBox", "输入参数")) Function_SetText( Widget = self.ui.Label_Train_VITS_FileListPathTraining, Text = SetRichText( - Body = QCA.translate("Label", "训练集文本路径\n用于提供训练集音频路径及其语音内容的训练集txt文件的所在路径。") + Body = QCA.translate("Label", "训练集文本路径\n用于提供训练集音频路径及其语音内容的训练集txt文件的路径。") ) ) Function_SetText( Widget = self.ui.LineEdit_Train_VITS_FileListPathTraining, - Text = str(Config_Train.GetValue('VITS', 'FileList_Path_Training', '')), + Text = str(Config_Train_VITS.GetValue('VITS', 'FileList_Path_Training', '')), SetPlaceholderText = True ) self.ui.LineEdit_Train_VITS_FileListPathTraining.textChanged.connect( - lambda Value: Config_Train.EditConfig('VITS', 'FileList_Path_Training', str(Value)) + lambda Value: Config_Train_VITS.EditConfig('VITS', 'FileList_Path_Training', str(Value)) ) self.ui.LineEdit_Train_VITS_FileListPathTraining.SetFileDialog( Mode = "SelectFile", FileType = "txt类型 (*.txt)", - Directory = NormPath(Path(DAT_VITS_FileListPathTraining_Default).parent) + Directory = Path(CurrentDir).joinpath('数据集制作结果', 'VITS').as_posix() ) self.ui.Button_Train_VITS_FileListPathTraining_Undo.clicked.connect( lambda: self.ui.LineEdit_Train_VITS_FileListPathTraining.setText('') @@ -3298,26 +4440,60 @@ def Main(self): Function_SetText( Widget = self.ui.Label_Train_VITS_FileListPathValidation, Text = SetRichText( - Body = QCA.translate("Label", "验证集文本路径\n用于提供验证集音频路径及其语音内容的验证集txt文件的所在路径。") + Body = QCA.translate("Label", "验证集文本路径\n用于提供验证集音频路径及其语音内容的验证集txt文件的路径。") ) ) Function_SetText( Widget = self.ui.LineEdit_Train_VITS_FileListPathValidation, - Text = str(Config_Train.GetValue('VITS', 'FileList_Path_Validation', '')), + Text = str(Config_Train_VITS.GetValue('VITS', 'FileList_Path_Validation', '')), SetPlaceholderText = True ) self.ui.LineEdit_Train_VITS_FileListPathValidation.textChanged.connect( - lambda Value: Config_Train.EditConfig('VITS', 'FileList_Path_Validation', str(Value)) + lambda Value: Config_Train_VITS.EditConfig('VITS', 'FileList_Path_Validation', str(Value)) ) self.ui.LineEdit_Train_VITS_FileListPathValidation.SetFileDialog( Mode = "SelectFile", FileType = "txt类型 (*.txt)", - Directory = NormPath(Path(DAT_VITS_FileListPathValidation_Default).parent) + Directory = Path(CurrentDir).joinpath('数据集制作结果', 'VITS').as_posix() ) self.ui.Button_Train_VITS_FileListPathValidation_Undo.clicked.connect( lambda: self.ui.LineEdit_Train_VITS_FileListPathValidation.setText('') ) + Function_SetText( + Widget = self.ui.Label_Train_VITS_LogDir, + Text = SetRichText( + Body = QCA.translate("Label", "日志输出目录\n训练时生成的日志的存放目录。") + ) + ) + Train_VITS_LogDir_Default = Path(Path(CurrentDir).root).joinpath('EVT_TrainLog', 'VITS', str(date.today())).as_posix() + Function_SetText( + Widget = self.ui.LineEdit_Train_VITS_LogDir, + Text = str(Config_Train_VITS.GetValue('VITS', 'Output_LogDir', Train_VITS_LogDir_Default)), + SetPlaceholderText = True, + PlaceholderText = Train_VITS_LogDir_Default + ) + self.ui.LineEdit_Train_VITS_LogDir.textChanged.connect( + lambda Value: Config_Train_VITS.EditConfig('VITS', 'Output_LogDir', str(Value)) + ) + self.ui.LineEdit_Train_VITS_LogDir.textChanged.connect( + lambda Value: ( + Function_ShowMessageBox(self, + MessageType = QMessageBox.Warning, + WindowTitle = "Warning", + Text = "保存路径不支持非ASCII字符,请使用英文路径以避免训练报错", + ), + self.ui.LineEdit_Train_VITS_LogDir.clear() + ) if not all(Char.isascii() for Char in Value) else None + ) + self.ui.LineEdit_Train_VITS_LogDir.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(Train_VITS_LogDir_Default).parent) + ) + self.ui.Button_Train_VITS_LogDir_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_VITS_LogDir.setText(Train_VITS_LogDir_Default) + ) + self.ui.GroupBox_Train_VITS_VITSParams.setTitle(QCA.translate("GroupBox", "训练参数")) Function_SetText( @@ -3329,10 +4505,10 @@ def Main(self): self.ui.SpinBox_Train_VITS_Epochs.setRange(10, 100000) self.ui.SpinBox_Train_VITS_Epochs.setSingleStep(1) self.ui.SpinBox_Train_VITS_Epochs.setValue( - int(Config_Train.GetValue('VITS', 'Epochs', '1000')) + int(Config_Train_VITS.GetValue('VITS', 'Epochs', '1000')) ) self.ui.SpinBox_Train_VITS_Epochs.valueChanged.connect( - lambda Value: Config_Train.EditConfig('VITS', 'Epochs', str(Value)) + lambda Value: Config_Train_VITS.EditConfig('VITS', 'Epochs', str(Value)) ) self.ui.Button_Train_VITS_Epochs_Undo.clicked.connect( lambda: self.ui.SpinBox_Train_VITS_Epochs.setValue(1000) @@ -3347,10 +4523,10 @@ def Main(self): self.ui.SpinBox_Train_VITS_BatchSize.setRange(2, 128) self.ui.SpinBox_Train_VITS_BatchSize.setSingleStep(1) self.ui.SpinBox_Train_VITS_BatchSize.setValue( - int(Config_Train.GetValue('VITS', 'Batch_Size', '4')) + int(Config_Train_VITS.GetValue('VITS', 'Batch_Size', '4')) ) self.ui.SpinBox_Train_VITS_BatchSize.valueChanged.connect( - lambda Value: Config_Train.EditConfig('VITS', 'Batch_Size', str(Value)) + lambda Value: Config_Train_VITS.EditConfig('VITS', 'Batch_Size', str(Value)) ) self.ui.SpinBox_Train_VITS_BatchSize.setToolTip("建议:2~4G: 2\n6~8G: 4\n10~12G: 8\n14~16G: 16") self.ui.Button_Train_VITS_BatchSize_Undo.clicked.connect( @@ -3364,14 +4540,14 @@ def Main(self): ) ) self.ui.CheckBox_Train_VITS_UsePretrainedModels.setChecked( - eval(Config_Train.GetValue('VITS', 'Use_PretrainedModels', 'True')) + eval(Config_Train_VITS.GetValue('VITS', 'Use_PretrainedModels', 'True')) ) Frame_Train_VITS_VITSParams_BasicSettings_DefaultHeight = self.ui.Frame_Train_VITS_VITSParams_BasicSettings.sizeHint().height() Function_ConfigureCheckBox( CheckBox = self.ui.CheckBox_Train_VITS_UsePretrainedModels, CheckedText = "已启用", CheckedEvents = [ - lambda: Config_Train.EditConfig('VITS', 'Use_PretrainedModels', 'True'), + lambda: Config_Train_VITS.EditConfig('VITS', 'Use_PretrainedModels', 'True'), lambda: self.SetChildWidgetsVisibility( self.ui.Frame_Train_VITS_VITSParams_BasicSettings, Frame_Train_VITS_VITSParams_BasicSettings_DefaultHeight - (0 if self.ui.CheckBox_Train_VITS_KeepOriginalSpeakers.isChecked() else self.ui.Frame_Train_VITS_ConfigPathLoad.height()), @@ -3386,7 +4562,7 @@ def Main(self): ], UncheckedText = "未启用", UncheckedEvents = [ - lambda: Config_Train.EditConfig('VITS', 'Use_PretrainedModels', 'False'), + lambda: Config_Train_VITS.EditConfig('VITS', 'Use_PretrainedModels', 'False'), lambda: self.SetChildWidgetsVisibility( self.ui.Frame_Train_VITS_VITSParams_BasicSettings, Frame_Train_VITS_VITSParams_BasicSettings_DefaultHeight, @@ -3408,18 +4584,18 @@ def Main(self): Function_SetText( Widget = self.ui.Label_Train_VITS_ModelPathPretrainedG, Text = SetRichText( - Body = QCA.translate("Label", "预训练G模型路径\n预训练生成器(Generator)模型的所在路径。") + Body = QCA.translate("Label", "预训练G模型路径\n预训练生成器(Generator)模型的路径。") ) ) Train_VITS_ModelPathPretrainedG_Default = Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded', 'standard_G.pth').as_posix() if Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded', 'standard_G.pth').exists() else '' Function_SetText( Widget = self.ui.LineEdit_Train_VITS_ModelPathPretrainedG, - Text = str(Config_Train.GetValue('VITS', 'Model_Path_Pretrained_G', Train_VITS_ModelPathPretrainedG_Default)), + Text = str(Config_Train_VITS.GetValue('VITS', 'Model_Path_Pretrained_G', Train_VITS_ModelPathPretrainedG_Default)), SetPlaceholderText = True, PlaceholderText = Train_VITS_ModelPathPretrainedG_Default ) self.ui.LineEdit_Train_VITS_ModelPathPretrainedG.textChanged.connect( - lambda Value: Config_Train.EditConfig('VITS', 'Model_Path_Pretrained_G', str(Value)) + lambda Value: Config_Train_VITS.EditConfig('VITS', 'Model_Path_Pretrained_G', str(Value)) ) self.ui.LineEdit_Train_VITS_ModelPathPretrainedG.SetFileDialog( Mode = "SelectFile", @@ -3433,18 +4609,18 @@ def Main(self): Function_SetText( Widget = self.ui.Label_Train_VITS_ModelPathPretrainedD, Text = SetRichText( - Body = QCA.translate("Label", "预训练D模型路径\n预训练判别器(Discriminator)模型的所在路径。") + Body = QCA.translate("Label", "预训练D模型路径\n预训练判别器(Discriminator)模型的路径。") ) ) Train_VITS_ModelPathPretrainedD_Default = Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded', 'standard_D.pth').as_posix() if Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded', 'standard_D.pth').exists() else '' Function_SetText( Widget = self.ui.LineEdit_Train_VITS_ModelPathPretrainedD, - Text = str(Config_Train.GetValue('VITS', 'Model_Path_Pretrained_D', Train_VITS_ModelPathPretrainedD_Default)), + Text = str(Config_Train_VITS.GetValue('VITS', 'Model_Path_Pretrained_D', Train_VITS_ModelPathPretrainedD_Default)), SetPlaceholderText = True, PlaceholderText = Train_VITS_ModelPathPretrainedD_Default ) self.ui.LineEdit_Train_VITS_ModelPathPretrainedD.textChanged.connect( - lambda Value: Config_Train.EditConfig('VITS', 'Model_Path_Pretrained_D', str(Value)) + lambda Value: Config_Train_VITS.EditConfig('VITS', 'Model_Path_Pretrained_D', str(Value)) ) self.ui.LineEdit_Train_VITS_ModelPathPretrainedD.SetFileDialog( Mode = "SelectFile", @@ -3455,7 +4631,7 @@ def Main(self): lambda: self.ui.LineEdit_Train_VITS_ModelPathPretrainedD.setText(Train_VITS_ModelPathPretrainedD_Default) ) - DialogBox_KeepOriginalSpeakers = MessageBox_LineEdit() + DialogBox_KeepOriginalSpeakers = MessageBox_LineEdit(self) DialogBox_KeepOriginalSpeakers.setWindowTitle('Tip') DialogBox_KeepOriginalSpeakers.SetContent( Title = "开启该实验性功能需要注意以下几点:", @@ -3475,17 +4651,17 @@ def Main(self): ) DialogBox_KeepOriginalSpeakers.Button_Confirm.setText("确认") DialogBox_KeepOriginalSpeakers.Button_Confirm.clicked.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, MessageType = QMessageBox.Warning, WindowTitle = "Warning", Text = "配置文件路径不存在!", - ) if Path(DialogBox_KeepOriginalSpeakers.LineEdit.text()).is_file() == False else DialogBox_KeepOriginalSpeakers.hide() + ) if Path(DialogBox_KeepOriginalSpeakers.LineEdit.text()).is_file() == False else DialogBox_KeepOriginalSpeakers.close() ) DialogBox_KeepOriginalSpeakers.Button_Cancel.setText("取消") DialogBox_KeepOriginalSpeakers.Button_Cancel.clicked.connect( lambda: ( self.ui.CheckBox_Train_VITS_KeepOriginalSpeakers.setChecked(False), - DialogBox_KeepOriginalSpeakers.hide() + DialogBox_KeepOriginalSpeakers.close() ) ) @@ -3496,13 +4672,13 @@ def Main(self): ) ) self.ui.CheckBox_Train_VITS_KeepOriginalSpeakers.setChecked( - eval(Config_Train.GetValue('VITS', 'Keep_Original_Speakers', 'False')) + eval(Config_Train_VITS.GetValue('VITS', 'Keep_Original_Speakers', 'False')) ) Function_ConfigureCheckBox( CheckBox = self.ui.CheckBox_Train_VITS_KeepOriginalSpeakers, CheckedText = "已启用", CheckedEvents = [ - lambda: Config_Train.EditConfig('VITS', 'Keep_Original_Speakers', 'True'), + lambda: Config_Train_VITS.EditConfig('VITS', 'Keep_Original_Speakers', 'True'), lambda: self.SetChildWidgetsVisibility( self.ui.Frame_Train_VITS_VITSParams_BasicSettings, Frame_Train_VITS_VITSParams_BasicSettings_DefaultHeight - ( @@ -3516,7 +4692,7 @@ def Main(self): ], UncheckedText = "未启用", UncheckedEvents = [ - lambda: Config_Train.EditConfig('VITS', 'Keep_Original_Speakers', 'False'), + lambda: Config_Train_VITS.EditConfig('VITS', 'Keep_Original_Speakers', 'False'), lambda: self.SetChildWidgetsVisibility( self.ui.Frame_Train_VITS_VITSParams_BasicSettings, Frame_Train_VITS_VITSParams_BasicSettings_DefaultHeight - ( @@ -3544,18 +4720,18 @@ def Main(self): Function_SetText( Widget = self.ui.Label_Train_VITS_ConfigPathLoad, Text = SetRichText( - Body = QCA.translate("Label", "配置加载路径\n用于加载底模人物信息的配置文件的所在路径") + Body = QCA.translate("Label", "配置加载路径\n用于加载底模人物信息的配置文件的路径") ) ) Train_VITS_ConfigPathLoad_Default = Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded', 'standard_Config.json').as_posix() if Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded', 'standard_Config.json').exists() else '' Function_SetText( Widget = self.ui.LineEdit_Train_VITS_ConfigPathLoad, - Text = str(Config_Train.GetValue('VITS', 'Config_Path_Load', Train_VITS_ConfigPathLoad_Default)), + Text = str(Config_Train_VITS.GetValue('VITS', 'Config_Path_Load', Train_VITS_ConfigPathLoad_Default)), SetPlaceholderText = True, PlaceholderText = Train_VITS_ConfigPathLoad_Default ) self.ui.LineEdit_Train_VITS_ConfigPathLoad.textChanged.connect( - lambda Value: Config_Train.EditConfig('VITS', 'Config_Path_Load', str(Value)) + lambda Value: Config_Train_VITS.EditConfig('VITS', 'Config_Path_Load', str(Value)) ) self.ui.LineEdit_Train_VITS_ConfigPathLoad.SetFileDialog( Mode = "SelectFile", @@ -3605,10 +4781,10 @@ def Main(self): self.ui.SpinBox_Train_VITS_NumWorkers.setRange(2, 128) self.ui.SpinBox_Train_VITS_NumWorkers.setSingleStep(2) self.ui.SpinBox_Train_VITS_NumWorkers.setValue( - int(Config_Train.GetValue('VITS', 'Num_Workers', '4')) + int(Config_Train_VITS.GetValue('VITS', 'Num_Workers', '4')) ) self.ui.SpinBox_Train_VITS_NumWorkers.valueChanged.connect( - lambda Value: Config_Train.EditConfig('VITS', 'Num_Workers', str(Value)) + lambda Value: Config_Train_VITS.EditConfig('VITS', 'Num_Workers', str(Value)) ) self.ui.Button_Train_VITS_NumWorkers_Undo.clicked.connect( lambda: self.ui.SpinBox_Train_VITS_NumWorkers.setValue(4) @@ -3621,17 +4797,17 @@ def Main(self): ) ) self.ui.CheckBox_Train_VITS_FP16Run.setChecked( - eval(Config_Train.GetValue('VITS', 'FP16_Run', 'False')) + eval(Config_Train_VITS.GetValue('VITS', 'FP16_Run', 'False')) ) Function_ConfigureCheckBox( CheckBox = self.ui.CheckBox_Train_VITS_FP16Run, CheckedText = "已启用", CheckedEvents = [ - lambda: Config_Train.EditConfig('VITS', 'FP16_Run', 'True') + lambda: Config_Train_VITS.EditConfig('VITS', 'FP16_Run', 'True') ], UncheckedText = "未启用", UncheckedEvents = [ - lambda: Config_Train.EditConfig('VITS', 'FP16_Run', 'False') + lambda: Config_Train_VITS.EditConfig('VITS', 'FP16_Run', 'False') ], TakeEffect = True ) @@ -3650,51 +4826,74 @@ def Main(self): self.ui.SpinBox_Train_VITS_EvalInterval.setRange(10, 100000) self.ui.SpinBox_Train_VITS_EvalInterval.setSingleStep(1) self.ui.SpinBox_Train_VITS_EvalInterval.setValue( - int(Config_Train.GetValue('VITS', 'Eval_Interval', '1000')) + int(Config_Train_VITS.GetValue('VITS', 'Eval_Interval', '1000')) ) self.ui.SpinBox_Train_VITS_EvalInterval.valueChanged.connect( - lambda Value: Config_Train.EditConfig('VITS', 'Eval_Interval', str(Value)) + lambda Value: Config_Train_VITS.EditConfig('VITS', 'Eval_Interval', str(Value)) ) self.ui.SpinBox_Train_VITS_EvalInterval.setToolTip("提示:设置过小可能导致磁盘占用激增哦") self.ui.Button_Train_VITS_EvalInterval_Undo.clicked.connect( lambda: self.ui.SpinBox_Train_VITS_EvalInterval.setValue(1000) ) + self.ui.CheckBox_Train_VITS_OutputParams_Toggle_AdvanceSettings.setChecked(False) + Function_ConfigureCheckBox( + CheckBox = self.ui.CheckBox_Train_VITS_OutputParams_Toggle_AdvanceSettings, + CheckedText = "高级设置", + CheckedEvents = [ + lambda: Function_AnimateFrame( + self.ui.Frame_Train_VITS_OutputParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_Train_VITS_OutputParams_AdvanceSettings.sizeHint().height(), + 210, + 'Extend' + ) + ], + UncheckedText = "高级设置", + UncheckedEvents = [ + lambda: Function_AnimateFrame( + self.ui.Frame_Train_VITS_OutputParams_AdvanceSettings, + None, None, + 0, self.ui.Frame_Train_VITS_OutputParams_AdvanceSettings.sizeHint().height(), + 210, + 'Reduce' + ) + ], + TakeEffect = True + ) + Function_SetText( - Widget = self.ui.Label_Train_VITS_OutputDir, + Widget = self.ui.Label_Train_VITS_OutputDirName, Text = SetRichText( - Body = QCA.translate("Label", "输出目录\n训练所得模型和配置文件的存放目录,若目录中已存在模型则会将其视为检查点。") + Body = QCA.translate("Label", "输出目录名\n存放训练所得模型的目录的名字,若目录中已存在模型则会将其视为检查点。") ) ) - Train_VITS_OutputDir_Default = Path(Path(CurrentDir).root).joinpath('EVT_TrainResult', 'VITS', str(date.today())).as_posix() + Train_VITS_OutputDirName_Default = str(date.today()) Function_SetText( - Widget = self.ui.LineEdit_Train_VITS_OutputDir, - Text = str(Config_Train.GetValue('VITS', 'Output_Dir', '')), + Widget = self.ui.LineEdit_Train_VITS_OutputDirName, + Text = str(Config_Train_VITS.GetValue('VITS', 'Output_Dir_Name', '')), SetPlaceholderText = True, - PlaceholderText = Train_VITS_OutputDir_Default - ) - self.ui.LineEdit_Train_VITS_OutputDir.textChanged.connect( - lambda Value: ( - Function_ShowMessageBox( - MessageType = QMessageBox.Warning, - WindowTitle = "Warning", - Text = "模型保存路径不支持非ASCII字符,请使用英文路径以避免训练报错", - ), - self.ui.LineEdit_Train_VITS_OutputDir.clear() - ) if not all(Char.isascii() for Char in Value) else None - ) - self.ui.LineEdit_Train_VITS_OutputDir.textChanged.connect( - lambda Value: Config_Train.EditConfig('VITS', 'Output_Dir', str(Value)) + PlaceholderText = Train_VITS_OutputDirName_Default ) - self.ui.LineEdit_Train_VITS_OutputDir.SetFileDialog( - Mode = "SelectDir", - Directory = NormPath(Path(Train_VITS_OutputDir_Default).parent) + self.ui.LineEdit_Train_VITS_OutputDirName.textChanged.connect( + lambda Value: Config_Train_VITS.EditConfig('VITS', 'Output_Dir_Name', str(Value)) ) - self.ui.Button_Train_VITS_OutputDir_Undo.clicked.connect( - lambda: self.ui.LineEdit_Train_VITS_OutputDir.setText(Train_VITS_OutputDir_Default) + self.ui.LineEdit_Train_VITS_OutputDirName.RemoveFileDialogButton() + self.ui.Button_Train_VITS_OutputDirName_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_VITS_OutputDirName.setText(Train_VITS_OutputDirName_Default) ) - # Left + LineEdit_Train_VITS_OutputDir = QLineEdit() + def SetText_LineEdit_Train_VITS_OutputDir(): + DirText = Path(self.ui.LineEdit_Train_VITS_OutputRoot.text()).joinpath(self.ui.LineEdit_Train_VITS_OutputDirName.text()).as_posix() + LineEdit_Train_VITS_OutputDir.setText(DirText) + Alert = Path(DirText).exists() and list(Path(DirText).iterdir()) != [] + self.ui.LineEdit_Train_VITS_OutputDirName.Alert(True if Alert else False, f"注意:目录 {DirText} 已包含文件") + self.ui.LineEdit_Train_VITS_OutputDirName.textChanged.connect(SetText_LineEdit_Train_VITS_OutputDir) + self.ui.LineEdit_Train_VITS_OutputRoot.textChanged.connect(SetText_LineEdit_Train_VITS_OutputDir) + #SetText_LineEdit_Train_VITS_OutputDir() + + # VITS - Left Function_SetTreeWidget( TreeWidget = self.ui.TreeWidget_Catalogue_Train_VITS, RootItemTexts = [ @@ -3705,7 +4904,7 @@ def Main(self): ChildItemTexts = [ ("基础设置"), ("基础设置","高级设置"), - ("基础设置") + ("基础设置","高级设置") ], AddVertically = True ) @@ -3744,11 +4943,16 @@ def Main(self): TargetWidget = self.ui.Frame_Train_VITS_OutputParams_BasicSettings, ScrollArea = self.ui.ScrollArea_Middle_Train_VITS ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_Train_VITS.topLevelItem(2).child(1), + TargetWidget = self.ui.Frame_Train_VITS_OutputParams_AdvanceSettings, + ScrollArea = self.ui.ScrollArea_Middle_Train_VITS + ) - # Right - MonitorFile_Config_VoiceTrainer = MonitorFile(Path_Config_Train) - MonitorFile_Config_VoiceTrainer.start() - MonitorFile_Config_VoiceTrainer.Signal_FileContent.connect( + # VITS - Right + MonitorFile_Config_VoiceTrainer_VITS = MonitorFile(Path_Config_Train_VITS) + MonitorFile_Config_VoiceTrainer_VITS.start() + MonitorFile_Config_VoiceTrainer_VITS.Signal_FileContent.connect( lambda FileContent: self.ui.TextBrowser_Params_Train_VITS.setText( FileContent ) @@ -3759,18 +4963,19 @@ def Main(self): ExecuteButton = self.ui.Button_RunTensorboard_Train_VITS, Method = Tensorboard_Runner.Execute, ParamsFrom = [ - self.ui.LineEdit_Train_VITS_OutputDir + self.ui.LineEdit_Train_VITS_LogDir ] ) - self.ui.Button_CheckOutput_Train_VITS.setText(QCA.translate("Button", "查看输出文件")) + self.ui.Button_CheckOutput_Train_VITS.setText(QCA.translate("Button", "打开输出目录")) Function_SetURL( Button = self.ui.Button_CheckOutput_Train_VITS, - URL = self.ui.LineEdit_Train_VITS_OutputDir, - ButtonTooltip = "Click to open" + URL = self.ui.LineEdit_Train_VITS_OutputRoot, + ButtonTooltip = "Click to open", + CreateIfNotExist = True ) - # Bottom + # VITS - Bottom self.ui.Button_Train_VITS_Execute.setToolTip("执行模型训练") self.ui.Button_Train_VITS_Terminate.setToolTip("终止模型训练") self.Function_SetMethodExecutor( @@ -3778,12 +4983,12 @@ def Main(self): TerminateButton = self.ui.Button_Train_VITS_Terminate, ProgressBar = self.ui.ProgressBar_Train_VITS, ConsoleWidget = self.ui.Frame_Console, - Method = Execute_Voice_Training.Execute, + Method = Execute_Voice_Training_VITS.Execute, ParamsFrom = [ self.ui.LineEdit_Train_VITS_FileListPathTraining, self.ui.LineEdit_Train_VITS_FileListPathValidation, - self.ui.SpinBox_Train_VITS_EvalInterval, self.ui.SpinBox_Train_VITS_Epochs, + self.ui.SpinBox_Train_VITS_EvalInterval, self.ui.SpinBox_Train_VITS_BatchSize, self.ui.CheckBox_Train_VITS_FP16Run, self.ui.CheckBox_Train_VITS_KeepOriginalSpeakers, @@ -3792,7 +4997,9 @@ def Main(self): self.ui.CheckBox_Train_VITS_UsePretrainedModels, self.ui.LineEdit_Train_VITS_ModelPathPretrainedG, self.ui.LineEdit_Train_VITS_ModelPathPretrainedD, - self.ui.LineEdit_Train_VITS_OutputDir + self.ui.LineEdit_Train_VITS_OutputRoot, + self.ui.LineEdit_Train_VITS_OutputDirName, + self.ui.LineEdit_Train_VITS_LogDir ], EmptyAllowed = [ DialogBox_KeepOriginalSpeakers.LineEdit, @@ -3800,22 +5007,20 @@ def Main(self): self.ui.LineEdit_Train_VITS_ModelPathPretrainedD ], FinishEvents = [ - lambda: Function_ShowMessageBox( - QMessageBox.Question, "Ask", - "当前任务已执行结束,是否跳转至「语音合成」工具界面?", - QMessageBox.Yes|QMessageBox.No, - {QMessageBox.Yes: lambda: self.ui.Button_Menu_TTS.click()} + lambda: Function_ShowMessageBox(self, + QMessageBox.Information, "Tip", + "当前任务已执行结束。" ) ] ) MainWindowSignals.Signal_TaskStatus.connect( - lambda Task, Status: Function_ShowMessageBox( + lambda Task, Status: Function_ShowMessageBox(self, MessageType = QMessageBox.Question, WindowTitle = "Ask", Text = "是否稍后启用tensorboard?", Buttons = QMessageBox.Yes|QMessageBox.No, ButtonEvents = {QMessageBox.Yes: lambda: self.ui.Button_RunTensorboard_Train_VITS.click()} - ) if Task == 'Execute_Voice_Training.Execute' and Status == 'Started' else None + ) if Task == 'Execute_Voice_Training_VITS.Execute' and Status == 'Started' else None ) ############################################################# @@ -3823,7 +5028,7 @@ def Main(self): ############################################################# # Guidance - DialogBox_TTS = MessageBox_Stacked() + DialogBox_TTS = MessageBox_Stacked(self) DialogBox_TTS.setWindowTitle('Guidance(该引导仅出现一次)') DialogBox_TTS.SetContent( [ @@ -3844,40 +5049,255 @@ def Main(self): type = Qt.QueuedConnection ) - # Config - Path_Config_TTS = NormPath(Path(ConfigDir).joinpath('Config_TTS.ini')) - Config_TTS = ManageConfig(Path_Config_TTS) + # GPT-SoVITS - Config + Path_Config_TTS_GPTSoVITS = NormPath(Path(ConfigDir).joinpath('Config_TTS_GPT-SoVITS.ini')) + Config_TTS_GPTSoVITS = ManageConfig(Path_Config_TTS_GPTSoVITS) - # Top - self.ui.ToolButton_VoiceConverter_Title.setText(QCA.translate("ToolButton", "VITS")) - self.ui.ToolButton_VoiceConverter_Title.setCheckable(True) - self.ui.ToolButton_VoiceConverter_Title.setChecked(True) - self.ui.ToolButton_VoiceConverter_Title.setAutoExclusive(True) - self.ui.ToolButton_VoiceConverter_Title.clicked.connect( + # GPT-SoVITS - Top + self.ui.ToolButton_VoiceConverter_Title_GPTSoVITS.setText(QCA.translate("ToolButton", "GPT-SoVITS")) + self.ui.ToolButton_VoiceConverter_Title_GPTSoVITS.setCheckable(True) + self.ui.ToolButton_VoiceConverter_Title_GPTSoVITS.setChecked(True) + self.ui.ToolButton_VoiceConverter_Title_GPTSoVITS.setAutoExclusive(True) + self.ui.ToolButton_VoiceConverter_Title_GPTSoVITS.clicked.connect( lambda: Function_AnimateStackedWidget( StackedWidget = self.ui.StackedWidget_Pages_TTS, TargetIndex = 0 ) ) - # Middle + # GPT-SoVTIS - Middle + self.ui.GroupBox_TTS_GPTSoVITS_InputParams.setTitle(QCA.translate("GroupBox", "输入参数")) + + Function_SetText( + Widget = self.ui.Label_TTS_GPTSoVITS_ModelPathLoadS1, + Text = SetRichText( + Body = QCA.translate("Label", "s1模型加载路径\ns1模型的路径。") + ) + ) + TTS_GPTSoVITS_ModelPathLoadS1_Default = Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2', 's1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt').as_posix() if Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2', 's1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_TTS_GPTSoVITS_ModelPathLoadS1, + Text = str(Config_TTS_GPTSoVITS.GetValue('GPT-SoVITS', 'Model_Path_Load_s1', TTS_GPTSoVITS_ModelPathLoadS1_Default)), + SetPlaceholderText = True, + PlaceholderText = TTS_GPTSoVITS_ModelPathLoadS1_Default + ) + self.ui.LineEdit_TTS_GPTSoVITS_ModelPathLoadS1.textChanged.connect( + lambda Value: Config_TTS_GPTSoVITS.EditConfig('GPT-SoVITS', 'Model_Path_Load_s1', str(Value)) + ) + self.ui.LineEdit_TTS_GPTSoVITS_ModelPathLoadS1.SetFileDialog( + Mode = "SelectFile", + FileType = "ckpt类型 (*.ckpt)", + Directory = Path(CurrentDir).joinpath('模型训练结果', 'GPT-SoVITS').as_posix() + ) + self.ui.Button_TTS_GPTSoVITS_ModelPathLoadS1_Undo.clicked.connect( + lambda: self.ui.LineEdit_TTS_GPTSoVITS_ModelPathLoadS1.setText(TTS_GPTSoVITS_ModelPathLoadS1_Default) + ) + + Function_SetText( + Widget = self.ui.Label_TTS_GPTSoVITS_ModelPathLoadS2G, + Text = SetRichText( + Body = QCA.translate("Label", "s2G模型加载路径\ns2G模型的路径。") + ) + ) + TTS_GPTSoVITS_ModelPathLoadS2G_Default = Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2', 's2G488k.pth').as_posix() if Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 's1&s2', 's2G488k.pth').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_TTS_GPTSoVITS_ModelPathLoadS2G, + Text = str(Config_TTS_GPTSoVITS.GetValue('GPT-SoVITS', 'Model_Path_Load_s2G', TTS_GPTSoVITS_ModelPathLoadS2G_Default)), + SetPlaceholderText = True, + PlaceholderText = TTS_GPTSoVITS_ModelPathLoadS2G_Default + ) + self.ui.LineEdit_TTS_GPTSoVITS_ModelPathLoadS2G.textChanged.connect( + lambda Value: Config_TTS_GPTSoVITS.EditConfig('GPT-SoVITS', 'Model_Path_Load_s2G', str(Value)) + ) + self.ui.LineEdit_TTS_GPTSoVITS_ModelPathLoadS2G.SetFileDialog( + Mode = "SelectFile", + FileType = "pth类型 (*.pth)", + Directory = Path(CurrentDir).joinpath('模型训练结果', 'GPT-SoVITS').as_posix() + ) + self.ui.Button_TTS_GPTSoVITS_ModelPathLoadS2G_Undo.clicked.connect( + lambda: self.ui.LineEdit_TTS_GPTSoVITS_ModelPathLoadS2G.setText(TTS_GPTSoVITS_ModelPathLoadS2G_Default) + ) + + Function_SetText( + Widget = self.ui.Label_TTS_GPTSoVITS_ModelDirLoadBert, + Text = SetRichText( + Body = QCA.translate("Label", "预训练bert模型加载路径\n预训练bert模型(文件夹)的路径。") + ) + ) + TTS_GPTSoVITS_ModelDirLoadBert_Default = Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 'chinese-roberta-wwm-ext-large').as_posix() if Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 'chinese-roberta-wwm-ext-large').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_TTS_GPTSoVITS_ModelDirLoadBert, + Text = str(Config_TTS_GPTSoVITS.GetValue('GPT-SoVITS', 'Model_Dir_Load_bert', TTS_GPTSoVITS_ModelDirLoadBert_Default)), + SetPlaceholderText = True, + PlaceholderText = TTS_GPTSoVITS_ModelDirLoadBert_Default + ) + self.ui.LineEdit_TTS_GPTSoVITS_ModelDirLoadBert.textChanged.connect( + lambda Value: Config_TTS_GPTSoVITS.EditConfig('GPT-SoVITS', 'Model_Dir_Load_bert', str(Value)) + ) + self.ui.LineEdit_TTS_GPTSoVITS_ModelDirLoadBert.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded')) + ) + self.ui.Button_TTS_GPTSoVITS_ModelDirLoadBert_Undo.clicked.connect( + lambda: self.ui.LineEdit_TTS_GPTSoVITS_ModelDirLoadBert.setText(TTS_GPTSoVITS_ModelDirLoadBert_Default) + ) + + Function_SetText( + Widget = self.ui.Label_TTS_GPTSoVITS_ModelDirLoadSSL, + Text = SetRichText( + Body = QCA.translate("Label", "预训练ssl模型加载路径\n预训练ssl模型的路径。") + ) + ) + TTS_GPTSoVITS_ModelDirLoadSSL_Default = Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 'chinese-hubert-base').as_posix() if Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded', 'chinese-hubert-base').exists() else '' + Function_SetText( + Widget = self.ui.LineEdit_TTS_GPTSoVITS_ModelDirLoadSSL, + Text = str(Config_TTS_GPTSoVITS.GetValue('GPT-SoVITS', 'Model_Dir_Load_ssl', TTS_GPTSoVITS_ModelDirLoadSSL_Default)), + SetPlaceholderText = True, + PlaceholderText = TTS_GPTSoVITS_ModelDirLoadSSL_Default + ) + self.ui.LineEdit_TTS_GPTSoVITS_ModelDirLoadSSL.textChanged.connect( + lambda Value: Config_TTS_GPTSoVITS.EditConfig('GPT-SoVITS', 'Model_Dir_Load_ssl', str(Value)) + ) + self.ui.LineEdit_TTS_GPTSoVITS_ModelDirLoadSSL.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(ModelsDir).joinpath('TTS', 'GPT-SoVITS', 'Downloaded')) + ) + self.ui.Button_TTS_GPTSoVITS_ModelDirLoadSSL_Undo.clicked.connect( + lambda: self.ui.LineEdit_TTS_GPTSoVITS_ModelDirLoadSSL.setText(TTS_GPTSoVITS_ModelDirLoadSSL_Default) + ) + + self.ui.GroupBox_TTS_GPTSoVITS_GPTSoVITSParams.setTitle(QCA.translate("GroupBox", "语音合成参数")) + + Function_SetText( + Widget = self.ui.Label_TTS_GPTSoVITS_FP16Run, + Text = SetRichText( + Body = QCA.translate("Label", "半精度推理\n通过混合了float16精度的推理方式减小显存占用。") + ) + ) + self.ui.CheckBox_TTS_GPTSoVITS_FP16Run.setChecked( + eval(Config_TTS_GPTSoVITS.GetValue('GPT-SoVITS', 'FP16_Run', 'False')) + ) + Function_ConfigureCheckBox( + CheckBox = self.ui.CheckBox_TTS_GPTSoVITS_FP16Run, + CheckedText = "已启用", + CheckedEvents = [ + lambda: Config_TTS_GPTSoVITS.EditConfig('GPT-SoVITS', 'FP16_Run', 'True') + ], + UncheckedText = "未启用", + UncheckedEvents = [ + lambda: Config_TTS_GPTSoVITS.EditConfig('GPT-SoVITS', 'FP16_Run', 'False') + ], + TakeEffect = True + ) + self.ui.Button_TTS_GPTSoVITS_FP16Run_Undo.clicked.connect( + lambda: self.ui.CheckBox_TTS_GPTSoVITS_FP16Run.setChecked(False) + ) + + # GPT-SoVITS - Right + MonitorFile_Config_VoiceConverter_GPTSoVITS = MonitorFile(Path_Config_TTS_GPTSoVITS) + MonitorFile_Config_VoiceConverter_GPTSoVITS.start() + MonitorFile_Config_VoiceConverter_GPTSoVITS.Signal_FileContent.connect( + lambda FileContent: self.ui.TextBrowser_Params_TTS_GPTSoVITS.setText( + FileContent + ) + ) + + ''' + self.ui.Button_CheckOutput_TTS_GPTSoVITS.setText(QCA.translate("Button", "查看输出文件")) + Function_SetURL( + Button = self.ui.Button_CheckOutput_TTS_GPTSoVITS, + URL = self.ui.LineEdit_TTS_GPTSoVITS_AudioPathSave, + ButtonTooltip = "Click to open", + CreateIfNotExist = True + ) + ''' + + # GPT-SoVITS - Left + Function_SetTreeWidget( + TreeWidget = self.ui.TreeWidget_Catalogue_TTS_GPTSoVITS, + RootItemTexts = [ + self.ui.GroupBox_TTS_GPTSoVITS_InputParams.title(), + self.ui.GroupBox_TTS_GPTSoVITS_GPTSoVITSParams.title() + ], + ChildItemTexts = [ + ("基础设置"), + ("基础设置") + ], + AddVertically = True + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_TTS_GPTSoVITS.topLevelItem(0), + TargetWidget = self.ui.GroupBox_TTS_GPTSoVITS_InputParams, + ScrollArea = self.ui.ScrollArea_Middle_TTS_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_TTS_GPTSoVITS.topLevelItem(0).child(0), + TargetWidget = self.ui.Frame_TTS_GPTSoVITS_InputParams_BasicSettings, + ScrollArea = self.ui.ScrollArea_Middle_TTS_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_TTS_GPTSoVITS.topLevelItem(1), + TargetWidget = self.ui.GroupBox_TTS_GPTSoVITS_GPTSoVITSParams, + ScrollArea = self.ui.ScrollArea_Middle_TTS_GPTSoVITS + ) + Function_ScrollToWidget( + Trigger = self.ui.TreeWidget_Catalogue_TTS_GPTSoVITS.topLevelItem(1).child(0), + TargetWidget = self.ui.Frame_TTS_GPTSoVITS_GPTSoVITSParams_BasicSettings, + ScrollArea = self.ui.ScrollArea_Middle_TTS_GPTSoVITS + ) + + # GPT-SoVITS - Bottom + self.ui.Button_TTS_GPTSoVITS_Execute.setToolTip("执行语音合成") + self.ui.Button_TTS_GPTSoVITS_Terminate.setToolTip("终止语音合成") + self.Function_SetMethodExecutor( + ExecuteButton = self.ui.Button_TTS_GPTSoVITS_Execute, + TerminateButton = self.ui.Button_TTS_GPTSoVITS_Terminate, + ProgressBar = self.ui.ProgressBar_TTS_GPTSoVITS, + ConsoleWidget = self.ui.Frame_Console, + Method = Execute_Voice_Converting_GPTSoVITS.Execute, + ParamsFrom = [ + self.ui.LineEdit_TTS_GPTSoVITS_ModelPathLoadS1, + self.ui.LineEdit_TTS_GPTSoVITS_ModelPathLoadS2G, + self.ui.LineEdit_TTS_GPTSoVITS_ModelDirLoadBert, + self.ui.LineEdit_TTS_GPTSoVITS_ModelDirLoadSSL, + self.ui.CheckBox_TTS_GPTSoVITS_FP16Run + ] + ) + + # VITS - Config + Path_Config_TTS_VITS = NormPath(Path(ConfigDir).joinpath('Config_TTS_VITS.ini')) + Config_TTS_VITS = ManageConfig(Path_Config_TTS_VITS) + + # VITS - Top + self.ui.ToolButton_VoiceConverter_Title_VITS.setText(QCA.translate("ToolButton", "VITS2")) + self.ui.ToolButton_VoiceConverter_Title_VITS.setCheckable(True) + self.ui.ToolButton_VoiceConverter_Title_VITS.setChecked(False) + self.ui.ToolButton_VoiceConverter_Title_VITS.setAutoExclusive(True) + self.ui.ToolButton_VoiceConverter_Title_VITS.clicked.connect( + lambda: Function_AnimateStackedWidget( + StackedWidget = self.ui.StackedWidget_Pages_TTS, + TargetIndex = 1 + ) + ) + + # VTIS - Middle self.ui.GroupBox_TTS_VITS_InputParams.setTitle(QCA.translate("GroupBox", "输入参数")) Function_SetText( Widget = self.ui.Label_TTS_VITS_ConfigPathLoad, Text = SetRichText( - Body = QCA.translate("Label", "配置加载路径\n用于推理的配置文件的所在路径。") + Body = QCA.translate("Label", "配置加载路径\n用于推理的配置文件的路径。") ) ) TTS_VITS_ConfigPathLoad_Default = Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded', 'standard_Config.json').as_posix() if Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded', 'standard_Config.json').exists() else '' Function_SetText( Widget = self.ui.LineEdit_TTS_VITS_ConfigPathLoad, - Text = str(Config_TTS.GetValue('VITS', 'Config_Path_Load', '')), + Text = str(Config_TTS_VITS.GetValue('VITS', 'Config_Path_Load', '')), SetPlaceholderText = True, PlaceholderText = TTS_VITS_ConfigPathLoad_Default ) self.ui.LineEdit_TTS_VITS_ConfigPathLoad.textChanged.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'Config_Path_Load', str(Value)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'Config_Path_Load', str(Value)) ) self.ui.LineEdit_TTS_VITS_ConfigPathLoad.textChanged.connect( lambda: self.ui.ComboBox_TTS_VITS_Speaker.clear(), @@ -3892,7 +5312,7 @@ def Main(self): self.ui.LineEdit_TTS_VITS_ConfigPathLoad.SetFileDialog( Mode = "SelectFile", FileType = "json类型 (*.json)", - Directory = NormPath(Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded')) + Directory = Path(CurrentDir).joinpath('模型训练结果', 'VITS').as_posix() ) self.ui.Button_TTS_VITS_ConfigPathLoad_Undo.clicked.connect( lambda: self.ui.LineEdit_TTS_VITS_ConfigPathLoad.setText(TTS_VITS_ConfigPathLoad_Default) @@ -3901,23 +5321,23 @@ def Main(self): Function_SetText( Widget = self.ui.Label_TTS_VITS_ModelPathLoad, Text = SetRichText( - Body = QCA.translate("Label", "G模型加载路径\n用于推理的生成器(Generator)模型的所在路径。") + Body = QCA.translate("Label", "G模型加载路径\n用于推理的生成器(Generator)模型的路径。") ) ) TTS_VITS_ModelPathLoad_Default = Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded', 'standard_G.pth').as_posix() if Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded', 'standard_G.pth').exists() else '' Function_SetText( Widget = self.ui.LineEdit_TTS_VITS_ModelPathLoad, - Text = str(Config_TTS.GetValue('VITS', 'Model_Path_Load', '')), + Text = str(Config_TTS_VITS.GetValue('VITS', 'Model_Path_Load', '')), SetPlaceholderText = True, PlaceholderText = TTS_VITS_ModelPathLoad_Default ) self.ui.LineEdit_TTS_VITS_ModelPathLoad.textChanged.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'Model_Path_Load', str(Value)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'Model_Path_Load', str(Value)) ) self.ui.LineEdit_TTS_VITS_ModelPathLoad.SetFileDialog( Mode = "SelectFile", FileType = "pth类型 (*.pth)", - Directory = NormPath(Path(ModelsDir).joinpath('TTS', 'VITS', 'Downloaded')) + Directory = Path(CurrentDir).joinpath('模型训练结果', 'VITS').as_posix() ) self.ui.Button_TTS_VITS_ModelPathLoad_Undo.clicked.connect( lambda: self.ui.LineEdit_TTS_VITS_ModelPathLoad.setText(TTS_VITS_ModelPathLoad_Default) @@ -3933,12 +5353,12 @@ def Main(self): ) Function_SetText( Widget = self.ui.PlainTextEdit_TTS_VITS_Text, - Text = str(Config_TTS.GetValue('VITS', 'Text', '')), + Text = str(Config_TTS_VITS.GetValue('VITS', 'Text', '')), SetPlaceholderText = True, PlaceholderText = '请输入语句' ) self.ui.PlainTextEdit_TTS_VITS_Text.textChanged.connect( - lambda: Config_TTS.EditConfig('VITS', 'Text', self.ui.PlainTextEdit_TTS_VITS_Text.toPlainText()) + lambda: Config_TTS_VITS.EditConfig('VITS', 'Text', self.ui.PlainTextEdit_TTS_VITS_Text.toPlainText()) ) Function_SetText( @@ -3949,10 +5369,10 @@ def Main(self): ) self.ui.ComboBox_TTS_VITS_Language.addItems(['None', '中', '英', '日']) self.ui.ComboBox_TTS_VITS_Language.setCurrentText( - str(Config_TTS.GetValue('VITS', 'Language', 'None')) + str(Config_TTS_VITS.GetValue('VITS', 'Language', 'None')) ) self.ui.ComboBox_TTS_VITS_Language.currentTextChanged.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'Language', str(Value)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'Language', str(Value)) ) self.ui.Button_TTS_VITS_Language_Undo.clicked.connect( lambda: self.ui.ComboBox_TTS_VITS_Language.setCurrentText('None') @@ -3965,14 +5385,14 @@ def Main(self): ) ) self.ui.ComboBox_TTS_VITS_Speaker.addItems( - Get_Speakers(str(Config_TTS.GetValue('VITS', 'Config_Path_Load', 'None'))) + Get_Speakers(str(Config_TTS_VITS.GetValue('VITS', 'Config_Path_Load', 'None'))) ) self.ui.ComboBox_TTS_VITS_Speaker.setCurrentText( - str(Config_TTS.GetValue('VITS', 'Speaker', '')) if str(Config_TTS.GetValue('VITS', 'Speaker', '')) in Get_Speakers(str(Config_TTS.GetValue('VITS', 'Config_Path_Load', 'None'))) - else (Get_Speakers(str(Config_TTS.GetValue('VITS', 'Config_Path_Load', 'None')))[0] if Get_Speakers(str(Config_TTS.GetValue('VITS', 'Config_Path_Load', 'None'))) != '' else '') + str(Config_TTS_VITS.GetValue('VITS', 'Speaker', '')) if str(Config_TTS_VITS.GetValue('VITS', 'Speaker', '')) in Get_Speakers(str(Config_TTS_VITS.GetValue('VITS', 'Config_Path_Load', 'None'))) + else (Get_Speakers(str(Config_TTS_VITS.GetValue('VITS', 'Config_Path_Load', 'None')))[0] if Get_Speakers(str(Config_TTS_VITS.GetValue('VITS', 'Config_Path_Load', 'None'))) != '' else '') ) self.ui.ComboBox_TTS_VITS_Speaker.currentTextChanged.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'Speaker', str(Value)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'Speaker', str(Value)) ) self.ui.CheckBox_TTS_VITS_VITSParams_Toggle_AdvanceSettings.setChecked(False) @@ -4011,10 +5431,10 @@ def Main(self): self.ui.HorizontalSlider_TTS_VITS_EmotionStrength.setMaximum(100) self.ui.HorizontalSlider_TTS_VITS_EmotionStrength.setTickInterval(1) self.ui.HorizontalSlider_TTS_VITS_EmotionStrength.setValue( - int(float(Config_TTS.GetValue('VITS', 'EmotionStrength', '0.67')) * 100) + int(float(Config_TTS_VITS.GetValue('VITS', 'EmotionStrength', '0.67')) * 100) ) self.ui.HorizontalSlider_TTS_VITS_EmotionStrength.sliderMoved.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'EmotionStrength', str(Value * 0.01)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'EmotionStrength', str(Value * 0.01)) ) Function_ParamsSynchronizer( Trigger = self.ui.HorizontalSlider_TTS_VITS_EmotionStrength, @@ -4026,10 +5446,10 @@ def Main(self): self.ui.DoubleSpinBox_TTS_VITS_EmotionStrength.setRange(0, 1) self.ui.DoubleSpinBox_TTS_VITS_EmotionStrength.setSingleStep(0.01) self.ui.DoubleSpinBox_TTS_VITS_EmotionStrength.setValue( - float(Config_TTS.GetValue('VITS', 'EmotionStrength', '0.67')) + float(Config_TTS_VITS.GetValue('VITS', 'EmotionStrength', '0.67')) ) self.ui.DoubleSpinBox_TTS_VITS_EmotionStrength.valueChanged.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'EmotionStrength', str(Value)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'EmotionStrength', str(Value)) ) Function_ParamsSynchronizer( Trigger = self.ui.DoubleSpinBox_TTS_VITS_EmotionStrength, @@ -4052,10 +5472,10 @@ def Main(self): self.ui.HorizontalSlider_TTS_VITS_PhonemeDuration.setMaximum(10) self.ui.HorizontalSlider_TTS_VITS_PhonemeDuration.setTickInterval(1) self.ui.HorizontalSlider_TTS_VITS_PhonemeDuration.setValue( - int(float(Config_TTS.GetValue('VITS', 'PhonemeDuration', '0.8')) * 10) + int(float(Config_TTS_VITS.GetValue('VITS', 'PhonemeDuration', '0.8')) * 10) ) self.ui.HorizontalSlider_TTS_VITS_PhonemeDuration.sliderMoved.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'PhonemeDuration', str(Value * 0.1)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'PhonemeDuration', str(Value * 0.1)) ) Function_ParamsSynchronizer( Trigger = self.ui.HorizontalSlider_TTS_VITS_PhonemeDuration, @@ -4067,10 +5487,10 @@ def Main(self): self.ui.DoubleSpinBox_TTS_VITS_PhonemeDuration.setRange(0, 1) self.ui.DoubleSpinBox_TTS_VITS_PhonemeDuration.setSingleStep(0.1) self.ui.DoubleSpinBox_TTS_VITS_PhonemeDuration.setValue( - float(Config_TTS.GetValue('VITS', 'PhonemeDuration', '0.8')) + float(Config_TTS_VITS.GetValue('VITS', 'PhonemeDuration', '0.8')) ) self.ui.DoubleSpinBox_TTS_VITS_PhonemeDuration.valueChanged.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'PhonemeDuration', str(Value)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'PhonemeDuration', str(Value)) ) Function_ParamsSynchronizer( Trigger = self.ui.DoubleSpinBox_TTS_VITS_PhonemeDuration, @@ -4093,10 +5513,10 @@ def Main(self): self.ui.HorizontalSlider_TTS_VITS_SpeechRate.setMaximum(20) self.ui.HorizontalSlider_TTS_VITS_SpeechRate.setTickInterval(1) self.ui.HorizontalSlider_TTS_VITS_SpeechRate.setValue( - int(float(Config_TTS.GetValue('VITS', 'SpeechRate', '1.')) * 10) + int(float(Config_TTS_VITS.GetValue('VITS', 'SpeechRate', '1.')) * 10) ) self.ui.HorizontalSlider_TTS_VITS_SpeechRate.sliderMoved.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'SpeechRate', str(Value * 0.1)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'SpeechRate', str(Value * 0.1)) ) Function_ParamsSynchronizer( Trigger = self.ui.HorizontalSlider_TTS_VITS_SpeechRate, @@ -4108,10 +5528,10 @@ def Main(self): self.ui.DoubleSpinBox_TTS_VITS_SpeechRate.setRange(0, 2) self.ui.DoubleSpinBox_TTS_VITS_SpeechRate.setSingleStep(0.1) self.ui.DoubleSpinBox_TTS_VITS_SpeechRate.setValue( - float(Config_TTS.GetValue('VITS', 'SpeechRate', '1.')) + float(Config_TTS_VITS.GetValue('VITS', 'SpeechRate', '1.')) ) self.ui.DoubleSpinBox_TTS_VITS_SpeechRate.valueChanged.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'SpeechRate', str(Value)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'SpeechRate', str(Value)) ) Function_ParamsSynchronizer( Trigger = self.ui.DoubleSpinBox_TTS_VITS_SpeechRate, @@ -4135,12 +5555,12 @@ def Main(self): TTS_VITS_AudioPathSave_Default = Path(CurrentDir).joinpath('语音合成结果', 'VITS', f"{date.today()}.wav").as_posix() Function_SetText( Widget = self.ui.LineEdit_TTS_VITS_AudioPathSave, - Text = str(Config_TTS.GetValue('VITS', 'Audio_Path_Save', '')), + Text = str(Config_TTS_VITS.GetValue('VITS', 'Audio_Path_Save', '')), SetPlaceholderText = True, PlaceholderText = TTS_VITS_AudioPathSave_Default ) self.ui.LineEdit_TTS_VITS_AudioPathSave.textChanged.connect( - lambda Value: Config_TTS.EditConfig('VITS', 'Audio_Path_Save', str(Value)) + lambda Value: Config_TTS_VITS.EditConfig('VITS', 'Audio_Path_Save', str(Value)) ) self.ui.LineEdit_TTS_VITS_AudioPathSave.SetFileDialog( Mode = "SaveFile", @@ -4152,21 +5572,17 @@ def Main(self): ) # ChildWindow - ChildWindow_TTS = Window_ChildWindow_TTS() + ChildWindow_TTS = Window_ChildWindow_TTS(self) ChildWindow_TTS.ui.Button_Close.clicked.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, QMessageBox.Question, "Ask", "确认退出试听?", QMessageBox.Yes|QMessageBox.No, { QMessageBox.Yes: lambda: ( ChildWindow_TTS.ui.Widget.ReleaseMediaPlayer(), - ChildWindow_TTS.hide(), - Function_ShowMessageBox( - QMessageBox.Information,"Tip", - "当前任务已执行结束。" - ) + ChildWindow_TTS.close() ) } ) @@ -4189,12 +5605,12 @@ def Main(self): MainWindowSignals.Signal_TaskStatus.connect( lambda Task, Status: ChildWindow_TTS.ui.Widget.SetMediaPlayer( self.ui.LineEdit_TTS_VITS_AudioPathSave.text() - ) if Task == 'Execute_Voice_Converting.Execute' and Status == 'Finished' else None + ) if Task == 'Execute_Voice_Converting_VITS.Execute' and Status == 'Finished' else None ) ChildWindow_TTS.ui.Button_Cancel.setText('丢弃') ChildWindow_TTS.ui.Button_Cancel.clicked.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, QMessageBox.Question, "Ask", "确认丢弃音频?", QMessageBox.Yes|QMessageBox.No, @@ -4202,55 +5618,44 @@ def Main(self): QMessageBox.Yes: lambda: ( ChildWindow_TTS.ui.Widget.ReleaseMediaPlayer(), os.remove(self.ui.LineEdit_TTS_VITS_AudioPathSave.text()), - ChildWindow_TTS.hide(), - Function_ShowMessageBox( - QMessageBox.Information,"Tip", - "当前任务已执行结束。" - ) + ChildWindow_TTS.close() ) } ) ) ChildWindow_TTS.ui.Button_Confirm.setText('保留') ChildWindow_TTS.ui.Button_Confirm.clicked.connect( - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, QMessageBox.Question, "Ask", "确认保留音频?", QMessageBox.Yes|QMessageBox.No, { QMessageBox.Yes: lambda: ( ChildWindow_TTS.ui.Widget.ReleaseMediaPlayer(), - ChildWindow_TTS.hide(), - Function_ShowMessageBox( - QMessageBox.Information,"Tip", - "当前任务已执行结束。" - ) + ChildWindow_TTS.close() ) } ) ) - MainWindowSignals.Signal_TaskStatus.connect( - lambda Task, Status: ChildWindow_TTS.show() if Task == 'Execute_Voice_Converting.Execute' and Status == 'Finished' else None - ) - # Right - MonitorFile_Config_VoiceConverter = MonitorFile(Path_Config_TTS) - MonitorFile_Config_VoiceConverter.start() - MonitorFile_Config_VoiceConverter.Signal_FileContent.connect( + MonitorFile_Config_VoiceConverter_VITS = MonitorFile(Path_Config_TTS_VITS) + MonitorFile_Config_VoiceConverter_VITS.start() + MonitorFile_Config_VoiceConverter_VITS.Signal_FileContent.connect( lambda FileContent: self.ui.TextBrowser_Params_TTS_VITS.setText( FileContent ) ) - self.ui.Button_CheckOutput_TTS_VITS.setText(QCA.translate("Button", "查看输出文件")) + self.ui.Button_CheckOutput_TTS_VITS.setText(QCA.translate("Button", "打开输出文件")) Function_SetURL( Button = self.ui.Button_CheckOutput_TTS_VITS, URL = self.ui.LineEdit_TTS_VITS_AudioPathSave, - ButtonTooltip = "Click to open" + ButtonTooltip = "Click to open", + CreateIfNotExist = True ) - # Left + # VITS - Left Function_SetTreeWidget( TreeWidget = self.ui.TreeWidget_Catalogue_TTS_VITS, RootItemTexts = [ @@ -4301,7 +5706,7 @@ def Main(self): ScrollArea = self.ui.ScrollArea_Middle_TTS_VITS ) - # Bottom + # VITS - Bottom self.ui.Button_TTS_VITS_Execute.setToolTip("执行语音合成") self.ui.Button_TTS_VITS_Terminate.setToolTip("终止语音合成") self.Function_SetMethodExecutor( @@ -4309,7 +5714,7 @@ def Main(self): TerminateButton = self.ui.Button_TTS_VITS_Terminate, ProgressBar = self.ui.ProgressBar_TTS_VITS, ConsoleWidget = self.ui.Frame_Console, - Method = Execute_Voice_Converting.Execute, + Method = Execute_Voice_Converting_VITS.Execute, ParamsFrom = [ self.ui.LineEdit_TTS_VITS_ConfigPathLoad, self.ui.LineEdit_TTS_VITS_ModelPathLoad, @@ -4324,6 +5729,14 @@ def Main(self): EmptyAllowed = [ self.ui.ComboBox_TTS_VITS_Language, self.ui.ComboBox_TTS_VITS_Speaker + ], + FinishEvents = [ + lambda: self.ShowMask(True, "正在加载播放器"), + ChildWindow_TTS.exec, + lambda: Function_ShowMessageBox(self, + QMessageBox.Information, "Tip", + "当前任务已执行结束。" + ) ] ) @@ -4331,7 +5744,19 @@ def Main(self): ##################### Content: Settings ##################### ############################################################# - self.ui.ToolButton_Settings_Title.setText(QCA.translate("Label", "系统选项")) + # Client + self.ui.ToolButton_Settings_Title_Client.setText(QCA.translate("Label", "系统选项")) + self.ui.ToolButton_Settings_Title_Client.setCheckable(True) + self.ui.ToolButton_Settings_Title_Client.setChecked(True) + self.ui.ToolButton_Settings_Title_Client.setAutoExclusive(True) + self.ui.ToolButton_Settings_Title_Client.clicked.connect( + lambda: Function_AnimateStackedWidget( + StackedWidget = self.ui.StackedWidget_Pages_Settings, + TargetIndex = 0 + ) + ) + + self.ui.GroupBox_Settings_Client_Outlook.setTitle(QCA.translate("GroupBox", "外观设置")) self.ui.Label_Setting_Language.setText(QCA.translate("Label", "语言")) self.ui.ComboBox_Setting_Language.addItems(['中文']) @@ -4350,22 +5775,7 @@ def Main(self): ) ) - self.ui.Button_Setting_ClientRebooter.clicked.connect(ClientRebooter) - self.ui.Button_Setting_ClientRebooter.setText(QCA.translate("Button", "重启客户端")) - self.ui.Button_Setting_ClientRebooter.setToolTip(QCA.translate("ToolTip", "重启EVT客户端")) - - self.Function_SetMethodExecutor( - ExecuteButton = self.ui.Button_Setting_IntegrityChecker, - Method = Integrity_Checker.Execute, - Params = () - ) - MainWindowSignals.Signal_TaskStatus.connect( - lambda Task, Status: self.ui.Button_Setting_IntegrityChecker.setCheckable( - False if Status == 'Started' else True - ) - ) - self.ui.Button_Setting_IntegrityChecker.setText(QCA.translate("Button", "检查完整性")) - self.ui.Button_Setting_IntegrityChecker.setToolTip(QCA.translate("ToolTip", "检查文件完整性")) + self.ui.GroupBox_Settings_Client_Function.setTitle(QCA.translate("GroupBox", "功能设置")) self.ui.Label_Setting_AutoUpdate.setText(QCA.translate("Label", "自动检查版本并更新")) self.ui.CheckBox_Setting_AutoUpdate.setChecked( @@ -4388,6 +5798,174 @@ def Main(self): TakeEffect = True ) + self.ui.GroupBox_Settings_Client_Operation.setTitle(QCA.translate("GroupBox", "操作")) + + self.ui.Button_Setting_ClientRebooter.clicked.connect(ClientRebooter) + self.ui.Button_Setting_ClientRebooter.setText(QCA.translate("Button", "重启客户端")) + self.ui.Button_Setting_ClientRebooter.setToolTip(QCA.translate("ToolTip", "重启EVT客户端")) + + self.Function_SetMethodExecutor( + ExecuteButton = self.ui.Button_Setting_IntegrityChecker, + Method = Integrity_Checker.Execute, + Params = () + ) + MainWindowSignals.Signal_TaskStatus.connect( + lambda Task, Status: self.ui.Button_Setting_IntegrityChecker.setCheckable( + False if Status == 'Started' else True + ) + ) + self.ui.Button_Setting_IntegrityChecker.setText(QCA.translate("Button", "检查完整性")) + self.ui.Button_Setting_IntegrityChecker.setToolTip(QCA.translate("ToolTip", "检查文件完整性")) + + # Tools + self.ui.ToolButton_Settings_Title_Tools.setText(QCA.translate("Label", "工具选项")) + self.ui.ToolButton_Settings_Title_Tools.setCheckable(True) + self.ui.ToolButton_Settings_Title_Tools.setChecked(False) + self.ui.ToolButton_Settings_Title_Tools.setAutoExclusive(True) + self.ui.ToolButton_Settings_Title_Tools.clicked.connect( + lambda: Function_AnimateStackedWidget( + StackedWidget = self.ui.StackedWidget_Pages_Settings, + TargetIndex = 1 + ) + ) + + self.ui.GroupBox_Settings_Tools_Path.setTitle(QCA.translate("GroupBox", "路径设置")) + + self.ui.Label_Process_OutputRoot.setText(QCA.translate("Label", "音频处理输出目录")) + Process_OutputRoot_Default = Path(CurrentDir).joinpath('音频处理结果').as_posix() + Function_SetText( + Widget = self.ui.LineEdit_Process_OutputRoot, + Text = str(Config_Process.GetValue('AudioProcessor', 'Output_Root', Process_OutputRoot_Default)), + SetPlaceholderText = True, + PlaceholderText = Process_OutputRoot_Default + ) + self.ui.LineEdit_Process_OutputRoot.textChanged.connect( + lambda Value: Config_Process.EditConfig('AudioProcessor', 'Output_Root', str(Value)) + ) + self.ui.LineEdit_Process_OutputRoot.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(Process_OutputRoot_Default).parent) + ) + self.ui.Button_Process_OutputRoot_Undo.clicked.connect( + lambda: self.ui.LineEdit_Process_OutputRoot.setText(Process_OutputRoot_Default) + ) + + self.ui.Label_ASR_VPR_OutputRoot.setText(QCA.translate("Label", "声纹识别结果输出目录")) + ASR_VPR_AudioSpeakersDataRoot_Default = Path(CurrentDir).joinpath('语音识别结果', 'VPR').as_posix() + Function_SetText( + Widget = self.ui.LineEdit_ASR_VPR_OutputRoot, + Text = str(Config_ASR.GetValue('VPR', 'Audio_Root_Output', ASR_VPR_AudioSpeakersDataRoot_Default)), + SetPlaceholderText = True, + PlaceholderText = ASR_VPR_AudioSpeakersDataRoot_Default + ) + self.ui.LineEdit_ASR_VPR_OutputRoot.textChanged.connect( + lambda Value: Config_ASR.EditConfig('VPR', 'Audio_Root_Output', str(Value)) + ) + self.ui.LineEdit_ASR_VPR_OutputRoot.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(ASR_VPR_AudioSpeakersDataRoot_Default).parent) + ) + self.ui.Button_ASR_VPR_OutputRoot_Undo.clicked.connect( + lambda: self.ui.LineEdit_ASR_VPR_OutputRoot.setText(ASR_VPR_AudioSpeakersDataRoot_Default) + ) + + self.ui.Label_STT_Whisper_OutputRoot.setText(QCA.translate("Label", "Whisper转录输出目录")) + STT_Whisper_OutputRoot_Default = Path(CurrentDir).joinpath('语音转录结果', 'Whisper').as_posix() + Function_SetText( + Widget = self.ui.LineEdit_STT_Whisper_OutputRoot, + Text = str(Config_STT.GetValue('Whisper', 'Output_Root', STT_Whisper_OutputRoot_Default)), + SetPlaceholderText = True, + PlaceholderText = STT_Whisper_OutputRoot_Default + ) + self.ui.LineEdit_STT_Whisper_OutputRoot.textChanged.connect( + lambda Value: Config_STT.EditConfig('Whisper', 'Output_Root', str(Value)) + ) + self.ui.LineEdit_STT_Whisper_OutputRoot.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(STT_Whisper_OutputRoot_Default).parent) + ) + self.ui.Button_STT_Whisper_OutputRoot_Undo.clicked.connect( + lambda: self.ui.LineEdit_STT_Whisper_OutputRoot.setText(STT_Whisper_OutputRoot_Default) + ) + + self.ui.Label_DAT_GPTSoVITS_OutputRoot.setText( QCA.translate("Label", "GPTSoVITS数据集输出目录")) + DAT_GPTSoVITS_OutputRoot_Default = Path(CurrentDir).joinpath('数据集制作结果', 'GPT-SoVITS').as_posix() + Function_SetText( + Widget = self.ui.LineEdit_DAT_GPTSoVITS_OutputRoot, + Text = str(Config_DAT_GPTSoVITS.GetValue('GPT-SoVITS', 'Output_Root', DAT_GPTSoVITS_OutputRoot_Default)), + SetPlaceholderText = True, + PlaceholderText = DAT_GPTSoVITS_OutputRoot_Default + ) + self.ui.LineEdit_DAT_GPTSoVITS_OutputRoot.textChanged.connect( + lambda Value: Config_DAT_GPTSoVITS.EditConfig('GPT-SoVITS', 'Output_Root', str(Value)) + ) + self.ui.LineEdit_DAT_GPTSoVITS_OutputRoot.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(DAT_GPTSoVITS_OutputRoot_Default).parent) + ) + self.ui.Button_DAT_GPTSoVITS_OutputRoot_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_GPTSoVITS_OutputRoot.setText(DAT_GPTSoVITS_OutputRoot_Default) + ) + + self.ui.Label_DAT_VITS_OutputRoot.setText(QCA.translate("Label", "VITS数据集输出目录")) + DAT_VITS_OutputRoot_Default = Path(CurrentDir).joinpath('数据集制作结果', 'VITS').as_posix() + Function_SetText( + Widget = self.ui.LineEdit_DAT_VITS_OutputRoot, + Text = str(Config_DAT_VITS.GetValue('VITS', 'Output_Root', DAT_VITS_OutputRoot_Default)), + SetPlaceholderText = True, + PlaceholderText = DAT_VITS_OutputRoot_Default + ) + self.ui.LineEdit_DAT_VITS_OutputRoot.textChanged.connect( + lambda Value: Config_DAT_VITS.EditConfig('VITS', 'Output_Root', str(Value)) + ) + self.ui.LineEdit_DAT_VITS_OutputRoot.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(DAT_VITS_OutputRoot_Default).parent) + ) + self.ui.Button_DAT_VITS_OutputRoot_Undo.clicked.connect( + lambda: self.ui.LineEdit_DAT_VITS_OutputRoot.setText(DAT_VITS_OutputRoot_Default) + ) + + self.ui.Label_Train_GPTSoVITS_OutputRoot.setText(QCA.translate("Label", "GPTSoVITS训练输出目录")) + Train_GPTSoVITS_OutputRoot_Default = Path(CurrentDir).joinpath('模型训练结果', 'GPT-SoVITS').as_posix() + Function_SetText( + Widget = self.ui.LineEdit_Train_GPTSoVITS_OutputRoot, + Text = str(Config_Train_GPTSoVITS.GetValue('GPT-SoVITS', 'Output_Root', Train_GPTSoVITS_OutputRoot_Default)), + SetPlaceholderText = True, + PlaceholderText = Train_GPTSoVITS_OutputRoot_Default + ) + self.ui.LineEdit_Train_GPTSoVITS_OutputRoot.textChanged.connect( + lambda Value: Config_Train_GPTSoVITS.EditConfig('GPT-SoVITS', 'Output_Root', str(Value)) + ) + self.ui.LineEdit_Train_GPTSoVITS_OutputRoot.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(Train_GPTSoVITS_OutputRoot_Default).parent) + ) + self.ui.Button_Train_GPTSoVITS_OutputRoot_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_GPTSoVITS_OutputRoot.setText(Train_GPTSoVITS_OutputRoot_Default) + ) + + self.ui.Label_Train_VITS_OutputRoot.setText(QCA.translate("Label", "VITS训练输出目录")) + Train_VITS_OutputRoot_Default = Path(CurrentDir).joinpath('模型训练结果', 'VITS').as_posix() + Function_SetText( + Widget = self.ui.LineEdit_Train_VITS_OutputRoot, + Text = str(Config_Train_VITS.GetValue('VITS', 'Output_Root', Train_VITS_OutputRoot_Default)), + SetPlaceholderText = True, + PlaceholderText = Train_VITS_OutputRoot_Default + ) + self.ui.LineEdit_Train_VITS_OutputRoot.textChanged.connect( + lambda Value: Config_Train_VITS.EditConfig('VITS', 'Output_Root', str(Value)) + ) + self.ui.LineEdit_Train_VITS_OutputRoot.SetFileDialog( + Mode = "SelectFolder", + Directory = NormPath(Path(Train_VITS_OutputRoot_Default).parent) + ) + self.ui.Button_Train_VITS_OutputRoot_Undo.clicked.connect( + lambda: self.ui.LineEdit_Train_VITS_OutputRoot.setText(Train_VITS_OutputRoot_Default) + ) + + self.ui.GroupBox_Settings_Tools_Function.setTitle(QCA.translate("GroupBox", "功能设置")) + self.ui.Label_Setting_Synchronizer.setText(QCA.translate("Label", "自动关联前后工具的部分参数设置")) self.ui.CheckBox_Setting_Synchronizer.setChecked( { @@ -4401,24 +5979,28 @@ def Main(self): CheckedEvents = [ lambda: Config.EditConfig('Tools', 'Synchronizer', 'Enabled'), lambda: Function_ParamsSynchronizer( - self.ui.LineEdit_Process_MediaDirOutput, - {self.ui.LineEdit_Process_MediaDirOutput: self.ui.LineEdit_ASR_VPR_AudioDirInput} + LineEdit_Process_OutputDir, + {LineEdit_Process_OutputDir: self.ui.LineEdit_ASR_VPR_AudioDirInput} ), lambda: Function_ParamsSynchronizer( - self.ui.LineEdit_ASR_VPR_AudioSpeakersDataPath, - {self.ui.LineEdit_ASR_VPR_AudioSpeakersDataPath: self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath} + LineEdit_ASR_VPR_AudioSpeakersDataPath, + {LineEdit_ASR_VPR_AudioSpeakersDataPath: [self.ui.LineEdit_DAT_GPTSoVITS_AudioSpeakersDataPath, self.ui.LineEdit_DAT_VITS_AudioSpeakersDataPath]} ), lambda: Function_ParamsSynchronizer( ChildWindow_ASR.ui.LineEdit, {ChildWindow_ASR.ui.LineEdit: self.ui.LineEdit_STT_Whisper_AudioDir} ), lambda: Function_ParamsSynchronizer( - self.ui.LineEdit_STT_Whisper_SRTDir, - {self.ui.LineEdit_STT_Whisper_SRTDir: self.ui.LineEdit_DAT_VITS_SRTDir} + LineEdit_STT_Whisper_OutputDir, + {LineEdit_STT_Whisper_OutputDir: [self.ui.LineEdit_DAT_GPTSoVITS_SRTDir, self.ui.LineEdit_DAT_VITS_SRTDir]} + ), + lambda: Function_ParamsSynchronizer( + LineEdit_DAT_GPTSoVITS_FileListPath, + {LineEdit_DAT_GPTSoVITS_FileListPath: self.ui.LineEdit_Train_GPTSoVITS_FileListPath} ), lambda: Function_ParamsSynchronizer( - [self.ui.LineEdit_DAT_VITS_FileListPathTraining, self.ui.LineEdit_DAT_VITS_FileListPathValidation], - {self.ui.LineEdit_DAT_VITS_FileListPathTraining: self.ui.LineEdit_Train_VITS_FileListPathTraining, self.ui.LineEdit_DAT_VITS_FileListPathValidation: self.ui.LineEdit_Train_VITS_FileListPathValidation} + [LineEdit_DAT_VITS_FileListPathTraining, LineEdit_DAT_VITS_FileListPathValidation], + {LineEdit_DAT_VITS_FileListPathTraining: self.ui.LineEdit_Train_VITS_FileListPathTraining, LineEdit_DAT_VITS_FileListPathValidation: self.ui.LineEdit_Train_VITS_FileListPathValidation} ) ], UncheckedText = "未启用", @@ -4430,7 +6012,7 @@ def Main(self): Function_ConfigureCheckBox( CheckBox = self.ui.CheckBox_Setting_Synchronizer, UncheckedEvents = [ - lambda: Function_ShowMessageBox( + lambda: Function_ShowMessageBox(self, QMessageBox.Information, "Tip", "该设置将于重启之后生效" ) @@ -4487,7 +6069,7 @@ def Main(self): self.ui.Button_Console_Copy.clicked.connect( lambda: ( self.Clipboard.setText(self.ui.PlainTextEdit_Console.toPlainText()), - Function_ShowMessageBox(WindowTitle = "Tip", Text = "已复制输出日志到剪切板") + Function_ShowMessageBox(self, WindowTitle = "Tip", Text = "已复制输出日志到剪切板") ) ) @@ -4518,11 +6100,11 @@ def Main(self): f"工具状态:{'忙碌' if Status == 'Started' else '空闲'}" ) if Task in [ 'Execute_Audio_Processing.Execute', - 'Execute_Voice_Identifying.Execute', - 'Execute_Voice_Transcribing.Execute', - 'Execute_Dataset_Creating.Execute', - 'Execute_Voice_Training.Execute', - 'Execute_Voice_Converting.Execute' + 'Execute_Voice_Identifying_VPR.Execute', + 'Execute_Voice_Transcribing_Whisper.Execute', + 'Execute_Dataset_Creating_VITS.Execute', + 'Execute_Voice_Training_VITS.Execute', + 'Execute_Voice_Converting_VITS.Execute' ] else None ) diff --git a/manifest.json b/manifest.json index 4efece7..10f038d 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,50 @@ { "version": "1.0.0", "models": [ + { + "tags": [ + "Process", + "UVR" + ], + "name": "HP3_all_vocals.pth", + "size": "60.5MB", + "date": "2024-03-22 16:03:34.957344", + "SHA": "45e6b65199e781b4a6542002699be9f19cd3d1cb7d1558bc2bfbcd84674dfe28", + "downloadurl": "https://huggingface.co/Delik/uvr5_weights/resolve/main/HP3_all_vocals.pth?download=true", + "link": "https://huggingface.co/Delik/uvr5_weights" + }, + { + "tags": [ + "Process", + "UVR" + ], + "name": "HP5_only_main_vocal.pth", + "size": "60.5MB", + "date": "2024-03-22 16:04:08.833732", + "SHA": "5908891829634926119720241e8573d97cbeb8277110a7512bdb0bd7563258ee", + "downloadurl": "https://huggingface.co/Delik/uvr5_weights/resolve/main/HP5_only_main_vocal.pth?download=true", + "link": "https://huggingface.co/Delik/uvr5_weights" + }, + { + "tags": [ + "Process", + "UVR" + ], + "name": "Onnx_dereverb_By_FoxJoy", + "size": { + "vocals.onnx": "63.7MB" + }, + "date": { + "vocals.onnx": "2024-03-10 19:20:47.579919" + }, + "SHA": { + "vocals.onnx": "233bb5c6aaa365e568659a0a81211746fa881f8f47f82d9e864fce1f7692db80" + }, + "downloadurl": { + "vocals.onnx": "https://huggingface.co/Delik/uvr5_weights/resolve/main/Onnx_dereverb_By_FoxJoy/vocals.onnx?download=true" + }, + "link": "https://huggingface.co/Delik/uvr5_weights" + }, { "tags": [ "ASR", @@ -64,37 +108,113 @@ { "tags": [ "TTS", - "VITS" + "GPT-SoVITS" ], - "name": "standard_Config(暂无)", - "size": "", - "date": "", - "SHA": "", - "downloadurl": "", - "link": "" + "name": "s1&s2", + "size": { + "s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt": "", + "s2G488k.pth": "106MB", + "s2D488k.pth": "93.5MB" + }, + "date": { + "s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt": "", + "s2G488k.pth": "", + "s2D488k.pth": "" + }, + "SHA": { + "s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt": "b1c1e17e9c99547a89388f72048cd6e1b41b5a18b170e86a46dfde0324d63eb1", + "s2G488k.pth": "020a014e1e01e550e510f2f61fae5e5f5b6aab40f15c22f1f12f724df507e835", + "s2D488k.pth": "fc579c1db3c1e21b721001cf99d7a584214280df19b002e200b630a34fa06eb8" + }, + "downloadurl": { + "s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt": "https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/s1bert25hz-2kh-longer-epoch%3D68e-step%3D50232.ckpt?download=true", + "s2G488k.pth": "https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/s2G488k.pth?download=true", + "s2D488k.pth": "https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/s2D488k.pth?download=true" + }, + "link": "https://huggingface.co/lj1995/GPT-SoVITS" }, { "tags": [ "TTS", - "VITS" + "GPT-SoVITS" ], - "name": "standard_G(暂无)", - "size": "", - "date": "", - "SHA": "", - "downloadurl": "", - "link": "" + "name": "chinese-hubert-base", + "size": { + "config.json": "0.0MB", + "preprocessor_config.json": "0.0MB", + "pytorch_model.bin": "180.1" + }, + "date": { + "config.json": "2024-03-09 10:43:20.473571", + "preprocessor_config.json": "2024-03-09 10:43:15.740161", + "pytorch_model.bin": "2024-03-09 10:43:36.856372" + }, + "SHA": { + "config.json": "c3e5060a1277e0f078cc6be9da4528a605dba6ece93018981fe2c820e5c7b103", + "preprocessor_config.json": "dcd684124d06722947939d41ea6ae58dbf10968c60a11a29f23ddc602c64a29b", + "pytorch_model.bin": "24164f129c66499d1346e2aa55f183250c223161ec2770c0da3d3b08cf432d3c" + }, + "downloadurl": { + "config.json": "https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-hubert-base/config.json?download=true", + "preprocessor_config.json": "https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-hubert-base/preprocessor_config.json?download=true", + "pytorch_model.bin": "https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-hubert-base/pytorch_model.bin?download=true" + }, + "link": "https://huggingface.co/lj1995/GPT-SoVITS" + }, + { + "tags": [ + "TTS", + "GPT-SoVITS" + ], + "name": "chinese-roberta-wwm-ext-large", + "size": { + "config.json": "0.0MB", + "tokenizer.json": "0.3MB", + "pytorch_model.bin": "621.1MB" + }, + "date": { + "config.json": "2024-03-09 10:43:29.774951", + "tokenizer.json": "2024-03-09 10:43:34.205848", + "pytorch_model.bin": "2024-03-09 10:45:27.980667" + }, + "SHA": { + "config.json": "3d57de2fd7e80d0e5c8ff194f0bbb6baa10df7e43fc262a0cc71298a78b0a3e5", + "tokenizer.json": "173796956820ea27bd14f76bf28162607ff4254807e2948253eb5b46f5bb643b", + "pytorch_model.bin": "e53a693acc59ace251d143d068096ae0d7b79e4b1b503fa84c9dcf576448c1d8" + }, + "downloadurl": { + "config.json": "https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-roberta-wwm-ext-large/config.json?download=true", + "tokenizer.json": "https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-roberta-wwm-ext-large/tokenizer.json?download=true", + "pytorch_model.bin": "https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/chinese-roberta-wwm-ext-large/pytorch_model.bin?download=true" + }, + "link": "https://huggingface.co/lj1995/GPT-SoVITS" }, { "tags": [ "TTS", "VITS" ], - "name": "standard_D(暂无)", - "size": "", - "date": "", - "SHA": "", - "downloadurl": "", + "name": "standard(暂无)", + "size": { + "standard_G": "", + "standard_D": "", + "standard_Config": "" + }, + "date": { + "standard_G": "", + "standard_D": "", + "standard_Config": "" + }, + "SHA": { + "standard_G": "None", + "standard_D": "None", + "standard_Config": "None" + }, + "downloadurl": { + "standard_G": "", + "standard_D": "", + "standard_Config": "" + }, "link": "" } ] diff --git a/requirements.txt b/requirements.txt index a2f311f..ab9ddee 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,17 +15,28 @@ ffmpeg-python num2words +PyYAML numba scipy matplotlib protobuf +onnxruntime tensorboard inflect +chardet unidecode langdetect +sentencepiece +wordsegment +nltk eng_to_ipa +g2p_en pypinyin -jieba +jieba #jieba_fast cn2an #opencc -pyopenjtalk \ No newline at end of file +pyopenjtalk +LangSegment>=0.2.0 +gradio==3.38.0 +gradio_client==0.8.1 +modelscope==1.10.0 \ No newline at end of file