shiny-rufflet
test
caffd8a
import os
from pydub import AudioSegment
def convert_wav_to_mp3_recursive(root_dir):
"""
指定されたディレクトリ以下のすべての.wavファイルを.mp3に変換する。
Args:
root_dir (str): 検索を開始するルートディレクトリのパス。
"""
# os.walkでディレクトリツリーを再帰的に探索
for dirpath, dirnames, filenames in os.walk(root_dir):
for filename in filenames:
# ファイルが.wavで終わるかチェック(大文字・小文字を区別しない)
if filename.lower().endswith('.wav'):
# .wavファイルのフルパスを作成
wav_path = os.path.join(dirpath, filename)
# .mp3ファイルのパスを作成(拡張子を置き換える)
mp3_path = os.path.splitext(wav_path)[0] + '.mp3'
print(f"変換中: {wav_path} -> {mp3_path}")
try:
# WAVファイルを読み込む
audio = AudioSegment.from_wav(wav_path)
# MP3ファイルとして書き出す (ビットレートを指定可能)
# 例: audio.export(mp3_path, format="mp3", bitrate="192k")
audio.export(mp3_path, format="mp3")
print("変換完了。")
except Exception as e:
print(f"エラー: {wav_path} の変換に失敗しました。理由: {e}")
if __name__ == "__main__":
# スクリプトが置かれている現在のディレクトリを対象にする
target_directory = "."
print(f"'{os.path.abspath(target_directory)}' 以下のWAVファイルを検索・変換します...")
convert_wav_to_mp3_recursive(target_directory)
print("\nすべての処理が完了しました。")