Python オーディオ処理のための強力なツール

421d53559164687ee4470ef91a1d4566.png

迷子になった本の少年

読んだ後に必要

3

速読にはわずか1分しかかかりません

オーディオの処理と編集に関しては、PyDub は非常に強力で使いやすいオープン ソース ライブラリです。オーディオのカット、結合、ミキシング、速度変更、ピッチ変更などの多くの機能を提供します。この記事では、PyDub の基本原理と使用法を段階的に理解していきます。

PyDub のインストールは非常に簡単です。ターミナルまたはコマンド プロンプトを開いて次のコマンドを実行するだけです。

pip install pydub

これにより、PyDub ライブラリとその依存関係が自動的にダウンロードされ、インストールされます。

インストールが完了したら、PyDub の使用を開始できます。基本的な使い方を見てみましょう。

まず、PyDub ライブラリをインポートする必要があります

from pydub import AudioSegment

PyDub の中核となる概念は、オーディオ セグメントを表す AudioSegment クラスです。オーディオ ファイルを AudioSegment オブジェクトにロードし、それらに対してさまざまな操作を実行できます。

簡単な例から始めましょう。音楽ファイル Song.mp3 があり、その最初の 30 秒を切り取って、新しいファイル intro.mp3 として保存したいとします。次のコードを使用して実現できます

from pydub import AudioSegment


# 加载音频文件
song = AudioSegment.from_file("song.mp3")


# 剪切前30秒
intro = song[:30000]


# 保存为新文件
intro.export("intro.mp3", format="mp3")

この例では、最初に from_file メソッドを使用して Song.mp3 ファイルをロードし、それを Song オブジェクトに保存しました。次に、スライス オペレータ [:30000] を使用してオーディオ クリップの最初の 30 秒を選択し、それをイントロ オブジェクトに保存します。最後に、export メソッドを使用して、イントロ オブジェクトを intro.mp3 ファイルとして保存します。

クリッピングに加えて、PyDub は他の多くの機能を提供します。たとえば、+ 演算子を使用して 2 つのオーディオ クリップを結合できます。

combined = intro + song

オーバーレイ方法を使用して、あるオーディオ クリップを別のオーディオ クリップにオーバーレイすることもできます。

combined = song.overlay(intro)

PyDub を使用すると、フェードインおよびフェードアウト効果、音量調整、オーディオ特殊効果など、オーディオに対してさまざまな複雑な操作を実行できます。最後に、フェードインとフェードアウト効果のサンプルコードを見てみましょう。

from pydub import AudioSegment


# 加载音频文件
song = AudioSegment.from_file("song.mp3")


# 淡入淡出效果
fade_in = song.fade_in(2000)  # 淡入2000毫秒,即最开始2秒声音小
fade_out = song.fade_out(2000)  # 淡出2000毫秒,即最后2秒声音小


# 保存文件
fade_in.export("fade_in.mp3", format="mp3")


# 保存文件
fade_out.export("fade_out.mp3", format="mp3")

この例では、fade_in メソッドと fade_out メソッドを使用して、それぞれオーディオにフェードイン効果とフェードアウト効果を追加します。次に、エクスポート機能を使用してローカルオーディオファイルとして保存します。

PyDub は、ミキシング、速度変更、ピッチ変更など、オーディオを処理するための他の多くの方法も提供します。詳細については、PyDub の公式ドキュメント (https://github.com/jiaaro/pydub ( https://github.com/jiaaro/pydub )) を参照してください。

d9ba72b8cf1eaf0a882139d5aa3d4b9b.jpeg

9a1ee8a4e65bfcce1afc7efaaa718c88.gif

おすすめ

転載: blog.csdn.net/djstavaV/article/details/133503686