Кто-нибудь знает, как конвертировать аудио GSM в PCM WAV через C #? Я пытался найти жизнеспособное решение в Интернете, но безрезультатно.
Другая альтернатива - SoX (Командная строка / библиотека)
Вот ссылка на библиотеку C, которая кодирует и декодирует файлы GSM:
http://user.cs.tu -berlin.de / ~ Ютта / GSM / GSM-1.0.13.tar.gz
и ссылка на дополнительную информацию по теме:
http://user.cs.tu -berlin.de / ~ Ютта / toast.html
Должна быть возможность либо скомпилировать код C в виде DLL и вызывать его из приложения C # с помощью PInvoke, либо включить методы непосредственно в приложение C #.
После того, как данные GSM были декодированы в данные образца, записать их в файл WAV очень просто.
См. Код ниже от http://alvas.net/alvas.audio,articles.aspx#mp3-to-wav-without-desktop-experience
void AnyToWav(string fileName) { DsReader dr1 = new DsReader(fileName); if (dr1.HasAudio) { WaveWriter ww = new WaveWriter(File.Create(fileName + ".wav"), AudioCompressionManager.FormatBytes(dr1.ReadFormat())); ww.WriteData(dr1.ReadData()); ww.Close(); Console.WriteLine("Done!"); } else { Console.WriteLine("Has no audio"); } }
Это для Java, но оно должно быть адаптировано к C #:
http://www.jsresources.org/faq_audio.html