Centos6.0でsox14.2.0を使用しています。
私は2つのmono wavファイルを持っています、left.wav
およびright.wav
。それらを1つにまとめる必要がありますstereo.ogg
ファイル、left.wav
左に80%パンし、right.wav
右に80%パンします。
私はこれに必要なsoxオプションを思い付くことができませんでした。どうすればよいですか?
これは多くのファイルに対して繰り返し実行されるため、効率的なソリューションをお勧めします。私が理解していることから、1回のパス(1回のsoxの呼び出し)でそれを行う方法があるはずです。
方法は次のとおりです。
sox left.wav right.wav --channels 2 --combine mergestereo.oggミキサー0.8,0.2,0.2,0.8
haimgsコマンドは完全に正しくありません。従来は、1つのチャンネルの音量を下げることでパンします。つまり、信号を80%残したい場合、左チャンネルは元の音量を維持し、右チャンネルは元の音量の20%しか取得しません。少なくとも、それはソックスのパンニングコードが行ったことです(そしてステレオを発明したときにアランブルームラインが支持したようです)。
また、彼のコマンドはremix-optionを使用して短縮できます。
したがって、修正および短縮されたコマンドは次のとおりです。
sox left.wav right.wav stereo.ogg remix 1,2v0.2 1v0.2,2
haimgsコメントへの回答で編集:
soxは、クリッピングが発生した場合に警告します。しかし、はい、それは可能です。リミックスオプションを使用すると、すべてのチャンネルの音量が1/nの係数でスケーリングされます。ここで、nは入力チャンネルの数です。ただし、これは、出力チャネルにVULME OPTIONが指定されていない場合にのみ使用されます(したがって、100%+ 20%が正しい)。
soxには、明示的なボリューム情報なしで任意のチャネルをスケーリングするオプションもあります。「remix」の後に「-a」を追加するだけで(「remix-a 1,2v0.2 1v0.2,2」など)、ボリュームは50のようになります。 %+ 20%= 70%。それはかなり混乱していて、パンされたチャンネルのボリュームを1/nでスケーリングする必要があるかどうかは今のところわかりません。その結果、「remix -a 1,2v0.1 1v0.1,2」、つまり50%+になります。 10%= 60%。私はこの方向でさらに調査する必要があります。一方、soxのmanページのremix-sectionを読むことができます( soxホームページ でも入手できます)。
さらに反映した後に編集:
それについて考えた後、私はあなたがパンされたボリュームも1/nでスケーリングしなければならないことをかなり確信しています。
クリッピングの問題について:[〜#〜] all [〜#〜]をチャネル数で割ると、この問題は発生しません。ただし、信号のパワーは線形ではなく対数であるため、そのは信号の元のパワーを保持しません。ミックスするチャンネルが多いほど、信号は静かになります。そのため、soxには、ボリュームが1/sqrt(n)でスケーリングされるオプションもあります。これを使用するには、リミックス部分で「v」の代わりに「p」を取り、それに応じて値を調整し、リミックスステートメントの後に「-p」オプションを追加します。 1/nと1/sqrt(n) ここ によるスケーリングの違いを見ることができます。
以下は、正しい電力値を計算する方法です。チャネルごとに、20 * log_10(factor)を解く必要があります。 2の係数は〜6(dB)になり、0.5の係数は〜-6(dB)になります。それはまさにソックスのマニュアルが言っていることなので、私はこれが正しいと思います。
したがって、最後に、あなたの場合のコマンドは次のようになります。
sox left.wav right.wav stereo.ogg remix -p -a 1,2p-6 1p-6,2
このマシンにはsoxがないため、このコマンドの正しい構文をテストできません。問題があるかどうかを教えてください。同様の問題に直面するため、機会があればすぐにこの理論をすべてテストしますが、2つだけではなく、さらに多くのチャネルを混合する必要があるため、その信号電力を考え出しました。
どういうわけか、上記のすべてが私のためにエラーを生成しました。これは私のために働いたものです(Ubuntu 14.04のSOX):
sox -M -c 1 lef.wav -c 1 right.wav output.mp3
パンオプションを指定してsoxを使用し、1つのファイルを右にパンし、もう1つのファイルを左にパンします(それぞれ1と-1)。次に、soxmixを使用して2つを混ぜ合わせます。