Estoy tratando de hacer una implementación básica de VoIP y estoy atascado al obtener muestras de sonido del micrófono y reproducir los datos de lectura en una computadora. Intenté probar la voz del micrófono y enviarla al terminal serial con un código mínimo:
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delayMicroseconds(122);
}
El delayMicroseconds(122)
hace que la frecuencia de muestreo sea de alrededor de 8192 Hz. También probé con una frecuencia de muestreo de 1000 Hz. El gráfico de datos obtenido se ve bien, sin embargo, cuando intento jugarlo con el comando MATLAB
sound(csvread('samples.csv'), 8192);
Realmente no escucho lo que debería ser (solo escucho ruido aleatorio). Adjunto un gráfico de los datos obtenidos y mi circuito de micrófono. (También intenté restar el promedio de la matriz para que los valores se centren alrededor de cero, pero sin uso).
Datos obtenidos:
Circuitodemicrófono: