feat:将transcriber作为环境变量配置

This commit is contained in:
SurfRid3r
2025-04-19 23:13:49 +08:00
parent 2aad103a77
commit 0b7f6ca4ee
5 changed files with 21 additions and 10 deletions

View File

@@ -26,3 +26,7 @@ QWEN_MODEL=
MODEl_PROVIDER= #如果不是openai 请修改 deepseek/qwen
# FFMPEG 配置
FFMPEG_BIN_PATH=
# transcriber 相关配置
TRANSCRIBER_TYPE=fast-whisper # fast-whisper/bcut/kuaishou
WHISPER_MODEL_SIZE=base

View File

@@ -21,3 +21,7 @@ QWEN_API_KEY=
QWEN_API_BASE_URL=
QWEN_MODEL=
MODEl_PROVIDER= #如果不是openai 请修改 deepseek/qwen
# transcriber 相关配置
TRANSCRIBER_TYPE=fast-whisper # fast-whisper/bcut/kuaishou
WHISPER_MODEL_SIZE=base

View File

@@ -43,7 +43,7 @@ class NoteGenerator:
def __init__(self):
self.model_size: str = 'base'
self.device: Union[str, None] = None
self.transcriber_type = 'fast-whisper'
self.transcriber_type = os.getenv('TRANSCRIBER_TYPE','fast-whisper')
self.transcriber = self.get_transcriber()
# TODO 需要更换为可调节
@@ -91,7 +91,7 @@ class NoteGenerator:
'''
if self.transcriber_type == 'fast-whisper':
logger.info("使用Whisper")
return get_transcriber()
return get_transcriber(transcriber_type='fast-whisper')
else:
logger.warning("不支持的转义器")
raise ValueError(f"不支持的转义器:{self.transcriber}")

View File

@@ -1,3 +1,5 @@
import os
from app.transcriber.whisper import WhisperTranscriber
from app.transcriber.bcut import BcutTranscriber
from app.transcriber.kuaishou import KuaishouTranscriber
@@ -49,12 +51,12 @@ def get_kuaishou_transcriber():
raise
return _transcribers['kuaishou']
def get_transcriber(transcriber_type="whisper", model_size="base", device="cuda"):
def get_transcriber(transcriber_type="fast-whisper", model_size="base", device="cuda"):
"""
获取指定类型的转录器实例
参数:
transcriber_type: 转录器类型,支持 "whisper", "bcut", "kuaishou"
transcriber_type: 转录器类型,支持 "fast-whisper", "bcut", "kuaishou"
model_size: 模型大小whisper 特有参数
device: 设备类型whisper 特有参数
@@ -62,13 +64,14 @@ def get_transcriber(transcriber_type="whisper", model_size="base", device="cuda"
对应类型的转录器实例
"""
logger.info(f'获取转录器,类型: {transcriber_type}')
if transcriber_type == "whisper":
return get_whisper_transcriber(model_size, device)
if transcriber_type == "fast-whisper":
whisper_model_size = os.environ.get("WHISPER_MODEL_SIZE",model_size)
return get_whisper_transcriber(whisper_model_size, device=device)
elif transcriber_type == "bcut":
return get_bcut_transcriber()
elif transcriber_type == "kuaishou":
return get_kuaishou_transcriber()
else:
logger.warning(f'未知转录器类型 "{transcriber_type}",使用默认 whisper')
return get_whisper_transcriber(model_size, device)
whisper_model_size = os.environ.get("WHISPER_MODEL_SIZE",model_size)
return get_whisper_transcriber(whisper_model_size, device)

View File

@@ -34,7 +34,7 @@ async def startup_event():
async def startup_event():
register_handler()
ensure_ffmpeg_or_raise()
get_transcriber()
get_transcriber(transcriber_type=os.getenv("TRANSCRIBER_TYPE","fast-whisper"))
init_video_task_table()
if __name__ == "__main__":