You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R批量将文件夹中的MP3文件转换为WAV格式

批量将MP3转换为WAV的R实现

首先确保安装并加载所需的tuneR包:

# 若未安装则先安装
if (!require(tuneR)) {
  install.packages("tuneR")
  library(tuneR)
}

接下来编写批量转换的核心代码:

# 设置MP3文件所在的文件夹路径(替换为你的实际路径)
mp3_folder <- "D:\\5366374684\\0297B65BR095V53DIHAKG2LAES00H7AT"
# 设置WAV文件的输出文件夹(可自定义,若不存在则自动创建)
wav_folder <- "D:\\mp3_to_wav_output"
if (!dir.exists(wav_folder)) {
  dir.create(wav_folder, recursive = TRUE)
}

# 获取文件夹下所有MP3文件的完整路径
mp3_files <- list.files(path = mp3_folder, pattern = "\\.mp3$", full.names = TRUE, ignore.case = TRUE)

# 循环处理每个MP3文件
for (mp3_path in mp3_files) {
  # 提取文件名(不含后缀)
  file_name <- tools::file_path_sans_ext(basename(mp3_path))
  # 构造对应的WAV输出路径
  wav_path <- file.path(wav_folder, paste0(file_name, ".wav"))
  
  tryCatch({
    # 读取MP3文件
    audio <- readMP3(mp3_path)
    # 写入WAV文件
    writeWave(audio, wav_path, extensible = FALSE)
    cat("已完成转换:", basename(mp3_path), "→", basename(wav_path), "\n")
  }, error = function(e) {
    cat("转换失败:", basename(mp3_path), ",错误信息:", e$message, "\n")
  })
}

关键说明:

  • pattern = "\\.mp3$" 确保只匹配以.mp3结尾的文件,ignore.case = TRUE 兼容大小写格式(如.MP3)
  • tryCatch 用于捕获转换中的异常,避免单个文件失败导致整个循环终止
  • tools::file_path_sans_ext 是安全提取文件名(不含后缀)的方法,比手动截取更可靠
  • 输出文件夹会自动递归创建,无需手动提前建立

内容的提问来源于stack exchange,提问作者george g

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:20:33