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

在R中用Whisper转录音频遇格式问题:如何转16-Bit WAV?

解决R中音频转16-Bit WAV格式的问题

你之前的代码里,av_audio_convert把输出格式设成了mp3,而且没指定比特深度,这才导致生成的文件不符合Whisper的要求。在R里有两种简单的方法生成16-Bit WAV文件,下面分别说明:

方法一:用你已安装的av包

直接修改av_audio_convert的参数,指定正确的格式和16-bit编码:

# 正确转换为16-Bit WAV
av_audio_convert(
  input = "/Users/mehmetkay-sudo/Desktop/R/ketzer_trans.wav",
  output = "ketzer_new_16bit.wav",
  format = "wav",
  sample_rate = 16000,
  codec = "pcm_s16le"  # 这个编码对应16-bit PCM格式,是Whisper要求的
)

# 之后再用转换好的文件做转录
trans <- predict(model, newdata = "ketzer_new_16bit.wav", language = "de", 
                 duration = 30 * 1000, offset = 7 * 1000, 
                 token_timestamps = TRUE)

方法二:用tuneR包(更直观)

如果觉得av的参数不好记,可以用tuneR包直接控制音频比特深度:

# 安装并加载包
install.packages("tuneR")
library(tuneR)

# 读取原音频文件
audio <- readWave("/Users/mehmetkay-sudo/Desktop/R/ketzer_trans.wav")
# 设置为16-bit
audio@bit <- 16
# 保存为16-Bit WAV
writeWave(audio, "ketzer_new_16bit.wav")

# 执行转录
trans <- predict(model, newdata = "ketzer_new_16bit.wav", language = "de", 
                 duration = 30 * 1000, offset = 7 * 1000, 
                 token_timestamps = TRUE)

关键注意点

  • 你之前代码里的file.path行是无效的,直接删掉即可,它没有实际作用
  • Whisper要求的是16-bit PCM格式的WAV文件,必须同时满足格式(WAV)和比特深度(16-bit)两个条件

内容的提问来源于stack exchange,提问作者mehmetkay-sudo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:20:18