public static void speakerAdaptiveDecoding(ArrayList speakers, URL url) { Configuration configuration = new Configuration(); configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us"); configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict"); configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us.lm.bin"); StreamSpeechRecognizer streamSpeechRecognizer = new StreamSpeechRecognizer(configuration); Iterator iterator = speakers.iterator(); while (iterator.hasNext()) { SpeakerCluster speakerCluster = (SpeakerCluster)iterator.next(); Stats stats = streamSpeechRecognizer.createStats(1); ArrayList speakerIntervals = speakerCluster.getSpeakerIntervals(); Iterator iterator2 = speakerIntervals.iterator(); while (iterator2.hasNext()) { Segment segment = (Segment)iterator2.next(); long start = (long)segment.getStartTime(); long end = (long)(segment.getStartTime() + segment.getLength()); TimeFrame timeFrame = new TimeFrame(start, end); streamSpeechRecognizer.startRecognition(url.openStream(), timeFrame); SpeechResult result; while ((result = streamSpeechRecognizer.getResult()) != null) { stats.collect(result); } streamSpeechRecognizer.stopRecognition(); } Transform transform = stats.createTransform(); streamSpeechRecognizer.setTransform(transform); Iterator iterator3 = speakerIntervals.iterator(); while (iterator3.hasNext()) { Segment segment2 = (Segment)iterator3.next(); long start2 = (long)segment2.getStartTime(); long end2 = (long)(segment2.getStartTime() + segment2.getLength()); TimeFrame timeFrame = new TimeFrame(start2, end2); streamSpeechRecognizer.startRecognition(url.openStream(), timeFrame); SpeechResult result; while ((result = streamSpeechRecognizer.getResult()) != null) { [email protected]("Hypothesis: %s\n", new object[] { result.getHypothesis() }); } streamSpeechRecognizer.stopRecognition(); } } }
public static void printSpeakerIntervals(ArrayList speakers, string fileName) { int num = 0; Iterator iterator = speakers.iterator(); while (iterator.hasNext()) { SpeakerCluster speakerCluster = (SpeakerCluster)iterator.next(); num++; ArrayList speakerIntervals = speakerCluster.getSpeakerIntervals(); Iterator iterator2 = speakerIntervals.iterator(); while (iterator2.hasNext()) { Segment segment = (Segment)iterator2.next(); [email protected](new StringBuilder().append(fileName).append(" ").append(SpeakerIdentificationDemo.time(segment.getStartTime())).append(" ").append(SpeakerIdentificationDemo.time(segment.getLength())).append(" Speaker").append(num).toString()); } } }