Spaces:
Sleeping
Sleeping
import os | |
import logging | |
import sys | |
import subprocess | |
import gradio as gr | |
logging.basicConfig(level=logging.ERROR) | |
logger = logging.getLogger(__name__) | |
def clone_repo(): | |
# 从环境变量中获取 GitHub Token | |
github_token = os.getenv('GH_TOKEN') | |
if github_token is None: | |
logger.error("GitHub token is not set. Please set the GH_TOKEN secret in your Space settings.") | |
return False | |
# 使用 GitHub Token 进行身份验证并克隆仓库 | |
clone_command = f'git clone https://{github_token}@github.com/mamba-ai/transcribe_agent.git' | |
repo_dir = 'transcribe_agent' | |
if os.path.exists(repo_dir): | |
logger.warning("Repository already exists.") | |
# 将仓库路径添加到 Python 模块搜索路径中 | |
# logger.warning(f"Adding {os.path.abspath(repo_dir)} to sys.path") | |
# sys.path.append(os.path.abspath(repo_dir)) | |
return True | |
else: | |
logger.info("Cloning repository...") | |
result = subprocess.run(clone_command, shell=True, capture_output=True, text=True) | |
if result.returncode == 0: | |
logger.warning("Repository cloned successfully.") | |
repo_dir = 'transcribe_agent' | |
# 将仓库路径添加到 Python 模块搜索路径中 | |
sys.path.append(os.path.abspath(repo_dir)) | |
logger.warning(f"Adding {os.path.abspath(repo_dir)} to sys.path") | |
return True | |
else: | |
logger.error(f"Failed to clone repository: {result.stderr}") | |
return False | |
if clone_repo(): | |
# 克隆成功后导入模块 | |
import transcribe_agent.agent as ta | |
demo = gr.Blocks() | |
mf_transcribe = gr.Interface( | |
fn=ta.transcribe_v2, | |
inputs=[ | |
gr.Audio(sources=["microphone"], type="filepath"), | |
], | |
outputs=["text"], | |
# layout="horizontal", | |
theme="huggingface", | |
title=f"オーディオをMambaVoice-v1で文字起こしする", | |
description=f"ボタンをクリックするだけで、長時間のマイク入力やオーディオ入力を文字起こしできます!デモではMambaVoice-v1モデルを使用しており、任意の長さの音声ファイルを文字起こしすることができます。", | |
allow_flagging="never", | |
) | |
file_transcribe = gr.Interface( | |
fn=ta.transcribe_v2, | |
inputs=[ | |
gr.Audio(sources=["upload"], type="filepath", label="Audio file"), | |
], | |
outputs=["text"], | |
# layout="horizontal", | |
theme="huggingface", | |
title=f"オーディオをMambaVoice-v1で文字起こしする", | |
description=f"ボタンをクリックするだけで、長時間のマイク入力やオーディオ入力を文字起こしできます!デモではMambaVoice-v1モデルを使用しており、任意の長さの音声ファイルを文字起こしすることができます。", | |
allow_flagging="never", | |
) | |
with demo: | |
gr.TabbedInterface([mf_transcribe, file_transcribe], ["Microphone", "Audio file"]) | |
demo.queue(max_size=10) | |
demo.launch() |