From 4cf4b494f9cabaf3ed7f58d46d818cfe82989a4f Mon Sep 17 00:00:00 2001 From: martsforever Date: Sun, 2 Nov 2025 15:39:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20add=5Fwebsocket=5Fvoice=5Frecognise=5Fr?= =?UTF-8?q?oute=20=E5=AE=9E=E6=97=B6=E9=9F=B3=E9=A2=91=E8=AF=86=E5=88=ABwe?= =?UTF-8?q?bsocket=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../add_websocket_voice_recognise_route.py | 26 +++++++++++++++++++ app/main_app.py | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 app/controller/add_websocket_voice_recognise_route.py diff --git a/app/controller/add_websocket_voice_recognise_route.py b/app/controller/add_websocket_voice_recognise_route.py new file mode 100644 index 0000000..6a2ab17 --- /dev/null +++ b/app/controller/add_websocket_voice_recognise_route.py @@ -0,0 +1,26 @@ +import json + +from fastapi import FastAPI, WebSocket, Query +from starlette.websockets import WebSocketState + + +def add_websocket_voice_recognise_route(app: FastAPI): + @app.websocket("/ws_voice_recognise") + async def ws_voice_recognise(websocket: WebSocket, user_id: str = Query(..., description="用户ID")): + print("新用户连接", user_id) + # 接收连接 + await websocket.accept() + try: + while True: + # 将接收得到消息发送供其他用户 + pcm_data_string = await websocket.receive_text() + pcm_data = json.loads(pcm_data_string) + print("pcm_data", pcm_data) + # await person_socket.send_text(data) + except Exception as e: + print(f"WebSocket error: {e}") + finally: + if websocket.application_state == WebSocketState.CONNECTING: + print("关闭websocket") + await websocket.close() + print("websocket已经关闭", user_id) diff --git a/app/main_app.py b/app/main_app.py index 7c81e10..d61f723 100644 --- a/app/main_app.py +++ b/app/main_app.py @@ -19,6 +19,7 @@ from app.controller.add_reimburse_route import add_reimburse_route from app.controller.add_sqlmodel_route import add_sqlmodel_route from app.controller.add_user_route import add_user_route from app.controller.add_websocket_route import add_websocket_route +from app.controller.add_websocket_voice_recognise_route import add_websocket_voice_recognise_route from app.controller.custom_chat_playground import add_custom_chat_playground_route from app.controller.custom_stream_api import add_custom_stream_api_route from app.controller.test_connection import add_test_connection_route @@ -80,6 +81,7 @@ add_api_route(app) add_redis_route(app) add_general_route(app) add_websocket_route(app) +add_websocket_voice_recognise_route(app) @app.get("/get_env")