'commit'
This commit is contained in:
257
dsLightRag/KeDaXunFei/1.xml
Normal file
257
dsLightRag/KeDaXunFei/1.xml
Normal file
@@ -0,0 +1,257 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xml_result>
|
||||
<read_sentence lan="cn" type="study" version="7,0,0,1024">
|
||||
<rec_paper>
|
||||
<read_sentence accuracy_score="3.262373" beg_pos="0" content="大家好。很高兴认识你们。今天天气很好。我正在使用这个工具练习中文发音。" emotion_score="3.634518" end_pos="2597" except_info="28676" fluency_score="0.826676" integrity_score="19.354837" is_rejected="true" phone_score="5.322581" time_len="2597" tone_score="22.580650" total_score="2.362523">
|
||||
<sentence beg_pos="0" content="大家好" end_pos="903" fluency_score="0.000000" phone_score="5.000001" time_len="903" tone_score="9.999998" total_score="3.771080">
|
||||
<word beg_pos="0" content="大" end_pos="80" symbol="da4" time_len="80">
|
||||
<syll beg_pos="0" content="sil" dp_message="0" end_pos="62" rec_node_type="sil" time_len="62">
|
||||
<phone beg_pos="0" content="sil" dp_message="0" end_pos="62" rec_node_type="sil" time_len="62"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="62" content="大" dp_message="0" end_pos="80" rec_node_type="paper" symbol="da4" time_len="18">
|
||||
<phone beg_pos="62" content="d" dp_message="0" end_pos="75" is_yun="0" perr_level_msg="3" perr_msg="1" rec_node_type="paper" time_len="13"></phone>
|
||||
<phone beg_pos="75" content="a" dp_message="0" end_pos="80" is_yun="1" mono_tone="TONE4" perr_level_msg="3" perr_msg="3" rec_node_type="paper" time_len="5"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="80" content="家" end_pos="498" symbol="jia1" time_len="418">
|
||||
<syll beg_pos="80" content="sil" dp_message="0" end_pos="90" rec_node_type="sil" time_len="10">
|
||||
<phone beg_pos="80" content="sil" dp_message="0" end_pos="90" rec_node_type="sil" time_len="10"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="90" content="fil" dp_message="32" end_pos="126" rec_node_type="fil" time_len="36">
|
||||
<phone beg_pos="90" content="fil" dp_message="32" end_pos="126" rec_node_type="fil" time_len="36"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="126" content="sil" dp_message="0" end_pos="448" rec_node_type="sil" time_len="322">
|
||||
<phone beg_pos="126" content="sil" dp_message="0" end_pos="448" rec_node_type="sil" time_len="322"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="448" content="fil" dp_message="32" end_pos="464" rec_node_type="fil" time_len="16">
|
||||
<phone beg_pos="448" content="fil" dp_message="32" end_pos="464" rec_node_type="fil" time_len="16"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="464" content="sil" dp_message="0" end_pos="489" rec_node_type="sil" time_len="25">
|
||||
<phone beg_pos="464" content="sil" dp_message="0" end_pos="489" rec_node_type="sil" time_len="25"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="489" content="家" dp_message="0" end_pos="498" rec_node_type="paper" symbol="jia1" time_len="9">
|
||||
<phone beg_pos="489" content="j" dp_message="0" end_pos="492" is_yun="0" perr_level_msg="3" perr_msg="1" rec_node_type="paper" time_len="3"></phone>
|
||||
<phone beg_pos="492" content="ia" dp_message="0" end_pos="498" is_yun="1" mono_tone="TONE1" perr_level_msg="3" perr_msg="3" rec_node_type="paper" time_len="6"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="498" content="好" end_pos="903" symbol="hao3" time_len="405">
|
||||
<syll beg_pos="498" content="sil" dp_message="0" end_pos="874" rec_node_type="sil" time_len="376">
|
||||
<phone beg_pos="498" content="sil" dp_message="0" end_pos="874" rec_node_type="sil" time_len="376"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="874" content="好" dp_message="0" end_pos="903" rec_node_type="paper" symbol="hao3" time_len="29">
|
||||
<phone beg_pos="874" content="h" dp_message="0" end_pos="898" is_yun="0" perr_level_msg="1" perr_msg="0" rec_node_type="paper" time_len="24"></phone>
|
||||
<phone beg_pos="898" content="ao" dp_message="0" end_pos="903" is_yun="1" mono_tone="TONE3" perr_level_msg="3" perr_msg="1" rec_node_type="paper" time_len="5"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
</sentence>
|
||||
<sentence beg_pos="903" content="很高兴认识你们" end_pos="1502" fluency_score="0.000000" phone_score="10.714286" time_len="1502" tone_score="12.857141" total_score="3.771080">
|
||||
<word beg_pos="903" content="很" end_pos="1020" symbol="hen3" time_len="117">
|
||||
<syll beg_pos="903" content="sil" dp_message="0" end_pos="972" rec_node_type="sil" time_len="69">
|
||||
<phone beg_pos="903" content="sil" dp_message="0" end_pos="972" rec_node_type="sil" time_len="69"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="972" content="很" dp_message="0" end_pos="1020" rec_node_type="paper" symbol="hen3" time_len="48">
|
||||
<phone beg_pos="972" content="h" dp_message="0" end_pos="999" is_yun="0" perr_level_msg="1" perr_msg="0" rec_node_type="paper" time_len="27"></phone>
|
||||
<phone beg_pos="999" content="en" dp_message="0" end_pos="1020" is_yun="1" mono_tone="TONE3" perr_level_msg="2" perr_msg="0" rec_node_type="paper" time_len="21"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1020" content="高" end_pos="1028" symbol="gao1" time_len="8">
|
||||
<syll beg_pos="1020" content="高" dp_message="0" end_pos="1028" rec_node_type="paper" symbol="gao1" time_len="8">
|
||||
<phone beg_pos="1020" content="g" dp_message="0" end_pos="1023" is_yun="0" perr_level_msg="3" perr_msg="1" rec_node_type="paper" time_len="3"></phone>
|
||||
<phone beg_pos="1023" content="ao" dp_message="0" end_pos="1028" is_yun="1" mono_tone="TONE1" perr_level_msg="3" perr_msg="3" rec_node_type="paper" time_len="5"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1028" content="兴" end_pos="1401" symbol="xing4" time_len="373">
|
||||
<syll beg_pos="1028" content="sil" dp_message="0" end_pos="1378" rec_node_type="sil" time_len="350">
|
||||
<phone beg_pos="1028" content="sil" dp_message="0" end_pos="1378" rec_node_type="sil" time_len="350"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="1378" content="兴" dp_message="0" end_pos="1401" rec_node_type="paper" symbol="xing4" time_len="23">
|
||||
<phone beg_pos="1378" content="x" dp_message="0" end_pos="1381" is_yun="0" perr_level_msg="3" perr_msg="1" rec_node_type="paper" time_len="3"></phone>
|
||||
<phone beg_pos="1381" content="ing" dp_message="0" end_pos="1401" is_yun="1" mono_tone="TONE4" perr_level_msg="3" perr_msg="3" rec_node_type="paper" time_len="20"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1401" content="认" end_pos="1429" symbol="ren4" time_len="28">
|
||||
<syll beg_pos="1401" content="sil" dp_message="0" end_pos="1421" rec_node_type="sil" time_len="20">
|
||||
<phone beg_pos="1401" content="sil" dp_message="0" end_pos="1421" rec_node_type="sil" time_len="20"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="1421" content="认" dp_message="0" end_pos="1429" rec_node_type="paper" symbol="ren4" time_len="8">
|
||||
<phone beg_pos="1421" content="r" dp_message="0" end_pos="1424" is_yun="0" perr_level_msg="3" perr_msg="1" rec_node_type="paper" time_len="3"></phone>
|
||||
<phone beg_pos="1424" content="en" dp_message="0" end_pos="1429" is_yun="1" mono_tone="TONE4" perr_level_msg="2" perr_msg="2" rec_node_type="paper" time_len="5"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1429" content="识" end_pos="1429" symbol="shi7" time_len="0">
|
||||
<syll beg_pos="1429" content="识" dp_message="16" end_pos="1429" rec_node_type="paper" symbol="shi0" time_len="0">
|
||||
<phone content="sh" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="iii" dp_message="16" is_yun="1" mono_tone="TONE0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1429" content="你" end_pos="1467" symbol="ni3" time_len="38">
|
||||
<syll beg_pos="1429" content="你" dp_message="0" end_pos="1467" rec_node_type="paper" symbol="ni3" time_len="38">
|
||||
<phone beg_pos="1429" content="n" dp_message="0" end_pos="1462" is_yun="0" perr_level_msg="1" perr_msg="0" rec_node_type="paper" time_len="33"></phone>
|
||||
<phone beg_pos="1462" content="i" dp_message="0" end_pos="1467" is_yun="1" mono_tone="TONE3" perr_level_msg="3" perr_msg="1" rec_node_type="paper" time_len="5"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1467" content="们" end_pos="1502" symbol="men5" time_len="35">
|
||||
<syll beg_pos="1467" content="们" dp_message="0" end_pos="1502" rec_node_type="paper" symbol="men0" time_len="35">
|
||||
<phone beg_pos="1467" content="m" dp_message="0" end_pos="1470" is_yun="0" perr_level_msg="3" perr_msg="1" rec_node_type="paper" time_len="3"></phone>
|
||||
<phone beg_pos="1470" content="en" dp_message="0" end_pos="1502" is_yun="1" mono_tone="TONE0" perr_level_msg="1" perr_msg="0" rec_node_type="paper" time_len="32"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
</sentence>
|
||||
<sentence beg_pos="1502" content="今天天气很好" end_pos="1505" fluency_score="0.000000" phone_score="0.000000" time_len="1505" tone_score="0.000000" total_score="0.000000">
|
||||
<word beg_pos="1502" content="今" end_pos="1505" symbol="jin1" time_len="3">
|
||||
<syll beg_pos="1502" content="sil" dp_message="0" end_pos="1505" rec_node_type="sil" time_len="3">
|
||||
<phone beg_pos="1502" content="sil" dp_message="0" end_pos="1505" rec_node_type="sil" time_len="3"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="1505" content="今" dp_message="16" end_pos="1505" rec_node_type="paper" symbol="jin1" time_len="0">
|
||||
<phone content="j" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="in" dp_message="16" is_yun="1" mono_tone="TONE1" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1505" content="天" end_pos="1505" symbol="tian1" time_len="0">
|
||||
<syll beg_pos="1505" content="天" dp_message="16" end_pos="1505" rec_node_type="paper" symbol="tian1" time_len="0">
|
||||
<phone content="t" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="ian" dp_message="16" is_yun="1" mono_tone="TONE1" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1505" content="天" end_pos="1505" symbol="tian1" time_len="0">
|
||||
<syll beg_pos="1505" content="天" dp_message="16" end_pos="1505" rec_node_type="paper" symbol="tian1" time_len="0">
|
||||
<phone content="t" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="ian" dp_message="16" is_yun="1" mono_tone="TONE1" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1505" content="气" end_pos="1505" symbol="qi9" time_len="0">
|
||||
<syll beg_pos="1505" content="气" dp_message="16" end_pos="1505" rec_node_type="paper" symbol="qi0" time_len="0">
|
||||
<phone content="q" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="i" dp_message="16" is_yun="1" mono_tone="TONE0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1505" content="很" end_pos="1505" symbol="hen2" time_len="0">
|
||||
<syll beg_pos="1505" content="很" dp_message="16" end_pos="1505" rec_node_type="paper" symbol="hen2" time_len="0">
|
||||
<phone content="h" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="en" dp_message="16" is_yun="1" mono_tone="TONE2" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1505" content="好" end_pos="1505" symbol="hao3" time_len="0">
|
||||
<syll beg_pos="1505" content="好" dp_message="16" end_pos="1505" rec_node_type="paper" symbol="hao3" time_len="0">
|
||||
<phone content="h" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="ao" dp_message="16" is_yun="1" mono_tone="TONE3" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
</sentence>
|
||||
<sentence beg_pos="1505" content="我正在使用这个工具练习中文发音" end_pos="2597" fluency_score="0.000000" phone_score="5.000001" time_len="2597" tone_score="6.000000" total_score="3.771080">
|
||||
<word beg_pos="1505" content="我" end_pos="1514" symbol="wo3" time_len="9">
|
||||
<syll beg_pos="1505" content="我" dp_message="0" end_pos="1514" rec_node_type="paper" symbol="wo3" time_len="9">
|
||||
<phone beg_pos="1505" content="_u" dp_message="0" end_pos="1508" is_yun="0" perr_level_msg="3" perr_msg="1" rec_node_type="paper" time_len="3"></phone>
|
||||
<phone beg_pos="1508" content="uo" dp_message="0" end_pos="1514" is_yun="1" mono_tone="TONE3" perr_level_msg="2" perr_msg="0" rec_node_type="paper" time_len="6"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1514" content="正" end_pos="1666" symbol="zheng4" time_len="152">
|
||||
<syll beg_pos="1514" content="sil" dp_message="0" end_pos="1617" rec_node_type="sil" time_len="103">
|
||||
<phone beg_pos="1514" content="sil" dp_message="0" end_pos="1617" rec_node_type="sil" time_len="103"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="1617" content="正" dp_message="0" end_pos="1666" rec_node_type="paper" symbol="zheng4" time_len="49">
|
||||
<phone beg_pos="1617" content="zh" dp_message="0" end_pos="1620" is_yun="0" perr_level_msg="2" perr_msg="0" rec_node_type="paper" time_len="3"></phone>
|
||||
<phone beg_pos="1620" content="eng" dp_message="0" end_pos="1666" is_yun="1" mono_tone="TONE4" perr_level_msg="2" perr_msg="3" rec_node_type="paper" time_len="46"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1666" content="在" end_pos="1884" symbol="zai4" time_len="218">
|
||||
<syll beg_pos="1666" content="sil" dp_message="0" end_pos="1836" rec_node_type="sil" time_len="170">
|
||||
<phone beg_pos="1666" content="sil" dp_message="0" end_pos="1836" rec_node_type="sil" time_len="170"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="1836" content="在" dp_message="0" end_pos="1884" rec_node_type="paper" symbol="zai4" time_len="48">
|
||||
<phone beg_pos="1836" content="z" dp_message="0" end_pos="1839" is_yun="0" perr_level_msg="3" perr_msg="1" rec_node_type="paper" time_len="3"></phone>
|
||||
<phone beg_pos="1839" content="ai" dp_message="0" end_pos="1884" is_yun="1" mono_tone="TONE4" perr_level_msg="1" perr_msg="0" rec_node_type="paper" time_len="45"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="1884" content="使" end_pos="2087" symbol="shi3" time_len="203">
|
||||
<syll beg_pos="1884" content="sil" dp_message="0" end_pos="1910" rec_node_type="sil" time_len="26">
|
||||
<phone beg_pos="1884" content="sil" dp_message="0" end_pos="1910" rec_node_type="sil" time_len="26"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="1910" content="fil" dp_message="32" end_pos="1918" rec_node_type="fil" time_len="8">
|
||||
<phone beg_pos="1910" content="fil" dp_message="32" end_pos="1918" rec_node_type="fil" time_len="8"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="1918" content="sil" dp_message="0" end_pos="2044" rec_node_type="sil" time_len="126">
|
||||
<phone beg_pos="1918" content="sil" dp_message="0" end_pos="2044" rec_node_type="sil" time_len="126"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="2044" content="使" dp_message="0" end_pos="2087" rec_node_type="paper" symbol="shi3" time_len="43">
|
||||
<phone beg_pos="2044" content="sh" dp_message="0" end_pos="2060" is_yun="0" perr_level_msg="2" perr_msg="0" rec_node_type="paper" time_len="16"></phone>
|
||||
<phone beg_pos="2060" content="iii" dp_message="0" end_pos="2087" is_yun="1" mono_tone="TONE3" perr_level_msg="2" perr_msg="0" rec_node_type="paper" time_len="27"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2087" content="用" end_pos="2597" symbol="yong4" time_len="510">
|
||||
<syll beg_pos="2087" content="fil" dp_message="32" end_pos="2146" rec_node_type="fil" time_len="59">
|
||||
<phone beg_pos="2087" content="fil" dp_message="32" end_pos="2146" rec_node_type="fil" time_len="59"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="2146" content="sil" dp_message="0" end_pos="2597" rec_node_type="sil" time_len="451">
|
||||
<phone beg_pos="2146" content="sil" dp_message="0" end_pos="2597" rec_node_type="sil" time_len="451"></phone>
|
||||
</syll>
|
||||
<syll beg_pos="2597" content="用" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="yong4" time_len="0">
|
||||
<phone content="_i" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="iong" dp_message="16" is_yun="1" mono_tone="TONE4" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2597" content="这" end_pos="2597" symbol="zhe4" time_len="0">
|
||||
<syll beg_pos="2597" content="这" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="zhe4" time_len="0">
|
||||
<phone content="zh" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="e" dp_message="16" is_yun="1" mono_tone="TONE4" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2597" content="个" end_pos="2597" symbol="ge9" time_len="0">
|
||||
<syll beg_pos="2597" content="个" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="ge0" time_len="0">
|
||||
<phone content="g" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="e" dp_message="16" is_yun="1" mono_tone="TONE0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2597" content="工" end_pos="2597" symbol="gong1" time_len="0">
|
||||
<syll beg_pos="2597" content="工" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="gong1" time_len="0">
|
||||
<phone content="g" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="ong" dp_message="16" is_yun="1" mono_tone="TONE1" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2597" content="具" end_pos="2597" symbol="ju4" time_len="0">
|
||||
<syll beg_pos="2597" content="具" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="ju4" time_len="0">
|
||||
<phone content="j" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="v" dp_message="16" is_yun="1" mono_tone="TONE4" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2597" content="练" end_pos="2597" symbol="lian4" time_len="0">
|
||||
<syll beg_pos="2597" content="练" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="lian4" time_len="0">
|
||||
<phone content="l" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="ian" dp_message="16" is_yun="1" mono_tone="TONE4" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2597" content="习" end_pos="2597" symbol="xi2" time_len="0">
|
||||
<syll beg_pos="2597" content="习" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="xi2" time_len="0">
|
||||
<phone content="x" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="i" dp_message="16" is_yun="1" mono_tone="TONE2" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2597" content="中" end_pos="2597" symbol="zhong1" time_len="0">
|
||||
<syll beg_pos="2597" content="中" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="zhong1" time_len="0">
|
||||
<phone content="zh" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="ong" dp_message="16" is_yun="1" mono_tone="TONE1" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2597" content="文" end_pos="2597" symbol="wen2" time_len="0">
|
||||
<syll beg_pos="2597" content="文" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="wen2" time_len="0">
|
||||
<phone content="_u" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="uen" dp_message="16" is_yun="1" mono_tone="TONE2" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2597" content="发" end_pos="2597" symbol="fa1" time_len="0">
|
||||
<syll beg_pos="2597" content="发" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="fa1" time_len="0">
|
||||
<phone content="f" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="a" dp_message="16" is_yun="1" mono_tone="TONE1" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
<word beg_pos="2597" content="音" end_pos="2597" symbol="yin1" time_len="0">
|
||||
<syll beg_pos="2597" content="音" dp_message="16" end_pos="2597" rec_node_type="paper" symbol="yin1" time_len="0">
|
||||
<phone content="_i" dp_message="16" is_yun="0" perr_msg="16" rec_node_type="paper"></phone>
|
||||
<phone content="in" dp_message="16" is_yun="1" mono_tone="TONE1" perr_msg="16" rec_node_type="paper"></phone>
|
||||
</syll>
|
||||
</word>
|
||||
</sentence>
|
||||
</read_sentence>
|
||||
</rec_paper>
|
||||
</read_sentence>
|
||||
</xml_result>
|
@@ -56,25 +56,75 @@ class XunFeiAudioEvaluator_cn:
|
||||
|
||||
return self.host_url + '?' + urlencode(dict_data)
|
||||
|
||||
def parse_evaluation_results(self, xml_content):
|
||||
"""解析评测结果XML并提得分信息(整合版)"""
|
||||
try:
|
||||
root = ET.fromstring(xml_content)
|
||||
|
||||
# 查找包含评分数据的节点(优先read_chapter,兼容read_sentence)
|
||||
score_nodes = root.findall('.//read_chapter') + root.findall('.//read_sentence')
|
||||
if not score_nodes:
|
||||
print("未找到评分节点")
|
||||
return
|
||||
|
||||
# 优先使用第一个包含total_score的节点
|
||||
target_node = None
|
||||
for node in score_nodes:
|
||||
if 'total_score' in node.attrib:
|
||||
target_node = node
|
||||
break
|
||||
|
||||
if not target_node:
|
||||
print("未找到包含评分数据的有效节点")
|
||||
return
|
||||
|
||||
# 提取核心评分字段
|
||||
self.evaluation_results = {
|
||||
'total_score': float(target_node.get('total_score', 0)),
|
||||
'accuracy_score': float(target_node.get('accuracy_score', 0)),
|
||||
'fluency_score': float(target_node.get('fluency_score', 0)),
|
||||
'integrity_score': float(target_node.get('integrity_score', 0)),
|
||||
'tone_score': float(target_node.get('tone_score', 0)),
|
||||
'phone_score': float(target_node.get('phone_score', 0)),
|
||||
'emotion_score': float(target_node.get('emotion_score', 0)),
|
||||
'is_rejected': target_node.get('is_rejected', 'false') == 'true'
|
||||
}
|
||||
|
||||
# 提取句子级得分
|
||||
sentences = []
|
||||
for sent in target_node.findall('.//sentence'):
|
||||
sentences.append({
|
||||
'content': sent.get('content', ''),
|
||||
'total_score': float(sent.get('total_score', 0)),
|
||||
'fluency_score': float(sent.get('fluency_score', 0))
|
||||
})
|
||||
self.evaluation_results['sentences'] = sentences
|
||||
|
||||
print(f"解析成功,提取到{len(self.evaluation_results)}个评分字段")
|
||||
|
||||
except ET.ParseError as e:
|
||||
print(f"XML解析失败: {e}, 内容: {xml_content[:200]}")
|
||||
self.evaluation_results = {'error': f'解析失败: {str(e)}'}
|
||||
|
||||
def on_message(self, ws, message):
|
||||
"""WebSocket消息处理"""
|
||||
print(f"Received message: {message}")
|
||||
try:
|
||||
data = json.loads(message)
|
||||
if data.get('code') != 0:
|
||||
self.results = {'error': data.get('message', 'Unknown error')}
|
||||
self.evaluation_results = {'error': data.get('message', 'Unknown error')}
|
||||
return
|
||||
|
||||
# 修复:移除状态码为2的硬性检查,只要有数据就解析
|
||||
inner_data = data.get('data', {})
|
||||
xml_b64 = inner_data.get('data', '')
|
||||
if xml_b64:
|
||||
xml_data = base64.b64decode(xml_b64)
|
||||
xml_content = xml_data.decode("utf-8")
|
||||
self.parse_evaluation_results(xml_content) # 确保中文也能进入解析
|
||||
self.parse_evaluation_results(xml_content) # 直接调用整合后的解析方法
|
||||
ws.close()
|
||||
except Exception as e:
|
||||
print(f"Error processing message: {e}")
|
||||
self.results = {'error': str(e)}
|
||||
self.evaluation_results = {'error': str(e)}
|
||||
|
||||
# 安全获取data字段
|
||||
response_data = data.get("data", {})
|
||||
@@ -164,81 +214,6 @@ class XunFeiAudioEvaluator_cn:
|
||||
total_sent += len(buffer)
|
||||
time.sleep(0.04)
|
||||
|
||||
def parse_evaluation_results(self, xml_content):
|
||||
"""解析中文评测XML结果(仅处理read_sentence节点)"""
|
||||
try:
|
||||
root = ET.fromstring(xml_content)
|
||||
# 中文专用:查找read_chapter节点(原read_sentence)
|
||||
read_chapter = root.find('.//read_chapter')
|
||||
if read_chapter is not None:
|
||||
# 中文评分字段映射(修正节点名称和属性)
|
||||
self.evaluation_results = {
|
||||
'total_score': float(read_chapter.get('total_score', 0)),
|
||||
'accuracy_score': float(read_chapter.get('accuracy_score', 0)),
|
||||
'fluency_score': float(read_chapter.get('fluency_score', 0)),
|
||||
'integrity_score': float(read_chapter.get('integrity_score', 0)), # 修正字段名
|
||||
'tone_score': float(read_chapter.get('tone_score', 0)),
|
||||
'is_rejected': read_chapter.get('is_rejected', 'false') == 'true'
|
||||
}
|
||||
# 提取句子级得分
|
||||
sentences = []
|
||||
for sent in read_chapter.findall('.//sentence'):
|
||||
sentences.append({
|
||||
'content': sent.get('content', ''),
|
||||
'total_score': float(sent.get('total_score', 0)),
|
||||
'fluency_score': float(sent.get('fluency_score', 0))
|
||||
})
|
||||
self.evaluation_results['sentences'] = sentences
|
||||
print(f"中文评测结果解析成功: {self.evaluation_results}")
|
||||
else:
|
||||
print(f"未找到中文评分节点: {xml_content[:200]}") # 打印前200字符调试
|
||||
self.evaluation_results = {'error': '未找到read_sentence节点'}
|
||||
except ET.ParseError as e:
|
||||
print(f"XML解析失败: {e}, 内容: {xml_content[:200]}")
|
||||
self.evaluation_results = {'error': f'解析失败: {str(e)}'}
|
||||
"""解析评测结果XML并提得分信息"""
|
||||
try:
|
||||
print(xml_content)
|
||||
root = ET.fromstring(xml_content)
|
||||
|
||||
# 查找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)),
|
||||
'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)),
|
||||
'is_rejected': read_chapter.get('is_rejected', 'false') == 'true'
|
||||
}
|
||||
|
||||
# 提取句子级别得分
|
||||
sentence = read_chapter.find('.//sentence')
|
||||
if sentence is not None:
|
||||
self.evaluation_results['sentence'] = {
|
||||
'accuracy_score': float(sentence.get('accuracy_score', 0)),
|
||||
'fluency_score': float(sentence.get('fluency_score', 0)),
|
||||
'total_score': float(sentence.get('total_score', 0))
|
||||
}
|
||||
|
||||
# 提取单词级别得分
|
||||
words = []
|
||||
for word in read_chapter.findall('.//word'):
|
||||
word_data = {
|
||||
'content': word.get('content', ''),
|
||||
'total_score': float(word.get('total_score', 0)),
|
||||
'dp_message': int(word.get('dp_message', 0))
|
||||
}
|
||||
words.append(word_data)
|
||||
|
||||
self.evaluation_results['words'] = words
|
||||
|
||||
except ET.ParseError as e:
|
||||
print(f"XML解析错误: {e}")
|
||||
|
||||
def get_evaluation_summary(self):
|
||||
"""获取评测结果摘要"""
|
||||
if not self.evaluation_results:
|
||||
|
Binary file not shown.
28
dsLightRag/KeDaXunFei/getCnScore.py
Normal file
28
dsLightRag/KeDaXunFei/getCnScore.py
Normal file
@@ -0,0 +1,28 @@
|
||||
import os
|
||||
from XunFeiAudioEvaluator_cn import XunFeiAudioEvaluator_cn
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
if __name__ == "__main__":
|
||||
log_path = r"1.xml"
|
||||
evaluator = XunFeiAudioEvaluator_cn(None, None, None, None, "") # 使用空字符串代替None作为txt参数
|
||||
|
||||
if os.path.exists(log_path):
|
||||
try:
|
||||
# 读取XML文件内容
|
||||
with open(log_path, 'r', encoding='utf-8') as f:
|
||||
xml_content = f.read()
|
||||
|
||||
# 使用XunFeiAudioEvaluator_cn类的解析方法
|
||||
evaluator.parse_evaluation_results(xml_content)
|
||||
results = evaluator.evaluation_results
|
||||
|
||||
if results and 'total_score' in results:
|
||||
print("解析成功!以下是评分数据:")
|
||||
for key, value in results.items():
|
||||
print(f"{key}: {value}")
|
||||
else:
|
||||
print("未找到有效的评分数据")
|
||||
except Exception as e:
|
||||
print(f"解析日志时出错:{str(e)}")
|
||||
else:
|
||||
print(f"文件不存在:{log_path}")
|
@@ -39,16 +39,17 @@ async def save_audio(audio: UploadFile = File(...), txt: str = Form(...), langua
|
||||
|
||||
# 添加wav转mp3功能
|
||||
import subprocess
|
||||
mp3_temp_file = os.path.join(temp_dir, f"temp_{uuid.uuid4().hex}.mp3")
|
||||
mp3_file_path = os.path.join(temp_dir, f"temp_{uuid.uuid4().hex}.mp3")
|
||||
try:
|
||||
# 使用ffmpeg将wav转换为mp3
|
||||
subprocess.run(
|
||||
["ffmpeg", "-i", temp_file, "-y", mp3_temp_file],
|
||||
["ffmpeg", "-i", temp_file, "-ar", "16000", "-ac", "1", "-acodec", "libmp3lame", "-b:a", "128k", "-y",
|
||||
mp3_file_path],
|
||||
check=True,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE
|
||||
)
|
||||
logger.info(f"已将wav转换为mp3: {mp3_temp_file}")
|
||||
logger.info(f"已将wav转换为mp3: {mp3_file_path}")
|
||||
except subprocess.CalledProcessError as e:
|
||||
logger.error(f"ffmpeg转换失败: {e.stderr.decode()}")
|
||||
raise Exception(f"音频格式转换失败: {e.stderr.decode()}")
|
||||
@@ -59,7 +60,7 @@ async def save_audio(audio: UploadFile = File(...), txt: str = Form(...), langua
|
||||
appid=XF_APPID,
|
||||
api_key=XF_APIKEY,
|
||||
api_secret=XF_APISECRET,
|
||||
audio_file=mp3_temp_file,
|
||||
audio_file=mp3_file_path,
|
||||
language=language, # 使用动态参数
|
||||
txt=txt
|
||||
)
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -83,4 +83,9 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
// 初始化轮播
|
||||
initCarousel();
|
||||
});
|
||||
});
|
||||
|
||||
// 修复前可能存在字段名不匹配问题
|
||||
$(".accuracy-score").text(response.evaluation.accuracy_score.toFixed(4));
|
||||
$(".fluency-score").text(response.evaluation.fluency_score.toFixed(4));
|
||||
$(".total-score").text(response.evaluation.total_score.toFixed(4));
|
Reference in New Issue
Block a user