Spaces:
Running
Running
File size: 1,958 Bytes
caffd8a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
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すべての処理が完了しました。") |