2

私は現在、Asterisk と PHP Web インターフェイスとのテレフォニー統合に取り組んでいます。ユーザー独自のカスタム グリーティングを wav ファイルにアップロードするオプションをユーザーに提供し、サーバー上で wav を 8000hz の gsm ファイルに変換したいと考えています。現在、私はこれを達成するために sox を使用しようとしています。

ただし、8khz sav 以外のものを gsm に変換すると、gsm ファイルがひどく歪んでいるようです。ファイルの速度が 10 分の 1 になるようです (wav 形式の 3 秒のイントロが 30 秒の gsm ファイルに変わります)。速度とリサンプリングの組み合わせをいくつか試しましたが、うまくいきませんでした。理想的には、アップロードされた wav ファイルを取得して変換し、適切にエンコードする責任をユーザーに負わせることなくしたいと考えています。私は間違いなくオーディオマニアではないので、誰かが私を正しい方向に向けることができれば、それは大歓迎です.

4

4 に答える 4

5

これは、通常の 16 ビット .wav ファイルを 8 ビット モノラル .gsm ファイルに変換するために使用するコマンドです (正常に動作します)。

sox input.wav -r 8000 -c1 output.gsm lowpass 4000 compand 0.02,0.05 -60,-60,-30,-10,-20,-8,-5,-8,-2,-8 -8 -7 0.05
于 2011-08-04T21:09:44.767 に答える
0

1 つのコマンドではなく、変更を分割して次々とパイプする必要がある sox のケースを見てきました。

sox コマンドはどのように見えますか?

最初に wav を 8khz に変換してから、トランスコードして、1 つの sox 呼び出しからの出力を別の sox 呼び出しにパイプできますか?

于 2011-07-19T20:29:05.333 に答える
0

私が使う

sox foo.wav -r 8000 -c1 foo.gsm resample -ql
于 2012-06-14T10:41:37.643 に答える
0

少し遅れて、私は現在使用しています:

sox somefile.wav -r 8000 -c1 output.gsm
于 2019-12-04T12:01:29.197 に答える