3

I am trying to use google speech to text API . I am stuck converting wav audio file into flac audio format. Here is my code:

Here is wav recording code:

 private void sourceStream_DataAvailable(object sender, NAudio.Wave.WaveInEventArgs e)
    {
         if (waveWriter == null) return;

         waveWriter.WriteData(e.Buffer, 0, e.BytesRecorded);
         waveWriter.Flush();
    }
    fileName = "D:\\voice.wav";
    int deviceNumber = hardware.SelectedItems[0].Index;
    try
    {
        sourceStream = new NAudio.Wave.WaveIn();
        sourceStream.DeviceNumber = deviceNumber;
        sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);

        sourceStream.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
        waveWriter = new NAudio.Wave.WaveFileWriter(fileName, sourceStream.WaveFormat);

        sourceStream.StartRecording();
    }
    catch (Exception ex)
    {
        state.Text = "disini" + ex.Message;
    }

flac converter code

 string inputFile = Path.Combine("wav ", input);
    string outputFile = Path.Combine("flac", Path.ChangeExtension(input, ".flac"));

    if (!File.Exists(inputFile))
        throw new ApplicationException("Input file " + inputFile + " cannot be found!");

    WavReader wav = new WavReader(inputFile);

    using (var flacStream = File.Create(outputFile))
    {
        FlacWriter flac = new FlacWriter(flacStream, wav.BitDepth, wav.Channels, wav.SampleRate);
        // Buffer for 1 second's worth of audio data
        byte[] buffer = new byte[wav.Bitrate / 8];
        int bytesRead;
        do
        {
            bytesRead = wav.InputStream.Read(buffer, 0, buffer.Length);
            flac.Convert(buffer, 0, bytesRead);
        } while (bytesRead > 0);
        flac.Dispose();
        flac = null;
    }

I have get reference for this code from the following link and link2 My problem is arising in importing of dlls. I already imported Alvas.dll , NAudio.dll but still my still my FlacWriter class and there is some WaveReader class parameter are unrecognised.

Community
  • 1
  • 1
DIGIT
  • 79
  • 2
  • 11

0 Answers0