Насколько я помню, микрофону нужно фантомное питание где-то хотябы 0.7 вольт, я что-то подобное делал год назад. Суть в том, что иначе микрофон будет подавать только верхнюю часть волны, ну и вряд ли это "читабильно". Ах да, и еще усилить же надо, потому что с микрофона приходят милливольты, если нет предусилителя хотябы. Предусилитель можно худо-бедно сообразить на 1 транзисторе.
Ну и преобразовывать придется по пути из АЦП в ЦАП, потому что раз 8 бит максимум, то 8 бит максимум. Ну или услилитель класса D мутить с ЦАП, тогда получится все 12 бит выдать, приходящие с микрофона.
Добавлено after 28 minutes 54 seconds:просто еще раз, может непонятно с ходу. звук - это некий график функции, который постоянно перебегает через ноль. Поэтому микрофону генерит переменку относительно нуля. Если подключить его одним концом к земле, а вторым к пину, то у вас отрицательная часть звуковой волны исчезает. Поэтому нужно дать микрофону на его минус не землю, а какую-то низкую постоянку (вот честно не помню реально за минус или на плюс..., погуглите как подключить микрофон. плюс они в основном двух типов и чем-то отличаются, я только с одним работал), чтобы у контроллера на ноге и положительная и отрицательная часть звуковой волны были выше нуля. Тогда уже будет читаться.
Далее. Допустим мы пустили это на пин. Что получаем? Микрофон очень слаб сам по себе. Колебания там милливольты, поэтому там из 12 бит будет использована 2-4 бита. Короче звук слишком тихий. Поэтому нужно либо его усиливать предварительно аналоговой схемой, для теста хоть на одном транзисторе. Либо пин настраивать аналоговый при инициализации на ожидаемый интервал вольтажа. Это тот, что подали на микрофон, плюс минус ожидаемая его амплитуда, например 0.1 вольта для начала. Вроде на некоторых контроллерах есть такая штука для программной регулировки интервала АЦП, на атмеге я что-то подобное делал давно. Про есп не скажу, лежат пылятся пока что.
И вот когда это все получили на АЦП, там говорите 12 бит. 12 бит это 4096, откуда там до 8000 это отдельный вопрос...
Так вот 12 бит чтобы запихнуть в 8 бит, нужно по сути поделить каждое значение на 2*2*2*2 = 16. Тогда сигнал будет готов к выводу на 8 бит. Для тестов берете керамический конденсатор и через него подключаете пин вывода с ЦАП на динамик или колонку. Если конденсатора не будет, то постоянка (а если все правильно, то средний сигнал с порта будет около 1.6 вольта) будет идти через динамик и ноге контроллера будет тяжко, звук будет искажаться.
Ну это на пальцах, я не знаю каков Ваш уровень проникновения в тему.
Касаемо уже нормального звука, на ESP32 точно должен быть уже готовые пины для I2S протокола (это не I2C если что, и не опечатка). Это протокол для передачи звука между микросхемами, потому что даже 12 бит это мало чтобы выводить качественный звук. И типа контроллер умеет отдать звук "без потерь" по этому протоколу какой-нибудь микросхеме ЦАП, которая это поддерживает. Они в основном дорогие (хотя иногда в звуковой карте старой можно найти подходящий), но вот для тестов на чипе PCM5102 с алика запросто можно взять. Он примет нормальный звук с контроллера, то есть по сути можете плеер сделать, если научитесь Mp3 декодировать.
https://aliexpress.ru/item/1005002898278583.html - вот такой я себе заказываю как раз. Как работать с I2S наверное мануалы можно наяндексить в сети и не один. И я уверен, что в библиотеках для ESP это есть в уже съедобном виде.