voice vignette

version 0.4.17

Filipe J. Zabala

2023-03-14

0. Installation

0.1 Minimal

# CRAN (stable)
install.packages('voice', dep = TRUE)

# Github (development)
devtools::install_github('filipezabala/voice')

0.2 Full

https://github.com/filipezabala/voice

1. Extract features

1.1 Get path to audio files

wavFiles <- list.files(system.file('extdata', package = 'wrassp'),
                       pattern <- glob2rx('*.wav'), full.names = TRUE)

1.2 Minimal usage

M <- voice::extract_features(wavFiles)
dplyr::glimpse(M)
#> Rows: 2,389
#> Columns: 61
#> $ slice_seq      <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, …
#> $ slice_seq_file <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, …
#> $ wav_path       <chr> "/Library/Frameworks/R.framework/Versions/4.2/Resources…
#> $ f0             <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ f1             <int> NA, NA, NA, NA, NA, NA, NA, NA, 148, 202, 230, 275, 257…
#> $ f2             <int> 1863, 1863, 1933, 1777, 1710, 1794, 1873, 1932, 1960, 1…
#> $ f3             <int> NA, NA, 3055, 2791, 2690, 2673, 2665, 2684, 2648, 2650,…
#> $ f4             <int> 3087, 3179, 3731, 3712, 3536, 3560, 3640, 3550, 3248, 3…
#> $ f5             <int> 4218, 4172, 4663, 4690, 4677, 4402, 4346, 4304, 3640, 3…
#> $ f6             <int> 5233, 5259, 5658, 5657, 5653, 5119, 5164, 5190, 5214, 5…
#> $ f7             <int> 6144, 6712, 6775, 6602, 6526, 6499, 6516, 6518, 6498, 6…
#> $ f8             <int> 6643, NA, NA, 7771, NA, NA, NA, NA, 7668, 7716, 7761, 7…
#> $ mfcc1          <dbl> 14.46298, 12.94247, 14.22299, 13.19834, 17.98880, 24.37…
#> $ mfcc2          <dbl> -7.1138399, -7.1669199, -6.2983256, -5.0003665, -3.4425…
#> $ mfcc3          <dbl> 2.352871, 5.340259, 11.755288, 10.876895, 3.354877, -1.…
#> $ mfcc4          <dbl> 8.800427, 8.956796, 4.055546, 4.601487, 4.849539, 6.608…
#> $ mfcc5          <dbl> 6.24445537, 6.17439020, -4.75055084, -10.64988044, 5.00…
#> $ mfcc6          <dbl> -3.54648704, 8.74519469, 1.88442856, -3.12965952, -2.46…
#> $ mfcc7          <dbl> 0.7454124, -1.1902412, 4.2921135, 5.1290898, 1.6960854,…
#> $ mfcc8          <dbl> 5.8024789, -2.8018007, 8.5432876, 3.5423883, 5.3105704,…
#> $ mfcc9          <dbl> 9.9005380, 0.9505613, 5.7278759, -3.7637439, 0.9022304,…
#> $ mfcc10         <dbl> 5.7555321, -1.2284308, 8.3403469, 2.3632229, 4.5363183,…
#> $ mfcc11         <dbl> 4.0627807, -7.5980447, -1.9925100, -0.4887497, -6.78084…
#> $ mfcc12         <dbl> 10.860189567, -6.703157255, 4.458095379, -4.625375428, …
#> $ df2            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, 1812, 1763, 1739, 1707,…
#> $ df3            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, 1250.0, 1224.0, 1228.5,…
#> $ df4            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, 1033.3333, 1027.3333, 1…
#> $ df5            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, 873.00, 865.50, 871.50,…
#> $ df6            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, 1013.2, 1001.6, 988.6, …
#> $ df7            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, 1058.3333, 1049.1667, 1…
#> $ df8            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, 1074.2857, 1073.4286, 1…
#> $ pf1            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, -1.0576906, -0.9332809,…
#> $ pf2            <dbl> 0.67827137, 0.67827137, 0.82452916, 0.49858323, 0.35859…
#> $ pf3            <dbl> 0.67827137, 0.67827137, 1.06164666, 0.56240678, 0.36376…
#> $ pf4            <dbl> -0.24232089, -0.12634661, 0.86134004, 0.51254598, 0.232…
#> $ pf5            <dbl> -0.2964967, -0.2565957, 0.8162564, 0.5711316, 0.3529481…
#> $ pf6            <dbl> -0.29821515, -0.24926616, 0.84109636, 0.64441124, 0.467…
#> $ pf7            <dbl> -0.35685214, 0.02079444, 0.91570602, 0.66588873, 0.4807…
#> $ pf8            <dbl> -0.57318395, 0.02079444, 0.91570602, 0.84969914, 0.4807…
#> $ rf1            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rf2            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rf3            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rf4            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rf5            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rf6            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rf7            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rf8            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rcf2           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rcf3           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rcf4           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rcf5           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rcf6           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rcf7           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rcf8           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rpf2           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rpf3           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rpf4           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rpf5           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rpf6           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rpf7           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ rpf8           <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…

