простого ответа нет; Лучшая практика зависит от контекста и конкретных вариантов использования, которым будет подвергаться ваше приложение.
для максимальной простоты программирования и широкой аудитории, я бы выбрал gstreamer, поскольку он быстрый и простой, хорошо интегрируется в gnome и ubuntu и поддерживает широкий спектр аудиоподсистем и конфигураций. это очень гибкий.
например, команда:
gst-launch autoaudiosrc ! audioconvert ! flacenc ! filesink location="foo.flac"
создаст файл .flac со входа микрофона независимо от аудиосистемы (Pulse, ALSA, ESD ...). эквивалентный конвейер может быть записан с использованием привязок c / gobject, как описано здесь .
p.s вышеуказанная команда требует пакет gstreamer-tools