0

マルチチャネル(2、8、または16)wavファイルをそのチャネルに分割し、すべてのチャネルを別のwavファイルに保存したいと思います。

これまでのところ、c ++、客観的なc++プロジェクトでlibsoxを起動して実行することを達成しました。

Libsoxは十分に文書化されておらず、その方法に関する多くの例があります:(

最初に入力ファイルを開くことから始めました

sox_format_t * in, * out;
assert(sox_init() == SOX_SUCCESS);
assert(in = sox_open_read((const char*)filename.c_str(),NULL,NULL,NULL));

ここで、このファイルのチャネル数を取得する方法を見つける必要があります。次に、同じ量の出力ファイルを作成し、すべてのチャネル自体をその中に保存する必要があります。

実行する方法?

ありがとう!

4

1 に答える 1

0

昔ながらのやり方でやろうと思います。

  • ファイルのチャネル数を決定します。
  • データブロックの長さを決定します。

    Length of Data block / channelCount = Size of each channelBlock
    
  • チャネルは、WavFile-Datablock(4Channel WavFileの場合)CH1 / Ch2 / Ch3 / Ch4 CH1 / Ch2 / Ch3/Ch4内にそのように保存されます。

  • データブロックを実行してチャネルを抽出し、mono-wavファイルに入れます
于 2012-09-10T09:15:40.743 に答える