извлечь несколько аудио функций, используя tarosdsp - PullRequest
0 голосов
/ 04 апреля 2019

Я использую tarosdsp для извлечения функций из аудио. Я был в состоянии извлечь функции MFC. Чтобы извлечь другие функции, такие как скорость пересечения нуля, шаг, нужно определить новый диспетчер звука или использовать тот же диспетчер и добавить аудиопроцессор. Пример поможет.

Я могу сделать это отдельно для mfcc и pitch

                    final List<float[]>mfccList = new ArrayList<>(200);
                    String file3= source+'/'+file2.getName();
                    int sampleRate = 44100;
                    int bufferSize = 8192;
                    int bufferOverlap = 128;

                    AudioDispatcher dispatcher = AudioDispatcherFactory.fromPipe(file3, sampleRate,bufferSize, bufferOverlap);
                    final MFCC mfcc = new MFCC(bufferSize, sampleRate, 40, 50, 300, 3000);
                    dispatcher.addAudioProcessor(mfcc);                    
                    dispatcher.addAudioProcessor(new AudioProcessor() {

                        @Override
                        public void processingFinished() {
                        }

                        @Override
                        public boolean process(AudioEvent audioEvent) {
                            mfcc.process(audioEvent);
                            //final float audio_float[] = mfcc.getMFCC();
                            audio_float=mfcc.getMFCC();
                            //mfccList.add( mfcc.getMFCC());
                            System.out.print(Arrays.toString(audio_float));

Я хотел бы сохранить все функции в массиве как [mfcc, pitch, zcr]

1 Ответ

0 голосов
/ 12 апреля 2019

Используйте тот же диспетчер с новым AudioProcessor.

...