【问题标题】:Programmatically convert G729 audio to WAV PCM以编程方式将 G729 音频转换为 WAV PCM
【发布时间】:2023-03-18 17:43:01
【问题描述】:

我有 G729 编码的音频文件。我需要在一个也在做其他事情的工具流中以编程方式将它们转换为 WAV PCM(16 位 8kHz 单声道)。我有一个可执行文件可以为我做到这一点。但是每次我转换时产生那个外部进程对资源来说太重了。特别是如果我需要其中许多并行完成。 寻找可以让我在我的进程中调用它的 .NET 库或代码。

【问题讨论】:

    标签: .net audio codec


    【解决方案1】:

    点击此链接:The VoiceAge Open G.729 Implementation。他们还提供用 C 编写的 g729 解码器和编码器。

    【讨论】:

    • 有谁知道在哪里可以找到这个的另一个副本?我已经查看该网站几个月了,他们的代码链接已关闭。 voiceage.com/media/G729.zip
    • 他们不再支持他们的“开放式实施”,并通知我该信息仍在他们的网站上,但他们将很快将其删除(我不知道多久)。
    【解决方案2】:

    根据 Wikipedia,G.729 包含多项专利,并由 Sipra 授权,因此您可能很难找到合适的库。除非您要解码大量非常小的文件,否则生成新进程的成本与进行解码的成本相比应该不会那么大,所以我会说使用您拥有的可执行文件。

    就资源而言,是的,与使用线程相比,生成进程需要更多资源。不过,这并不重要,只要您生成的进程数量与机器中的内核数量一样多。生成更多进程只会浪费资源,并且不会为您带来任何额外的并行度。

    【讨论】:

      【解决方案3】:

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

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

      如果您绝对必须在进程中,一种解决方案(不是说它是最好的)可能是使用 LGPL 下的 LibAVCodec。

      【讨论】:

        【解决方案4】:

        免费使用的参考实现在:http://www.readytechnology.co.uk/open/ipp-codecs-g729-g723.1/

        请注意其他人提出的专利问题,即参考实现仅在英特尔处理器上运行,并且您需要向英特尔支付费用才能使用其 IPP 库作为商业产品的一部分分发代码。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            当谈到 g729 转换器时,首先提示我的是 ITU G729-A 标准。一个非常麻烦的方法是将 g729 转换为 pcm,首先它们在您的 wav 文件前面添加一个 wav 标头。从.g729.由于ITU官方g729a(并且官方不支持多线程......)lib高度参与了这个想法,我想你必须考虑并发以及如何在g729a lib.I中使用一堆静态变量正确编程曾经参与过像 OP descibes 这样的小项目,我基本上将巨大的 g729 文件拆分为 g729 块,并以合理的并发编程方式单独解码它们......

            【讨论】:

              【解决方案7】:

              如果您只想查看文件所需的编解码器,请转到GSopt并下载最新版本(您可以click here直接打开下载页面)。

              下载后,解压文件打开文件夹并运行EXE,现在从浏览按钮中选择文件,文件加载后将显示其所有信息。 (如果文件未显示在browse dialogue box 中,只需从browse file dialogue 中选择All Files(*.*))

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-08-12
                • 1970-01-01
                • 1970-01-01
                • 2014-09-12
                • 1970-01-01
                • 2019-04-04
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多