diff --git a/NewAudioR/src/main/java/com/audio/controller/AudioController.java b/NewAudioR/src/main/java/com/audio/controller/AudioController.java index 1055caa..c1095c0 100644 --- a/NewAudioR/src/main/java/com/audio/controller/AudioController.java +++ b/NewAudioR/src/main/java/com/audio/controller/AudioController.java @@ -60,11 +60,13 @@ public String testpage(){ public String test(String time, int fre, int sample, Model model){ // //List> audios=audioService.search(filename); - double[] zql=audioService.test(time, fre, sample); - //model.addAttribute("audios", audios); + //double[] zql=audioService.test(time, fre, sample); + HashMap zql=audioService.test(time, fre, sample); + model.addAttribute("zqls", zql); System.out.println("time:"+time+",fre:"+fre+",sample:"+sample); - return "result"; + //return "result"; + return "redirect:test"; } diff --git a/NewAudioR/src/main/java/com/audio/service/AudioService.java b/NewAudioR/src/main/java/com/audio/service/AudioService.java index ef17652..583a976 100644 --- a/NewAudioR/src/main/java/com/audio/service/AudioService.java +++ b/NewAudioR/src/main/java/com/audio/service/AudioService.java @@ -18,7 +18,7 @@ public interface AudioService { public void startrecord(); - public double[] test(String time, int fre, int sample); + public HashMap test(String time, int fre, int sample); //List> search(String filename, float[] data1); diff --git a/NewAudioR/src/main/java/com/audio/service/impl/AudioServiceImpl.java b/NewAudioR/src/main/java/com/audio/service/impl/AudioServiceImpl.java index 7346575..3a3884b 100644 --- a/NewAudioR/src/main/java/com/audio/service/impl/AudioServiceImpl.java +++ b/NewAudioR/src/main/java/com/audio/service/impl/AudioServiceImpl.java @@ -76,11 +76,10 @@ public List> search(String filename, float[] data1) { e.printStackTrace(); } int[] id = search(linkTime, linkHash, minHit); - /*if (id[i]<0){ - System.out.println("--------------------------error!--id="+id); + if (id==null){ + System.out.println("--------------------------时间太短 或噪声太大,未提取出指纹!--"); return null; } - else{*/ for (int i=0; i<3; i++){ System.out.println("----------------------------id="+id[i]+","); } @@ -134,10 +133,15 @@ public List> search(String filename, float[] data1) { public int[] search(int[] linkTime, int[] linkHash, int minHit){ HashMap linkHashMap = new HashMap<>(linkHash.length); + System.out.println("---------fingerprint parameter length:"+linkHash.length); for(int i = 0; i < linkHash.length; i ++){ //client端 hash,time + //System.out.println("-------linkHash["+i+"]"+"="+linkHash[i]); linkHashMap.put(linkHash[i],linkTime[i]); } hashMap = new HashMap<>(400000); + if (linkHash.length==0){ + return null; + } List audios= audioMapper.searchAllAudios(linkHash); for (int i=0; i o1, HashMap.Entry public void setHashTime(Fingerprint fp){ ArrayList linkList = fp.getLinkList(); + //System.out.println("---------fingerprint length:"+linkList.size()); linkHash = new int[linkList.size()]; //159 linkTime = new int[linkList.size()]; for(int i = 0; i < linkHash.length; i ++){ @@ -264,7 +269,7 @@ public void startrecord(){ }*/ @Override - public double[] test(String time, int fre, int sample) { + public HashMap test(String time, int fre, int sample) { int maxmusicdata=239; //音乐库最大歌曲数 int success1=0, success2=0, failure1=0, failure2=0; //记录器 String path="D:\\Z_毕设\\音频素材\\wav"; @@ -308,6 +313,7 @@ public double[] test(String time, int fre, int sample) { List> audios=search(filename,data); // 测试结果与源文件(名称+歌手+专辑)对比 int flag=0; //判断是否在top3 + if (audios==null) {continue;} System.out.println("-------------audios.size()="+audios.size()); if (audios.size()==1){ String title=(String) audios.get(0).get("title"); @@ -336,9 +342,10 @@ public double[] test(String time, int fre, int sample) { Map map = audios.get(k); Iterator iterator = map.keySet().iterator(); + title=(String) map.get("title"); while (iterator.hasNext()) { String string = (String) iterator.next(); - System.out.println("string:"+string); + //System.out.println("string:"+string); if (j==1){ artist=map.get(string).toString(); } @@ -356,8 +363,11 @@ public double[] test(String time, int fre, int sample) { if (samerate>maxrate){ maxrate=samerate; maxartist=artist; + //System.out.println("-------------maxartist赋值成功:"+maxartist); maxalbum=album; - maxtitle=title; + //System.out.println("-------------maxartist赋值成功:"+maxalbum); + maxtitle=title; //上面为它赋值了,这段代码改下,不需要用迭代器,直接用属性当键取值 + //System.out.println("-------------maxartist赋值成功:"+maxtitle); } } j++; @@ -388,8 +398,11 @@ public double[] test(String time, int fre, int sample) { zql[1]=success2*1.0/sample; System.out.println("----------zql1="+zql[0]+" = "+success1+"/"+sample); System.out.println("----------zql2="+zql[1]+" = "+success2+"/"+sample); + HashMap zqlmap = new HashMap<>(); + zqlmap.put("zql1", zql[0]); + zqlmap.put("zql2", zql[1]); - return zql; + return zqlmap; } // 2.模拟生成fre频率的白噪声 diff --git a/NewAudioR/src/main/webapp/WEB-INF/jsp/searchpage.jsp b/NewAudioR/src/main/webapp/WEB-INF/jsp/searchpage.jsp index a5f540c..37f0300 100644 --- a/NewAudioR/src/main/webapp/WEB-INF/jsp/searchpage.jsp +++ b/NewAudioR/src/main/webapp/WEB-INF/jsp/searchpage.jsp @@ -65,6 +65,7 @@ + diff --git a/NewAudioR/src/main/webapp/WEB-INF/jsp/test.jsp b/NewAudioR/src/main/webapp/WEB-INF/jsp/test.jsp index d47b171..95d4173 100644 --- a/NewAudioR/src/main/webapp/WEB-INF/jsp/test.jsp +++ b/NewAudioR/src/main/webapp/WEB-INF/jsp/test.jsp @@ -18,9 +18,6 @@ - - -
Search word @@ -73,10 +70,10 @@
- +

- +

Results

@@ -86,15 +83,22 @@ 编号 时长 - 噪音频率 + 噪音频率 测试样例数 + 操作 测试准确率1 测试准确率2 + 详细 + + + ${zqls.zql1 } ${zqls.zql2 } + + \ No newline at end of file diff --git a/NewAudioR/src/main/webapp/resources/js/app.js b/NewAudioR/src/main/webapp/resources/js/app.js index 5176606..73e2f51 100644 --- a/NewAudioR/src/main/webapp/resources/js/app.js +++ b/NewAudioR/src/main/webapp/resources/js/app.js @@ -125,7 +125,7 @@ function createDownloadLink(blob) { //name of .wav file to use during upload and download (without extendion) var filename = new Date().toISOString(); - //add controls to the