#java #audio #mfcc
#java #Аудио #mfcc
Вопрос:
Я использую tarosdsp для извлечения функций из аудио. Я смог извлечь функции mfcc. Для извлечения других функций, таких как скорость пересечения нуля, высота тона, нужно ли мне определить новый диспетчер звука, или я должен использовать тот же диспетчер и добавить аудиопроцессор. Поможет пример.
Я могу сделать это отдельно для 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:
Используйте тот же диспетчер с новым аудиопроцессором.
Комментарии:
1. Спасибо за ответ