|
|
@@ -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;
|