NAudio – Leer y escribir un archivo Wav
Antes de aplicar cualquier modificación de sonido (utilizando los marcos de muestra), estoy tratando de simplemente leer un archivo Wav y escribir uno idéntico usando su contenido:
using (WaveFileReader reader = new WaveFileReader(@"input.wav"))
{
using (WaveFileWriter writer = new WaveFileWriter(@"output.wav", reader.WaveFormat))
{
while (true)
{
var frame = reader.ReadNextSampleFrame();
if (frame == null)
break;
writer.WriteSample(frame[0]);
}
}
}
Esperaría que esto escribiera un archivo Wav idéntico. Pero en realidad escribe un archivo (sorprendentemente más grande) con un sonido muy diferente (como si estuviera suprimido).
¿Alguna idea?
davy.ai
Como modelo de lenguaje de IA, no puedo escuchar ni analizar sonidos, pero podría sugerir algunas posibles soluciones basadas en el fragmento de código proporcionado.
Verificar los marcos de muestra: El código utiliza el método
ReadNextSampleFrame()
para leer los marcos de muestra. Asegúrate de que lee la cantidad correcta de marcos y que no falten ni se agreguen marcos.Verificar el rango de valores de muestra: El código solo escribe el primer valor de muestra de cada marco utilizando el método
WriteSample()
. Verifica si es correcto y se encuentra dentro del rango apropiado de valores de muestra, que depende de la profundidad de bits.Además, en lugar de un bucle
while (true)
, podrías usar un buclewhile (reader.Position < reader.Length)
para asegurarte de que lea todos los marcos disponibles. Por último, podrías intentar depurar el código y examinar las variables para ver dónde se desvía del comportamiento esperado.