Digitalización de audio sobre la marcha desde un conector de audio analógico

Si no me equivoco, creo que todos los conectores de audio normales (como los que tiene en su PC, que viajan a sus altavoces) son analógicos.

¿Hay alguna forma (quizás con un ADC de alta velocidad) de convertirlo a digital sobre la marcha? Estoy considerando un proyecto con Arduino (quizás) donde captura audio en forma digital y lo almacena en una tarjeta SD.

Entonces, por supuesto, esto será solo una secuencia de bits. Entonces, ¿mi proyecto está condenado al fracaso debido al gran volumen de datos? ¿O tal vez la información ni siquiera tendrá sentido porque no será equivalente a ningún formato de audio? ¿O esencialmente, será un archivo WAV (sin el encabezado)?

Finalmente, ¿hay algo así como un codificador de hardware codificado de analógico a digital (MP3 o lo que sea)?

El audio no es una aplicación de alta velocidad.
¿Por qué esta pregunta está etiquetada como 'arduino'?
Proyecto existente para hacer esto encontrado con unos segundos de google: adafruit.com/blog/2009/07/07/…
.. y codificador de MP3 IC: vlsi.fi/fi/products/vs1063.html
@VladimirCravero: porque el póster menciona que están considerando usar un Arduino como plataforma, y ​​eso es algo importante de mencionar porque nos permite señalar que un Arduino (basado en ATmega estándar) es una mala elección para esta aplicación: su ADC integrado solo es capaz de reproducir audio de baja calidad, tiene RAM limitada para el almacenamiento en búfer y estará bastante ocupado sirviendo datos desde un ADC externo.

Respuestas (1)

El audio no es un ancho de banda tan alto, por lo que está dentro del rango de lo que puede manejar un microcontrolador.

El nivel de calidad que desea hace una gran diferencia en la cantidad de datos que tiene que manejar. Si solo necesita guardar y luego reproducir la voz, entonces las muestras de 8 bits a 8 kHz son lo suficientemente buenas. Si los valores de 8 bits no están obligados a ser lineales, puede obtener una mejor relación señal/ruido general con la misma cantidad de datos. Esto es lo que hace la compañía telefónica.

En el otro extremo está el audio "Hi-Fi", que es de 20 Hz a 20 kHz, generalmente al menos 16 bits por muestra (más de 90 dB de relación señal/ruido). Para digitalizar dicho audio, se muestrea mucho más rápido que el límite de Nyquist, luego se aplica el filtrado digital y luego la desimación. La razón por la que necesita el filtrado digital es que el filtrado analógico no puede ser tan preciso como para tener la caída muy pronunciada después de 20 kHz que necesita para muestrear un poco más rápido que 40 kHz.

Digamos que haces el peor de los casos y terminas con muestras de 16 bits a una velocidad de 44 kHz. Eso es solo 88 kB/s, o 5,3 MB/minuto. Cualquier tarjeta SD puede manejar esa tasa de datos. 1 GB le brinda más de 3 horas de este audio Hi-Fi.

Por supuesto, si solo desea audio con calidad de voz, las cosas son mucho más fáciles, las velocidades de datos son más bajas y los requisitos de almacenamiento son más bajos. A 8 kB/s solo 1 MB dura más de 2 minutos. 1 GB almacenaría casi 1 1/2 días de audio.

Una tarjeta SD puede manejar la velocidad de datos en promedio; pero no estoy tan seguro de que pueda hacerlo sin problemas y sin retrasos, y como un Arduino estándar tiene solo 2K de RAM, será muy sensible a cualquier retraso de escritura. Puede ser que funcione en la práctica.
@Chris: Mi respuesta fue sobre la teoría general y los antecedentes del audio digitalizado. Intentar hacer esto con un arduino probablemente sea inapropiado, pero el OP debería poder decirlo por sí mismo una vez que decida qué tipo de audio quiere y luego obtenga los requisitos de ancho de banda de mi respuesta. Para una velocidad de datos alta, desea algo que pueda almacenar en búfer un bloque de escritura completo, por grande que sea. Un micro pequeño debería poder manejar la baja tasa de datos del audio de voz. Nuevamente, necesitamos saber qué tipo de audio tiene en mente el OP.
Sí, cubriste bien gran parte del problema. Lo que estaba agregando era la distinción específica entre la velocidad de datos promedio , la velocidad instantánea y el requisito de búfer resultante. Es uno de esos problemas que los diseñadores más nuevos, como el póster, pueden pasar por alto fácilmente.