/** * @param file * @return * @throws MalformedURLException */ private WordSpotResult doWordspot(File aWavFile) throws MalformedURLException { WordSpotResult result = new WordSpotResult(); URL aWavUrl = aWavFile.toURI().toURL(); Collection<Marker> keywordMarkers = findKeywordSegment(SEARCH_KEY_WORD, aWavFile, KEY_WORD_SEQUENCE_ARR); SignalSegment keySegment = new SignalSegment(keywordMarkers.iterator().next()); Assert.assertNotNull("keyword not found", keySegment); Long length = AudioManagerFactory.createAudioManager().findLengthInMils(aWavUrl); result.setAudioLength(length); result.getOriginalMarker().addAll(keywordMarkers); result.setFileName(aWavFile.getName()); result.setExperimentStarted(System.currentTimeMillis()); final Map<RecognitionResult, SignalSegment> segments = new LinkedHashMap<>(); if (getSpottingService().getKeySegmentList() != null) { getSpottingService().getKeySegmentList().clear(); } getSpottingService().addKeySegment(keySegment); final SignalSegment foundSegment = new SignalSegment(); // when getSpottingService() .wordSpotting( aWavUrl, new SpottingListener() { @Override public String foundSegment( String sourceId, SignalSegment newSegment, List<RecognitionResult> recognitionResults) { foundSegment.setMarker(newSegment.getMarker()); newSegment.getMarker().setId(Long.valueOf(segments.size())); segments.put(recognitionResults.get(0), newSegment); return newSegment.getMarker().getLabel(); } }); result.setExperimentEnded(System.currentTimeMillis()); result.setSegments(segments); return result; }