2. Tag

2.1 Creating synthetic Extended data

E <- dplyr::tibble(subject_id = c(1,1,1,2,2,2,3,3,3), wav_path = wavFiles)
E
#> # A tibble: 9 × 2
#>   subject_id wav_path                                                           
#>        <dbl> <chr>                                                              
#> 1          1 /Library/Frameworks/R.framework/Versions/4.2/Resources/library/wra…
#> 2          1 /Library/Frameworks/R.framework/Versions/4.2/Resources/library/wra…
#> 3          1 /Library/Frameworks/R.framework/Versions/4.2/Resources/library/wra…
#> 4          2 /Library/Frameworks/R.framework/Versions/4.2/Resources/library/wra…
#> 5          2 /Library/Frameworks/R.framework/Versions/4.2/Resources/library/wra…
#> 6          2 /Library/Frameworks/R.framework/Versions/4.2/Resources/library/wra…
#> 7          3 /Library/Frameworks/R.framework/Versions/4.2/Resources/library/wra…
#> 8          3 /Library/Frameworks/R.framework/Versions/4.2/Resources/library/wra…
#> 9          3 /Library/Frameworks/R.framework/Versions/4.2/Resources/library/wra…

2.2 Tagging Extended data

voice::tag(E)
#> # A tibble: 9 × 7
#>   wav_path                       f0_ta…¹ f0_ta…² f0_ta…³ f0_ta…⁴ f0_ta…⁵ f0_ta…⁶
#>   <chr>                            <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
#> 1 /Library/Frameworks/R.framewo…    85.4    17.6   0.206    76.1    29.4    7.53
#> 2 /Library/Frameworks/R.framewo…    85.4    15.6   0.183    80.1    27.8   14.4 
#> 3 /Library/Frameworks/R.framewo…    84.6    13.0   0.154    78.8    23.9   14.0 
#> 4 /Library/Frameworks/R.framewo…    84.8    14.5   0.171    79.1    28.1   11.9 
#> 5 /Library/Frameworks/R.framewo…    86.0    14.7   0.170    78.7    30.0   11.0 
#> 6 /Library/Frameworks/R.framewo…    82.9    15.6   0.188    74.8    23.8    4.78
#> 7 /Library/Frameworks/R.framewo…    78.2    16.2   0.207    73.5    13.4    6.82
#> 8 /Library/Frameworks/R.framewo…    84.5    14.5   0.172    78.1    17.8    8.95
#> 9 /Library/Frameworks/R.framewo…    81.0    12.2   0.151    75.9    23.1    9.14
#> # … with abbreviated variable names ¹​f0_tag_mean, ²​f0_tag_sd, ³​f0_tag_vc,
#> #   ⁴​f0_tag_median, ⁵​f0_tag_iqr, ⁶​f0_tag_mad

2.3 Tagging Canonical data

voice::tag(E, groupBy = 'subject_id')
#> # A tibble: 3 × 7
#>   subject_id f0_tag_mean f0_tag_sd f0_tag_vc f0_tag_median f0_tag_iqr f0_tag_mad
#>        <dbl>       <dbl>     <dbl>     <dbl>         <dbl>      <dbl>      <dbl>
#> 1          1        85.1      15.3     0.180          78.3       26.8      11.9 
#> 2          2        84.6      14.9     0.176          76.4       28.3       7.97
#> 3          3        81.0      14.6     0.180          75.6       21.6       8.68