|
|
@@ -41,6 +41,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
|
|
|
|
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(WebSocketHandler.class);
|
|
|
|
|
|
+ //存储客户端链接
|
|
|
public static final Map<String, WebSocketSession> WS_CLIENTS = new ConcurrentHashMap<>();
|
|
|
|
|
|
private BigDecimal oneHundred = new BigDecimal(100);
|
|
|
@@ -145,6 +146,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
|
|
|
dispatcher.addAudioProcessor(new PitchProcessor(algo, simpleRate, simpleSize, (pitchDetectionResult, audioEvent) -> {
|
|
|
int timeStamp = (int) (userSoundInfoMap.get(phone).getMeasureStartTime() + audioEvent.getTimeStamp()*1000);
|
|
|
float pitch = pitchDetectionResult.getPitch();
|
|
|
+ LOGGER.info("频率:{}, {}", timeStamp, pitch);
|
|
|
recordInfo.add(new MusicPitchDetailDto(timeStamp, pitch));
|
|
|
}));
|
|
|
dispatcher.run();
|
|
|
@@ -156,6 +158,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
|
|
|
userSoundInfoMap.get(phone).getRecordMeasurePithInfo().addAll(recordInfo);
|
|
|
for (Map.Entry<Integer, Integer> userMeasureEndTimeMapEntry : userSoundInfoMap.get(phone).getMeasureEndTime().entrySet()) {
|
|
|
if(recordTime>userMeasureEndTimeMapEntry.getValue()){
|
|
|
+// LOGGER.info("评测时间:{}", recordTime);
|
|
|
measureCompare(phone, userMeasureEndTimeMapEntry.getKey());
|
|
|
userSoundInfoMap.get(phone).getMeasureEndTime().remove(userMeasureEndTimeMapEntry.getKey());
|
|
|
break;
|
|
|
@@ -251,7 +254,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
|
|
|
//音准匹配数量
|
|
|
float intonationNum = 0;
|
|
|
//音准匹配误差范围
|
|
|
- float intonationErrRange = 30;
|
|
|
+ float intonationErrRange = 10;
|
|
|
//音准有效阈值
|
|
|
float intonationValidDuty = 0.5f;
|
|
|
|
|
|
@@ -277,7 +280,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
|
|
|
//时间范围内匹配次数
|
|
|
float compareNum = 0;
|
|
|
for (MusicPitchDetailDto recordInfo : userSoundInfoMap.get(phone).getRecordMeasurePithInfo()) {
|
|
|
- LOGGER.info("频率:{}, {}", musicXmlInfo.getFrequency(), recordInfo.getFrequency());
|
|
|
+// LOGGER.info("频率:{}, {}", musicXmlInfo.getFrequency(), recordInfo.getFrequency());
|
|
|
//如果在时间范围之外直接跳过
|
|
|
if(recordInfo.getTimeStamp()<startTimeStamp||recordInfo.getTimeStamp()>endTimeStamp){
|
|
|
continue;
|