質問

オーディオファイルの操作に使用できるライブラリを探しています。基本的に私がやりたいことは:

  1. MP3 / WAVファイルの読み込み

  2. ファイルの15秒のクリップを取得

  3. その上に別のMP3 / WAVファイルをオーバーレイ

  4. 新しいMP3 / WAVファイルとしてレンダリング

役に立ちましたか?

解決

一般的なMP3コーデックAPIを使用して、ストリームをデコードし、ストリームを操作して、再度保存できます。たとえば、この部分に libLAME を使用できます。

ミキシングについては、自分で行うことができます(たとえば、単純に2つのサンプルを追加し、2つに分割します-あまり良くないかもしれません)。

best cオーディオライブラリlinuxの関連するStack Overflowの質問にも興味があるかもしれません

他のヒント

特許上の理由でMP3をサポートしていませんが、 libsndfile は非常に便利です。 WAVを含むさまざまな他のオーディオ形式でオーディオをロードおよび保存するためのオープンソース(LGPL)ライブラリ。

オーバーレイ部分については、サンプルをメモリにロードしたら簡単です...ファイルAの各サンプルとファイルBの対応するサンプルを合計するだけです(結果のサンプル値を少し縮小することもできます)クリッピングを心配している場合は、定数を乗算します)。

soxのライブラリ libsox http://libsox.sourceforge.net/ (これはまったく異なるものです)には、使用できるシンプルなAPIがあるようです。ドキュメントには、ステレオからモノラルへのミキシングに関する次の例が記載されています。

  

サンプルを整数として表現すると、   処理時に問題を引き起こす   オーディオ。たとえば、   左右のチャンネルをミックスダウンします   1つのモノラルチャンネルは   行

    *obuf++ = (*ibuf++ + *ibuf++)/2;
  

  中間加算はオーバーフローする可能性があります32   ビット。行

    *obuf++ = *ibuf++/2 + *ibuf++/2;
  

オーバーフローの問題を回避します   (最小限の費用で   有効ビット)。

これを見てみるといいかも http://terminatorx.org/ 同様のことをするために見ていました。

非常に優れたC ++オーディオ/シンセライブラリは、 STK です。それはたくさんのものを行い、BSD / MITタイプのライセンスの下にあります。つまり、それを使用して商用製品を開発することができます。 Wavはサポートされていますが、MP3はサポートされていません。 MP3の場合、たとえば irrklang を使用できます。アンダービット、多くの人が使用します。)

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