def show_open_dialog(self): self.audioFile = QtGui.QFileDialog.getOpenFileName( self, 'Open audio file', '', "Audio Files (*.wav)", None, QtGui.QFileDialog.DontUseNativeDialog) if self.audioFile != "": self.featuresTbl.setRowCount(0) self.featuresTbl.setColumnCount(0) self.audioClassInput.setText("") fileName = str(self.audioFile) self.audio_signal, self.audio_fs = FileReader.read_audio(fileName) self.silenced_signal, self.audio_fs = self.mfcc.remove_silence( fileName) self.fsValLbl.setText(": " + str(self.audio_fs) + " Hz") self.sampleValLbl.setText(": " + str(len(self.audio_signal)) + " | " + str(len(self.silenced_signal)) + " (silenced)") self.audioFilenameLbl.setText(": " + fileName[fileName.rfind('/') + 1:len(fileName)]) self.audioClassInput.setText(FileReader.get_output_class(fileName)) self.audioPlayBtn.setDisabled(False) self.extractSaveBtn.setDisabled(False) self.player.set_audio_source(self.audioFile)
def include_word(self): if self.inclWordCheck.isChecked(): for i in xrange(self.featuresTbl.rowCount()): text = str(self.featuresTbl.item(i, 0).text()) self.featuresTbl.setItem(i, 1, QtGui.QTableWidgetItem(str(FileReader.get_output_class(str(text))))) else: for i in xrange(self.featuresTbl.rowCount()): text = str(self.featuresTbl.item(i, 1).text()) self.featuresTbl.setItem(i, 1, QtGui.QTableWidgetItem(str(text[:text.rfind("-")])))
def shuffle_files(self): self.audio_files = sample(self.audio_files, len(self.audio_files)) for i in xrange(self.featuresTbl.rowCount()): self.featuresTbl.setItem( i, 0, QtGui.QTableWidgetItem(str(self.audio_files[i]))) self.featuresTbl.setItem( i, 1, QtGui.QTableWidgetItem( str(FileReader.get_output_class(str( self.audio_files[i])))))
def run(self): self.emit(QtCore.SIGNAL("update()")) self.mfcc.frame_size = int(self.par.frameSizeVal.currentText()) self.mfcc.overlap = self.mfcc.frame_size / 2 for index, file_audio in enumerate(self.audio_files): file_audio = str(file_audio) self.audio_signal, self.audio_fs = FileReader.read_audio( file_audio) self.silenced_signal, self.audio_fs = self.mfcc.remove_silence( file_audio) self.num_frames, self.framed_signal = self.mfcc.frame_blocking( self.silenced_signal) self.windowed_signal = self.mfcc.hamm_window(self.framed_signal) self.fft_signal = self.mfcc.calc_fft(self.windowed_signal) self.log_energy, self.fbank = self.mfcc.fbank( self.fft_signal, self.audio_fs) self.features = self.mfcc.features(self.log_energy) # var = [st.variance(self.features[:,i]) for i in xrange(self.mfcc.num_filter)] # [self.all_features.append(self.features[i,:]) for i in xrange(self.features.shape[0])] # self.variances.append(var) features = [] if TYPE == 1: file_id = self.db.insert("files", {"file_path": file_audio}) for i in xrange(self.features.shape[0]): # [31, 28, 29, 30, 27, 26, 25, 24, 23, 22, 20, 21, 19 # features.append([file_id, i, self.features[i, 1:14], str(self.par.featuresTbl.item(index,1).text())]) features.append([ file_id, i, self.features[ i, [1, 2, 3, 4, 5, 7, 6, 9, 8, 10, 11, 12, 13]], str(self.par.featuresTbl.item(index, 1).text()) ]) self.db.insert_features(features) else: output_class_id = self.db.insert( "output_classes", { "file_path": file_audio, "class": str(FileReader.get_output_class(file_audio)) }) for i in xrange(self.features.shape[0]): features.append( [output_class_id, i, self.features[i, 1:14]]) self.db.insert_features(features) self.emit(QtCore.SIGNAL("update()")) # self.variances = np.asarray(self.variances) # rata2 = [st.mean(self.variances[:,i]) for i in xrange(self.mfcc.num_filter)] # self.write_excel(rata2) # print str(np.sort(rata2)) # print str(np.argsort(rata2)) self.emit(QtCore.SIGNAL("finish()"))
def include_word(self): if self.inclWordCheck.isChecked(): for i in xrange(self.featuresTbl.rowCount()): text = str(self.featuresTbl.item(i, 0).text()) self.featuresTbl.setItem( i, 1, QtGui.QTableWidgetItem( str(FileReader.get_output_class(str(text))))) else: for i in xrange(self.featuresTbl.rowCount()): text = str(self.featuresTbl.item(i, 1).text()) self.featuresTbl.setItem( i, 1, QtGui.QTableWidgetItem(str(text[:text.rfind("-")])))
def show_open_dialog(self): audioFiles = QtGui.QFileDialog.getOpenFileNames(self, 'Open audio file', '', "Audio Files (*.wav)", None, QtGui.QFileDialog.DontUseNativeDialog) self.featuresTbl.setColumnWidth(0, 300) for file in audioFiles: self.audio_files.append(file) currentRow = self.featuresTbl.rowCount() self.featuresTbl.insertRow(currentRow) self.featuresTbl.setItem(currentRow, 0, QtGui.QTableWidgetItem(str(file))) self.featuresTbl.setItem(currentRow, 1, QtGui.QTableWidgetItem(str(FileReader.get_output_class(str(file))))) self.audioFilenameLbl.setText(": " + str(len(self.audio_files)))
def run(self): self.emit(QtCore.SIGNAL("update()")) self.mfcc.frame_size = int(self.par.frameSizeVal.currentText()) self.mfcc.overlap = self.mfcc.frame_size / 2 for index, file_audio in enumerate(self.audio_files): file_audio = str(file_audio) self.audio_signal, self.audio_fs = FileReader.read_audio(file_audio) self.silenced_signal, self.audio_fs = self.mfcc.remove_silence(file_audio) self.num_frames, self.framed_signal = self.mfcc.frame_blocking(self.silenced_signal) self.windowed_signal = self.mfcc.hamm_window(self.framed_signal) self.fft_signal = self.mfcc.calc_fft(self.windowed_signal) self.log_energy, self.fbank = self.mfcc.fbank(self.fft_signal, self.audio_fs) self.features = self.mfcc.features(self.log_energy) # var = [st.variance(self.features[:,i]) for i in xrange(self.mfcc.num_filter)] # [self.all_features.append(self.features[i,:]) for i in xrange(self.features.shape[0])] # self.variances.append(var) features = [] if TYPE == 1: file_id = self.db.insert("files", {"file_path": file_audio}) for i in xrange(self.features.shape[0]): # [31, 28, 29, 30, 27, 26, 25, 24, 23, 22, 20, 21, 19 # features.append([file_id, i, self.features[i, 1:14], str(self.par.featuresTbl.item(index,1).text())]) features.append([file_id, i, self.features[i, [1, 2, 3, 4, 5, 7, 6, 9, 8, 10, 11, 12, 13]], str(self.par.featuresTbl.item(index, 1).text())]) self.db.insert_features(features) else: output_class_id = self.db.insert("output_classes", {"file_path": file_audio, "class": str(FileReader.get_output_class(file_audio))}) for i in xrange(self.features.shape[0]): features.append([output_class_id, i, self.features[i, 1:14]]) self.db.insert_features(features) self.emit(QtCore.SIGNAL("update()")) # self.variances = np.asarray(self.variances) # rata2 = [st.mean(self.variances[:,i]) for i in xrange(self.mfcc.num_filter)] # self.write_excel(rata2) # print str(np.sort(rata2)) # print str(np.argsort(rata2)) self.emit(QtCore.SIGNAL("finish()"))
def show_open_dialog(self): audioFiles = QtGui.QFileDialog.getOpenFileNames( self, 'Open audio file', '', "Audio Files (*.wav)", None, QtGui.QFileDialog.DontUseNativeDialog) self.featuresTbl.setColumnWidth(0, 300) for file in audioFiles: self.audio_files.append(file) currentRow = self.featuresTbl.rowCount() self.featuresTbl.insertRow(currentRow) self.featuresTbl.setItem(currentRow, 0, QtGui.QTableWidgetItem(str(file))) self.featuresTbl.setItem( currentRow, 1, QtGui.QTableWidgetItem( str(FileReader.get_output_class(str(file))))) self.audioFilenameLbl.setText(": " + str(len(self.audio_files)))
def show_open_dialog(self): audioFiles = QtGui.QFileDialog.getOpenFileNames(self, 'Open audio file', '', "Audio Files (*.wav)", None, QtGui.QFileDialog.DontUseNativeDialog) for file in audioFiles: self.indic = 4 if str(file).rfind('4 Detik') != -1 else 8 speaker = str(FileReader.get_output_class(str(file))) word = speaker[speaker.rfind('-')+1:] if speaker.rfind('-') != -1 else "" self.audio_files.append(file) currentRow = self.featuresTbl.rowCount() self.featuresTbl.insertRow(currentRow) self.featuresTbl.setItem(currentRow, 0, QtGui.QTableWidgetItem(str(speaker[:speaker.rfind('-')]))) self.featuresTbl.setItem(currentRow, 1, QtGui.QTableWidgetItem(str(word))) self.audioFilenameLbl.setText(": " + str(len(self.audio_files))) self.startTestBtn.setDisabled(False) self.frameSizeVal.setDisabled(False)
def show_open_dialog(self): audioFiles = QtGui.QFileDialog.getOpenFileNames( self, 'Open audio file', '', "Audio Files (*.wav)", None, QtGui.QFileDialog.DontUseNativeDialog) for file in audioFiles: self.indic = 4 if str(file).rfind('4 Detik') != -1 else 8 speaker = str(FileReader.get_output_class(str(file))) word = speaker[speaker.rfind('-') + 1:] if speaker.rfind('-') != -1 else "" self.audio_files.append(file) currentRow = self.featuresTbl.rowCount() self.featuresTbl.insertRow(currentRow) self.featuresTbl.setItem( currentRow, 0, QtGui.QTableWidgetItem(str(speaker[:speaker.rfind('-')]))) self.featuresTbl.setItem(currentRow, 1, QtGui.QTableWidgetItem(str(word))) self.audioFilenameLbl.setText(": " + str(len(self.audio_files))) self.startTestBtn.setDisabled(False) self.frameSizeVal.setDisabled(False)
def shuffle_files(self): self.audio_files = sample(self.audio_files, len(self.audio_files)) for i in xrange(self.featuresTbl.rowCount()): self.featuresTbl.setItem(i, 0, QtGui.QTableWidgetItem(str(self.audio_files[i]))) self.featuresTbl.setItem(i, 1, QtGui.QTableWidgetItem(str(FileReader.get_output_class(str(self.audio_files[i])))))