質問

G729でエンコードされたオーディオファイルがあります。他のことをしているツールの流れの中で、プログラムでそれらをWAV PCM(16ビット8 kHzモノラル)に変換する必要があります。私のためにそれを行う実行可能ファイルがあります。しかし、変換するたびにその外部プロセスを生成することは、リソースに対して重すぎます。特に、それらの多くが並行して行われる必要がある場合。 プロセス内でこれを呼び出すことができる.NETライブラリまたはコードを探しています。

役に立ちましたか?

解決

このリンクに従う: VoiceAge Open G.729の実装。また、Cで記述されたg729デコーダーとエンコーダーも提供します。

他のヒント

ウィキペディアによると、G.729にはいくつかの特許が含まれており、 Sipra によってライセンスされているため、おそらくあなたは勝つでしょう」適切な語彙集を見つけるのに幸運があります。多数の非常に小さなファイルをデコードする場合を除き、新しいプロセスを生成するコストは、デコードを実行するコストに比べてそれほど大きくないはずなので、実行可能な実行ファイルを使用する必要があります。

リソースに関しては、はい、スレッドを使用する場合に比べて、プロセスの生成にはより多くのリソースが必要です。ただし、マシンにコアがある数だけプロセスを生成する限り、これは実際には問題ではありません。より多くのプロセスを生成すると、リソースが無駄になり、余分な並列処理は得られません。

ウィキペディアによると:" G.729には複数の企業の特許が含まれており、Siproによってライセンスされています( http:// www .sipro.com / )。多くの国では、G.729の使用にはライセンス料および/またはロイヤリティ料が必要になる場合があります。

しかし、あなたはすでにあなたのアプリケーションでそれを考慮していると思います。

どうしてもインプロセスである必要がある場合、LGPLの下にあるLibAVCodecを使用することが1つの解決策です(最良とは言いません)。

の無料で使用可能なリファレンス実装http://www.readytechnology.co.uk/open/ipp-codecs-g729-g723.1/

他者によって提起された特許問題、参照実装はIntelプロセッサ上でのみ動作し、商用製品の一部としてIPPライブラリを使用してコードを配布するためにIntelに料金を支払う必要があるという事実に注意してください。

G729用のシステムにACMコーデックがある場合、 NAudio を使用して変換できますPCMへ。 NAudioに含まれているNAudioDemoアプリケーションを使用して、システムで使用可能なACMコーデックを表示し、それらを使用してファイルをデコードします。

g729コンバーターに関して最初に私に促されるのはITU G729-A標準です。非常に面倒な方法の1つは、まずg729をpcmに変換し、wavファイルの前にwavヘッダーを追加することです。 ITU公式g729a(および公式にはマルチスレッドをサポートしない...)libがこのアイデアに深く関与しているため、並行性とg729a lib.I内の多数の静的変数を適切にプログラムする方法を考慮する必要があると思いますOP descibesのような小さなプロジェクトに関与していましたが、基本的には巨大なg729ファイルをg729チャンクに分割し、合理的な同時実行プログラミングの方法で個別にデコードします...

ファイルに必要なコーデックのみを表示する場合は、 GSopt にアクセスして、最新バージョン(ここをクリックしてダウンロードページを直接開くことができます)

ダウンロード後、ファイルを開いてフォルダを抽出し、 EXE を実行します。次に、参照ボタンからファイルを選択すると、ファイルが読み込まれた後、すべての情報が表示されます。 (ファイルが browseダイアログボックスに表示されない場合は、 browse file dialog から All Files(*。*)を選択するだけです)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top