import shutil from pathlib import Path from pydub import AudioSegment def check_dependencies(): dependencies = ["ffmpeg", "ffprobe"] missing = [] for dep in dependencies: if not shutil.which(dep): missing.append(dep) if missing: print(f"缺少必要依赖: {', '.join(missing)}") print("请安装缺失的依赖项。在Ubuntu上可以使用: sudo apt-get install ffmpeg") return False return True def convert_wav_to_mp3(source_dir): source_path = Path(source_dir) if not source_path.exists() or not source_path.is_dir(): print(f"源目录不存在或不是一个目录: {source_dir}") return False wav_files = list(source_path.glob("**/*.wav")) if not wav_files: print(f"在目录 {source_dir} 中没有找到WAV文件") return False print(f"找到 {len(wav_files)} 个WAV文件,开始转换...") for wav_file in wav_files: try: mp3_file = wav_file.with_suffix(".mp3") sound = AudioSegment.from_wav(str(wav_file)) sound = sound.set_frame_rate(16000).set_sample_width(2).set_channels(1) sound.export(str(mp3_file), format="mp3", bitrate="16k") print(f"已转换: {wav_file} -> {mp3_file}") except Exception as e: print(f"转换文件 {wav_file} 时出错: {str(e)}") print("转换完成!") return True if __name__ == "__main__": if not check_dependencies(): print("缺少必要依赖,程序退出") exit(1) source_directory = "/home/ubuntu/TalkingQ_URL/assets/roles/zhuchi" convert_wav_to_mp3(source_directory)