2

I need to convert an AMR (Adaptive Multi-Rate) audio file recorded in a phone (as a Stream object) to a PCM uncompressed wav audio Stream so it can be processed afterwards for speech recognition. The Speech Recognition doesn't like the AMR format. This is going to be a server application using the Microsoft Speech Platform. I am not sure about using the ffdshow or similar libraries in a .

Right now I am researching NAudio and DirectShowNet to see if they can help me accomplish this but was hoping someone can point in the right direction.

Switch Commerce
  • 109
  • 2
  • 4
  • I don't have an answer, but perhaps these libraries are hard to find because of the license costs to develop AMR solutions - http://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec#Licensing_and_patent_issues – Michael Levy Oct 08 '10 at 01:44
  • 1
    Yeah. Most the the available ones are like that. I did find opencore-amr http://opencore-amr.sourceforge.net/ – Switch Commerce Oct 08 '10 at 14:28
  • Michael, thank you for the wiki link. I didn't know about these legal issues. Luckily the decoding part is not an issue which is basically what I am trying to accomplish. – Switch Commerce Oct 08 '10 at 14:34

1 Answers1

1

After a lot of searching for a solution for this, I am going to use ffmpeg. It provides the AMR-NB (NB=Narrow Band) decoder. There are a lot of c# wrappers for ffmpeg around; most of them abandoned efforts and one that is up to date but is not free. Just running ffmpeg with the basic parameters provides what I need, plus it is really fast.

I don't like the idea of calling an external process to do the conversion, plus I need to save the AMR stream as a file so it can be converted to a wav file but I believe I can make it work efficiently.

Switch Commerce
  • 109
  • 2
  • 4