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