2014-09-30 69 views
1

我非常喜歡R.我正在寫這個論壇,因爲我經常在這裏找到非常有用的問題和答案。我正嘗試從4個獨立立體聲音頻文件的右聲道中創建4聲道.wav音頻文件。這就是我試圖做使用調諧器:如何在R中的4個獨立音頻文件中創建4聲道音頻文件?

# read in 4 stereo audio files 

s1A <- readWave("/090306_1A.wav") 
s2A <- readWave("/090306_2A.wav") 
s3A <- readWave("/090306_3A.wav") 
s4A <- readWave("/090306_4A.wav") 

# extract the right channel as a vector file 

m1A <- [email protected] 
m2A <- [email protected] 
m3A <- [email protected] 
m4A <- [email protected] 

# combine the four files into one multi-channel file 

A_1 <- WaveMC(data = list(m1A, m2A, m3A, m4A), samp.rate = 96000, bit = 16, pcm = TRUE) 

# write the multi-channel file as a .wav file 

writeWave(A_1, filename = "/A_1.wav", extensible= TRUE) 

在這裏,我得到一個錯誤消息說:

"Error in writeWave(A_1, filename = "/A_1.wav", : 
    colnames(object) must be specified and must uniquely identify the channel ordering for WaveMC objects, see ?MCnames for possible channels" 

我已經看過MCnames,可以看到有三個變量的數據幀(ID ,所有4個頻道的標籤和名稱)是必要的。我無法找到的是如何正確創建它(意思是什麼id,標籤和名稱是什麼?)以及如何將它與writeWave一起使用?我已經檢查過在MC名下的R幫助文件中提到的網站,但我仍然無法理解如何在我的情況下使用它。我已經試過各種組合 - 在這裏是一個:

id = c("m1A","m2A","m3A","m4A") 
label = c("Front Left - FL", "Front Right - FR", "Front Center - FC", "Low Frequency - LF") 
name = c(1,2,3,4) 
names <- data.frame(id, label, name) 
writeWave(A_1, colnames(names), filename = "/A_1.wav", extensible= TRUE) 

這也導致一個錯誤消息:

"Error in writeWave(A_1, colnames(names), filename = "/A_1.wav", : 
    unused argument (colnames(names)) 

我希望得到任何幫助。

由於提前, 歐蒂

+1

直接發送消息給包作者可能會更好。 – jazzurro 2014-09-30 14:23:02

+0

謝謝。我現在已經這樣做了,希望能從他那裏聽到。 – Outi 2014-10-02 15:11:47

+0

我經歷了CRAN手冊,看到你可以在'WavMac()'中有列表和數據框架。假設你有四個通道,列表可能是正確的。但我想知道該函數是否期待數據框。我只是在猜測。希望你很快聽到作者的消息。 – jazzurro 2014-10-02 15:15:41

回答

0

我真的無法檢驗它是否工作,但你應該做A_1命名 試試下面的代碼:

colnames(A_1$Data) <- c("Front Left - FL", "Front Right - FR", "Front Center - FC", "Low Frequency - LF") 

,然後運行最後線。

+0

嗨Yevgeny,我試過你的路線,但不幸有一條錯誤消息說:'* tmp *'中的錯誤$ Data:$運算符對原子向量無效。你還有其他建議嗎?在此先感謝,Outi – Outi 2014-10-01 07:53:21