以编程方式将G729音频转换为WAV PCM

6
我有 G729 编码的音频文件,需要以编程方式将它们转换为 WAV PCM(16bit 8kHz 单声道)。我有一个可执行文件可以帮我完成这个任务。但每次转换都生成外部进程太耗费资源了,特别是如果我需要并行地完成多个转换。 我正在寻找一个 .NET 库或代码,可以让我在我的进程中调用该程序。
7个回答

3

有人知道在哪里可以找到这个的另一个副本吗?我已经在这个网站上找了几个月,他们提供的代码链接一直都是失效的。http://www.voiceage.com/media/G729.zip - thaspius
1
他们不再支持他们的“开放实现”,并告诉我信息仍然在他们的网站上,但他们很快将删除它(我不知道多快)。 - nightwatch

0
根据维基百科,G.729包含多项专利并由Sipra许可,因此您可能很难找到合适的库。除非您要解码大量非常小的文件,否则生成新进程的成本与解码成本相比不应该太大,因此我建议使用您拥有的可执行文件。
就资源而言,生成进程需要比使用线程更多的资源。但只要您只生成与机器核心数量相同的进程,这并不会真正影响。生成更多的进程只会浪费资源,而不会为您带来额外的并行性。

0

维基百科说:“G.729包括来自多家公司的专利,并由Sipro(http://www.sipro.com/)授权。在一些国家,使用G.729可能需要支付许可费和/或版税。”

但我猜你已经在你的应用程序中考虑到了这一点。

如果你非常必须在进程中,一个解决方案(不是说它是最好的)可能是使用LGPL下的LibAVCodec。


0

0
如果您的系统上有G729的ACM编解码器,则可以使用NAudio将其转换为PCM。尝试使用NAudioDemo应用程序,该应用程序包含在NAudio中,它将向您展示系统上可用的ACM编解码器,并使用它们对文件进行解码。

0

如果你只想查看文件所需的编解码器,则转到GSopt并下载最新版本(你可以在此处单击直接打开下载页面)。

下载后,提取文件打开文件夹并运行EXE,现在从浏览按钮中选择文件,加载所有信息之后将显示其所有信息。(如果文件未显示在浏览对话框中,请从浏览文件对话框中选择所有文件(*.*)


0
当谈到g729转换器时,我首先想到的是ITU G729-A标准。一种相当麻烦的方法是首先将g729转换为pcm,然后在wav文件前面添加一个wav头。这样可以从.g729构建.wav文件。由于ITU官方的g729a(而且官方不支持多线程...)库高度涉及了这个思想,所以我想你必须考虑并发性以及如何妥善地使用g729a库中的一堆静态变量进行编程。我曾经参与过类似OP描述的小项目,基本上将巨大的g729文件分成g729块,并以合理的并发性编程方式单独对它们进行解码...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接