修正了上传文件的逻辑;增加了一个文件夹检测

This commit is contained in:
XTer 2024-03-21 11:55:43 +08:00
parent 8453b58782
commit ec01a5646b
3 changed files with 38 additions and 18 deletions

View File

@ -3,6 +3,7 @@
"SRT文件": "SRT File", "SRT文件": "SRT File",
"srt文件内容": "SRT File Content", "srt文件内容": "SRT File Content",
"上传SRT文件": "Upload SRT File", "上传SRT文件": "Upload SRT File",
"上传文件": "Upload Files",
"作者: ": "Author: ", "作者: ": "Author: ",
"使用方法": "How to Use", "使用方法": "How to Use",
"保存合并后字幕": "Save Merged Subtitles", "保存合并后字幕": "Save Merged Subtitles",
@ -33,6 +34,7 @@
"最长允许单句长度": "Maximum Allowed Sentence Length", "最长允许单句长度": "Maximum Allowed Sentence Length",
"根据面板合并短句并过滤你不希望出现的句子。": "Merge short sentences according to the panel and filter out sentences you do not want to appear.", "根据面板合并短句并过滤你不希望出现的句子。": "Merge short sentences according to the panel and filter out sentences you do not want to appear.",
"正在建设,敬请期待": "Under Construction, Stay Tuned", "正在建设,敬请期待": "Under Construction, Stay Tuned",
"注意:该文件夹已存在": "Warning: The folder already exists",
"语言": "Language", "语言": "Language",
"读取文件": "Read File", "读取文件": "Read File",
"读取本地文件": "Read Local File", "读取本地文件": "Read Local File",

View File

@ -3,6 +3,7 @@
"SRT文件": "SRT文件", "SRT文件": "SRT文件",
"srt文件内容": "srt文件内容", "srt文件内容": "srt文件内容",
"上传SRT文件": "上传SRT文件", "上传SRT文件": "上传SRT文件",
"上传文件": "上传文件",
"作者: ": "作者: ", "作者: ": "作者: ",
"使用方法": "使用方法", "使用方法": "使用方法",
"保存合并后字幕": "保存合并后字幕", "保存合并后字幕": "保存合并后字幕",
@ -33,6 +34,7 @@
"最长允许单句长度": "最长允许单句长度", "最长允许单句长度": "最长允许单句长度",
"根据面板合并短句并过滤你不希望出现的句子。": "根据面板合并短句并过滤你不希望出现的句子。", "根据面板合并短句并过滤你不希望出现的句子。": "根据面板合并短句并过滤你不希望出现的句子。",
"正在建设,敬请期待": "正在建设,敬请期待", "正在建设,敬请期待": "正在建设,敬请期待",
"注意:该文件夹已存在": "注意:该文件夹已存在",
"语言": "语言", "语言": "语言",
"读取文件": "读取文件", "读取文件": "读取文件",
"读取本地文件": "读取本地文件", "读取本地文件": "读取本地文件",

View File

