tts fallback

This commit is contained in:
harry
2024-03-18 22:05:17 +08:00
parent 6bfb04f755
commit 4a800eab4b
2 changed files with 13 additions and 4 deletions

View File

@@ -11,12 +11,15 @@ from app.utils import utils
model_size = config.whisper.get("model_size", "large-v3")
device = config.whisper.get("device", "cpu")
compute_type = config.whisper.get("compute_type", "int8")
if config.app.get("subtitle_provider") == "whisper":
model = WhisperModel(model_size_or_path=model_size, device=device, compute_type=compute_type)
model = None
def create(audio_file, subtitle_file: str = ""):
global model
if not model:
logger.info(f"loading model: {model_size}, device: {device}, compute_type: {compute_type}")
model = WhisperModel(model_size_or_path=model_size, device=device, compute_type=compute_type)
logger.info(f"start, output file: {subtitle_file}")
if not subtitle_file:
subtitle_file = f"{audio_file}.srt"

View File

@@ -1,3 +1,4 @@
import os.path
from os import path
from loguru import logger
@@ -64,9 +65,14 @@ def start(task_id, params: VideoParams):
subtitle_provider = config.app.get("subtitle_provider", "").strip().lower()
logger.info(f"\n\n## generating subtitle, provider: {subtitle_provider}")
subtitle_fallback = False
if subtitle_provider == "edge":
voice.create_subtitle(text=script, sub_maker=sub_maker, subtitle_file=subtitle_path)
if subtitle_provider == "whisper":
if not os.path.exists(subtitle_path):
subtitle_fallback = True
logger.warning("subtitle file not found, fallback to whisper")
if subtitle_provider == "whisper" or subtitle_fallback:
subtitle.create(audio_file=audio_file, subtitle_file=subtitle_path)
logger.info("\n\n## correcting subtitle")
subtitle.correct(subtitle_file=subtitle_path, video_script=script)