Отображение формы звукового сигнала с использованием C # - PullRequest
6 голосов
/ 06 августа 2010

Я уже искал в Stackoverflow и в Google, но не нашел того, что искал.
Пока я получил необработанные аудио данные (WAV-файл) и хочу их визуализировать.

        private void Form1_Load(object sender, EventArgs e)
    {
        FileStream fs = new FileStream("D:\\tada.wav", FileMode.Open);
        BinaryReader reader = new BinaryReader(fs);
        char[] data = new char[4];
        long fsize;
        long wfxSize;
        long dataSize;
        WaveFormatEx wfx;

        //RIFF
        reader.Read(data, 0, 4);

        fsize = reader.ReadInt32();

        //WAVE
        reader.Read(data, 0, 4);

        //FMT
        reader.Read(data, 0, 4);
        wfxSize = reader.ReadInt32();

        byte[] wfxBuffer = new byte[wfxSize];
        reader.Read(wfxBuffer, 0, (int)wfxSize);
        wfx = new WaveFormatEx(wfxBuffer);

        //DATA
        reader.Read(data, 0, 4);
        dataSize = reader.ReadInt32();
        byte[] dataBuff = new byte[dataSize];
        reader.Read(dataBuff, 0, (int)dataSize);
        reader.Close();

        //Visualize the data...
    }

Я знаю, что мне нужно преобразовать необработанные данные в образцы, а затем проверить пик для каждого образца и нарисовать линии, но я действительно не знаю, как это сделать (за исключением рисунка).

Ответы [ 2 ]

11 голосов
/ 11 марта 2013

Я вижу, что это старый вопрос, но в случае, если кто-то заинтересован, вот решение:

Используйте библиотеку NAudio: http://naudio.codeplex.com/

Вот видеоурок о том, как использоватьNАудио для отображения сигналов: http://www.youtube.com/watch?v=ZnFoVuOVrUQ

7 голосов
/ 06 августа 2010

Визуализация данных .. . Вот Это Да! Вы должны проверить спецификацию WAV-файла здесь и , возможно, здесь , а затем еще раз подумать, действительно ли вы хотите заняться этим. (Вторая ссылка на самом деле является лучшим, более упорядоченным обзором. Посмотрите на раздел данных, чтобы понять, хотите ли вы работать с ним.)

Не пойми меня неправильно. Может быть, это именно то, что вы хотите сделать, и это может быть весело. Вы должны просто знать, во что вы ввязываетесь!

Кроме того, вот компонент Project Code , который можно использовать напрямую или искать идеи.

...