'commit'
This commit is contained in:
@@ -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()
|
||||
|
Binary file not shown.
@@ -11,21 +11,6 @@ const statusDiv = document.getElementById('status');
|
||||
const resultDiv = document.getElementById('result');
|
||||
const resultContent = document.getElementById('resultContent');
|
||||
|
||||
// 语言切换时自动填充示例文本
|
||||
// 移除语言切换事件监听
|
||||
// languageSelect.addEventListener('change', () => {
|
||||
// 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 () => {
|
||||
|
Reference in New Issue
Block a user