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());
                }
            }
        }