1. 推流工具下载:
功能定制获取窗口源码请联系开发人员v: pyaibote
# 下载websocket客户端第三方包
# pip3 install websocket-client -i https://pypi.tuna.tsinghua.edu.cn/simple
import os, websocket,datetime,json
import queue
# 配置项
config = {
"url" : "127.0.0.1" # 数字人推流的主机地址
}
text_queue = queue.Queue()
player = None
def on_message(ws, message):
timestamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print(f"[{timestamp}] Received message: {message}")
def on_error(ws, error):
print(f"[Error] {error}")
def on_close(ws, close_status_code, close_msg):
print("### Connection closed ###")
def on_open(ws):
# 发送 JSON 格式的文本消息
# message = {
# "Action": "SwitchImg",
# "Data": {
# "VideoName": "5.mp4",
# "Scale": 0.5,
# "IsPalyMediaAudio": False,
# "IsSwapColor": False,
# "WaitPlayEnd": False
# }
# }
message = {
"Action": "TextCloneAudioSpeak",
"Data": {
"Text": "内蒙古针茅是一种多年生草本植物。它具有耐旱、耐寒的特性,多生长于草原和沙地。其根系发达,能保持水土。"
}
}
# message = {
# "Action": "Asr",
# "Data": {
# "IP": "192.168.31.49",
# "Data": ""
# }
# }
# message = {
# "Action": "Asr",
# "Data": {
# "Token": "PyAibote",
# "IP": "192.168.31.49",
# "Data": ""
# }
# }
# message = {
# "Action": "TextCloneAudioSpeakLocal",
# "Data": {
# "Token": "Mimi",
# "Text": "内蒙古针茅是一种多年生草本植物。它具有耐旱、耐寒的特性,多生长于草原和沙地。其根系发达,能保持水土。"
# }
# }
# message = {
# "Action": "QuestionLocal",
# "Data": {
# "Token": "Mimi",
# "Prompt": "吃饭了嘛"
# }
# }
# message = {
# "Action": "InitNewMetahumanLocal",
# "Data": {
# "Token": "Mimi",
# "ModelFolderName": "model",
# "Scale": 0.5,
# "IsPalyMediaAudio": False,
# "EnableRandomParam": False,
# "PushStreamUrl": "live/streamMimi"
# }
# }
# message = {
# "Action": "CloseDriver",
# "Data": {
# "Token": "Mimi"
# }
# }
# message = {
# "Action": "SwitchImgLocal",
# "Data": {
# "Token": "PyAibote",
# "VideoName": "666.mp4",
# "Scale": 0.5,
# "IsPalyMediaAudio": False,
# "IsSwapColor": False,
# "WaitPlayEnd": False,
# }
# }
# message = {
# "Action": "InitNewMetahumanLocal",
# "Data": {
# "Token": "Riven",
# "ModelFolderName": "model",
# "Scale": 0.5,
# "IsPalyMediaAudio": False,
# "EnableRandomParam": False,
# "PushStreamUrl": "live/streamRiven"
# }
# }
# message = {
# "Action": "Authentication",
# "Data": {
# "Token": "PyAibote",
# }
# }
# message = {
# "Action": "InitNewMetahumanLocal",
# "Data": {
# "Token": "Mark",
# "ModelFolderName": "model",
# "Scale": 0.5,
# "IsPalyMediaAudio": False,
# "EnableRandomParam": False,
# "PushStreamUrl": "live/streamMark"
# }
# }
ws.send(json.dumps(message)) # 必须转为字符串发送
print("### Connection opened ###")
os.environ["PATH"] = os.environ["PATH"] + ";" + "H:/aibote/MyModel/WindowsDriver.exe"
ws_url = f"ws://{config['url']}:8765"
ws = websocket.WebSocketApp(ws_url,
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close)
# 运行 WebSocket 客户端
ws.run_forever()