2008-10-17 278 views
5

我有G729編碼的音頻文件。我需要以編程方式將它們轉換爲WAV PCM(16位8kHz單聲道)流程中的其他功能。我有一個可執行文件,將爲我做到這一點。但是每次我轉換時產生這個外部進程對資源來說太重了。特別是如果我需要並行完成其中的很多。 尋找一個.NET庫或代碼,讓我在我的過程中調用它。以編程方式將G729音頻轉換爲WAV PCM

回答

3

請點擊此鏈接:The VoiceAge Open G.729 Implementation。他們還提供G729解碼器和編碼用C寫的

+0

有沒有人知道你在哪裏可以找到這個副本?我一直在看網站幾個月,他們的代碼鏈接已經關閉。 http://www.voiceage.com/media/G729.zip – thaspius 2013-04-03 13:43:55

0

根據維基百科,G.729包含多項專利並獲得Sipra許可,所以您可能不會有太多的運氣找到合適的文章。除非你解碼大量非常小的文件,否則產生一個新進程的代價不應該比解碼的代價大,所以我會說使用你的可執行文件。

就資源而言,是的,與使用線程相比,產卵過程需要更多的資源。但是,這應該並不重要,只要你在你的機器中有核心就可以產生儘可能多的進程。產生更多的流程只會浪費資源,並不會帶來任何額外的並行性。

0

維基百科說:「G.729包含多家公司的專利,並且由Sipro許可(http://www.sipro.com/)。在許多國家,使用G.729可能需要許可費和/或專利使用費。

但我想你已經在你的應用程序中考慮過了。

如果你絕對必須在進程中,一個解決方案(不是說它是最好的)可以使用LGPL下的LibAVCodec。

0

如果您的系統上有G729的ACM編解碼器,那麼您可以使用NAudio將其轉換爲PCM。請使用NAudio附帶的NAudioDemo應用程序,它將向您顯示您系統上可用的ACM編解碼器,並使用它們解碼文件。

0

當談到g729轉換器時,首先提示我的是ITU G729-A標準。一種相當麻煩的方法是先將g729轉換爲pcm,然後在wav文件的前面添加一個wav標頭。該構造一個.wav從國際電聯官方g729a(並且正式不支持多線程...)lib高度參與這個想法,我想你必須考慮併發性以及如何在g729a庫中用一堆靜態變量進行正確編程。我曾經涉及一個像OP descibes這樣的小項目,我基本上將巨大的g729文件分割成g729塊,並以合理的併發編程方式單獨解碼它們...

0

如果您只想查看所需的編解碼器文件,然後去GSopt並下載最新版本的i t(你可以click here直接打開下載頁面)。

下載後,解壓縮文件打開的文件夾並運行EXE,現在從瀏覽按鈕中選擇文件,文件加載後將顯示其所有信息。(如果文件沒有在browse dialogue box中顯示,只需從browse file dialogue中選擇All Files(*.*)

相關問題