【发布时间】:2016-11-10 00:40:42
【问题描述】:
是否可以在 R 中将文件从 .mp3 转换为 .wav 以便能够使用 R 播放歌曲?
【问题讨论】:
-
@MO'Connell 一些语音识别软件,例如 CMU Sphinx,只接受 .wav 文件作为输入。这就是我现在的情况。所以问题不仅在于滥用 R 作为媒体播放器(我也不会有问题)。
是否可以在 R 中将文件从 .mp3 转换为 .wav 以便能够使用 R 播放歌曲?
【问题讨论】:
是的(可能)。这是一个例子:
将 MP3 转换为 WAV 非常简单:
library(tuneR)
r <- readMP3("04 Trip to Paris.mp3") ## MP3 file in working directory
writeWave(r,"tmp.wav",extensible=FALSE)
(要在 Linux 上安装 tuneR,请参阅 here)。
播放难度更大且取决于平台。 tuneR::play() 尝试使用外部播放器。
如果在 Windows 下并且没有 给定播放器,“mplay32.exe”或“wmplayer.exe”(如果 前者在 Windows 7 下不存在)将被选为 默认。
"open" 可能有效。"play" 可能会起作用如果您安装了 sox 软件包 (sudo apt-get install sox)。所以在我的 MacOS 系统上
tuneR::play("tmp.wav","open")
有效。
不使用外部资源的替代方法是audio::play()。
library(audio)
w <- load.wave("tmp.wav")
play(load.wave("tmp.wav"))
它适用于 MacOS。我不知道它是否适用于Windows。它在我的 Linux 系统上不工作; audio 甚至不会安装,除非你先 sudo apt-get install portaudio19-dev,而且即使安装一次也效果不佳。
(当我在这里说“Linux”时,我指的是我测试过的唯一系统 Ubuntu 14.04。我列出的 sudo apt-get install ... 咒语可能适用于其他相当新的基于 Debian 的系统,但是...... ???)
【讨论】:
library(sos); findFn("write mp3") 也不起作用。也许发布一个新问题,详细说明您想做什么?