添加更新状态,数字人是否启动,0-未启动,1-启动中,2-已启动,3-启动失败

main
fanpt 2 weeks ago
parent f33bd11de2
commit 13b13f599a

@ -88,17 +88,22 @@ def load_db_config(db_path):
config_dict = {row["key"]: row["value"] for row in cursor.fetchall()}
def set_enable_status(db_path):
# 连接数据库
def set_status(db_path, status_code: int):
"""
更新数据库中 livetlking_enable_status 的状态值
0 未启动前端写入
1 启动成功
2 启动中
3 启动失败
"""
conn = sqlite3.connect(db_path, check_same_thread=False)
try:
# 把 enable_status 对应的 value 字段改为 '1'
conn.execute(
"UPDATE live_config SET value = '1' WHERE key = 'livetlking_enable_status';"
"UPDATE live_config SET value = ? WHERE key = 'livetlking_enable_status';",
(str(status_code),)
)
conn.commit()
print("livetlking_enable_status 对应的 value 字段改为 '1'")
print(f"livetlking_enable_status 已更新为 {status_code}")
finally:
conn.close()
@ -383,6 +388,9 @@ if __name__ == '__main__':
try:
db_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', 'live_chat.db')
# 启动流程一开始:写入 1启动中
set_status(db_path, 1)
load_db_config(db_path)
mp.set_start_method('spawn')
@ -406,17 +414,20 @@ if __name__ == '__main__':
parser.add_argument('--customvideo_config', type=str, default='', help="custom action json")
parser.add_argument('--tts', type=str, default='gpt-sovits', help="tts service type") #xtts gpt-sovits cosyvoice
parser.add_argument('--tts', type=str, default='gpt-sovits',
help="tts service type") # xtts gpt-sovits cosyvoice
parser.add_argument('--REF_FILE', type=str, default="input/gentle_girl.wav")
parser.add_argument('--REF_TEXT', type=str, default="刚进直播间的宝子们,左上角先点个关注,点亮咱们家的粉丝灯牌!我是你们的主播陈婉婉,今天给大家准备了超级重磅的福利")
parser.add_argument('--TTS_SERVER', type=str, default='http://127.0.0.1:9880') # http://localhost:9000
parser.add_argument('--REF_TEXT', type=str,
default="刚进直播间的宝子们,左上角先点个关注,点亮咱们家的粉丝灯牌!我是你们的主播陈婉婉,今天给大家准备了超级重磅的福利")
parser.add_argument('--TTS_SERVER', type=str, default='http://127.0.0.1:9880') # http://localhost:9000
# parser.add_argument('--CHARACTER', type=str, default='test')
# parser.add_argument('--EMOTION', type=str, default='default')
parser.add_argument('--model', type=str, default='wav2lip') # musetalk wav2lip ultralight
parser.add_argument('--transport', type=str, default='webrtc') #webrtc rtcpush virtualcam
parser.add_argument('--push_url', type=str, default='http://localhost:1985/rtc/v1/whip/?app=live&stream=livestream') #rtmp://localhost/live/livestream
parser.add_argument('--transport', type=str, default='webrtc') # webrtc rtcpush virtualcam
parser.add_argument('--push_url', type=str,
default='http://localhost:1985/rtc/v1/whip/?app=live&stream=livestream') # rtmp://localhost/live/livestream
parser.add_argument('--max_session', type=int, default=1) # multi session count
parser.add_argument('--listenport', type=int, default=8010, help="web listen port")
@ -467,7 +478,8 @@ if __name__ == '__main__':
# model = load_model(opt)
# avatar = load_avatar(opt)
if opt.model == 'wav2lip':
from lipreal import LipReal,load_model,load_avatar,warm_up
from lipreal import LipReal, load_model, load_avatar, warm_up
logger.info(opt)
model = load_model("./models/wav2lip384.pth")
avatar = load_avatar(opt.avatar_id)
@ -510,15 +522,17 @@ if __name__ == '__main__':
for route in list(appasync.router.routes()):
cors.add(route)
pagename='webrtcapi.html'
if opt.transport=='rtmp':
pagename='echoapi.html'
elif opt.transport=='rtcpush':
pagename='rtcpushapi.html'
logger.info('start http server; http://<serverip>:'+str(opt.listenport)+'/'+pagename)
logger.info('如果使用webrtc推荐访问webrtc集成前端: http://<serverip>:'+str(opt.listenport)+'/dashboard.html')
# 服务开启将数据库中enable_status 对应的 value 字段改为 '1'
set_enable_status(db_path)
pagename = 'webrtcapi.html'
if opt.transport == 'rtmp':
pagename = 'echoapi.html'
elif opt.transport == 'rtcpush':
pagename = 'rtcpushapi.html'
logger.info('start http server; http://<serverip>:' + str(opt.listenport) + '/' + pagename)
logger.info(
'如果使用webrtc推荐访问webrtc集成前端: http://<serverip>:' + str(opt.listenport) + '/dashboard.html')
# 服务已开启, 服务状态改为 '2'
set_status(db_path, 2)
def run_server(runner):
@ -538,7 +552,8 @@ if __name__ == '__main__':
run_server(web.AppRunner(appasync))
except Exception:
import traceback
logger.exception("启动失败")
traceback.print_exc() # 打印完整的错误堆栈
# 服务启动失败, 服务状态改为 '3'
set_status(db_path, 3)
input("发生异常,按回车键退出…") # 等待用户按回车再退出
Loading…
Cancel
Save