Преглед на файлове

Merge branch 'vip_price_827'

yonge преди 3 години
родител
ревизия
0f80fa4e2a
променени са 1 файла, в които са добавени 8 реда и са изтрити 6 реда
  1. 8 6
      audio-analysis/src/main/java/com/yonge/netty/dto/UserChannelContext.java

+ 8 - 6
audio-analysis/src/main/java/com/yonge/netty/dto/UserChannelContext.java

@@ -328,8 +328,6 @@ public class UserChannelContext {
 		int playFrequency = -1;
 		if(!percussionList.contains(subjectId)){
 			playFrequency = (int)detector.getPitch(samples).getPitch();
-		}else{
-			LOGGER.info("subjectId:{}", subjectId);
 		}
 		
 		int splDb = (int) Signals.soundPressureLevel(samples);
@@ -541,7 +539,6 @@ public class UserChannelContext {
 				}
 			}else{
 				int beatTimes = (int) chunkAnalysisList.stream().filter(t -> t.getAmplitude() > hardLevel.getAmplitudeThreshold()).count();
-				LOGGER.info("Amplitude:{}  beatTimes:{}  Denominator:{}",chunkAnalysisList.stream().map(t -> t.getAmplitude()).collect(Collectors.toList()), beatTimes, musicXmlNote.getDenominator());
 				if(beatTimes == 0){
 					noteAnalysis.setMusicalErrorType(NoteErrorType.NOT_PLAY);
 				}else if (!noteAnalysis.isTempo()) {
@@ -702,7 +699,7 @@ public class UserChannelContext {
 		
 		ChunkAnalysis firstChunkAnalysis = chunkAnalysisList.get(0);
 		
-		Optional<ChunkAnalysis> chunkAnalysisOptional = totalChunkAnalysisList.stream().filter(t -> Double.doubleToLongBits(t.getEndTime()) <= Double.doubleToLongBits(firstChunkAnalysis.getStartTime())).findFirst();
+		Optional<ChunkAnalysis> chunkAnalysisOptional = totalChunkAnalysisList.stream().filter(t -> Double.doubleToLongBits(t.getEndTime()) < Double.doubleToLongBits(firstChunkAnalysis.getStartTime())).findFirst();
 
 		ChunkAnalysis lastChunkAnalysis = null;
 		if (chunkAnalysisOptional.isPresent()) {
@@ -811,10 +808,12 @@ public class UserChannelContext {
 				.getEndTime());
 
 		if (musicXmlNote.getFrequency() == -1) {// 休止符
+			
+			LOGGER.info("--Amplitude:{}  Denominator:{}",chunkList.stream().map(t -> t).collect(Collectors.toList()), musicXmlNote.getDenominator());
 			return chunkList.stream().filter(t -> t.getAmplitude() > hardLevel.getAmplitudeThreshold()).count() <= 0;
 		}
 		
-		Optional<ChunkAnalysis> chunkAnalysisOptional = totalChunkAnalysisList.stream().filter(t -> Double.doubleToLongBits(t.getEndTime()) <= Double.doubleToLongBits(firstChunkAnalysis.getStartTime())).findFirst();
+		Optional<ChunkAnalysis> chunkAnalysisOptional = totalChunkAnalysisList.stream().filter(t -> Double.doubleToLongBits(t.getEndTime()) < Double.doubleToLongBits(firstChunkAnalysis.getStartTime())).findFirst();
 
 		ChunkAnalysis lastChunkAnalysis = null;
 		if (chunkAnalysisOptional.isPresent()) {
@@ -836,7 +835,10 @@ public class UserChannelContext {
 		int firstPeakIndex = -1;
 		int peakSize = 0;
 		for (int i = 1; i < chunkAmplitudeList.size(); i++) {
-			if (chunkAmplitudeList.get(i) > hardLevel.getAmplitudeThreshold() && chunkAmplitudeList.get(i) > chunkAmplitudeList.get(i - 1) + 2) {
+			if (Math.abs(chunkAmplitudeList.get(i) - chunkAmplitudeList.get(i - 1)) < hardLevel.getAmplitudeThreshold()) {
+				continue;
+			}
+			if (chunkAmplitudeList.get(i) > hardLevel.getAmplitudeThreshold() && chunkAmplitudeList.get(i) > chunkAmplitudeList.get(i - 1)) {
 				tempo = true;
 				if(firstPeakIndex == -1){
 					firstPeakIndex = i;