es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for 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.

    1. Verificar el formato de onda: Es esencial asegurarse de que tanto los archivos de entrada como los de salida tengan el mismo formato de onda, incluyendo la frecuencia de muestreo, la profundidad de bits y el recuento de canales.
    2. 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.

    3. 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 bucle while (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.

Comments are closed.