The Adafruit Boards
Any real-time audio application running on the microcontroller will need to acquire data from a source (for instance, a microphone) and deliver data to an output sink (for instance, an digital-to-analog converter connected to a loudspeaker) that we can listen to. Here is a brief description of the components we selected.
The component used to capture sound is the I2S MEMS Microphone Breakout by Adafruit. The actual microphone on this mini-board produces an analog signal (continuous in time and amplitude) but the device also contains an Analog-to-Digital Converter that returns a digital signal (discrete in time and amplitude), which is the format we need in order to pass the data to our microcontroller. We will describe the component in more detail later.
Adafruit I2S MEMS Microphone Breakout
The microcontroller accepts and produces digital signals; in order to playback its output on a pair of headphones, it is necessary to create an analog signal and this can be achieved via a Digital-to-Analog Converter (DAC). We will use Adafruit's I2S Stereo Decoder Breakout, which contains the DAC, an audio jack for connecting headphones, and the necessary additional components. We will describe the DAC in more detail later.
Adafruit I2S Stereo Decoder - UDA1334A Breakout