Pregunta
¿Alguien sabe cómo convertir audio GSM en WAV PCM a través de C #? He tratado de encontrar una solución viable en Internet en vano.
Solución
Aquí hay un enlace a una biblioteca de C que codifica y decodifica archivos GSM:
http: // usuario. cs.tu-berlin.de/~jutta/gsm/gsm-1.0.13.tar.gz
y un enlace a más información sobre el tema:
http://user.cs.tu-berlin.de/ ~ Jutta / toast.html
Debería ser posible para compilar el código C como un DLL y llamar desde una aplicación C # usando PInvoke, o bien incorporar los métodos directamente en su aplicación de C #.
Una vez que tenga los datos GSM decodificados en datos de muestra, escribirlo en un archivo WAV es muy simple.
Otros consejos
Otra alternativa es SoX (línea de comandos / biblioteca)
Esto es para Java, pero debe ser adaptable a C #:
Ver código de abajo de 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");
}
}