Pergunta

Quero analisar o áudio do MIC de forma contínua (não apenas uma amostra de snipper ou pré -gravação) e exibir gráfico de frequência e filtrar certos aspectos do áudio. O iPhone é poderoso o suficiente para isso? Suspeito que a resposta seja um sim, dado o reconhecimento de voz do Google e do iPhone, o Shazaam e outros aplicativos de reconhecimento de música e aplicativos de sintonizador de guitarra por aí. No entanto, não sei com que limitações terei que lidar.

Alguém brinca com esta área?

Foi útil?

Solução

O código de amostra da Apple, AurioTouch, tem uma implementação da FFT.

Outras dicas

Os aplicativos que eu já vi fazem algum tipo de reconhecimento de música/voz precisam de uma conexão com a Internet, por isso é altamente provável que isso seja algum tipo de cálculo de recursos no áudio e envie esses recursos via HTTP para fazer o reconhecimento no servidor.

De qualquer forma, gráficos de frequência e filtragem foram feitos antes em CPUs menores há uma dúzia de anos atrás. O iPhone não deve ter problema.

"Rápido o suficiente" pode ser uma função das suas expectativas (ou do seu cliente) sobre a quantidade de resolução de frequência que você está procurando e sua taxa de amostragem básica.

Um FFT n-ponto está na ordem dos cálculos n*log2 (n); portanto, se você não tiver MIPs suficientes, reduzir n é uma área potencial de concessão para você.

Em muitas aplicações, a taxa de amostragem não é negociável, mas se fosse, isso seria outra possibilidade.

Eu fiz um aplicativo que calcula o FFT ao vivo

http://www.itunes.com/apps/oscope

Você pode encontrar meu código para o FFT no Github (embora seja um pouco difícil)

http://github.com/alexbw/iphonefft

O novo iPhone OS 4.0 SDK da Apple permite o cálculo interno da FFT com a biblioteca "acelerar", então eu definitivamente começaria a trabalhar com o novo sistema operacional se for uma parte central da funcionalidade do seu aplicativo.

Você não pode apenas portar o código FFT escrito em C para o seu aplicativo ... Existe a opção de compilador de polegar que complica a aritmética do ponto flutuante. Você precisa colocá -lo no modo de braço

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top