def save_to_db(self):
        if (self.load_check and self.analyze_check):
            w_name = str(self.wavelet_type)
            table_name = "Db_GTZAN_function_" + w_name + "_Degree_" + str(
                self.wavelet_level)

            Database.create_table(
                Database.database_name, table_name, self.db_header,
                "")  # creating new table with statistic function

            for index in range(0, len(self.all_signals)):
                name = self.all_signals[index].split(sep='/')  #name of signal
                Database.delete_row(Database.database_name, table_name,
                                    name[-1], "")
                Database.add_values_to_table(Database.database_name,
                                             table_name, name[-1],
                                             self.db_header,
                                             self.db_matrix[index],
                                             "")  #adding db to values
            Features.message("Your Data Saved Succesfully",
                             QMessageBox.Information)

        else:
            if (self.load_check):
                Features.message("You have to analyze the signals first",
                                 QMessageBox.Warning)
            else:
                Features.message("You have to load at least 1 signal",
                                 QMessageBox.Warning)
Пример #2
0
    def save_to_db(self):
        if (self.load_check and self.analyze_check):
            w_name = str(self.wavelet_type)
            table_name = "Db_GTZAN_function_" + w_name + "_Degree_" + str(
                self.wavelet_level)

            Database.create_table(
                Database.database_name, table_name, self.db_header,
                "")  # İstatistiksel fonksiyonlar için tablo oluşturma

            for index in range(0, len(self.all_signals)):
                name = self.all_signals[index].split(sep='/')  #Sinyalin adı
                Database.delete_row(Database.database_name, table_name,
                                    name[-1], "")
                Database.add_values_to_table(Database.database_name,
                                             table_name, name[-1],
                                             self.db_header,
                                             self.db_matrix[index],
                                             "")  #Db'ye değerleri girme
            Features.message("Your Data Saved Succesfully",
                             QMessageBox.Information)

        else:
            if (self.load_check):
                Features.message("You have to analyze the signals first",
                                 QMessageBox.Warning)
            else:
                Features.message("You have to load at least 1 signal",
                                 QMessageBox.Warning)
Пример #3
0
    def save_to_db(self):
        if (self.load_check and self.analyze_check):
            w_name = str(self.wavelet_type)
            table_name = "Db_GTZAN_function_" + w_name + "_Scale_" + self.min_scale + "_to_" + self.max_scale + "_Period_" + self.sampling_per

            Database.create_table(
                Database.database_name, table_name, self.db_header,
                "")  #İstatistiksel fonksiyonlar ile yeni tablo oluşturma
            Database.create_table(Database.database_name, table_name,
                                  self.db_header, "Comp_")

            for index in range(0, len(self.all_signals)):
                name = self.all_signals[index].split(sep='/')
                Database.delete_row(Database.database_name, table_name,
                                    name[-1], "")
                Database.add_values_to_table(Database.database_name,
                                             table_name, name[-1],
                                             self.db_header,
                                             self.db_matrix[index], "")
                Database.delete_row(Database.database_name, table_name,
                                    name[-1], "Comp_")
                Database.add_values_to_table(Database.database_name,
                                             table_name, name[-1],
                                             self.db_header,
                                             self.db_matrix[index], "Comp_")
            Features.message("Your Data Saved Succesfully !",
                             QMessageBox.Warning)
        else:
            if (self.load_check):
                Features.message("You have to analyze the signals first !",
                                 QMessageBox.Warning)
            else:
                Features.message("You have to load at least 1 signal !",
                                 QMessageBox.Warning)
Пример #4
0
    def run(self):
        wave_types = pywt.wavelist(kind='discrete')
        levels = [1, 2, 3]
        signals = []
        self.average, self.entropy, self.kurtosis, self.max_v, self.median, self.min_v, self.skewness, self.standart_dev = Features.check_statistics(
            self)
        table_names = Database.get_table_names(Database.database_name)

        for wave_func in wave_types:
            if wave_func.find("sym") == -1:
                for level in levels:
                    self.wavelet_level = level
                    self.wavelet_type = wave_func
                    col, self.header, self.db_header = Features.init_table(
                        self, len(self.all_signals))
                    self.db_matrix = np.zeros(
                        (len(self.all_signals), 8 * (self.wavelet_level + 1)))

                    if not any("Db_GTZAN_function_" + str(wave_func) +
                               "_Degree_" + str(level) in s
                               for s in table_names):

                        for iter in range(0, len(self.all_signals)):
                            self.signals.clear()
                            self.audio, self.sample = librosa.load(
                                self.all_signals[iter])
                            self.signals.append(self.audio)
                            self.time = np.arange(0, len(
                                self.audio)) / self.sample

                            coeffs = pywt.wavedec(
                                self.audio,
                                self.wavelet_type,
                                level=self.wavelet_level)  # wavelet analyze

                            for i in range(0, self.wavelet_level + 1):
                                self.signals.append(
                                    coeffs[i]
                                )  # adding signals array to coeffs

                            self.db_matrix[iter] = Features.insertTable(
                                self, iter, col
                            )  # level = 3 ise signals içinde  5 (4 analiz edilmiş + 1 kaynak)

                        w_name = str(wave_func)
                        table_name = "Db_GTZAN_function_" + w_name + "_Degree_" + str(
                            level)
                        Database.create_table(Database.database_name,
                                              table_name, self.db_header, "")

                        for index in range(0, len(self.all_signals)):
                            name = self.all_signals[index].split(
                                sep='/')  # name of signal
                            Database.delete_row(Database.database_name,
                                                table_name, name[-1], "")
                            Database.add_values_to_table(
                                Database.database_name, table_name, name[-1],
                                self.db_header, self.db_matrix[index],
                                "")  # adding db to values
                        print(table_name)
                    else:
                        print("Db_GTZAN_function_" + str(wave_func) +
                              "_Degree_" + str(level) + ' passed')
            else:
                print(wave_func + " passed")