Skip to content

Commit

Permalink
0.4.0 & fixed bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
CheshireCC committed Oct 23, 2023
1 parent 1ce2343 commit d6b2ff8
Show file tree
Hide file tree
Showing 13 changed files with 209 additions and 49 deletions.
86 changes: 69 additions & 17 deletions FasterWhisperGUI.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# coding:utf-8


import datetime
import sys

# # 将默认的递归深度修改为3000
# sys.setrecursionlimit(7000)

Expand All @@ -15,52 +17,84 @@

from PySide6.QtCore import Qt
from PySide6.QtGui import QFont, QPixmap
from PySide6.QtWidgets import QApplication, QSplashScreen
from PySide6.QtWidgets import QApplication, QSplashScreen, QVBoxLayout

from qfluentwidgets import ProgressBar


class MySplashScreen(QSplashScreen):
# 鼠标点击事件
def mousePressEvent(self, event):
pass

from resource import rc_Image


# 启动一个Qt程序,并使用传入的系统参数
app = QApplication(sys.argv)
app.setObjectName("FasterWhisperGUIAPP")


#设置启动界面
splash = MySplashScreen()

#初始图片
# splash.setPixmap(QPixmap(r":/resource/Image/FasterWhisper.png"))
splash.setPixmap(QPixmap(r":/resource/Image/SplashScreen_0.4.0.png"))
#初始文本
# splash.setWindowTitle("fasterWhisper")
splash.showMessage("Lodding...", Qt.AlignmentFlag.AlignCenter | Qt.AlignmentFlag.AlignBottom, Qt.white)
# splash.showMessage("Lodding...", Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignTop, Qt.white)

# 设置字体
splash.setFont(QFont('Segoe UI', 15))

splash.setStyleSheet("MySplashScreen{border-radius: 10px;}")
#初始文本
splash.showMessage("Loadding...", Qt.AlignmentFlag.AlignCenter | Qt.AlignmentFlag.AlignBottom, Qt.white)

# splash.setStyleSheet("MySplashScreen{border-radius: 10px;}")

ly = QVBoxLayout(splash)
splash.setLayout(ly)

pb = ProgressBar(splash)
pb.setMaximum(100)
pb.setMinimum(0)

ly.addWidget(pb,alignment=Qt.AlignmentFlag.AlignBottom)
ly.addSpacing(20)

# 显示启动界面
splash.show()
app.processEvents() # 处理主进程事件



# app.processEvents() # 处理主进程事件

import os
from PySide6.QtCore import QTranslator
import locale
# from threading import Thread
pb.setValue(10)

# splash.showMessage("import translator...") # , Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignHCenter, Qt.white)
from PySide6.QtCore import QTranslator

# splash.showMessage("import windows...") #, Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignHCenter, Qt.white)


# MainWindows_moudle = LazyImport("faster_whisper_GUI.mainWindows")
from faster_whisper_GUI.mainWindows import MainWindows
pb.setValue(60)

from resource import rc_Translater


# 主程序入口
if __name__ == "__main__":


# 修复程序路径依赖
BASE_DIR = os.path.dirname(os.path.abspath( __file__))
sys.path.append(os.path.join(BASE_DIR, 'resource'))
sys.path.append(os.path.join(BASE_DIR, 'faster_whisper_GUI'))
sys.path.append(os.path.join(BASE_DIR, 'whisperX'))
sys.path.append(os.path.join(BASE_DIR, 'ffmpeg'))
sys.path.append(os.path.join(BASE_DIR, 'cache'))

# cudn 环境现随 PyTorch 提供
# 修复环境变量 - cudnn
Expand All @@ -75,30 +109,48 @@ def mousePressEvent(self, event):
ffmpeg_dir = ";" + os.path.join(BASE_DIR, 'ffmpeg')
os.environ["path"] += ffmpeg_dir

pb.setValue(65)

# 获取当前计算机语言
language_localtion, _ = locale.getdefaultlocale()
language = language_localtion.split("_")[0]
print(f"language: {language_localtion}")


