mp3サウンドトラックからボーカルを削除したい。私はグーグルを検索し、いくつかのソフトウェアを試しましたが、どれも説得力がありません。mp3ファイルを読み取り、波形を取得して、指定された制限を超える波形を削除することを計画しています。
続行する方法について何か提案はありますか。
- アップデート
mp3ファイル形式を読み取れるコードが欲しいだけです。ソフトウェアはありますか?
mp3サウンドトラックからボーカルを削除したい。私はグーグルを検索し、いくつかのソフトウェアを試しましたが、どれも説得力がありません。mp3ファイルを読み取り、波形を取得して、指定された制限を超える波形を削除することを計画しています。
続行する方法について何か提案はありますか。
- アップデート
mp3ファイル形式を読み取れるコードが欲しいだけです。ソフトウェアはありますか?
これは「トリック」ほどの「アルゴリズム」ではありませんが、コードで自動化することができます。これは主に、ボーカルが中央に配置されているステレオトラックで機能します。ボーカルが中央に配置されている場合、それらは両方のトラックで等しく現れます。トラックの1つを反転してからマージすると、中央のボーカルの波形がキャンセルされ、実質的に削除されます。これは、audacityなどの最も優れたオーディオエディタを使用して手動で行うことができます。それはあなたに完璧な結果を与えません、そしてオーディオの残りも少し苦しみます、しかしそれは素晴らしいカラオケトラックになります:)
出典:http : //www.cdf.utoronto.ca/~csc209h/summer/a2/a2.html、DanielZingaro著。
音は気圧の波です。音が発生すると、圧縮(圧力の上昇)と希薄化(圧力の低下)からなる音波が空中を移動します。これは、池に石を投げた場合に起こることと似ています。水は波のように上下します。
マイクが音を録音すると、気圧を測定して値として返します。これらの値はサンプルと呼ばれ、気圧の増減に対応して正または負になります。気圧を記録するたびに、音をサンプリングしています。各サンプルは、ある瞬間に音を録音します。サンプリングが速いほど、サウンドの表現はより正確になります。サンプリングレートとは、1秒間に何回サウンドをサンプリングするかを指します。たとえば、CD品質のサウンドは、毎秒44100サンプルのサンプリングレートを使用します。VOIP会話で使用するために誰かの声をサンプリングすることは、これよりはるかに少ない使用量です。11025(音声品質)、22050、および44100(CD品質)のサンプリングレートが一般的です...
モノラルサウンド(1つのサウンドチャネルを持つサウンド)の場合、サンプルは、サンプルが取得された時点での空気中の圧縮量を表す単純な正または負の整数です。ステレオサウンド(この割り当てで使用)の場合、サンプルは実際には2つの整数値で構成されています。1つは左スピーカー用、もう1つは右スピーカー用です...
[ボーカルを削除する]アルゴリズムの仕組みは次のとおりです。
最初の44バイトを入力ファイルから出力ファイルに逐語的にコピーします。これらの44バイトには、変更してはならない重要なヘッダー情報が含まれています。
次に、入力ファイルの残りの部分を一連のショートとして扱います。ショートパンツの各ペアを左右に取り、combined =(left-right)/2を計算します。combinedの2つのコピーを出力ファイルに書き込みます。
なぜこれが機能するのですか?
好奇心旺盛な方のために、ボーカル除去アルゴリズムの簡単な説明があります。アルゴリズムからお気づきのように、私たちは単に一方のチャネルをもう一方のチャネルから減算しています(そして、音量が大きくなりすぎないように2で除算しています)。では、なぜ右チャンネルから左チャンネルを引くと魔法のようにボーカルが削除されるのでしょうか。
音楽を録音する場合、ボーカルが1つのマイクで録音され、両方のチャンネルのボーカルに1つのボーカルトラックが使用されることがあります。曲の他の楽器は複数のマイクで録音されているため、両方のチャンネルで音が異なります。一方のチャンネルをもう一方のチャンネルから差し引くと、これら2つのチャンネルに「共通する」すべてのものが失われます。これは、運が良ければ、ボーカルを削除することを意味します。
もちろん、物事がそれほどうまく機能することはめったにありません。この動作の悪いwavファイルでボーカルリムーバーを試してください 。確かに、ボーカルはなくなっていますが、音楽の本体もなくなっています!どうやら、いくつかの楽器も「中央」で録音されていたので、チャンネルを差し引くとボーカルと一緒に削除されます。
pydub Toolboxを使用できます。詳細についてはこちらをご覧ください。関連する質問については、こちらもご覧ください。FFmpegに依存しており、任意のファイル形式を読み取ることができます
次に、次のことを実行できます。
from pydub import AudioSegment
from pydub.playback import play
# read in audio file and get the two mono tracks
sound_stereo = AudioSegment.from_file(myAudioFile, format="mp3")
sound_monoL = sound_stereo.split_to_mono()[0]
sound_monoR = sound_stereo.split_to_mono()[1]
# Invert phase of the Right audio file
sound_monoR_inv = sound_monoR.invert_phase()
# Merge two L and R_inv files, this cancels out the centers
sound_CentersOut = sound_monoL.overlay(sound_monoR_inv)
# Export merged audio file
fh = sound_CentersOut.export(myAudioFile_CentersOut, format="mp3")
指定された制限を超えていますか?ハイパスフィルターのように聞こえます...オリジナルと一緒にアカペラトラックがあれば、位相キャンセルを使用できます。そうでなければ、ボーカルが真ん中に直接あり、他のすべてがハードパンされている古い60年代のトラックでない限り、ボーカルを削除するための非常にクリーンな方法はないと思います。