Browse Source

feat:小节评分

Joburgess 4 years ago
parent
commit
15e81c8360

+ 7 - 5
mec-biz/src/main/java/com/ym/mec/biz/handler/WebSocketHandler.java

@@ -168,7 +168,8 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
         userSoundInfoMap.get(phone).setMeasureStartTime(recordTime);
         userSoundInfoMap.get(phone).getRecordMeasurePithInfo().addAll(recordInfo);
         for (Map.Entry<Integer, Integer> userMeasureEndTimeMapEntry : userSoundInfoMap.get(phone).getMeasureEndTime().entrySet()) {
-            if((recordTime - userSoundInfoMap.get(phone).getOffsetTime())>userMeasureEndTimeMapEntry.getValue()){
+            int ot = (int) (userMeasureEndTimeMapEntry.getValue()*0.1);
+            if((recordTime - userSoundInfoMap.get(phone).getOffsetTime())>(userMeasureEndTimeMapEntry.getValue()+ot)){
                 measureCompare(phone, userMeasureEndTimeMapEntry.getKey());
                 userSoundInfoMap.get(phone).getMeasureEndTime().remove(userMeasureEndTimeMapEntry.getKey());
                 break;
@@ -256,14 +257,14 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
             //有效音频数量
             float validNum = 0;
             //音频有效阈值
-            float validDuty = 0.5f;
+            float validDuty = 0.1f;
 
             //音准匹配数量
             float intonationNum = 0;
             //音准匹配误差范围
             float intonationErrRange = 15;
             //音准有效阈值
-            float intonationValidDuty = 0.9f;
+            float intonationValidDuty = 0.3f;
 
             //节奏匹配数量
             float cadenceNum = 0;
@@ -275,8 +276,9 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
             int totalCompareNum = userSoundInfoMap.get(phone).getMeasureXmlInfoMap().get(measureIndex).size();
 
             for (MusicPitchDetailDto musicXmlInfo : userSoundInfoMap.get(phone).getMeasureXmlInfoMap().get(measureIndex)) {
-                int startTimeStamp = musicXmlInfo.getTimeStamp() + userSoundInfoMap.get(phone).getOffsetTime();
-                int endTimeStamp = musicXmlInfo.getTimeStamp()+musicXmlInfo.getDuration() + userSoundInfoMap.get(phone).getOffsetTime();
+                int ot = (int) (musicXmlInfo.getDuration()*0.1);
+                int startTimeStamp = musicXmlInfo.getTimeStamp() - ot + userSoundInfoMap.get(phone).getOffsetTime();
+                int endTimeStamp = musicXmlInfo.getTimeStamp() + ot + musicXmlInfo.getDuration() + userSoundInfoMap.get(phone).getOffsetTime();
 
                 //时间范围内有效音准数量
                 float recordValidIntonationNum = 0;