import torch import os import wavmark from wavmark.utils import file_reader from PyQt5 import QtCore, QtGui, QtWidgets device = torch.device("cuda" if torch.cuda.is_available() else "cpu") global file_path_g def funcNNWProof( input): ''' Verify the inference ''' payload = [0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1] model = wavmark.load_model().to(device) signal = file_reader.read_as_single_channel(input, aim_sr=16000) # 5.decode watermark payload_decoded, _ = wavmark.decode_watermark(model, signal, show_progress=True) if isinstance(payload_decoded, type(None)): return False BER = (payload != payload_decoded).mean() * 100 return BER == 0 class DragDropMainWindow(QtWidgets.QMainWindow): fileDropped = QtCore.pyqtSignal(str) def __init__(self, parent=None): super(DragDropMainWindow, self).__init__(parent) self.setAcceptDrops(True) def dragEnterEvent(self, event): if event.mimeData().hasUrls(): event.accept() else: event.ignore() def dropEvent(self, event): for url in event.mimeData().urls(): file_path = str(url.toLocalFile()) self.fileDropped.emit(file_path) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(300, 470, 221, 61)) self.pushButton.setObjectName("pushButton") self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(590, 60, 191, 81)) self.pushButton_2.setObjectName("pushButton_2") self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(70, 110, 721, 391)) self.label.setObjectName("label") MainWindow.setCentralWidget(self.centralwidget) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) # Connect button clicks to functions self.pushButton.clicked.connect(self.run_UseCase) self.pushButton_2.clicked.connect(self.watermark_proof) self.file_path_g=None def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.pushButton.setText(_translate("MainWindow", "Running the UseCase")) self.pushButton_2.setText(_translate("MainWindow", "Watermarking proof")) self.label.setText(_translate("MainWindow", "
