Estoy tratando de descubrir cómo detectar la cantidad de sílabas en un corpus de grabaciones de audio. Creo que un buen proxy podría ser picos en el archivo de onda.
Esto es lo que probé con un archivo de mí hablando en inglés (mi caso de uso real está en kiswahili). La transcripción de este ejemplo de grabación es: "Este soy yo tratando de usar la función de temporizador. Estoy viendo pausas, vocalizaciones". Hay un total de 22 sílabas en este pasaje.
Archivo wav: https://www.dropbox.com/s/koqyfeaqge8t9iw/test.wav?dl=0
El seewave
paquete en R es excelente, y hay varias funciones potenciales. Lo primero es lo primero, importa el archivo wave.
library(seewave)
library(tuneR)
w <- readWave("YOURPATHHERE/test.wav")
w
# Wave Object
# Number of Samples: 278528
# Duration (seconds): 6.32
# Samplingrate (Hertz): 44100
# Channels (Mono/Stereo): Stereo
# PCM (integer format): TRUE
# Bit (8/16/24/32/64): 16
Lo primero que probé fue la timer()
función. Una de las cosas que devuelve es la duración de cada vocalización. Esta función identifica 7 vocalizaciones, que es muy inferior a 22 sílabas. Un vistazo rápido a la trama sugiere que las vocalizaciones no son iguales a las sílabas.
t <- timer(w, threshold=2, msmooth=c(400,90), dmin=0.1)
length(t$s)
# [1] 7
También probé la función fpeaks sin establecer un umbral. Regresó 54 picos.
ms <- meanspec(w)
peaks <- fpeaks(ms)
Esto traza la amplitud por frecuencia en lugar de tiempo. Agregar un parámetro de umbral igual a 0.005 filtra el ruido y reduce el recuento a 23 picos, que es bastante cercano al número real de sílabas (22).
No estoy seguro de que este sea el mejor enfoque. El resultado será sensible al valor del parámetro de umbral, y tengo que procesar un gran lote de archivos. ¿Alguna idea mejor sobre cómo codificar esto para detectar picos que representan sílabas?
changepoint
paquete. En pocas palabras, el análisis del punto de cambio se centra en detectar el cambio, el ejemplo vinculado se refiere a los datos comerciales, pero podría ser interesante aplicar esta técnica a los datos de sonido.