archivartaunik commited on
Commit
631160f
·
verified ·
1 Parent(s): 784255b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -7
app.py CHANGED
@@ -55,6 +55,25 @@ def transcribe_audio(audio_file):
55
  except Exception as e:
56
  return f"Нечаканая памылка: {str(e)}"
57
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  def create_srt(transcript, filename="subtitles.srt"):
59
  try:
60
  with open(filename, "w", encoding="utf-8") as f:
@@ -67,7 +86,9 @@ def process_audio(audio):
67
  transcript = transcribe_audio(audio)
68
  if transcript.startswith("Памылка"):
69
  return transcript, None
70
- text, srt_file = create_srt(transcript)
 
 
71
  return text, srt_file
72
 
73
  def extract_audio_from_video(video_file):
@@ -106,13 +127,9 @@ def update_on_video_change(video):
106
  return gr.update(interactive=True)
107
 
108
  def translate_transcript(transcript, target_language):
109
- """
110
- Функцыя адпраўляе тэкст транскрыпцыі з промптам для перакладу.
111
- Атрыманая перакладзеная версія запісваецца ў новы SRT-файл.
112
- """
113
  try:
114
  prompt_text = (
115
- f"перакладзі толькі тэксты субцітраў на {target_language} мову. Выправі фармат часовых метак дзе неабходна (правільны фармат HH:MM:SS,mmm --> HH:MM:SS,mmm). Астатняя пакінь як ёсць."
116
  f"Тэкст:\n{transcript}"
117
  )
118
  model = genai.GenerativeModel(MODEL_NAME)
@@ -149,7 +166,7 @@ with gr.Blocks() as demo:
149
  file_output = gr.File(label="SRT-файл")
150
  btn.click(fn=process_file, inputs=[audio_input, video_input], outputs=[transcript_output, file_output])
151
 
152
- gr.Markdown("## Пераклад субтытраў")
153
  with gr.Row():
154
  language_dropdown = gr.Dropdown(
155
  choices=["English", "Руcкая", "Польская", "Літоўская", "Нямецкая"],
 
55
  except Exception as e:
56
  return f"Нечаканая памылка: {str(e)}"
57
 
58
+ def fix_subtitles_format(transcript):
59
+ """
60
+ Дадатковы запыт да мадэлі, які выпраўляе фармат часоў у субцітрах.
61
+ """
62
+ try:
63
+ prompt_fix = (
64
+ f"выправі часовы фармат у субцітрах на правільны, вось прыклад 00:00:01,589\n"
65
+ f"напішы толькі выпраўленныя субцітры {transcript}"
66
+ )
67
+ model = genai.GenerativeModel(MODEL_NAME)
68
+ response_fix = model.generate_content(prompt_fix)
69
+ if response_fix.text:
70
+ fixed_transcript = response_fix.text.strip()
71
+ else:
72
+ fixed_transcript = transcript
73
+ return fixed_transcript
74
+ except Exception as e:
75
+ return transcript
76
+
77
  def create_srt(transcript, filename="subtitles.srt"):
78
  try:
79
  with open(filename, "w", encoding="utf-8") as f:
 
86
  transcript = transcribe_audio(audio)
87
  if transcript.startswith("Памылка"):
88
  return transcript, None
89
+ # Дадаем другі запыт для выпраўлення фармату часоў у субцітрах
90
+ fixed_transcript = fix_subtitles_format(transcript)
91
+ text, srt_file = create_srt(fixed_transcript)
92
  return text, srt_file
93
 
94
  def extract_audio_from_video(video_file):
 
127
  return gr.update(interactive=True)
128
 
129
  def translate_transcript(transcript, target_language):
 
 
 
 
130
  try:
131
  prompt_text = (
132
+ f"перакладзі толькі тэксты субцітраў на {target_language} мову. Астатняя пакінь як ёсць."
133
  f"Тэкст:\n{transcript}"
134
  )
135
  model = genai.GenerativeModel(MODEL_NAME)
 
166
  file_output = gr.File(label="SRT-файл")
167
  btn.click(fn=process_file, inputs=[audio_input, video_input], outputs=[transcript_output, file_output])
168
 
169
+ gr.Markdown("## Пераклад субцітраў")
170
  with gr.Row():
171
  language_dropdown = gr.Dropdown(
172
  choices=["English", "Руcкая", "Польская", "Літоўская", "Нямецкая"],