# splash.showMessage("set Language...")# , Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignHCenter, Qt.white)
# 非中文时加载语言翻译文件, 设置英文界面
if language != "zh" :
splash.showMessage(
"Install translator...",
Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignHCenter,
Qt.white
)

translator = QTranslator(app)
if translator.load(":/resource/Translater/en.qm"):
# splash.showMessage("set Language: English") #, Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignHCenter, Qt.white)
app.installTranslator(translator)

pb.setValue(70)
sys.stderr = sys.__stderr__
log_f.close()

# 实例化窗体
# splash.showMessage("Load Windows...") #, Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignHCenter, Qt.white)

mainWindows = MainWindows()
# 显示窗体
mainWindows.show()
pb.setValue(100)

# splash.requestInterruption()
# splash.stop(mainWindows)

# 隐藏启动界面
splash.finish(mainWindows)
# 将启动界面标记为稍后删除
splash.finish(mainWindows)
splash.deleteLater()

ly.deleteLater()
pb.deleteLater()

# 显示窗体
mainWindows.show()

# 退出程序,并使用app实例的退出代码
sys.exit(app.exec())

Expand Down
2 changes: 1 addition & 1 deletion fasterWhisperGUIConfig.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"use_auth_token": "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", "overlap": 0.1, "segment": 6.0}
{"use_auth_token": "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", "overlap": 0.2, "segment": 7.800000000000001}
5 changes: 4 additions & 1 deletion faster_whisper_GUI/de_mucs.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,12 +268,15 @@ def saveResult(self, model, file_path:str, sources:torch.Tensor, stems:str, outp
if not output_path:
output_path = data_dir

# if not os.path.exists(output_path):
# os.mkdir(output_path)

for stem in stems:
spec = audios[stem.lower()][:, :].cpu()
output_path_ = os.path.join(output_path, stem)
if not os.path.exists(output_path_):
print(f"create output folder: {stem}")
os.mkdir(output_path_)
os.makedirs(output_path_)

output_fileName = os.path.join(output_path_, ".".join(file_output+[f"_{stem.lower()}", "wav"]))
print(f"save file: {output_fileName}")
Expand Down
19 changes: 12 additions & 7 deletions faster_whisper_GUI/fileNameListViewInterface.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@

import os
import av

from PySide6.QtCore import (QStringListModel, Qt, QCoreApplication)
import PySide6.QtGui

from PySide6.QtGui import (QDropEvent, QDragEnterEvent)

from PySide6.QtWidgets import (
QWidget
Expand All @@ -12,19 +13,21 @@
, QListView
, QFileDialog
)
import av



from qfluentwidgets import (
ListView
, ToolButton
, FluentIcon
, InfoBar
, InfoBarPosition
)
)

from .style_sheet import StyleSheet
from .config import SUBTITLE_FORMAT


class FileNameListView(QWidget):
def __tr(self, text):
return QCoreApplication.translate(self.__class__.__name__, text)
Expand Down Expand Up @@ -235,13 +238,15 @@ def SignalAndSlotConnect(self):
self.removeFileButton.clicked.connect(self.removeFileNameFromListWidget)

# ===========================================================================================================
def dragEnterEvent(self, event: PySide6.QtGui.QDragEnterEvent):
def dragEnterEvent(self, event: QDragEnterEvent):
if event.mimeData().hasUrls():
event.acceptProposedAction() # 接受拖放事件
# acceptProposedAction 将导致 Nuitka 编译之后 拖放功能失效
# event.acceptProposedAction() # 接受拖放事件
event.accept()
else:
event.ignore()

def dropEvent(self, a0: PySide6.QtGui.QDropEvent) -> None:
def dropEvent(self, a0: QDropEvent) -> None:
"""
重写鼠标放开事件
:param a0:事件
Expand Down
Loading

0 comments on commit d6b2ff8

Please sign in to comment.