ピッチを変えずにオーディオ ファイルの再生速度を下げますか?
質問
私は大学の音楽専攻への出願に取り組んでいます。私が検討している機能は、ピッチを変更せずに音楽の再生を遅くすることです。これが商用ソフトウェアで行われているのを見たことがありますが、このようなことを行うライブラリやオープンソースアプリは見つかりません。
- そこに図書館はありますか?
- さまざまなファイル形式からこれを最初から行うにはどうすればよいでしょうか?
注記:私は Java で作業していますが、言語を変更することに反対はしていません。
解決
タイムストレッチはかなり難しいです。サウンドを遅くしたり速くしたりすると、アーティファクトが多くなります。彼らがどんなサウンドなのか知りたければ、ファット・ボーイ・スリムの「The Rockafeller Skank」を聴いてください。それを行う方法はたくさんありますが、それぞれに独自の長所と短所があります。計算は非常に複雑になる可能性があります。独自のアルゴリズムが多数存在するのはそのためです。
このページでは、私よりももう少しわかりやすく説明しており、ディラック ライブラリへのリンクを提供しています。http://www.dspdimension.com/admin/time-pitch-overview/
ピッチシフト/タイムストレッチを行うためのJavaコードのこのリンクを見つけましたhttp://www.adetorres.com/keychanger/KeyChangerReadme.html
他のヒント
私が使う サウンドストレッチ ポッドキャストを高速化することは非常にうまく機能しますが、音楽では試していません。
このサイトでは、物理世界でそれがどのように行われるかを説明しています。http://www.wendycarlos.com/other/Eltro-1967/index.html
ソフトウェアでそれをどのようにエミュレートするかはわかりませんが...探し続けます
これを行う 1 つの方法は、ソースのサンプリング レートを変更せずにサンプリング レートを 2 倍にすることです。(低品質の例ですが、実装は簡単です。注記:サンプリング レートを下げることもできます)。
位相ボコーダーに関連する数学を確認してください。
もう 1 つの一般的な方法は、サウンドのスケジュールされた間隔のデータを保存する FFT ビンの配列を作成することです。次に、ビンを反復処理する速度を選択でき、選択した期間だけそのオーディオ データを再合成できるため、サウンドの 1 つの短いセグメントを好きなだけ長く伸ばすことができます。
audacity はすぐに使えて無料です。MP3 プレーヤー用の無料プラグインもいくつかあります。MP3 は周波数領域ですでにコーディングされているため、どうやらそれを行うのは非常に簡単のようです。