@ -3,7 +3,7 @@ import gradio as gr
import sys import sys
sys.path.append('.') sys.path.append('.')
sys.path.append('..') sys.path.append('..')
from srt_utils import merge_subtitles_with_lib, parse_srt_with_lib, generate_srt_with_lib, slice_audio_with_lib, count_words_multilang from tools.srt_slicer.srt_utils import merge_subtitles_with_lib, parse_srt_with_lib, generate_srt_with_lib, slice_audio_with_lib, count_words_multilang
from i18n.i18n import I18nAuto from i18n.i18n import I18nAuto
@ -162,7 +162,11 @@ def change_character_name(input_audio):
character = datetime.now().strftime("%m%d%H%M") character = datetime.now().strftime("%m%d%H%M")
return gr.Textbox(value=character) return gr.Textbox(value=character)
def check_character_foldfer(folder, character):
character_folder = os.path.join(folder, character)
if os.path.exists(character_folder):
return gr.Textbox(visible=True)
return gr.Textbox(visible=False)
with gr.Blocks() as app: with gr.Blocks() as app:
with gr.Row(): with gr.Row():
@ -185,12 +189,13 @@ with gr.Blocks() as app:
srt_files_list = gr.Dropdown([], label=i18n("SRT文件"),interactive=True) srt_files_list = gr.Dropdown([], label=i18n("SRT文件"),interactive=True)
audio_files_list = gr.Dropdown([], label=i18n("音频文件"),interactive=True) audio_files_list = gr.Dropdown([], label=i18n("音频文件"),interactive=True)
srt_read_button = gr.Button(i18n("读取文件"), variant="secondary",interactive=True) srt_read_button = gr.Button(i18n("读取文件"), variant="secondary",interactive=True)
with gr.Tab(i18n("上传SRT文件")): with gr.Tab(i18n("上传文件")):
input_srt_file = gr.File(label=i18n("上传SRT文件"), type="filepath", file_types=["srt"]) input_srt_file = gr.File(label=i18n("上传SRT文件"), type="filepath", file_types=["srt"])
upload_audio = gr.Audio(type="filepath",label=i18n("音频文件"))
# input_audio_file = gr.File(label=i18n("上传音频文件"), type="audio", file_types=["mp3", "wav", "ogg"]) # input_audio_file = gr.File(label=i18n("上传音频文件"), type="audio", file_types=["mp3", "wav", "ogg"])
with gr.Tabs(): with gr.Tabs():
with gr.Tab(i18n("内容预览")): with gr.Tab(i18n("内容预览")):
input_audio = gr.Audio(type="filepath",label=i18n("音频文件")) input_audio = gr.Textbox("", label=i18n("音频文件"),interactive=False)
input_text = gr.Textbox("", lines=20, max_lines=30, label=i18n("srt文件内容")) input_text = gr.Textbox("", lines=20, max_lines=30, label=i18n("srt文件内容"))
input_srt_file.change(load_srt_from_file, [input_srt_file], [input_text]) input_srt_file.change(load_srt_from_file, [input_srt_file], [input_text])
with gr.Column(scale=1) as control_col: with gr.Column(scale=1) as control_col:
@ -209,15 +214,18 @@ with gr.Blocks() as app:
filter_words = gr.Textbox("", label=i18n("过滤词语,一行一个"),lines=5,max_lines=10,interactive=True) filter_words = gr.Textbox("", label=i18n("过滤词语,一行一个"),lines=5,max_lines=10,interactive=True)
filter_button = gr.Button(i18n("过滤字幕"), variant="primary",interactive=False) filter_button = gr.Button(i18n("过滤字幕"), variant="primary",interactive=False)
with gr.Tab(i18n("切分与保存")): with gr.Tab(i18n("切分与保存")):
with gr.Group():
pre_preserve_time = gr.Slider(value=0.1, minimum=0, maximum=1, step=0.01, label=i18n("前置保留时间"),interactive=True) pre_preserve_time = gr.Slider(value=0.1, minimum=0, maximum=1, step=0.01, label=i18n("前置保留时间"),interactive=True)
post_preserve_time = gr.Slider(value=0.1, minimum=0, maximum=1, step=0.01, label=i18n("后置保留时间"),interactive=True) post_preserve_time = gr.Slider(value=0.1, minimum=0, maximum=1, step=0.01, label=i18n("后置保留时间"),interactive=True)
pre_silence_time = gr.Slider(value=0.05, minimum=0, maximum=1, step=0.01, label=i18n("前置添加静音时间"),interactive=True,visible=False) pre_silence_time = gr.Slider(value=0.05, minimum=0, maximum=1, step=0.01, label=i18n("前置添加静音时间"),interactive=True,visible=False)
post_silence_time = gr.Slider(value=0.1, minimum=0, maximum=1, step=0.01, label=i18n("后置添加静音时间"),interactive=True,visible=False) post_silence_time = gr.Slider(value=0.1, minimum=0, maximum=1, step=0.01, label=i18n("后置添加静音时间"),interactive=True,visible=False)
with gr.Group():
language = gr.Dropdown([i18n(i) for i in ["auto", "zh", "en", "ja", "all_zh", "all_ja"]], value="auto", label=i18n("语言"),interactive=True) language = gr.Dropdown([i18n(i) for i in ["auto", "zh", "en", "ja", "all_zh", "all_ja"]], value="auto", label=i18n("语言"),interactive=True)
audio_format = gr.Dropdown(["mp3", "wav", "ogg"], value="wav", label=i18n("音频格式"),interactive=True) audio_format = gr.Dropdown(["mp3", "wav", "ogg"], value="wav", label=i18n("音频格式"),interactive=True)
with gr.Group():
save_folder = gr.Textbox("output/sliced_audio", label=i18n("保存文件夹"),interactive=True) save_folder = gr.Textbox("output/sliced_audio", label=i18n("保存文件夹"),interactive=True)
character = gr.Textbox("character", label=i18n("保存子文件夹名称"),interactive=True) character = gr.Textbox("character", label=i18n("保存子文件夹名称"),interactive=True)
character_warning = gr.Textbox(i18n("注意:该文件夹已存在"), label=i18n("提示"),interactive=False,visible=False)
save_srt_button = gr.Button(i18n("保存合并后字幕"),variant="secondary",interactive=True) save_srt_button = gr.Button(i18n("保存合并后字幕"),variant="secondary",interactive=True)
slice_audio_button = gr.Button(i18n("切分并保存音频、list"), variant="primary",interactive=False) slice_audio_button = gr.Button(i18n("切分并保存音频、list"), variant="primary",interactive=False)
@ -244,10 +252,15 @@ with gr.Blocks() as app:
[input_audio], [input_audio],
[character], [character],
) )
input_audio.change(
upload_audio.change(
change_character_name, change_character_name,
[input_audio], [upload_audio],
[character], [character],
).then(
lambda x:gr.Textbox(value=x),
[upload_audio],
[input_audio],
) )
merge_button.click( merge_button.click(
@ -293,6 +306,9 @@ with gr.Blocks() as app:
[output_text, min_length, filter_english, filter_words], [output_text, min_length, filter_english, filter_words],
[output_text], [output_text],
) )
save_srt_button.click character.change(
check_character_foldfer,
[save_folder, character],
[character_warning],
)
app.launch(inbrowser=True, server_port=8991, debug=True) app.launch(inbrowser=True, server_port=8991, debug=True)