Update main.py
Browse files
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 = "
|
| 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)
|