添加更新状态,数字人是否启动,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()} 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) conn = sqlite3.connect(db_path, check_same_thread=False)
try: try:
# 把 enable_status 对应的 value 字段改为 '1'
conn.execute( 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() conn.commit()
print("livetlking_enable_status 对应的 value 字段改为 '1'") print(f"livetlking_enable_status 已更新为 {status_code}")
finally: finally:
conn.close() conn.close()
@ -383,6 +388,9 @@ if __name__ == '__main__':
try: try:
db_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', 'live_chat.db') 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) load_db_config(db_path)
mp.set_start_method('spawn') mp.set_start_method('spawn')
@ -406,9 +414,11 @@ if __name__ == '__main__':
parser.add_argument('--customvideo_config', type=str, default='', help="custom action json") 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_FILE', type=str, default="input/gentle_girl.wav")
parser.add_argument('--REF_TEXT', type=str, default="刚进直播间的宝子们,左上角先点个关注,点亮咱们家的粉丝灯牌!我是你们的主播陈婉婉,今天给大家准备了超级重磅的福利") 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('--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('--CHARACTER', type=str, default='test')
# parser.add_argument('--EMOTION', type=str, default='default') # parser.add_argument('--EMOTION', type=str, default='default')
@ -416,7 +426,8 @@ if __name__ == '__main__':
parser.add_argument('--model', type=str, default='wav2lip') # musetalk wav2lip ultralight 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('--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('--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('--max_session', type=int, default=1) # multi session count
parser.add_argument('--listenport', type=int, default=8010, help="web listen port") parser.add_argument('--listenport', type=int, default=8010, help="web listen port")
@ -468,6 +479,7 @@ if __name__ == '__main__':
# avatar = load_avatar(opt) # avatar = load_avatar(opt)
if opt.model == 'wav2lip': 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) logger.info(opt)
model = load_model("./models/wav2lip384.pth") model = load_model("./models/wav2lip384.pth")
avatar = load_avatar(opt.avatar_id) avatar = load_avatar(opt.avatar_id)
@ -516,9 +528,11 @@ if __name__ == '__main__':
elif opt.transport == 'rtcpush': elif opt.transport == 'rtcpush':
pagename = 'rtcpushapi.html' pagename = 'rtcpushapi.html'
logger.info('start http server; http://<serverip>:' + str(opt.listenport) + '/' + pagename) logger.info('start http server; http://<serverip>:' + str(opt.listenport) + '/' + pagename)
logger.info('如果使用webrtc推荐访问webrtc集成前端: http://<serverip>:'+str(opt.listenport)+'/dashboard.html') logger.info(
# 服务开启将数据库中enable_status 对应的 value 字段改为 '1' '如果使用webrtc推荐访问webrtc集成前端: http://<serverip>:' + str(opt.listenport) + '/dashboard.html')
set_enable_status(db_path)
# 服务已开启, 服务状态改为 '2'
set_status(db_path, 2)
def run_server(runner): def run_server(runner):
@ -538,7 +552,8 @@ if __name__ == '__main__':
run_server(web.AppRunner(appasync)) run_server(web.AppRunner(appasync))
except Exception: except Exception:
import traceback logger.exception("启动失败")
traceback.print_exc() # 打印完整的错误堆栈 # 服务启动失败, 服务状态改为 '3'
set_status(db_path, 3)
input("发生异常,按回车键退出…") # 等待用户按回车再退出 input("发生异常,按回车键退出…") # 等待用户按回车再退出
Loading…
Cancel
Save