Создание большого .wav в R с использованием tuneR, состоящего из 5 секундных рандомизированных сегментов с 10 секундами молчания между каждым - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь создать 1-часовые клипы для кодирования анализа речи, 5-секундные клипы, случайно выбранные ниже из большого .wav, затем обрезанные и с 10-секундными клипами тишины между ними (для кодирования во время).Я застрял здесь, с тем, как я передаю информацию из списка, в .wav с частями тишины.Этот код был заимствован и изменен в различных областях Интернета, включая некоторую помощь в экспорте отдельных 5-секундных клипов в записи, похожей на эту.Спасибо Эдвард Карни !

install.packages("tuneR")


library(tuneR)

# Load audio wave into object
Rec12236 <- readWave(".wav")

# Make sure the file loaded correctly - should show sample rate, etc.
head(Rec12236)

# Creating a 10 second wav of silence
x <- seq(0, 0, length = 441000)
Wobj <- Wave(x)
writeWave(Wobj, "fill")   

#Set frequency
freq <- Rec12236@samp.rate

# Set the length
totlen <- length(Rec12236@left) # 1 channel default is left

#Set the duration
totsec <- totlen/freq

# How long each sample is (in seconds)
seglen <- 5

#Defining the break points
breaks <- unique(c(seq(0, totsec, seglen), totsec))
index <- 1:(length(breaks)-1)

#Splitting the file
items <- lapply(index, function(i) Rec12236@left[(breaks[i]*freq): 
(breaks[i+1]*freq)]

# Sampling 240 .wavs from items
ranitems <- sample(items, 240)

Спасибо за помощь!

...