Вопрос

Я хотел бы получить поток образцов PCM из линейного или встроенного микрофона Mac и провести небольшой анализ в реальном времени (точная природа не относится к этому вопросу, но это может быть БПФ каждый так часто, или какая-то базовая статистика по уровням выборки, или что у вас).

Что подходит для этого? Написание AudioUnit, который просто пропускает звук и случайно передает его куда-то для анализа? Написание приложения с поддержкой JACK и выяснение того, как заставить его играть с сервером JACK? Ecasound?

Это дурацкий проект, основанный на проверке концепции, поэтому простота API является движущим фактором (за которым следует разумный выбор языка программирования).

Это было полезно?

Решение

Я думаю, portaudio - это то, что вам нужно. Чтение из микрофона из консольного приложения - это 10-строчный файл C (см. Patests в дистрибутиве portaudio).

Другие советы

Основной платформой для разработки аудио в Mac OS X является Core Audio; это основа для всех аудио ввода / вывода. Поверх него есть слои, такие как Audio Toolbox, Audio Queue Services, QuickTime и QTKit, которые вы можете использовать, если вам нужен упрощенный API для общих задач.

Чтобы просто получить поток образцов, вы, вероятно, захотите использовать Сервисы аудио-очереди ; AudioQueueNewInput настроит запись данных PCM и передаст их обратному вызову, который вы указали.

На вашем Mac есть ряд примеров Core Audio в / Developer / examples / CoreAudio / SimpleSDK , который включает использование (AQRecord в AudioQueueTools) API-интерфейсов записи Audio Queue Services.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top