From ada13af11eb79fcc8f96e057934b558485bed756 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Sat, 6 Sep 2025 08:38:04 +0800 Subject: [PATCH] 'commit' --- dsLightRag/KeDaXunFei/XunFeiAudioEvaluator.py | 11 +- .../XunFeiAudioEvaluator.cpython-310.pyc | Bin 7486 -> 7496 bytes dsLightRag/Routes/XunFeiRoute.py | 16 +- .../__pycache__/XunFeiRoute.cpython-310.pyc | Bin 1898 -> 2002 bytes .../static/XunFei/audio_evaluation.html | 234 ++++++++++++------ ...audio_1f0a8c47db2d4f9ba7674055a352cab8.wav | Bin 0 -> 31073 bytes ...audio_b54f70d60c784047be1a918904498905.wav | Bin 0 -> 33005 bytes ...audio_e059db87ae8f4979b6dfea90766ee10d.wav | Bin 0 -> 26243 bytes ...audio_fb4201ccadc94320a8fd820b0357ad35.wav | Bin 0 -> 23345 bytes 9 files changed, 169 insertions(+), 92 deletions(-) create mode 100644 dsLightRag/static/audio/audio_1f0a8c47db2d4f9ba7674055a352cab8.wav create mode 100644 dsLightRag/static/audio/audio_b54f70d60c784047be1a918904498905.wav create mode 100644 dsLightRag/static/audio/audio_e059db87ae8f4979b6dfea90766ee10d.wav create mode 100644 dsLightRag/static/audio/audio_fb4201ccadc94320a8fd820b0357ad35.wav diff --git a/dsLightRag/KeDaXunFei/XunFeiAudioEvaluator.py b/dsLightRag/KeDaXunFei/XunFeiAudioEvaluator.py index cc40d0d2..9e6e5b57 100644 --- a/dsLightRag/KeDaXunFei/XunFeiAudioEvaluator.py +++ b/dsLightRag/KeDaXunFei/XunFeiAudioEvaluator.py @@ -6,6 +6,7 @@ import json import ssl import time import xml.etree.ElementTree as ET +import base64 from datetime import datetime from time import mktime from urllib.parse import urlencode @@ -163,10 +164,11 @@ class XunFeiAudioEvaluator: # 查找read_chapter节点 read_chapter = root.find('.//read_chapter') if read_chapter is not None: + # 保持字段名一致,使用completeness_score self.evaluation_results = { 'accuracy_score': float(read_chapter.get('accuracy_score', 0)), 'fluency_score': float(read_chapter.get('fluency_score', 0)), - 'completeness_score': float(read_chapter.get('integrity_score', 0)), # 修复字段名 + 'completeness_score': float(read_chapter.get('integrity_score', 0)), 'standard_score': float(read_chapter.get('standard_score', 0)), 'total_score': float(read_chapter.get('total_score', 0)), 'word_count': int(read_chapter.get('word_count', 0)), @@ -206,7 +208,8 @@ class XunFeiAudioEvaluator: summary += f"总得分: {self.evaluation_results.get('total_score', 0):.4f}\n" summary += f"准确度得分: {self.evaluation_results.get('accuracy_score', 0):.4f}\n" summary += f"流畅度得分: {self.evaluation_results.get('fluency_score', 0):.4f}\n" - summary += f"完整度得分: {self.evaluation_results.get('integrity_score', 0):.4f}\n" + # 修复这里,使用completeness_score + summary += f"完整度得分: {self.evaluation_results.get('completeness_score', 0):.4f}\n" summary += f"标准度得分: {self.evaluation_results.get('standard_score', 0):.4f}\n" summary += f"单词数量: {self.evaluation_results.get('word_count', 0)}\n" summary += f"是否被拒绝: {'是' if self.evaluation_results.get('is_rejected', False) else '否'}\n" @@ -269,8 +272,8 @@ if __name__ == '__main__': appid = XF_APPID api_secret = XF_APISECRET api_key = XF_APIKEY - audio_file = "./1.mp3" - + #audio_file = "./1.mp3" + audio_file=r'D:\dsWork\dsProject\dsLightRag\static\audio\audio_1f0a8c47db2d4f9ba7674055a352cab8.wav' # 创建评测器实例 evaluator = XunFeiAudioEvaluator(appid, api_key, api_secret, audio_file, "english") diff --git a/dsLightRag/KeDaXunFei/__pycache__/XunFeiAudioEvaluator.cpython-310.pyc b/dsLightRag/KeDaXunFei/__pycache__/XunFeiAudioEvaluator.cpython-310.pyc index 5cc0845c7979286214cef1688e0a1ed929bd458b..d5f16b6d7e32ee6a68a0243b160c1fab71af2c03 100644 GIT binary patch delta 699 zcmYk1KWI}?6vlJjjpa3cNt4&U#O9AgR6>Zf*bYi49Xp6ADy2gdN}614+Wh0b1ltHL zIy7P(5)VZYv|^!4L6L~i3ITB`Qk=vggW!-D#ZBBCJh#~DJ@C5+zVADn(}?ay?RmT1 zW}&zIYiD+=W)FZ~i(Irq#uBgHn1Ra6<~s%4^(V~AAXwk%8dqQxzpEeMGH!S8+NUUK zDg<3A2k@~@%mNAqC&<`&Z!GC zQce<@dNQ9aWO$M1xM@zC$-LkqB~>nQP2xJC+%q^dWbz#Ol03}B;Q+yL!8Ov8IgDiS zwd=MK*91?brjxUYLXitGFXbG@^hn=2wdNQ>QEXsiDmWOf>Jj$EdAz=@&ndw1q!ET0 zoG`p+<%%U2q4oS;d+k+gXS3CK(7Lk{4T`w~sr|Ils;vAkrEuNw49ng3v+aj3TGh?Y zv#s{({jYBxQ&wIyUSdSj_J1;ndF&V|pe@~}db6a7NkUl}42lfia!+>4BbtyF3;5YR z4DZq9F+iz@JYEP%ds9nsGbz%AVmhBQMZcV|4?}i02_2k0`Wq6+2a3ezz+L!>+`DEZ zq~V;z(t%Y}vDfE^K0NL7v50yM&-)r(t5Us!4*wA3am+sg6%_su)bNr21XQu%55N+| zJh7%an$4$589oLSF{1?4qQbw@sn`CN3jKk%u+ax#snOaliwtUvw$6+pfa delta 711 zcmY+9O=uHA7>4uBZrVwj#5Q)5G;V1{RBB6uErL|>W)C7*e_BwmA#6rBB|qEQL@@}} z7XPZHmd~Ik4<35)P$hWjAyT~bJQUMfP$-@~_>D@%ec5Mbc;9*V+x3ygNVpUZ z2YvKRZmrtKmcrc-Tj(M}#E^f7r6tKn_9T+c>sG4Swn z`^4F-vIW75TBU-M7iB?ZZrZgPZ1akLQvxnVTjRwZKJ)nz80NgVB>(% zXQ~fWItZKZ?rzoYHCLCLjpxmW_eXlAz-c21*YJsv>{6pvB828b?d!_IX6?=PgGI{Z z@V$|YtI0oxK29FkMM51u&>dwsKQqA@SD1y{+QIR Ng*2{(AVLZK+b=MkxS9X} diff --git a/dsLightRag/Routes/XunFeiRoute.py b/dsLightRag/Routes/XunFeiRoute.py index 8045807a..7701bea2 100644 --- a/dsLightRag/Routes/XunFeiRoute.py +++ b/dsLightRag/Routes/XunFeiRoute.py @@ -4,6 +4,7 @@ import uuid import tempfile import shutil import sys +import logging from fastapi import APIRouter, UploadFile, File # 配置日志 @@ -30,7 +31,13 @@ async def save_audio(audio: UploadFile = File(...)): content = await audio.read() with open(temp_file, "wb") as f: f.write(content) - + + # 3. 保存到正式目录 + file_name = f"audio_{uuid.uuid4().hex}.wav" + file_path = os.path.join(UPLOAD_DIR, file_name) + shutil.copy2(temp_file, file_path) + logger.info(f"已保存文件到: {file_path}") + # 2. 讯飞评分 from KeDaXunFei.XunFeiAudioEvaluator import XunFeiAudioEvaluator evaluator = XunFeiAudioEvaluator( @@ -41,11 +48,8 @@ async def save_audio(audio: UploadFile = File(...)): language="english" ) results, eval_time = evaluator.run_evaluation() - - # 3. 保存到正式目录 - file_name = f"audio_{uuid.uuid4().hex}.wav" - file_path = os.path.join(UPLOAD_DIR, file_name) - shutil.copy2(temp_file, file_path) + print(evaluator.get_evaluation_summary()) + return { "success": True, diff --git a/dsLightRag/Routes/__pycache__/XunFeiRoute.cpython-310.pyc b/dsLightRag/Routes/__pycache__/XunFeiRoute.cpython-310.pyc index 7e6a024564caecb94d06823a1e49557fc85ee7e5..2695cba818c8cdf844af6876ddcb46d29525621d 100644 GIT binary patch delta 673 zcmaJ<&ubGw82!H8o!L!xH)(4dt4&J3Xgk z2el@aH)r0gx`Vj0dMrb*1X*}-a~cy{2(XL{1FU_lJ(Sxxv&2c0hA?Zc1JfINK)5!m zHw|tJ5^4eEPSX`AXs99ZL^H{#pzF}kLPTIDvr1j%?!ZJ4Chy?~c&|VfWAPOdSi)-d zg>XX)VnLjzlsXtfJ#wkZ%n>A-B4T{0U&QOk+zm1blOWKSodSmhhUl+xXZCPM4@8>T zEU}`BT-ei+*S==m8`>mLxDM*(_8q&E^L{@k+X>qG zU(mj(iq)vz&L8!5|Lv+mgwYPi?XIC4XlZFoXbw7< z{?TJ3)ZT@TuHkRc?~du9X2^4N1jpqqdKE|HJDS2V`GsCOF&-sl{-#q(wycS=$10`# RS@qLkeprzO7Rt+J`X}4tu2}#8 delta 636 zcmZuv&ubGw7@co+clP(DiK*6@_ToWmZ4af*sRV@jBT!H(C0K+~I-yBOS=meo4YO7a zdh4Og&9<<6EO_x~5j=}0MKAj&2wuF22c6v@R_HwDF>i+Ny>FQLocrdvzUx{@j-NkH zn=1$IBqRqjl{c*|@LmH#&wxS*gLi}HB7x=}B^`Um2{k}mV=nVpjsw-Hv9E=MlV~hP zk8r4m1~r)$kr=i0LqwHhB{UgsE0N0b+>CK(u|jl#1Gi!fh+5pFHa8E^G3Giea$^Y8 zInwH=jyMD_vdVD|F$8-rS)qL~+qjf&P>Z_z(&9k|6|srk_kcnh&|sEbj!M*%cJ>fb z>lkEIZlvkh5w0VG9wK==`-zRqv<-7Z;c_gC)ST;5o&ttO<~?6FoS(YE}@yYnK_rj3Mj z{O#>VAUa|)WT`v4ji&7@W(vDAiokmrD Y8q}SVWFQ0nq6n4@D# - 在线录音机 + 英语朗读评测