diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3258cef --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/介绍/ +*.srt +*.wav +.idea \ No newline at end of file diff --git a/PyAudio-0.2.11-cp39-cp39-win_amd64.whl b/PyAudio-0.2.11-cp39-cp39-win_amd64.whl new file mode 100644 index 0000000..d1986b0 Binary files /dev/null and b/PyAudio-0.2.11-cp39-cp39-win_amd64.whl differ diff --git a/db/data.db b/db/data.db new file mode 100644 index 0000000..c082758 Binary files /dev/null and b/db/data.db differ diff --git a/main.py b/main.py new file mode 100644 index 0000000..805abc8 --- /dev/null +++ b/main.py @@ -0,0 +1,11 @@ +import sys + +from PySide6.QtWidgets import QApplication + + +def main(): + pass + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/test.py b/test.py new file mode 100644 index 0000000..60a9037 --- /dev/null +++ b/test.py @@ -0,0 +1,18 @@ +from pydub.playback import play + +from utils import AllSound, MySound + +jr1_allsound = AllSound("./filepath/jr1.wav") +info_dict ={ + "text":"你好", + "start":10500, + "end":13700, + "checked":0, + "can_use":0, + "file_name":"jr1.wav", + "all_sound":jr1_allsound.sound +} + +short_sound = MySound(info_dict) +print(len(short_sound.sound)) +play(short_sound.sound) diff --git a/ui/gui.ui b/ui/gui.ui new file mode 100644 index 0000000..6ad0944 --- /dev/null +++ b/ui/gui.ui @@ -0,0 +1,487 @@ + + + Mainwindow + + + + 0 + 0 + 668 + 799 + + + + 语音标记 + + + + QLayout::SetMinAndMaxSize + + + + + + 16 + + + + 音频信息 + + + + + + + + + + + + 6 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + 开始时间 + + + + + + + + + + + + + + 2 + + + 2 + + + 2 + + + 2 + + + + + 结束时间 + + + + + + + + + + + + + + + + + 10 + + + + 如果你觉得时间切的不好, +请修改这里的起止时间(单位:毫秒) + + + + + + + 刷新音频和列表 +(请记得在最后点击标记) + + + + + + + + + + + + + + 3 + 0 + + + + + 16 + + + + 播放音频 + + + + + + + + + + + + + 16 + + + + 标注信息 + + + + + + + + + + + + 是否可用 + + + + + + 不可用 + + + + + + + 可用 + + + + + + + + 10 + + + + 如果你觉得这条效果太差了 +请选择不可用 + + + + + + + + + + 数据列表 + + + + + + + 10 + + + + + 新建行 + + + + + 新建行 + + + + + 新建行 + + + + + 编号 + + + + + 文本 + + + + + 检查状态 + + + + + 可用 + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 9 + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + 6 + + + QLayout::SetDefaultConstraint + + + 9 + + + 9 + + + + + + 2 + 0 + + + + + 16 + + + + 上一条 + + + + + + + + 3 + 0 + + + + + 16 + + + + 确定标注 + + + + + + + + 2 + 0 + + + + + 16 + + + + 下一条 + + + + + + + + + + + + pushButton_4 + clicked() + Mainwindow + click_refreshBTN() + + + 477 + 151 + + + 289 + 217 + + + + + pushButton_5 + clicked() + Mainwindow + click_play_soundBTN() + + + 647 + 250 + + + 667 + 207 + + + + + pushButton + clicked() + Mainwindow + click_backBTN() + + + 170 + 750 + + + 181 + 535 + + + + + pushButton_2 + clicked() + Mainwindow + click_nextBTN() + + + 561 + 760 + + + 667 + 534 + + + + + pushButton_3 + clicked() + Mainwindow + click_checkBTN() + + + 386 + 755 + + + 440 + 534 + + + + + tableWidget + itemDoubleClicked(QTableWidgetItem*) + Mainwindow + click_table() + + + 394 + 463 + + + 513 + 387 + + + + + + click_refreshBTN() + click_play_soundBTN() + click_backBTN() + click_nextBTN() + click_checkBTN() + click_table() + + diff --git a/ui/guiclass.py b/ui/guiclass.py new file mode 100644 index 0000000..766755b --- /dev/null +++ b/ui/guiclass.py @@ -0,0 +1,71 @@ +import sys + +from PySide6.QtWidgets import QApplication, QMainWindow, QFrame + +from ui import ui_main, ui_gui, ui_inputdata + + +class WorkSpaceWindow(QFrame): + def __init__(self): + super(WorkSpaceWindow, self).__init__() + self.ui = ui_gui.Ui_Mainwindow() + self.ui.setupUi(self) + + def click_refreshBTN(self): + print("刷新声音") + + def click_play_soundBTN(self): + print("播放声音") + + def click_backBTN(self): + print("返回上一个声音") + + def click_nextBTN(self): + print("继续下一个声音") + + def click_checkBTN(self): + print("确定本条声音") + + def click_table(self, a): + print(f"表格单元格被双击 {a.text()}") + + +class MainWindow(QMainWindow): + def __init__(self): + super(MainWindow, self).__init__() + self.ui = ui_main.Ui_MainWindow() + self.ui.setupUi(self) + + def to_inputfile(self): + print("前往导入文件窗口") + + def to_outputfile(self): + print("前往导出数据集窗口") + + def to_workspace(self): + print("前往数据标注窗口") + + +class InputDataWindow(QMainWindow): + def __init__(self): + super(InputDataWindow, self).__init__() + self.ui = ui_inputdata.Ui_MainWindow() + self.ui.setupUi(self) + + def double_clicked_file(self, a, b): + print(f"导入文件 {a} {b}") + + def back_to_main(self): + print(f"返回首页") + + +if __name__ == '__main__': + app = QApplication([]) + window1 = MainWindow() + window2 = WorkSpaceWindow() + window3 = InputDataWindow() + window1.show() + window2.show() + window3.show() + + sys.exit(app.exec()) diff --git a/ui/inputdata.ui b/ui/inputdata.ui new file mode 100644 index 0000000..8b69aab --- /dev/null +++ b/ui/inputdata.ui @@ -0,0 +1,149 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + 导入数据 + + + + + + + + + + + 新建行 + + + + + 新建行 + + + + + 文件名 + + + + + 1 + + + + + 2 + + + + + + + + + 文件名 + + + + + 不可导入原因 + + + + + + + + + + + + + + 请双击左上角的表格来导入对应的音频和字幕 +注意:音频只支持wav和mp3格式,且音频和字幕的文件名必须相同,后缀可以不同 + + + + + + + + 0 + 0 + + + + 返回入口 + + + + + + + + + + + + + true + + + + + + + + + + + + + tableWidget + cellDoubleClicked(int,int) + MainWindow + double_clicked_file() + + + 174 + 123 + + + 4 + 86 + + + + + pushButton + clicked() + MainWindow + back_to_main() + + + 492 + 303 + + + 573 + 271 + + + + + + double_clicked_file() + back_to_main() + + diff --git a/ui/main.ui b/ui/main.ui new file mode 100644 index 0000000..d945ae0 --- /dev/null +++ b/ui/main.ui @@ -0,0 +1,151 @@ + + + MainWindow + + + + 0 + 0 + 660 + 421 + + + + 入口 + + + + + + + + + + + 12 + + + + 导入字幕文件和音频文件 + + + + + + + 请在此表中选中你要操作的数据集 + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 12 + + + + 进入数据集编辑页面 + + + + + + + + + + + + + true + + + + 12 + + + + 导出数据集 + + + + + + + + + + + + + pushButton + clicked() + MainWindow + to_inputfile() + + + 420 + 38 + + + 345 + 64 + + + + + pushButton_3 + clicked() + MainWindow + to_outputfile() + + + 434 + 382 + + + 305 + 152 + + + + + pushButton_2 + clicked() + MainWindow + to_workspace() + + + 532 + 304 + + + 550 + 258 + + + + + + to_inputfile() + to_workspace() + to_outputfile() + + diff --git a/ui/ui_gui.py b/ui/ui_gui.py new file mode 100644 index 0000000..e47a911 --- /dev/null +++ b/ui/ui_gui.py @@ -0,0 +1,321 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'gui.ui' +## +## Created by: Qt User Interface Compiler version 6.3.0 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QApplication, QGridLayout, QGroupBox, QHBoxLayout, + QHeaderView, QLabel, QLayout, QLineEdit, + QPushButton, QRadioButton, QSizePolicy, QTableWidget, + QTableWidgetItem, QVBoxLayout, QWidget) + +class Ui_Mainwindow(object): + def setupUi(self, Mainwindow): + if not Mainwindow.objectName(): + Mainwindow.setObjectName(u"Mainwindow") + Mainwindow.resize(668, 799) + self.verticalLayout = QVBoxLayout(Mainwindow) + self.verticalLayout.setObjectName(u"verticalLayout") + self.verticalLayout.setSizeConstraint(QLayout.SetMinAndMaxSize) + self.groupBox_6 = QGroupBox(Mainwindow) + self.groupBox_6.setObjectName(u"groupBox_6") + font = QFont() + font.setPointSize(16) + self.groupBox_6.setFont(font) + self.gridLayout = QGridLayout(self.groupBox_6) + self.gridLayout.setObjectName(u"gridLayout") + self.verticalLayout_2 = QVBoxLayout() + self.verticalLayout_2.setObjectName(u"verticalLayout_2") + self.widget_2 = QWidget(self.groupBox_6) + self.widget_2.setObjectName(u"widget_2") + self.verticalLayout_5 = QVBoxLayout(self.widget_2) + self.verticalLayout_5.setObjectName(u"verticalLayout_5") + self.widget_4 = QWidget(self.widget_2) + self.widget_4.setObjectName(u"widget_4") + self.horizontalLayout_3 = QHBoxLayout(self.widget_4) + self.horizontalLayout_3.setSpacing(6) + self.horizontalLayout_3.setObjectName(u"horizontalLayout_3") + self.horizontalLayout_3.setContentsMargins(2, 2, 2, 2) + self.label_2 = QLabel(self.widget_4) + self.label_2.setObjectName(u"label_2") + + self.horizontalLayout_3.addWidget(self.label_2) + + self.lineEdit_2 = QLineEdit(self.widget_4) + self.lineEdit_2.setObjectName(u"lineEdit_2") + + self.horizontalLayout_3.addWidget(self.lineEdit_2) + + + self.verticalLayout_5.addWidget(self.widget_4) + + self.widget_5 = QWidget(self.widget_2) + self.widget_5.setObjectName(u"widget_5") + self.horizontalLayout_4 = QHBoxLayout(self.widget_5) + self.horizontalLayout_4.setObjectName(u"horizontalLayout_4") + self.horizontalLayout_4.setContentsMargins(2, 2, 2, 2) + self.label_3 = QLabel(self.widget_5) + self.label_3.setObjectName(u"label_3") + + self.horizontalLayout_4.addWidget(self.label_3) + + self.lineEdit_3 = QLineEdit(self.widget_5) + self.lineEdit_3.setObjectName(u"lineEdit_3") + + self.horizontalLayout_4.addWidget(self.lineEdit_3) + + + self.verticalLayout_5.addWidget(self.widget_5) + + self.widget_6 = QWidget(self.widget_2) + self.widget_6.setObjectName(u"widget_6") + self.horizontalLayout_5 = QHBoxLayout(self.widget_6) + self.horizontalLayout_5.setObjectName(u"horizontalLayout_5") + self.label_4 = QLabel(self.widget_6) + self.label_4.setObjectName(u"label_4") + font1 = QFont() + font1.setPointSize(10) + self.label_4.setFont(font1) + + self.horizontalLayout_5.addWidget(self.label_4) + + self.pushButton_4 = QPushButton(self.widget_6) + self.pushButton_4.setObjectName(u"pushButton_4") + + self.horizontalLayout_5.addWidget(self.pushButton_4) + + + self.verticalLayout_5.addWidget(self.widget_6) + + + self.verticalLayout_2.addWidget(self.widget_2) + + self.pushButton_5 = QPushButton(self.groupBox_6) + self.pushButton_5.setObjectName(u"pushButton_5") + sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(3) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton_5.sizePolicy().hasHeightForWidth()) + self.pushButton_5.setSizePolicy(sizePolicy) + self.pushButton_5.setFont(font) + + self.verticalLayout_2.addWidget(self.pushButton_5) + + + self.gridLayout.addLayout(self.verticalLayout_2, 1, 0, 1, 1) + + + self.verticalLayout.addWidget(self.groupBox_6) + + self.groupBox = QGroupBox(Mainwindow) + self.groupBox.setObjectName(u"groupBox") + self.groupBox.setFont(font) + self.gridLayout_2 = QGridLayout(self.groupBox) + self.gridLayout_2.setObjectName(u"gridLayout_2") + self.lineEdit = QLineEdit(self.groupBox) + self.lineEdit.setObjectName(u"lineEdit") + + self.gridLayout_2.addWidget(self.lineEdit, 0, 0, 1, 1) + + self.widget_3 = QWidget(self.groupBox) + self.widget_3.setObjectName(u"widget_3") + self.horizontalLayout = QHBoxLayout(self.widget_3) + self.horizontalLayout.setObjectName(u"horizontalLayout") + self.groupBox_2 = QGroupBox(self.widget_3) + self.groupBox_2.setObjectName(u"groupBox_2") + self.verticalLayout_3 = QVBoxLayout(self.groupBox_2) + self.verticalLayout_3.setObjectName(u"verticalLayout_3") + self.radioButton = QRadioButton(self.groupBox_2) + self.radioButton.setObjectName(u"radioButton") + + self.verticalLayout_3.addWidget(self.radioButton) + + self.radioButton_2 = QRadioButton(self.groupBox_2) + self.radioButton_2.setObjectName(u"radioButton_2") + + self.verticalLayout_3.addWidget(self.radioButton_2) + + self.label = QLabel(self.groupBox_2) + self.label.setObjectName(u"label") + self.label.setFont(font1) + + self.verticalLayout_3.addWidget(self.label) + + + self.horizontalLayout.addWidget(self.groupBox_2) + + self.groupBox_3 = QGroupBox(self.widget_3) + self.groupBox_3.setObjectName(u"groupBox_3") + self.verticalLayout_4 = QVBoxLayout(self.groupBox_3) + self.verticalLayout_4.setObjectName(u"verticalLayout_4") + self.tableWidget = QTableWidget(self.groupBox_3) + if (self.tableWidget.columnCount() < 4): + self.tableWidget.setColumnCount(4) + __qtablewidgetitem = QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem) + __qtablewidgetitem1 = QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(1, __qtablewidgetitem1) + __qtablewidgetitem2 = QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(2, __qtablewidgetitem2) + __qtablewidgetitem3 = QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(3, __qtablewidgetitem3) + if (self.tableWidget.rowCount() < 3): + self.tableWidget.setRowCount(3) + __qtablewidgetitem4 = QTableWidgetItem() + self.tableWidget.setVerticalHeaderItem(0, __qtablewidgetitem4) + __qtablewidgetitem5 = QTableWidgetItem() + self.tableWidget.setVerticalHeaderItem(1, __qtablewidgetitem5) + __qtablewidgetitem6 = QTableWidgetItem() + self.tableWidget.setVerticalHeaderItem(2, __qtablewidgetitem6) + __qtablewidgetitem7 = QTableWidgetItem() + self.tableWidget.setItem(0, 0, __qtablewidgetitem7) + __qtablewidgetitem8 = QTableWidgetItem() + self.tableWidget.setItem(0, 1, __qtablewidgetitem8) + __qtablewidgetitem9 = QTableWidgetItem() + self.tableWidget.setItem(0, 2, __qtablewidgetitem9) + __qtablewidgetitem10 = QTableWidgetItem() + self.tableWidget.setItem(0, 3, __qtablewidgetitem10) + __qtablewidgetitem11 = QTableWidgetItem() + self.tableWidget.setItem(1, 0, __qtablewidgetitem11) + __qtablewidgetitem12 = QTableWidgetItem() + self.tableWidget.setItem(1, 1, __qtablewidgetitem12) + __qtablewidgetitem13 = QTableWidgetItem() + self.tableWidget.setItem(1, 2, __qtablewidgetitem13) + __qtablewidgetitem14 = QTableWidgetItem() + self.tableWidget.setItem(1, 3, __qtablewidgetitem14) + self.tableWidget.setObjectName(u"tableWidget") + self.tableWidget.setFont(font1) + + self.verticalLayout_4.addWidget(self.tableWidget) + + + self.horizontalLayout.addWidget(self.groupBox_3) + + + self.gridLayout_2.addWidget(self.widget_3, 1, 0, 1, 1) + + + self.verticalLayout.addWidget(self.groupBox) + + self.widget = QWidget(Mainwindow) + self.widget.setObjectName(u"widget") + sizePolicy1 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) + sizePolicy1.setHorizontalStretch(0) + sizePolicy1.setVerticalStretch(0) + sizePolicy1.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth()) + self.widget.setSizePolicy(sizePolicy1) + self.horizontalLayout_2 = QHBoxLayout(self.widget) + self.horizontalLayout_2.setSpacing(6) + self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") + self.horizontalLayout_2.setSizeConstraint(QLayout.SetDefaultConstraint) + self.horizontalLayout_2.setContentsMargins(9, -1, -1, 9) + self.pushButton = QPushButton(self.widget) + self.pushButton.setObjectName(u"pushButton") + sizePolicy2 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) + sizePolicy2.setHorizontalStretch(2) + sizePolicy2.setVerticalStretch(0) + sizePolicy2.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth()) + self.pushButton.setSizePolicy(sizePolicy2) + self.pushButton.setFont(font) + + self.horizontalLayout_2.addWidget(self.pushButton) + + self.pushButton_3 = QPushButton(self.widget) + self.pushButton_3.setObjectName(u"pushButton_3") + sizePolicy.setHeightForWidth(self.pushButton_3.sizePolicy().hasHeightForWidth()) + self.pushButton_3.setSizePolicy(sizePolicy) + self.pushButton_3.setFont(font) + + self.horizontalLayout_2.addWidget(self.pushButton_3) + + self.pushButton_2 = QPushButton(self.widget) + self.pushButton_2.setObjectName(u"pushButton_2") + sizePolicy2.setHeightForWidth(self.pushButton_2.sizePolicy().hasHeightForWidth()) + self.pushButton_2.setSizePolicy(sizePolicy2) + self.pushButton_2.setFont(font) + + self.horizontalLayout_2.addWidget(self.pushButton_2) + + + self.verticalLayout.addWidget(self.widget) + + + self.retranslateUi(Mainwindow) + self.pushButton_4.clicked.connect(Mainwindow.click_refreshBTN) + self.pushButton_5.clicked.connect(Mainwindow.click_play_soundBTN) + self.pushButton.clicked.connect(Mainwindow.click_backBTN) + self.pushButton_2.clicked.connect(Mainwindow.click_nextBTN) + self.pushButton_3.clicked.connect(Mainwindow.click_checkBTN) + self.tableWidget.itemDoubleClicked.connect(Mainwindow.click_table) + + QMetaObject.connectSlotsByName(Mainwindow) + # setupUi + + def retranslateUi(self, Mainwindow): + Mainwindow.setWindowTitle(QCoreApplication.translate("Mainwindow", u"\u8bed\u97f3\u6807\u8bb0", None)) + self.groupBox_6.setTitle(QCoreApplication.translate("Mainwindow", u"\u97f3\u9891\u4fe1\u606f", None)) + self.label_2.setText(QCoreApplication.translate("Mainwindow", u"\u5f00\u59cb\u65f6\u95f4", None)) + self.label_3.setText(QCoreApplication.translate("Mainwindow", u"\u7ed3\u675f\u65f6\u95f4", None)) + self.label_4.setText(QCoreApplication.translate("Mainwindow", u"\u5982\u679c\u4f60\u89c9\u5f97\u65f6\u95f4\u5207\u7684\u4e0d\u597d\uff0c\n" +"\u8bf7\u4fee\u6539\u8fd9\u91cc\u7684\u8d77\u6b62\u65f6\u95f4\uff08\u5355\u4f4d\uff1a\u6beb\u79d2\uff09", None)) + self.pushButton_4.setText(QCoreApplication.translate("Mainwindow", u"\u5237\u65b0\u97f3\u9891\u548c\u5217\u8868\n" +"\uff08\u8bf7\u8bb0\u5f97\u5728\u6700\u540e\u70b9\u51fb\u6807\u8bb0\uff09", None)) + self.pushButton_5.setText(QCoreApplication.translate("Mainwindow", u"\u64ad\u653e\u97f3\u9891", None)) + self.groupBox.setTitle(QCoreApplication.translate("Mainwindow", u"\u6807\u6ce8\u4fe1\u606f", None)) + self.groupBox_2.setTitle(QCoreApplication.translate("Mainwindow", u"\u662f\u5426\u53ef\u7528", None)) + self.radioButton.setText(QCoreApplication.translate("Mainwindow", u"\u4e0d\u53ef\u7528", None)) + self.radioButton_2.setText(QCoreApplication.translate("Mainwindow", u"\u53ef\u7528", None)) + self.label.setText(QCoreApplication.translate("Mainwindow", u"\u5982\u679c\u4f60\u89c9\u5f97\u8fd9\u6761\u6548\u679c\u592a\u5dee\u4e86\n" +"\u8bf7\u9009\u62e9\u4e0d\u53ef\u7528", None)) + self.groupBox_3.setTitle(QCoreApplication.translate("Mainwindow", u"\u6570\u636e\u5217\u8868", None)) + ___qtablewidgetitem = self.tableWidget.horizontalHeaderItem(0) + ___qtablewidgetitem.setText(QCoreApplication.translate("Mainwindow", u"\u7f16\u53f7", None)); + ___qtablewidgetitem1 = self.tableWidget.horizontalHeaderItem(1) + ___qtablewidgetitem1.setText(QCoreApplication.translate("Mainwindow", u"\u6587\u672c", None)); + ___qtablewidgetitem2 = self.tableWidget.horizontalHeaderItem(2) + ___qtablewidgetitem2.setText(QCoreApplication.translate("Mainwindow", u"\u68c0\u67e5\u72b6\u6001", None)); + ___qtablewidgetitem3 = self.tableWidget.horizontalHeaderItem(3) + ___qtablewidgetitem3.setText(QCoreApplication.translate("Mainwindow", u"\u53ef\u7528", None)); + ___qtablewidgetitem4 = self.tableWidget.verticalHeaderItem(0) + ___qtablewidgetitem4.setText(QCoreApplication.translate("Mainwindow", u"\u65b0\u5efa\u884c", None)); + ___qtablewidgetitem5 = self.tableWidget.verticalHeaderItem(1) + ___qtablewidgetitem5.setText(QCoreApplication.translate("Mainwindow", u"\u65b0\u5efa\u884c", None)); + ___qtablewidgetitem6 = self.tableWidget.verticalHeaderItem(2) + ___qtablewidgetitem6.setText(QCoreApplication.translate("Mainwindow", u"\u65b0\u5efa\u884c", None)); + + __sortingEnabled = self.tableWidget.isSortingEnabled() + self.tableWidget.setSortingEnabled(False) + ___qtablewidgetitem7 = self.tableWidget.item(0, 0) + ___qtablewidgetitem7.setText(QCoreApplication.translate("Mainwindow", u"1", None)); + ___qtablewidgetitem8 = self.tableWidget.item(0, 1) + ___qtablewidgetitem8.setText(QCoreApplication.translate("Mainwindow", u"2", None)); + ___qtablewidgetitem9 = self.tableWidget.item(0, 2) + ___qtablewidgetitem9.setText(QCoreApplication.translate("Mainwindow", u"3", None)); + ___qtablewidgetitem10 = self.tableWidget.item(0, 3) + ___qtablewidgetitem10.setText(QCoreApplication.translate("Mainwindow", u"4", None)); + ___qtablewidgetitem11 = self.tableWidget.item(1, 0) + ___qtablewidgetitem11.setText(QCoreApplication.translate("Mainwindow", u"5", None)); + ___qtablewidgetitem12 = self.tableWidget.item(1, 1) + ___qtablewidgetitem12.setText(QCoreApplication.translate("Mainwindow", u"6", None)); + ___qtablewidgetitem13 = self.tableWidget.item(1, 2) + ___qtablewidgetitem13.setText(QCoreApplication.translate("Mainwindow", u"7", None)); + ___qtablewidgetitem14 = self.tableWidget.item(1, 3) + ___qtablewidgetitem14.setText(QCoreApplication.translate("Mainwindow", u"9", None)); + self.tableWidget.setSortingEnabled(__sortingEnabled) + + self.pushButton.setText(QCoreApplication.translate("Mainwindow", u"\u4e0a\u4e00\u6761", None)) + self.pushButton_3.setText(QCoreApplication.translate("Mainwindow", u"\u786e\u5b9a\u6807\u6ce8", None)) + self.pushButton_2.setText(QCoreApplication.translate("Mainwindow", u"\u4e0b\u4e00\u6761", None)) + # retranslateUi + diff --git a/ui/ui_inputdata.py b/ui/ui_inputdata.py new file mode 100644 index 0000000..55cfcca --- /dev/null +++ b/ui/ui_inputdata.py @@ -0,0 +1,137 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'inputdata.ui' +## +## Created by: Qt User Interface Compiler version 6.3.0 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QApplication, QHBoxLayout, QHeaderView, QLabel, + QMainWindow, QPushButton, QSizePolicy, QTableWidget, + QTableWidgetItem, QTextEdit, QVBoxLayout, QWidget) + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + if not MainWindow.objectName(): + MainWindow.setObjectName(u"MainWindow") + MainWindow.resize(800, 600) + self.centralwidget = QWidget(MainWindow) + self.centralwidget.setObjectName(u"centralwidget") + self.verticalLayout = QVBoxLayout(self.centralwidget) + self.verticalLayout.setObjectName(u"verticalLayout") + self.widget = QWidget(self.centralwidget) + self.widget.setObjectName(u"widget") + self.horizontalLayout = QHBoxLayout(self.widget) + self.horizontalLayout.setObjectName(u"horizontalLayout") + self.tableWidget = QTableWidget(self.widget) + if (self.tableWidget.columnCount() < 1): + self.tableWidget.setColumnCount(1) + __qtablewidgetitem = QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem) + if (self.tableWidget.rowCount() < 2): + self.tableWidget.setRowCount(2) + __qtablewidgetitem1 = QTableWidgetItem() + self.tableWidget.setVerticalHeaderItem(0, __qtablewidgetitem1) + __qtablewidgetitem2 = QTableWidgetItem() + self.tableWidget.setVerticalHeaderItem(1, __qtablewidgetitem2) + __qtablewidgetitem3 = QTableWidgetItem() + self.tableWidget.setItem(0, 0, __qtablewidgetitem3) + __qtablewidgetitem4 = QTableWidgetItem() + self.tableWidget.setItem(1, 0, __qtablewidgetitem4) + self.tableWidget.setObjectName(u"tableWidget") + + self.horizontalLayout.addWidget(self.tableWidget) + + self.tableWidget_2 = QTableWidget(self.widget) + if (self.tableWidget_2.columnCount() < 2): + self.tableWidget_2.setColumnCount(2) + __qtablewidgetitem5 = QTableWidgetItem() + self.tableWidget_2.setHorizontalHeaderItem(0, __qtablewidgetitem5) + __qtablewidgetitem6 = QTableWidgetItem() + self.tableWidget_2.setHorizontalHeaderItem(1, __qtablewidgetitem6) + self.tableWidget_2.setObjectName(u"tableWidget_2") + + self.horizontalLayout.addWidget(self.tableWidget_2) + + + self.verticalLayout.addWidget(self.widget) + + self.widget_2 = QWidget(self.centralwidget) + self.widget_2.setObjectName(u"widget_2") + self.horizontalLayout_2 = QHBoxLayout(self.widget_2) + self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") + self.label = QLabel(self.widget_2) + self.label.setObjectName(u"label") + + self.horizontalLayout_2.addWidget(self.label) + + self.pushButton = QPushButton(self.widget_2) + self.pushButton.setObjectName(u"pushButton") + sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth()) + self.pushButton.setSizePolicy(sizePolicy) + + self.horizontalLayout_2.addWidget(self.pushButton) + + + self.verticalLayout.addWidget(self.widget_2) + + self.widget_3 = QWidget(self.centralwidget) + self.widget_3.setObjectName(u"widget_3") + self.horizontalLayout_3 = QHBoxLayout(self.widget_3) + self.horizontalLayout_3.setObjectName(u"horizontalLayout_3") + self.textEdit = QTextEdit(self.widget_3) + self.textEdit.setObjectName(u"textEdit") + self.textEdit.setReadOnly(True) + + self.horizontalLayout_3.addWidget(self.textEdit) + + + self.verticalLayout.addWidget(self.widget_3) + + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + self.tableWidget.cellDoubleClicked.connect(MainWindow.double_clicked_file) + self.pushButton.clicked.connect(MainWindow.back_to_main) + + QMetaObject.connectSlotsByName(MainWindow) + # setupUi + + def retranslateUi(self, MainWindow): + MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"\u5bfc\u5165\u6570\u636e", None)) + ___qtablewidgetitem = self.tableWidget.horizontalHeaderItem(0) + ___qtablewidgetitem.setText(QCoreApplication.translate("MainWindow", u"\u6587\u4ef6\u540d", None)); + ___qtablewidgetitem1 = self.tableWidget.verticalHeaderItem(0) + ___qtablewidgetitem1.setText(QCoreApplication.translate("MainWindow", u"\u65b0\u5efa\u884c", None)); + ___qtablewidgetitem2 = self.tableWidget.verticalHeaderItem(1) + ___qtablewidgetitem2.setText(QCoreApplication.translate("MainWindow", u"\u65b0\u5efa\u884c", None)); + + __sortingEnabled = self.tableWidget.isSortingEnabled() + self.tableWidget.setSortingEnabled(False) + ___qtablewidgetitem3 = self.tableWidget.item(0, 0) + ___qtablewidgetitem3.setText(QCoreApplication.translate("MainWindow", u"1", None)); + ___qtablewidgetitem4 = self.tableWidget.item(1, 0) + ___qtablewidgetitem4.setText(QCoreApplication.translate("MainWindow", u"2", None)); + self.tableWidget.setSortingEnabled(__sortingEnabled) + + ___qtablewidgetitem5 = self.tableWidget_2.horizontalHeaderItem(0) + ___qtablewidgetitem5.setText(QCoreApplication.translate("MainWindow", u"\u6587\u4ef6\u540d", None)); + ___qtablewidgetitem6 = self.tableWidget_2.horizontalHeaderItem(1) + ___qtablewidgetitem6.setText(QCoreApplication.translate("MainWindow", u"\u4e0d\u53ef\u5bfc\u5165\u539f\u56e0", None)); + self.label.setText(QCoreApplication.translate("MainWindow", u"\u8bf7\u53cc\u51fb\u5de6\u4e0a\u89d2\u7684\u8868\u683c\u6765\u5bfc\u5165\u5bf9\u5e94\u7684\u97f3\u9891\u548c\u5b57\u5e55\n" +"\u6ce8\u610f\uff1a\u97f3\u9891\u53ea\u652f\u6301wav\u548cmp3\u683c\u5f0f\uff0c\u4e14\u97f3\u9891\u548c\u5b57\u5e55\u7684\u6587\u4ef6\u540d\u5fc5\u987b\u76f8\u540c\uff0c\u540e\u7f00\u53ef\u4ee5\u4e0d\u540c", None)) + self.pushButton.setText(QCoreApplication.translate("MainWindow", u"\u8fd4\u56de\u5165\u53e3", None)) + # retranslateUi + diff --git a/ui/ui_main.py b/ui/ui_main.py new file mode 100644 index 0000000..00ae76b --- /dev/null +++ b/ui/ui_main.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'main.ui' +## +## Created by: Qt User Interface Compiler version 6.3.0 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QApplication, QLabel, QListWidget, QListWidgetItem, + QMainWindow, QPushButton, QSizePolicy, QVBoxLayout, + QWidget) + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + if not MainWindow.objectName(): + MainWindow.setObjectName(u"MainWindow") + MainWindow.resize(660, 421) + self.centralwidget = QWidget(MainWindow) + self.centralwidget.setObjectName(u"centralwidget") + self.verticalLayout_2 = QVBoxLayout(self.centralwidget) + self.verticalLayout_2.setObjectName(u"verticalLayout_2") + self.widget = QWidget(self.centralwidget) + self.widget.setObjectName(u"widget") + self.verticalLayout = QVBoxLayout(self.widget) + self.verticalLayout.setObjectName(u"verticalLayout") + self.pushButton = QPushButton(self.widget) + self.pushButton.setObjectName(u"pushButton") + font = QFont() + font.setPointSize(12) + self.pushButton.setFont(font) + + self.verticalLayout.addWidget(self.pushButton) + + self.label = QLabel(self.widget) + self.label.setObjectName(u"label") + + self.verticalLayout.addWidget(self.label) + + self.listWidget = QListWidget(self.widget) + self.listWidget.setObjectName(u"listWidget") + sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.listWidget.sizePolicy().hasHeightForWidth()) + self.listWidget.setSizePolicy(sizePolicy) + + self.verticalLayout.addWidget(self.listWidget) + + + self.verticalLayout_2.addWidget(self.widget) + + self.widget_2 = QWidget(self.centralwidget) + self.widget_2.setObjectName(u"widget_2") + self.verticalLayout_3 = QVBoxLayout(self.widget_2) + self.verticalLayout_3.setObjectName(u"verticalLayout_3") + self.pushButton_2 = QPushButton(self.widget_2) + self.pushButton_2.setObjectName(u"pushButton_2") + self.pushButton_2.setFont(font) + + self.verticalLayout_3.addWidget(self.pushButton_2) + + + self.verticalLayout_2.addWidget(self.widget_2) + + self.widget_3 = QWidget(self.centralwidget) + self.widget_3.setObjectName(u"widget_3") + self.verticalLayout_4 = QVBoxLayout(self.widget_3) + self.verticalLayout_4.setObjectName(u"verticalLayout_4") + self.pushButton_3 = QPushButton(self.widget_3) + self.pushButton_3.setObjectName(u"pushButton_3") + self.pushButton_3.setEnabled(True) + self.pushButton_3.setFont(font) + + self.verticalLayout_4.addWidget(self.pushButton_3) + + + self.verticalLayout_2.addWidget(self.widget_3) + + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + self.pushButton.clicked.connect(MainWindow.to_inputfile) + self.pushButton_3.clicked.connect(MainWindow.to_outputfile) + self.pushButton_2.clicked.connect(MainWindow.to_workspace) + + QMetaObject.connectSlotsByName(MainWindow) + # setupUi + + def retranslateUi(self, MainWindow): + MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"\u5165\u53e3", None)) + self.pushButton.setText(QCoreApplication.translate("MainWindow", u"\u5bfc\u5165\u5b57\u5e55\u6587\u4ef6\u548c\u97f3\u9891\u6587\u4ef6", None)) + self.label.setText(QCoreApplication.translate("MainWindow", u"\u8bf7\u5728\u6b64\u8868\u4e2d\u9009\u4e2d\u4f60\u8981\u64cd\u4f5c\u7684\u6570\u636e\u96c6", None)) + self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"\u8fdb\u5165\u6570\u636e\u96c6\u7f16\u8f91\u9875\u9762", None)) + self.pushButton_3.setText(QCoreApplication.translate("MainWindow", u"\u5bfc\u51fa\u6570\u636e\u96c6", None)) + # retranslateUi + diff --git a/utils.py b/utils.py new file mode 100644 index 0000000..a276914 --- /dev/null +++ b/utils.py @@ -0,0 +1,53 @@ +import sqlite3 + +from pydub import AudioSegment + +db_path = "db/data.db" +file_dict_path = "filepath/" + + +class LiteDB: + def __init__(self): + self.conn = sqlite3.connect('db/data.db') + print("数据库打开成功") + + def close(self): + self.conn.close() + + def select_all(self): + c = self.conn.cursor() + result = c.execute("select * from sound") + return result + + def select_unchecked(self): + c = self.conn.cursor() + result = c.execute("SELECT sound_text,sound_start,sound_end,checked,can_use FROM sound") + return result + + +class MySound: + def __init__(self, info_dict): + self.text = info_dict["text"] + self.start = info_dict["start"] + self.end = info_dict["end"] + self.checked = info_dict["checked"] + self.can_use = info_dict["can_use"] + self.file_name = info_dict["file_name"] + self.sound = cut_sound(info_dict["all_sound"],self.start,self.end) + + +class AllSound: + def __init__(self, file_path): + self.sound = get_sound(file_path) + + +def get_sound(file_path): + file_type = file_path.split(".")[-1:][0] + if file_type == "mp3": + return AudioSegment.from_mp3(file_path) + elif file_type == "wav": + return AudioSegment.from_wav(file_path) + + +def cut_sound(sound, start, end): + return sound[start:end]