|
import gradio as gr |
|
import openai |
|
import yt_dlp |
|
import os |
|
openai.api_key = os.environ['OPENAI_API_KEY'] |
|
|
|
def asr(url): |
|
|
|
|
|
ydl_opts = { |
|
'outtmpl': 'my_video.mp4', |
|
'overwrites': True, |
|
'format': 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best', |
|
'merge_output_format': 'mp4', |
|
} |
|
|
|
|
|
ydl = yt_dlp.YoutubeDL(ydl_opts) |
|
|
|
|
|
info_dict = ydl.extract_info(url, download=True) |
|
|
|
audio_file= open("my_video.mp4", "rb") |
|
transcript = openai.Audio.transcribe("whisper-1", audio_file) |
|
output = openai.ChatCompletion.create( |
|
model="gpt-3.5-turbo", |
|
messages=[ |
|
{"role": "user", "content": "Transcript: {transcript}. \n Translate the video conversation transcript into fluent Chinese. Chinese: ".format(transcript=transcript["text"])}, |
|
] |
|
) |
|
return output['choices'][0]['message']['content'], transcript["text"] |
|
|
|
title = """ |
|
韬译云间""" |
|
|
|
instruction = """ |
|
<div style="border: 2px solid #000; padding: 10px; border-radius: 5px;"> |
|
一键输入视频链接,轻松实现中文翻译,畅享视频无障碍沟通 <span style="color: grey;">-- powered by OpenAI Whisper & ChatGPT.</span>.<br> |
|
|
|
1.将视频链接(支持Twitter、YouTube)复制粘贴至输入框,点击提交(Submit)即可; |
|
2.为保证翻译质量,目前仅支持处理时长不超过5分钟的短视频。 |
|
</div>""" |
|
|
|
text_input = gr.inputs.Textbox() |
|
|
|
demo = gr.Interface(fn=asr, |
|
inputs=gr.inputs.Textbox(label="粘贴视频链接"), |
|
outputs=[ |
|
gr.outputs.Textbox(label="中文"), |
|
gr.outputs.Textbox(label="英文"), |
|
], |
|
title=title, |
|
description=instruction) |
|
|
|
demo.launch() |