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すべての処理が完了しました。")