Хорошее качество звука с использованием микроконтроллера

Я любитель. Провожу эксперименты с качеством звука. Я определю свою проблему и требования.

  1. Постановка проблемы: Я хочу воспроизвести аудиофайлы (записанные человеческим голосом, а не музыкальные файлы, а просто файлы с простой человеческой речью)

  2. Я пробовал: проект с микроконтроллером Arduino и картой MicroSD, но качество звука было совсем не хорошим, по ссылке ниже. https://www.instructables.com/id/Audio-Player -Использование-Arduino-с-Micro-SD-картой/ https://circuitdigest.com/microcontroller-projects/arduino-audio-music-player В нем использовалась только плата Arduino UNO, карта памяти microSD с использованием SPI, динамик и аудиоусилитель LM386.

Я прочитал подробности и понял, что мне нужен ЦАП для лучшего качества (поскольку ШИМ не может служить этой цели), а также динамик. Но есть ряд вещей, и я не понимаю, какую из них купить и начать проект.

Можете ли вы поделиться подробностями о какой-нибудь плате микроконтроллера с ЦАП, которого достаточно для моих целей, памятью для хранения аудиофайлов (или я могу использовать устройство с картой microSD) и проектом динамика, за которым я могу следить и сделать его. Я ищу решение на базе платы. После получения некоторых результатов я могу перейти на отдельный микроконтроллер и ЦАП.

Заранее спасибо.

, 👍4

Обсуждение

Судя по тому, что я читал об этом (нет доступных ссылок), в большинстве случаев лучше иметь отдельный ЦАП, поскольку внутренние ЦАП в основном имеют 10 или 12 бит, а для достойного качества звука вам нужны как минимум два канала 16-битного ЦАП., @Michel Keijzers

Привет и добро пожаловать в сообщество Arduino SE. Приятно видеть усилия, которые вы вкладываете в свой вопрос. Я надеюсь увидеть вас больше на этом сайте., @sa_leinad

Существуют платы, которые читают SD, декодируют звук и усиливают его — все в одном. Микроконтроллеру нужно только «приказать» плате воспроизвести звуковой файл 1, 2, 3 или любой другой номер. Например, [DFPlayer](https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299) (или один из его клонов на eBay)., @Gerben

Мне очень понравился DFPlayer и кажется, что это готовое решение моей проблемы. Могу ли я найти его принципиальную схему и использованные в нем микросхемы, чтобы я мог реализовать их по частям на макете., @muphy

Вы можете купить дешевый MP3-плеер и использовать Arduino для «нажимания» его кнопок. Это работает лучше всего, если логика пользовательского интерфейса не слишком запутана., @Avamander


2 ответа


Лучший ответ:

1

Вот схема и макет, которые я использовал. Кодирование можно найти в этой теме Arduino.cc

https://forum.arduino.cc/index.php?topic=180769.60

Аналоговый опорный сигнал, подключение АЦП, ЦАП

Размечается на макетной плате перед переходом на печатную плату

,

3

Можно было бы подумать, что одного канала для передачи голоса будет достаточно. Помните старую рекламу Sprint? «Так тихо, что слышно падение булавки», это был только один канал. 12 бит на частоте 16 МГц для максимальной полосы пропускания 8 кГц было бы хорошо. Согласно Википедии: «В телефонии используемый диапазон голосовых частот находится в диапазоне примерно от 300 Гц до 3400 Гц. Именно по этой причине ультранизкочастотный диапазон электромагнитного спектра между 300 и 3000 Гц также называют голосовой частотой, поскольку он является электромагнитная энергия, которая представляет собой акустическую энергию в основной полосе пропускания. Полоса пропускания, выделенная для одного тонального канала передачи, обычно составляет 4 кГц, включая защитные полосы, что позволяет использовать частоту дискретизации 8 кГц в качестве основы системы импульсно-кодовой модуляции, используемой для цифровая телефонная сеть общего пользования."

Я думаю, что некоторые компании, такие как Adafruit.com, DFRobot.com и другие, делают карты с выходами ЦАП. Или вы можете получить карту только DAC на Gravitech.us

Я начал проект на Arduino.cc, чтобы сэмплировать 16 бит с частотой 44,1 кГц, сохранить на SD-карту, а затем воспроизвести его позже. Я использовал внешний SPI ADC и DAC, и член fatlib16 помог мне его закодировать. Вы можете найти его, выполнив поиск «образец, запись, воспроизведение позже», и он должен его найти.

,

Спасибо за ответ и подробности. Я думаю записать звук с глубиной 16 бит и частотой 44,1 кГц, провести несколько экспериментов с adafruit для улучшения качества звука и сохранить его на SD-карте. У Arduino уже есть SPI для взаимодействия с модулем SD-карты. Подскажите, пожалуйста, какой ЦАП вы использовали и какой динамик использовали., @muphy

Оцифровка с помощью АЦП AD7680, отправка на ЦАП AD5662-1. Динамик, для воспроизведения я использовал колонки ПК с автономным питанием. См. ответ по схеме., @CrossRoads