Python を使用して曲のピッチを下げる方法
曲の速度を変えずにピッチを変更したい場合は、このブログ投稿が最適です。ピッチシフトは、ミュージシャン、DJ、オーディオ エンジニアにとって一般的な作業です。このチュートリアルでは、Python と pydub ライブラリを使用して曲のピッチを下げ、このプロセスをフォルダー内の複数の曲に自動的に適用する方法を検討します。
なぜピッチシフトなのか?
音楽において、ピッチシフトとは、曲のピッチを速くしたり遅くしたりせずに変更する(上げたり下げたり)ことを意味します。これは次の場合に役立ちます:
曲のキーを別のトラックに合わせる
別のキーにチューニングされた楽器の曲を移調します
リミックスまたはマッシュアップの作成
必要なツール
Python ライブラリ pydub を使用してオーディオ ファイルを操作します。 pip を使用してインストールできます:
pip install pydub
さらに、pydub では MP3 などのオーディオ ファイルを処理するために ffmpeg が必要です。ターミナル経由で ffmpeg をインストールできます:
sudo apt install ffmpeg
ピッチシフトのステップバイステップガイド
ここで、フォルダー内の複数の曲のピッチシフトを自動化する Python スクリプトを見てみましょう。このスクリプトは、曲フォルダー内のファイルをループし、半音 (semitone = -1) だけピッチを下げ、新しいファイルを出力フォルダーに保存します。
コード
import os from pydub import AudioSegment # Function to shift pitch down def pitch_shift(audio, semitones): # Adjust sample rate to shift pitch new_sample_rate = int(audio.frame_rate * (2.0 ** (semitones / 12.0))) return audio._spawn(audio.raw_data, overrides={'frame_rate': new_sample_rate}).set_frame_rate(audio.frame_rate) # Input and output folders input_folder = './songs' output_folder = './output' # Ensure the output folder exists os.makedirs(output_folder, exist_ok=True) # Loop through all files in the songs folder for filename in os.listdir(input_folder): # Check if the file is an audio file (e.g., mp3 or wav) if filename.endswith(".mp3") or filename.endswith(".wav"): # Construct the full file path input_path = os.path.join(input_folder, filename) output_path = os.path.join(output_folder, filename) # Load the audio file audio = AudioSegment.from_file(input_path) # Shift pitch down by a half-step (semitone = -1) shifted_audio = pitch_shift(audio, -1) # Export the pitch-shifted audio to the output folder shifted_audio.export(output_path, format="mp3") print(f"Processed and saved: {output_path}")
説明
ライブラリのインポート:
ファイルディレクトリを操作するために OS をインポートし、オーディオファイルを操作するために pydub から AudioSegment をインポートします。ピッチシフト機能:
itch_shift 関数はオーディオのサンプル レートを調整します。サンプルレートを変更すると、ピッチが変わります。この場合、次の式を使用してピッチを半音下にシフトする新しいサンプル レートを計算します。
new_sample_rate = int(audio.frame_rate * (2.0 ** (半音 / 12.0)))
入力フォルダーと出力フォルダー:
オーディオ ファイルを読み取り、ピッチ シフトしたバージョンを保存するフォルダーを定義します。出力フォルダーが存在しない場合は作成されます。-
曲をループする:
os.listdir() を使用して、 songs フォルダー内の各ファイルをループします。スクリプトは、ファイルを処理する前に、ファイルがオーディオ ファイル (.mp3 または .wav) であるかどうかを確認します。各ファイルについて:- オーディオをロードします。
- pitch_shift 関数が適用され、ピッチが半音下がります。
- ピッチシフトされたオーディオが出力フォルダーにエクスポートされます。
エクスポートとフィードバック:
処理が完了すると、ピッチシフトされたソングが出力フォルダーに保存され、確認メッセージが出力されます。
スクリプトの実行
オーディオ ファイルが songs フォルダーにあることを確認してから、スクリプトを実行します。
python -m pitch_down.py
ピッチシフトされたファイルは出力フォルダーに保存されます。
カスタマイズ
このスクリプトは次のように簡単に変更できます。
正の値を渡すことでオーディオのピッチを上げます (例: 半音上げの場合は、pitch_shift(audio, 1))。
.ogg や .flac などの他の拡張子を条件チェックに追加して、さまざまなファイル形式を処理します。
半音引数を調整して、異なる半音数だけシフトします。
結論
このスクリプトは、Python を使用して複数のオーディオ ファイルをピッチシフトするシンプルかつ強力な方法です。 pydub と ffmpeg を使用すると、オーディオ ファイルを一括操作できるため、ミュージシャン、プロデューサー、またはオーディオを扱うすべての人にとって、ピッチ補正やオーディオの準備などのタスクが簡単になります。
このスクリプトを自由に試して、ニーズに合わせてどのように調整できるかを確認してください。コーディングを楽しんでください!
以上がPython を使用して曲のピッチを下げる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。
