Translate_video / app.py
yoru_tomosu
Update app.py
becc06a
raw
history blame contribute delete
No virus
1.68 kB
import whisper
import deepl
import os
model = whisper.load_model("base")
deepl_auth_key = os.environ["Deepl_API"]
def translate(text, target_lang):
translator = deepl.Translator(deepl_auth_key)
translated_text = translator.translate_text(text, target_lang=target_lang)
return translated_text
def transcribe(audio):
# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio(audio)
audio = whisper.pad_or_trim(audio)
# make log-Mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio).to(model.device)
# detect the spoken language
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")
detect_lang = max(probs, key=probs.get)
# decode the audio
# options = whisper.DecodingOptions()
options = whisper.DecodingOptions(fp16 = False)
result = whisper.decode(model, mel, options)
# if detect_lang == "en":
# print("Text: ", result.text)
# translated_text = translate(result.text, "JA")
# print("translated_text: ", translated_text)
# generated_video = text_to_speech(translated_text)
# print("generated_video 01: ", generated_video)
# elif detect_lang == "ja":
# print("Text: ", result.text)
# translated_text = translate(result.text, "EN-US")
translated_text = translate(result.text, "JA")
return translated_text
import gradio as gr
title = 'Translator_Video'
inputs = gr.Video()
outputs = gr.Text()
interface = gr.Interface(title=title, fn=transcribe, inputs=inputs, outputs=outputs)
interface.launch(debug=True)