Как преобразовать звуковой поток AMR в несжатый поток PCM в .NET

Мне нужно преобразовать аудиофайл AMR (Adaptive Multi-Rate), записанный на телефоне (как объект Stream), в несжатый аудиопоток PCM wav, чтобы впоследствии его можно было обработать для распознавания речи. Распознаванию речи не нравится формат AMR. Это будет серверное приложение, использующее Microsoft Speech Platform. Я не уверен в использовании ffdshow или подобных библиотек в файле .

Прямо сейчас я изучаю NAudio и DirectShowNet, чтобы узнать, могут ли они помочь мне в этом, но надеялся, что кто-то может указать правильное направление.


person Switch Commerce    schedule 07.10.2010    source источник
comment
У меня нет ответа, но, возможно, эти библиотеки трудно найти из-за стоимости лицензий на разработку решений AMR — en.wikipedia.org/wiki/   -  person Michael Levy    schedule 08.10.2010
comment
Да. Большинство доступных из них, как это. Я нашел opencore-amr opencore-amr.sourceforge.net   -  person Switch Commerce    schedule 08.10.2010
comment
Михаил, спасибо за ссылку на вики. Я не знал об этих юридических проблемах. К счастью, часть декодирования не является проблемой, которую я пытаюсь выполнить.   -  person Switch Commerce    schedule 08.10.2010


Ответы (1)


После долгих поисков решения для этого я собираюсь использовать ffmpeg. Он предоставляет декодер AMR-NB (NB = узкополосный). Существует множество оболочек C# для ffmpeg; большинство из них отказались от усилий, и один из них обновлен, но не бесплатен. Просто запуск ffmpeg с базовыми параметрами дает то, что мне нужно, плюс это очень быстро.

Мне не нравится идея вызова внешнего процесса для преобразования, к тому же мне нужно сохранить поток AMR в виде файла, чтобы его можно было преобразовать в файл wav, но я верю, что смогу заставить его работать эффективно.

person Switch Commerce    schedule 08.10.2010