我有两个音频文件.一个持续大约一秒钟,包含一个非常无聊的"嘟嘟"声,另一个持续约60分钟,充满随机声音(说话,噪音等)以及同样"嘟嘟"声的实例(注意: "哔"声可能与其他声音同时发生!).
任何人都可以向我建议一个简单的方法来编写一个搜索60分钟音频文件的程序,并为它发现的"嘟嘟"噪音的每个实例返回一个时间戳吗?我一直在寻找如何做到这一点,但我很难搞清楚搜索/阅读的条款.
我希望尽可能使用Python,但我也愿意使用C,C++,Java或(对我来说最明显的)Matlab.请随意指出我认为可能有用的教科书,概念或其他任何内容.我愿意做大量的学习,以弄清楚如何做到这一点.任何帮助是极大的赞赏!
编辑:标题清晰
我有以下对象Node:
private class Node implements Comparable<Node>(){
private String guid();
...
public boolean equals(Node o){
return (this == o);
}
public int hashCode(){
return guid.hashCode();
}
public int compareTo(Node o){
return (this.hashCode() - o.hashCode());
}
...
}
Run Code Online (Sandbox Code Playgroud)
我在下面使用它TreeMap:
TreeMap<Node, TreeSet<Edge>> nodes = new TreeMap<Node, TreeSet<Edge>>();
Run Code Online (Sandbox Code Playgroud)
现在,树图被用在一个被调用的类中,Graph用于存储当前在图中的节点,以及它们的一组边(来自类Edge).我的问题是当我尝试执行时:
public containsNode(n){
for (Node x : nodes.keySet()) {
System.out.println("HASH CODE: ");
System.out.print(x.hashCode() == n.hashCode());
System.out.println("EQUALS: ");
System.out.print(x.equals(n));
System.out.println("CONTAINS: ");
System.out.print(nodes.containsKey(n));
System.out.println("N: " + n);
System.out.println("X: " + …Run Code Online (Sandbox Code Playgroud) 我有以下TreeMap:
TreeMap<String, Integer> distances = new TreeMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)
它包含两个字符串,"Face"和"Foo",具有适当的值,这样:
System.out.println(distances);
Run Code Online (Sandbox Code Playgroud)
产量:
{Face=12, Foo=2}
Run Code Online (Sandbox Code Playgroud)
然而,distances.get(Face)返回null,即使distances.get(Foo)正确返回2.以前,distances.get(Face)工作,但由于某种原因,它停止工作.注意我打印出图右呼吁这两个键的get()之前,所以我不小心变脸的值设置为null.有没有人遇到过这个问题?有什么我能做的吗?我只是想弄清楚如何调试这个问题.
注意:在实际代码中,我实际上并没有使用字符串,而是使用不同的对象,所以它是:TreeMap<Object, Integer>.所以它不仅仅是变量名与文字字符串的混淆.
第二个音符:我也觉得非常有信心我的实现hashcode(),并equals()为我使用的对象.(另外,如果我的实现不正确,它不会从一开始就不起作用吗?而不是停止随机工作?)