Bom dia turma,
estou com algumas dúvidas aqui.
Minha intenção é pegar som com o microfone do celular,
e aplicar um Fourrier para descobrir a frequencia dominante.
Lendo artigos sobre descobri os seguintes passos:
Short-Time Fourrier Transform -> Detection of Partials -> Estimation of Partials -> F0 Determination
Com relação ao j2me tenho o seguinte código:
RecordControl rc = (RecordControl)p.getControl("RecordControl");
ByteArrayOutputStream output = new ByteArrayOutputStream();
rc.setRecordStream(output);
rc.startRecord();
p.start();
Thread.currentThread().sleep(256);
rc.commit();
p.close();
Este código é responsável por “ouvir” o microfone e gravar num ByteArrayOutputStream.
Minha dúvida é :
1 - Passarei o “output” para o algoritmo de Forrier?
2 - Consegui algumas bibliotecas na internet, dentre elas o JTransform. O problema é que os métodos geralmente pedem um array de double.
Eu teria que converter o “output” para double?
Só preciso esclarecer estes pontos, para deslanchar.
Desde já muito obrigado.