Pergunta

Eu gostaria de extrair um fluxo de amostras PCM de um microfone embutido ou de linha do Mac e fazer uma pequena análise ao vivo (a natureza exata não pertence a esta questão, mas pode ser uma FFT de vez em quando, ou algumas estatísticas básicas sobre os níveis de amostra, ou o que quer que seja).

O que é uma boa opção para isso?Escrevendo um AudioUnit que apenas passa o som e, incidentalmente, o entrega em algum lugar para análise?Escrevendo um aplicativo compatível com JACK e descobrindo como fazê-lo funcionar com o servidor JACK?Ecosom?

Este é um projeto de hobby de prova de conceito cafona, então a simplicidade da API é o fator determinante (seguido pela escolha razoável da linguagem de programação).

Foi útil?

Solução

Eu penso portaáudio é o que você precisa.A leitura do microfone de um aplicativo de console é um arquivo C de 10 linhas (veja patests na distribuição do portaudio).

Outras dicas

A principal estrutura para desenvolvimento de áudio no Mac OS X é Core Audio;é a base para todas as E/S de áudio.Existem camadas adicionais, como Audio Toolbox, Audio Queue Services, QuickTime e QTKit, que você pode usar se desejar uma API simplificada para tarefas comuns.

Para obter apenas um fluxo de amostras, você provavelmente desejaria usar Serviços de fila de áudio;o AudioQueueNewInput A função configurará a gravação de dados PCM e os transmitirá para um retorno de chamada fornecido por você.

No seu Mac, há um conjunto de exemplos de Core Audio em /Developer/Examples/CoreAudio/SimpleSDK isso inclui o uso (AQRecord em AudioQueueTools) das APIs de gravação dos Serviços de Fila de Áudio.

A Apple fornece código de exemplo para lendo e escrevendo dados de áudio.Além disso, há muitas informações boas no Seção de áudio do site Apple Developer.

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