Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
accessibility_movie_2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵心治
accessibility_movie_2
Commits
7db705f9
Commit
7db705f9
authored
Aug 28, 2023
by
陈晓勇(工程师)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bugfix 4 insert aside
parent
b20c1c20
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
64 additions
and
31 deletions
+64
-31
cap.png
cap.png
+0
-0
detect_with_ocr.py
detect_with_ocr.py
+1
-0
main_window.py
main_window.py
+21
-12
main_window_ui.py
main_window_ui.py
+9
-1
management.py
management.py
+16
-5
start.py
start.py
+17
-13
No files found.
cap.png
deleted
100644 → 0
View file @
b20c1c20
34.8 KB
detect_with_ocr.py
View file @
7db705f9
...
...
@@ -388,6 +388,7 @@ def add_to_list(mainWindow: MainWindow, element_type: str, li: list):
st_time_sec
,
ed_time_sec
,
subtitle
,
suggest
=
li
print
(
">>>>>>>>start time:"
)
print
(
aside_head_time
)
print
(
st_time_sec
)
if
(
st_time_sec
!=
None
and
st_time_sec
!=
""
and
aside_head_time
>
float
(
st_time_sec
)):
print
(
">>>>>>need del"
)
...
...
main_window.py
View file @
7db705f9
...
...
@@ -229,6 +229,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self
.
down_ocr_bottom
)
self
.
confirm_head_aside_btn
.
clicked
.
connect
(
self
.
confirm_head_aside
)
self
.
detect_btn
.
clicked
.
connect
(
self
.
show_detect_dialog
)
"""视频预览相关信息
...
...
@@ -298,13 +300,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# all_tableHead.resizeSection(1,100)
all_tableHead
.
setSectionResizeMode
(
2
,
QtWidgets
.
QHeaderView
.
Fixed
)
all_tableHead
.
resizeSection
(
2
,
1
80
)
all_tableHead
.
resizeSection
(
2
,
1
75
)
# all_tableHead.setSectionResizeMode(
# 3, QtWidgets.QHeaderView.Fixed)
# all_tableHead.resizeSection(3,100)
all_tableHead
.
setSectionResizeMode
(
4
,
QtWidgets
.
QHeaderView
.
Fixed
)
all_tableHead
.
resizeSection
(
4
,
40
0
)
all_tableHead
.
resizeSection
(
4
,
39
0
)
# all_tableHead.setSectionResizeMode(
# 6, QtWidgets.QHeaderView.Fixed)
# all_tableHead.resizeSection(6,50)
...
...
@@ -1524,9 +1526,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# 只有更新语速或者更新旁白,才需要重新生成音频
if
col
not
in
constant
.
Content
.
ActivateColumns
:
return
print
(
">>>>>>>>>>>into audio"
)
if
self
.
projectContext
.
initial_ing
==
True
:
print
(
">>>>>>>>>>>>aa11"
)
return
if
item
is
None
:
print
(
"WRONG!!!! item Is None"
)
...
...
@@ -1542,7 +1542,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self
.
audio_player
.
setMedia
(
QMediaContent
())
# 合成这一段语音
print
(
">>>>>>>>start audio"
)
self
.
do_generate_audio_by_aside_row_all
(
int
(
row
))
except
Exception
as
e
:
print
(
e
)
...
...
@@ -1993,10 +1992,16 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx+1].st_time_sec, "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
# else:
# self.add_line_operation_slot(idx, str(cur_time), str(cur_time+1), "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
if
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
==
None
or
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
==
""
:
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
=
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
st_time_sec
if
idx
<
len
(
self
.
projectContext
.
all_elements
)
-
1
:
self
.
add_line_operation_slot
(
idx
,
str
(
cur_time
),
self
.
projectContext
.
all_elements
[
idx
+
1
]
.
st_time_sec
,
""
,
"0/100"
,
""
,
self
.
projectContext
.
speaker_speed
)
# self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx].st_time_sec, "", "0/100", "", self.projectContext.speaker_speed)
if
idx
==
0
:
self
.
add_line_operation_slot
(
idx
,
self
.
projectContext
.
all_elements
[
idx
]
.
st_time_sec
,
self
.
projectContext
.
all_elements
[
idx
]
.
st_time_sec
,
""
,
"0/100"
,
""
,
self
.
projectContext
.
speaker_speed
)
else
:
self
.
add_line_operation_slot
(
idx
,
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
,
self
.
projectContext
.
all_elements
[
idx
]
.
st_time_sec
,
""
,
"0/100"
,
""
,
self
.
projectContext
.
speaker_speed
)
else
:
self
.
add_line_operation_slot
(
idx
,
s
tr
(
cur_time
)
,
str
(
cur_time
+
1
),
""
,
"0/100"
,
""
,
self
.
projectContext
.
speaker_speed
)
self
.
add_line_operation_slot
(
idx
,
s
elf
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
,
str
(
cur_time
+
1
),
""
,
"0/100"
,
""
,
self
.
projectContext
.
speaker_speed
)
def
insert_aside_from_cur_time
(
self
,
cur_time
:
float
):
...
...
@@ -2018,10 +2023,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx+1].st_time_sec, "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
# else:
# self.add_line_operation_slot(idx, str(cur_time), str(cur_time+1), "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
if
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
==
None
or
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
==
""
:
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
=
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
st_time_sec
if
idx
<
len
(
self
.
projectContext
.
all_elements
)
-
1
:
self
.
add_line_operation_slot
(
idx
,
str
(
cur_time
),
self
.
projectContext
.
all_elements
[
idx
+
1
]
.
st_time_sec
,
""
,
"0"
,
""
,
self
.
projectContext
.
speaker_speed
)
# self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx].st_time_sec, "", "0/100", "", self.projectContext.speaker_speed)
self
.
add_line_operation_slot
(
idx
,
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
,
self
.
projectContext
.
all_elements
[
idx
]
.
st_time_sec
,
""
,
"0/100"
,
""
,
self
.
projectContext
.
speaker_speed
)
else
:
self
.
add_line_operation_slot
(
idx
,
str
(
cur_time
),
str
(
cur_time
+
1
),
""
,
"0"
,
""
,
self
.
projectContext
.
speaker_speed
)
# self.add_line_operation_slot(idx, self.projectContext.all_elements[idx - 1].ed_time_sec, str(cur_time+1), "", "0/100", "", self.projectContext.speaker_speed)
self
.
add_line_operation_slot
(
idx
,
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
,
self
.
projectContext
.
all_elements
[
idx
-
1
]
.
ed_time_sec
,
""
,
"0/100"
,
""
,
self
.
projectContext
.
speaker_speed
)
def
calculate_element_row
(
self
,
cur_time
:
float
):
"""确认表格中适合cur_time的插入位置
...
...
@@ -2079,9 +2088,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
speed (str): 旁白语速
"""
# 注意,这里需要用同一对象,不能生成多个Element
if
end_time
is
None
or
end_time
==
""
:
print
(
">>>>>>>>>>>>add line"
)
end_time
=
self
.
projectContext
.
all_elements
[
int
(
row
)]
.
st_time_sec
#
if end_time is None or end_time == "":
#
print(">>>>>>>>>>>>add line")
#
end_time = self.projectContext.all_elements[int(row)].st_time_sec
new_element
=
Element
(
start_time
,
end_time
,
subtitle
,
suggest
,
aside
,
speed
)
new_element
.
print_self
()
self
.
projectContext
.
all_elements
.
insert
(
int
(
row
),
new_element
)
...
...
main_window_ui.py
View file @
7db705f9
...
...
@@ -327,9 +327,16 @@ class Ui_MainWindow(object):
self
.
confirm_head_aside_btn
=
QtWidgets
.
QPushButton
(
self
.
centralwidget
)
self
.
confirm_head_aside_btn
.
setObjectName
(
"confirm_head_aside_btn"
)
self
.
horizontalLayout_7
.
addWidget
(
self
.
confirm_head_aside_btn
)
self
.
horizontalLayout_8
=
QtWidgets
.
QHBoxLayout
()
self
.
horizontalLayout_8
.
setObjectName
(
"horizontalLayout_8"
)
self
.
detect_btn
=
QtWidgets
.
QPushButton
(
self
.
centralwidget
)
self
.
detect_btn
.
setObjectName
(
"detect_btn"
)
self
.
horizontalLayout_8
.
addWidget
(
self
.
detect_btn
)
self
.
verticalLayout_2
.
addLayout
(
self
.
horizontalLayout_6
)
self
.
verticalLayout_2
.
addLayout
(
self
.
horizontalLayout_7
)
self
.
verticalLayout_2
.
addLayout
(
self
.
horizontalLayout_8
)
self
.
verticalLayout_2
.
setStretch
(
0
,
8
)
self
.
verticalLayout_2
.
setStretch
(
1
,
1
)
self
.
shuiping
.
addLayout
(
self
.
verticalLayout_2
)
...
...
@@ -568,7 +575,7 @@ class Ui_MainWindow(object):
self
.
menubar
.
addAction
(
self
.
menu
.
menuAction
())
# self.menubar.addAction(self.menu_2.menuAction())
# self.menubar.addAction(self.menu_7.menuAction())
self
.
menubar
.
addAction
(
self
.
action_3
)
#
self.menubar.addAction(self.action_3)
self
.
menubar
.
addAction
(
self
.
action_4
)
self
.
menubar
.
addAction
(
self
.
action_5
)
...
...
@@ -597,6 +604,7 @@ class Ui_MainWindow(object):
self
.
up_ocr_bottom_btn
.
setText
(
_translate
(
"MainWindow"
,
"字幕下边界上移"
))
self
.
down_ocr_bottom_btn
.
setText
(
_translate
(
"MainWindow"
,
"字幕下边界下移"
))
self
.
confirm_head_aside_btn
.
setText
(
_translate
(
"MainWindow"
,
"片头旁白定位"
))
self
.
detect_btn
.
setText
(
_translate
(
"MainWindow"
,
"旁白区间检测"
))
self
.
tabWidget
.
setTabText
(
self
.
tabWidget
.
indexOf
(
self
.
all_tab
),
_translate
(
"MainWindow"
,
"字幕旁白"
))
self
.
tabWidget
.
setTabText
(
self
.
tabWidget
.
indexOf
(
self
.
zm_tab
),
_translate
(
"MainWindow"
,
"字幕"
))
self
.
tabWidget
.
setTabText
(
self
.
tabWidget
.
indexOf
(
self
.
pb_tab
),
_translate
(
"MainWindow"
,
"旁白"
))
...
...
management.py
View file @
7db705f9
...
...
@@ -279,7 +279,12 @@ class ProjectContext:
# todo:现在是只用None判断是否是字幕,后续是否也需要用""来?
for
i
in
range
(
len
(
d
[
"字幕"
])):
st_time_sec
,
ed_time_sec
,
subtitle
,
suggest
,
aside
,
speed
=
[
d
[
x
][
i
]
for
x
in
self
.
header
]
print
(
">>>>>>>>>>>>>>load ed time"
)
print
(
st_time_sec
)
print
(
ed_time_sec
)
if
ed_time_sec
==
None
or
ed_time_sec
==
""
:
print
(
">>>>into load"
)
ed_time_sec
=
st_time_sec
# 当前条目是字幕
if
d
[
"字幕"
][
i
]
!=
None
:
st_time_sec
=
reverse_time_to_seconds
(
str
(
st_time_sec
))
...
...
@@ -302,13 +307,22 @@ class ProjectContext:
if
d
[
"终止时间"
][
i
]
is
None
:
# 如果是最后一条
if
i
==
len
(
d
[
"字幕"
])
-
1
:
ed_time_sec
=
"360000"
if
self
.
duration
==
0
else
self
.
duration
# todo 默认最大时长是100h
print
(
1
)
# ed_time_sec = "360000" if self.duration == 0 else self.duration # todo 默认最大时长是100h
else
:
ed_time_sec
=
"
%.2
f"
%
(
float
(
d
[
"起始时间"
][
i
+
1
])
-
0.01
)
else
:
ed_time_sec
=
d
[
"终止时间"
][
i
]
st_time_sec
=
reverse_time_to_seconds
(
str
(
st_time_sec
))
ed_time_sec
=
reverse_time_to_seconds
(
str
(
ed_time_sec
))
if
aside
==
None
:
aside
=
""
if
suggest
!=
None
and
suggest
!=
""
:
arrays
=
suggest
.
split
(
"/"
)
if
len
(
arrays
)
==
2
:
suggest
=
str
(
len
(
aside
))
+
"/"
+
arrays
[
1
]
else
:
suggest
=
str
(
len
(
aside
))
+
"/"
+
arrays
[
0
]
self
.
aside_list
.
append
(
Element
(
st_time_sec
,
ed_time_sec
,
subtitle
,
suggest
,
aside
,
speed
))
self
.
all_elements
.
append
(
self
.
aside_list
[
-
1
])
# print("[load_excel_from_path] ", end='')
...
...
@@ -464,15 +478,12 @@ def write_to_sheet(path: str, sheet_name: str, valuelist: list):
suggest
=
value
[
3
]
print
(
">>>>>>>>>>>>>>>>>>>suggest:"
+
suggest
)
if
suggest
!=
None
and
suggest
!=
""
:
arrays
=
suggest
.
split
(
"/"
)
if
len
(
arrays
)
==
2
:
value
[
3
]
=
str
(
len
(
value
[
4
]))
+
"/"
+
arrays
[
1
]
print
(
">>>>>>>>>>>>v3:"
+
value
[
3
])
else
:
value
[
3
]
=
str
(
len
(
value
[
4
]))
+
"/"
+
arrays
[
0
]
print
(
">>>>>>>>>>>>v3:"
+
value
[
3
])
index
=
len
(
value
)
cur_row
=
sheet
.
max_row
...
...
start.py
View file @
7db705f9
...
...
@@ -69,19 +69,21 @@ if __name__ == '__main__':
# QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
# currentExitCode = MainWindow.EXIT_CODE_REBOOT
if
not
os
.
path
.
exists
(
"C:
\
LavFilters"
)
and
not
os
.
path
.
exists
(
"C:
\
Program Files (x86)
\
LAV Filters"
):
QCoreApplication
.
setAttribute
(
Qt
.
AA_EnableHighDpiScaling
)
QCoreApplication
.
setAttribute
(
Qt
.
AA_UseHighDpiPixmaps
)
app
=
QApplication
(
sys
.
argv
)
app
.
setWindowIcon
(
QIcon
(
"./res/images/eagle_2.ico"
))
apply_stylesheet
(
app
,
theme
=
'dark_amber.xml'
)
mainWindow
=
MainWindow
(
project_path
)
QtWidgets
.
QMessageBox
.
critical
(
mainWindow
,
'警告'
,
'视频解码器未正常安装'
,
QtWidgets
.
QMessageBox
.
Yes
)
else
:
QCoreApplication
.
setAttribute
(
Qt
.
AA_EnableHighDpiScaling
)
QCoreApplication
.
setAttribute
(
Qt
.
AA_UseHighDpiPixmaps
)
currentExitCode
=
MainWindow
.
EXIT_CODE_REBOOT
# if not os.path.exists("C:\LavFilters") and not os.path.exists("C:\Program Files (x86)\LAV Filters"):
# QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
# QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
# app = QApplication(sys.argv)
# app.setWindowIcon(QIcon("./res/images/eagle_2.ico"))
# apply_stylesheet(app, theme='dark_amber.xml')
# mainWindow = MainWindow(project_path)
# QtWidgets.QMessageBox.critical(mainWindow,'警告','视频解码器未正常安装',QtWidgets.QMessageBox.Yes)
# else:
# QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
# QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
# currentExitCode = MainWindow.EXIT_CODE_REBOOT
QCoreApplication
.
setAttribute
(
Qt
.
AA_EnableHighDpiScaling
)
QCoreApplication
.
setAttribute
(
Qt
.
AA_UseHighDpiPixmaps
)
currentExitCode
=
MainWindow
.
EXIT_CODE_REBOOT
while
currentExitCode
==
MainWindow
.
EXIT_CODE_REBOOT
:
app
=
QApplication
(
sys
.
argv
)
app
.
setWindowIcon
(
QIcon
(
"./res/images/eagle_2.ico"
))
...
...
@@ -95,6 +97,8 @@ if __name__ == '__main__':
apply_stylesheet
(
app
,
theme
=
'dark_amber.xml'
)
# mainWindow.show()
mainWindow
.
showMaximized
()
if
not
os
.
path
.
exists
(
"C:
\
LavFilters"
)
and
not
os
.
path
.
exists
(
"C:
\
Program Files (x86)
\
LAV Filters"
):
mainWindow
.
import_excel_dialog
.
show_with_msg
(
"视频解码器未正常安装"
)
currentExitCode
=
app
.
exec_
()
app
=
None
except
Exception
as
e
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment