mirror of
https://github.com/JefferyHcool/BiliNote.git
synced 2026-07-10 06:51:35 +08:00
feat:将transcriber作为环境变量配置
This commit is contained in:
@@ -25,4 +25,8 @@ QWEN_API_BASE_URL=
|
|||||||
QWEN_MODEL=
|
QWEN_MODEL=
|
||||||
MODEl_PROVIDER= #如果不是openai 请修改 deepseek/qwen
|
MODEl_PROVIDER= #如果不是openai 请修改 deepseek/qwen
|
||||||
# FFMPEG 配置
|
# FFMPEG 配置
|
||||||
FFMPEG_BIN_PATH=
|
FFMPEG_BIN_PATH=
|
||||||
|
|
||||||
|
# transcriber 相关配置
|
||||||
|
TRANSCRIBER_TYPE=fast-whisper # fast-whisper/bcut/kuaishou
|
||||||
|
WHISPER_MODEL_SIZE=base
|
||||||
@@ -21,3 +21,7 @@ QWEN_API_KEY=
|
|||||||
QWEN_API_BASE_URL=
|
QWEN_API_BASE_URL=
|
||||||
QWEN_MODEL=
|
QWEN_MODEL=
|
||||||
MODEl_PROVIDER= #如果不是openai 请修改 deepseek/qwen
|
MODEl_PROVIDER= #如果不是openai 请修改 deepseek/qwen
|
||||||
|
|
||||||
|
# transcriber 相关配置
|
||||||
|
TRANSCRIBER_TYPE=fast-whisper # fast-whisper/bcut/kuaishou
|
||||||
|
WHISPER_MODEL_SIZE=base
|
||||||
@@ -43,7 +43,7 @@ class NoteGenerator:
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.model_size: str = 'base'
|
self.model_size: str = 'base'
|
||||||
self.device: Union[str, None] = None
|
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()
|
self.transcriber = self.get_transcriber()
|
||||||
# TODO 需要更换为可调节
|
# TODO 需要更换为可调节
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@ class NoteGenerator:
|
|||||||
'''
|
'''
|
||||||
if self.transcriber_type == 'fast-whisper':
|
if self.transcriber_type == 'fast-whisper':
|
||||||
logger.info("使用Whisper")
|
logger.info("使用Whisper")
|
||||||
return get_transcriber()
|
return get_transcriber(transcriber_type='fast-whisper')
|
||||||
else:
|
else:
|
||||||
logger.warning("不支持的转义器")
|
logger.warning("不支持的转义器")
|
||||||
raise ValueError(f"不支持的转义器:{self.transcriber}")
|
raise ValueError(f"不支持的转义器:{self.transcriber}")
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
from app.transcriber.whisper import WhisperTranscriber
|
from app.transcriber.whisper import WhisperTranscriber
|
||||||
from app.transcriber.bcut import BcutTranscriber
|
from app.transcriber.bcut import BcutTranscriber
|
||||||
from app.transcriber.kuaishou import KuaishouTranscriber
|
from app.transcriber.kuaishou import KuaishouTranscriber
|
||||||
@@ -49,12 +51,12 @@ def get_kuaishou_transcriber():
|
|||||||
raise
|
raise
|
||||||
return _transcribers['kuaishou']
|
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 特有参数
|
model_size: 模型大小,whisper 特有参数
|
||||||
device: 设备类型,whisper 特有参数
|
device: 设备类型,whisper 特有参数
|
||||||
|
|
||||||
@@ -62,13 +64,14 @@ def get_transcriber(transcriber_type="whisper", model_size="base", device="cuda"
|
|||||||
对应类型的转录器实例
|
对应类型的转录器实例
|
||||||
"""
|
"""
|
||||||
logger.info(f'获取转录器,类型: {transcriber_type}')
|
logger.info(f'获取转录器,类型: {transcriber_type}')
|
||||||
|
if transcriber_type == "fast-whisper":
|
||||||
if transcriber_type == "whisper":
|
whisper_model_size = os.environ.get("WHISPER_MODEL_SIZE",model_size)
|
||||||
return get_whisper_transcriber(model_size, device)
|
return get_whisper_transcriber(whisper_model_size, device=device)
|
||||||
elif transcriber_type == "bcut":
|
elif transcriber_type == "bcut":
|
||||||
return get_bcut_transcriber()
|
return get_bcut_transcriber()
|
||||||
elif transcriber_type == "kuaishou":
|
elif transcriber_type == "kuaishou":
|
||||||
return get_kuaishou_transcriber()
|
return get_kuaishou_transcriber()
|
||||||
else:
|
else:
|
||||||
logger.warning(f'未知转录器类型 "{transcriber_type}",使用默认 whisper')
|
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)
|
||||||
@@ -34,7 +34,7 @@ async def startup_event():
|
|||||||
async def startup_event():
|
async def startup_event():
|
||||||
register_handler()
|
register_handler()
|
||||||
ensure_ffmpeg_or_raise()
|
ensure_ffmpeg_or_raise()
|
||||||
get_transcriber()
|
get_transcriber(transcriber_type=os.getenv("TRANSCRIBER_TYPE","fast-whisper"))
|
||||||
init_video_task_table()
|
init_video_task_table()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user