【发布时间】:2009-10-12 12:04:51
【问题描述】:
有谁知道如何通过 C# 将 GSM 音频转换为 PCM WAV?我试图在互联网上找到一个可行的解决方案,但无济于事。
【问题讨论】:
-
你可以使用第 3 方 exe 吗?
-
@whoever 投票结束这个问题:你到底为什么要结束这个问题?
有谁知道如何通过 C# 将 GSM 音频转换为 PCM WAV?我试图在互联网上找到一个可行的解决方案,但无济于事。
【问题讨论】:
另一种选择是SoX(命令行/库)
【讨论】:
这是一个对 GSM 文件进行编码和解码的 C 库的链接:
http://user.cs.tu-berlin.de/~jutta/gsm/gsm-1.0.13.tar.gz
以及有关该主题的更多信息的链接:
http://user.cs.tu-berlin.de/~jutta/toast.html
应该可以将 C 代码编译为 DLL 并使用 PInvoke 从 C# 应用程序调用它,或者将这些方法直接合并到 C# 应用程序中。
将 GSM 数据解码为样本数据后,将其写入 WAV 文件非常简单。
【讨论】:
这是针对java的,但应该可以适配C#:
【讨论】:
查看下面来自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");
}
}
【讨论】: