habulaj commited on
Commit
8777a3d
·
verified ·
1 Parent(s): 42b76f9

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +1 -12
main.py CHANGED
@@ -492,7 +492,7 @@ async def generate_subtitle(request: GeminiSubtitleRequest):
492
  if not os.path.exists(processed_audio_path): processed_audio_path = os.path.join("static", "processed", filename)
493
 
494
  # Contexto padrão solicitado caso não haja
495
- default_context = "Separe as legendas quando houver muito texto concentrado em apenas uma. Divida o conteúdo de forma adequada e faça a tradução com precisão. Se necessário, use o timing das falas (palavra por palavra) como referência para separar as legendas corretamente. NUNCA legende músicas, apenas diálogos falados."
496
 
497
  if request.context and request.context.strip() != "N/A":
498
  contexto_final = f"{default_context}\n\nCONTEXTO ADICIONAL DO USUÁRIO:\n{request.context.strip()}"
@@ -508,14 +508,6 @@ Deve traduzir exatamente o texto da legenda observando o contexto, não é pra m
508
  Mande o SRT completo, sem textos adicionais na resposta, apenas o SRT traduzido. A legenda acima é uma base gerada pelo Whisper que precisa ser limpa e traduzida, não o resultado final.
509
  A legenda deve ser totalmente traduzida corretamente analisando o contexto e a entonação de falar. Se alguém estiver gritando, ESCREVA MAIÚSCULO! etc... Adapte gírias e qualquer coisa do tipo. Não deve ser literal a tradução, deve se adaptar.
510
 
511
- TIMING E TIMESTAMPS:
512
- - Abaixo da legenda base (SRT), você receberá também os TIMESTAMPS POR PALAVRA (word-level) gerados pelo Whisper.
513
- - Esses timestamps indicam o início e fim exato de cada palavra falada no áudio.
514
- - USE esses timestamps para verificar se os blocos de legenda estão sincronizados corretamente.
515
- - Se perceber que uma palavra está no bloco errado (começa depois do timestamp do bloco seguinte, por exemplo), MOVA-A para o bloco correto.
516
- - Se precisar criar novos blocos ou ajustar timestamps, baseie-se nos timestamps word-level para garantir precisão.
517
- - Os timestamps por palavra são a fonte de verdade para saber QUANDO cada palavra é falada.
518
-
519
  MÚSICA E LETRAS:
520
  - NUNCA LEGENDE MÚSICAS OU CANÇÕES.
521
  - Se houver música de fundo ou pessoas cantando uma música, IGNORE COMPLETAMENTE e não inclua na legenda.
@@ -588,9 +580,6 @@ INSTRUÇÕES/CONTEXTO DO USUÁRIO (OPCIONAL): {contexto_final}
588
 
589
  --- LEGENDA BASE (WHISPER) ---
590
  {srt_filtered}
591
-
592
- --- TIMESTAMPS POR PALAVRA (WORD-LEVEL) ---
593
- {word_level_text}
594
  """
595
  model_obj = get_gemini_model(request.model)
596
  response_gemini = await client.generate_content(prompt, files=[processed_audio_path], model=model_obj)
 
492
  if not os.path.exists(processed_audio_path): processed_audio_path = os.path.join("static", "processed", filename)
493
 
494
  # Contexto padrão solicitado caso não haja
495
+ default_context = "NUNCA legende músicas, apenas diálogos falados. Nunca altere o timing das legendas, deve ser exatamente igual ao original de referência."
496
 
497
  if request.context and request.context.strip() != "N/A":
498
  contexto_final = f"{default_context}\n\nCONTEXTO ADICIONAL DO USUÁRIO:\n{request.context.strip()}"
 
508
  Mande o SRT completo, sem textos adicionais na resposta, apenas o SRT traduzido. A legenda acima é uma base gerada pelo Whisper que precisa ser limpa e traduzida, não o resultado final.
509
  A legenda deve ser totalmente traduzida corretamente analisando o contexto e a entonação de falar. Se alguém estiver gritando, ESCREVA MAIÚSCULO! etc... Adapte gírias e qualquer coisa do tipo. Não deve ser literal a tradução, deve se adaptar.
510
 
 
 
 
 
 
 
 
 
511
  MÚSICA E LETRAS:
512
  - NUNCA LEGENDE MÚSICAS OU CANÇÕES.
513
  - Se houver música de fundo ou pessoas cantando uma música, IGNORE COMPLETAMENTE e não inclua na legenda.
 
580
 
581
  --- LEGENDA BASE (WHISPER) ---
582
  {srt_filtered}
 
 
 
583
  """
584
  model_obj = get_gemini_model(request.model)
585
  response_gemini = await client.generate_content(prompt, files=[processed_audio_path], model=model_obj)