From ae78c41f861f62dd6fd50937367924670da59c14 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Fri, 5 Sep 2025 21:36:42 +0800 Subject: [PATCH] 'commit' --- dsLightRag/KeDaXunFei/XunFeiAudioEvaluator.py | 52 ++++++++++-------- .../XunFeiAudioEvaluator.cpython-310.pyc | Bin 7295 -> 7475 bytes .../static/XunFei/js/audio_evaluation.js | 15 ----- 3 files changed, 30 insertions(+), 37 deletions(-) diff --git a/dsLightRag/KeDaXunFei/XunFeiAudioEvaluator.py b/dsLightRag/KeDaXunFei/XunFeiAudioEvaluator.py index 84057fe7..cc40d0d2 100644 --- a/dsLightRag/KeDaXunFei/XunFeiAudioEvaluator.py +++ b/dsLightRag/KeDaXunFei/XunFeiAudioEvaluator.py @@ -60,15 +60,21 @@ class XunFeiAudioEvaluator: """WebSocket消息处理""" print(f"Received message: {message}") data = json.loads(message) - status = data["data"]["status"] - - if status == 2: + + # 检查是否存在错误码 + if data.get("code") != 0: + print(f"API错误: {data.get('message', '未知错误')}") + ws.close() + return + + # 安全获取data字段 + response_data = data.get("data", {}) + status = response_data.get("status") + + if status == 2 and response_data.get("data"): # 解析评测结果 - xml_data = base64.b64decode(data["data"]["data"]) + xml_data = base64.b64decode(response_data["data"]) xml_content = xml_data.decode("utf-8") - #print(xml_content) - - # 解析XML并提取得分信息 self.parse_evaluation_results(xml_content) ws.close() @@ -110,24 +116,25 @@ class XunFeiAudioEvaluator: # 发送音频数据 with open(self.audio_file, "rb") as file_flag: + total_sent = 0 while True: buffer = file_flag.read(1280) if not buffer: - # 发送最后一帧 - my_dict = { - "business": { - "cmd": "auw", - "aus": 4, - "aue": "lame" - }, - "data": { - "status": 2, - "data": str(base64.b64encode(buffer).decode()) + # 发送最后一帧(仅在有数据发送时) + if total_sent > 0: + my_dict = { + "business": { + "cmd": "auw", + "aus": 4, + "aue": "lame" + }, + "data": { + "status": 2, + "data": "" # 空字符串表示结束 + } } - } - ws.send(json.dumps(my_dict)) - #print("发送最后一帧") - time.sleep(1) + ws.send(json.dumps(my_dict)) + time.sleep(1) break # 发送中间音频帧 @@ -145,6 +152,7 @@ class XunFeiAudioEvaluator: } } ws.send(json.dumps(send_dict)) + total_sent += len(buffer) time.sleep(0.04) def parse_evaluation_results(self, xml_content): @@ -264,7 +272,7 @@ if __name__ == '__main__': audio_file = "./1.mp3" # 创建评测器实例 - evaluator = XunFeiAudioEvaluator(appid, api_key, api_secret, audio_file) + evaluator = XunFeiAudioEvaluator(appid, api_key, api_secret, audio_file, "english") # 运行评测 results, eval_time = evaluator.run_evaluation() diff --git a/dsLightRag/KeDaXunFei/__pycache__/XunFeiAudioEvaluator.cpython-310.pyc b/dsLightRag/KeDaXunFei/__pycache__/XunFeiAudioEvaluator.cpython-310.pyc index baa03fe9b1a1fca66344d23403a330f169daf8ff..eda476bd88a0c6613f344e5cfd3babd355422aa2 100644 GIT binary patch delta 1574 zcmZWp+fN)-7@u?I%#we3P zao*8Ny34o`SAd|qdMUs|AO&2dWVnGcT;lPt7#de1EZ+(AETnSW5(KVY2mzctcXn&} z1lb9&N?2O zvU6Ea%jA;W_S6Z>@w8MXXIr8JXr4KC;O2|3|X#MR2A6fG-D1T6dcfmP;5p)Qe4q3F{tbN0B}5;>~OGe1xZ2AUmsL*cDV zVak#U)6+Vv^eXnXjh8~l$aD`R;a4=FdU`51GXtG5#tL>i3;o?LH5Fs8rWH+5M$}|s zZi`__R51h(RM_GihUi5t6~icFgSK#LJXIv;pnThh$X~+ypRW>Fd4c03_8^7XR+fu? z6g6I$$=e>w<*lrU`bJ?TxyPLJjOA%|#n)jc1}~sm>v+u%ug6-!*~aBtjZt3ZNM3>h8uXSlN^X zb=zk9Jo#N!e<I)=6Ph>-qC6Gr==3Ml+)na1C_N@}ImZiQNk&tX$-H9;kwwQ@ zc_Y@Y4S@LB#@*OWN+xA?U*ag9REPm=e)I0VmG>%l)+*oLsC;m7utiwArplL>Hdk&x zZW@}!Z)A_Z(g_I*K$AgpsI5!eRMy&2bZR@JL#?vZJ<-e82HlZ5xST z8Ft^#yu4J`sx5$~BEPPCSoIwGo
    kdo{5*8i1l@mA6&&%`ImuW~(pvF*QJ=!!KH ziwGE9EX(GmI+<^X2Wkxl|I_kn!|f2xrnrJ|K@K%`6CoEG`^krLqp_W=$R8UIk!AU) gv0nEFdl5psTsOxw2GhmhOB7ZOHB6%L{b3LO0g4lmcK`qY delta 1290 zcmZWpU1%It6rOwM&g}mr*|OQ)WYhfGW|U-;MxqVDDiuUhe;{Z-m~OJ!ZSKrA z5;u(yNQ4xOJ!pj{Fssl93oV*}P{AMY#W#JE!9Mt~+ZOD5DE^&0X;ADg_nWidIp@1~ zzd18IV}Czwlw+~5f}a=ax6XZLeqrqCD*^n;aGk_uPa`-ACsle?*`}+6C=PLHmDb3z zT2(nsD_l)0%dE;co1-G@s4jcRV-Bmds^)53!$_|xu3pt^s8Jy!R61C<1B zblRGpEW?k1BLh6=Q*2rrvKPdhIPCC6j4cDdwf#d40@@K!L}<7xR~ z*|yApIE0lRU9`Qxyk*#_c#5aF!P~Y}-tL5)up6ne8gZjFWtH$lTa;(EC|X5a)nP7LRwL3TC*~TwLq?@u zROoo9(D8^u2S3a^x0tU&;d-RG%Wv(HtqY^472eJ8maeMkc=x0-tk{=!?nI80&Oto5 z?~bW@dcHhAkDdmnD|VrT&WQmy5oB&)LsCKaz9blxKvd8)`QqC5L~ zun{|)Y7){(5s}a&OPFnyxEO}-V;NJm9U=N<%9QZ9pLYuLmZ#Z8%Q|oB2S!JXHW)Vg zaZcng!j$pEI3;1i2xXK|!v3UsGhu(}51J!kij4Lz>qmcJCKe|2HjVe(U&_eayz`s! zBGsql#%E!uB{e8#T;wHi2^PXqWH6h>13OkJZ{axXSNnBvp=Bg8>xUBNV7KLj=BYE5 z1A8s~`|}gpKmKtTh^O>|EGxo9{HXRMh9B=N#y_Vd4?PK!Ou?x{+f!$euCyT3Z(M48 zv|GP*t^UoG`ul5RT_SgoYPjq5^|k+|reQmg%*Z4Ay^T+9);F)+{q%Zc { -// if (languageSelect.value === 'chinese') { -// textInput.value = '窗前明月光,疑是地上霜。'; -// } else { -// textInput.value = 'Nice to meet you.'; -// } -// }); - -// 移除页面加载事件监听 -// window.addEventListener('load', () => { -// textInput.value = '窗前明月光,疑是地上霜。'; -// stopBtn.disabled = true; -// }); // 开始录音 recordBtn.addEventListener('click', async () => {