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 @@
-
-
-
-
+
Results
@@ -86,15 +83,22 @@
编号 |
时长 |
- 噪音频率 |
+ 噪音频率 |
测试样例数 |
+ 操作 |
测试准确率1 |
测试准确率2 |
+ 详细 |
+
+
+ ${zqls.zql1 } ${zqls.zql2 }
+
+