---
<style>
table {border: 0px solid black; margin: auto; border-collapse: collapse; border-spacing: 0; }
table th,
table td {
border: 0px solid black;
font-size:100%;
text-align: left;
padding: 0.1em 2.5em 0.1em 0.5em;
border-bottom: 0px solid;
}
tr:nth-child(even) {background: #DDD}
tr:nth-child(odd) {background: #FFF}
h2 {
color: #0081B8;
font-family: 'Lucida Console', sans-serif;
}
p.small {
line-height: 9%;
}
header {
background:#FFF;
padding:10px;
}
footer {
position:absolute;
bottom:0;
width:100%;
height:6px; /* Height of the footer */
background:#FFF;
text-align: center;
}
</style>
```{r setup, tidy = F, warning = F, cache = F, echo = F}
library(rCharts)
library(knitr)
opts_chunk$set(echo = F, tidy = F, results = 'asis', comment = NA)
library(knitcitations)
cleanbib()
bib <- read.bibtex("/home/adrien/documents/biblio/newref.bib")
```
<div style='text-align: center;font-size=100%'>
PAC Toulouse | April 13, 2015
<br>
<br>
</div>
<div style='text-align: center;font-size:200%'>
<br>
<br>
<br>
Vowel acquisition
<br>
in French-English interphonology
<br>
<br>
<br>
<br>
<br>
<br>
</div>
<div style='text-align: center;font-size=100%'>
Adrien Méli | adrienmeli@gmail.com
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<br>
<br>
<img src='./assets/img/horizontal.jpg' style="max-width: 30%" />
<br>
</div>
Press:
---
## Navigation
Press:
* 't' for the table of contents
* 'c' to toggle context
* 'e' for presentation mode)
---
## Theory
### Models Predictions
<div style='text-align: center;'>
<img src='./assets/img/contrast.svg' style="max-width: 90%" />
</div>
All these models have one thing in common:
French | English | Predictions |
---|---|---|
/i/ | /ɪ - i ː/ | Difficult acquisition |
/u/ | /ʊ - u ː/ | Difficult acquisition |
Only the phonemic structures in the source and target languages matter.
---
### Classic SLA Models
* Native Language Model `r citep(bib[["kuhl2008"]])`
* Ontology & Phylogeny Model `r citep(bib[["major2001"]])`
* Speech Learning Model `r citep(bib[["flege1990"]])`
* Perceptual Assimilation Model `r citep(bib[["best1990"]])`
All these models have one thing in common:
|French |English |Predictions |
|:-:|:-:|:-:|
| /i/ | /ɪ - i ː/ | Difficult acquisition |
| /u/ | /ʊ - u ː/ | Difficult acquisition |
Only the phonemic structures in the source and
target languages matter.
***
```{r,echo = F }
bib1 <- bibliography()
cleanbib()
```
---
### Outside SLA
> - Exemplar theories / Frequency of use `r citep(c(bib[["bybee2010"]],bib[["pierrehumbert2001"]]))`
> - Prosodic positions `r citep(bib[["fougeron2004"]])`
> - Phonetic processing depends on frequency `r citep(bib[["white2013"]])`
> - Phonological neighbourhood `r citep(c(bib[["middleton2010"]],bib[["chan2010"]]))`
***
```{r,echo = F }
bib2 <- bibliography()
clean(bib)
```
***
50 recordings of learners' spontaneous speech, as part of the LONGDALE project (Goutéraux, 2013).
Learners were first and second year students, recorded four times over six-month intervals.
---
## Data
### Corpus
50 recordings of learners' spontaneous speech, as part of the LONGDALE project `r citep(bib[["longdale2013"]])`.
Learners were first and second year students, recorded four times over six-month intervals.
* 10 female students following a course in English at Université Paris-Diderot over 3 sessions (=30 recordings)
* 3 male students and 2 other female students (=20 recordings).
PRAAT: (Boersma, 2001)
---
### Workflow (1/2)
<div style='text-align: center;'>
<img style="max-width: 90%" src='./assets/img/fl.svg'/>
</div>
<small>
PRAAT: `r citep(bib[["boersma2001"]])`
</small>
SPPAS: (Bigi, 2012)
---
### Workflow (2/2)
<div style='text-align: center;'>
<img style="max-width: 90%" src='./assets/img/fl3.svg' />
</div>
<small>
SPPAS: `r citep(bib[["bigi2012"]])`
</small>
fileappend 'outputfile$' 'speaker$' 'tab$' 'session$' 'tab$' 'currentWord$'
'tab$' 'searchedPron$' 'tab$' 'ukphoneme$' 'tab$' 'nucleus$' 'tab$'
'currentUKSyll$' 'tab$' 'syllStruc$' 'tab$' 'frenchSyll$' 'tab$' 'eStruc$'
'tab$' 'fStruc$' 'tab$' 'ess$' 'tab$' 'fss$' 'tab$' 'stress$' 'tab$'
'startOfInt' 'tab$' 'meanIntensity' 'tab$' 'vF0s' 'tab$' 'vF0m' 'tab$'
'vF0e' 'tab$''vF1s' 'tab$' 'vF2s' 'tab$' 'vF3s' 'tab$' 'vF4s' 'tab$'
'vF1m' 'tab$' 'vF2m' 'tab$' 'vF3m' 'tab$' 'vF4m' 'tab$''vF1e' 'tab$'
'vF2e' 'tab$' 'vF3e' 'tab$' 'vF4e' 'tab$' 'durOfInt' 'tab$' 'phonBef$'
'tab$' 'preCoArt$' 'tab$' 'befVce$' 'tab$' 'befMoA$' 'tab$' 'befPoA$'
'tab$' 'phonAft$' 'tab$' 'postCoArt$' 'tab$' 'aftVce$' 'tab$' 'aftMoA$'
'tab$' 'aftPoA$' 'tab$' 'epenthetic$' 'tab$' 'durationOfSound' 'tab$'
'syllCount' 'tab$' 'freq' 'newline$'
---
## Data
```
fileappend 'outputfile$' 'speaker$' 'tab$' 'session$' 'tab$' 'currentWord$'
'tab$' 'searchedPron$' 'tab$' 'ukphoneme$' 'tab$' 'nucleus$' 'tab$'
'currentUKSyll$' 'tab$' 'syllStruc$' 'tab$' 'frenchSyll$' 'tab$' 'eStruc$'
'tab$' 'fStruc$' 'tab$' 'ess$' 'tab$' 'fss$' 'tab$' 'stress$' 'tab$'
'startOfInt' 'tab$' 'meanIntensity' 'tab$' 'vF0s' 'tab$' 'vF0m' 'tab$'
'vF0e' 'tab$''vF1s' 'tab$' 'vF2s' 'tab$' 'vF3s' 'tab$' 'vF4s' 'tab$'
'vF1m' 'tab$' 'vF2m' 'tab$' 'vF3m' 'tab$' 'vF4m' 'tab$''vF1e' 'tab$'
'vF2e' 'tab$' 'vF3e' 'tab$' 'vF4e' 'tab$' 'durOfInt' 'tab$' 'phonBef$'
'tab$' 'preCoArt$' 'tab$' 'befVce$' 'tab$' 'befMoA$' 'tab$' 'befPoA$'
'tab$' 'phonAft$' 'tab$' 'postCoArt$' 'tab$' 'aftVce$' 'tab$' 'aftMoA$'
'tab$' 'aftPoA$' 'tab$' 'epenthetic$' 'tab$' 'durationOfSound' 'tab$'
'syllCount' 'tab$' 'freq' 'newline$'
```
> - a 47 x 45,261 spreadsheet
> - 35,808 monophthongs
---
### Master TextGrid
<div style='text-align: center;'>
<img style="max-width: 90%" src='./assets/img/tg0.png' />
</div>
S001 | S002 | S003 | S004 | Total | |
---|---|---|---|---|---|
æ | 566 | 972 | 955 | 519 | 3012 |
ɘ | 1191 | 1849 | 1857 | 849 | 5746 |
ɜː | 431 | 719 | 713 | 289 | 2152 |
ɑː | 379 | 542 | 606 | 247 | 1774 |
e | 685 | 832 | 940 | 437 | 2894 |
iː | 1117 | 1423 | 1543 | 607 | 4690 |
ɪ | 1563 | 2303 | 2402 | 865 | 7133 |
ɔː | 398 | 556 | 585 | 220 | 1759 |
uː | 635 | 903 | 888 | 599 | 3025 |
ʊ | 110 | 222 | 272 | 72 | 676 |
ʌ | 555 | 883 | 1084 | 425 | 2947 |
Total | 7630 | 11204 | 11845 | 5129 | 35808 |
---
## Description
### Monophthongs
```{r, comment = NA, results = 'asis', tidy = FALSE, message = FALSE,echo=FALSE,cache=FALSE,warning=FALSE,fig.height=30,fig.width=60}
library(rmarkdown)
library(knitr)
library(plyr)
library(ggplot2)
unicodize<-function(vct) {
#argument: the original levels vector ;
unicodized<-vector(length = length(vct))
for (i in 1:length(vct)) {
if (vct[i]==" { ") {unicodized[i]<-'\u00E6'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" @ ") {unicodized[i]<-'\u0258'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" 3:r ") {unicodized[i]<-'\u025C\u02D0'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" A ") {unicodized[i]<-'\u0251\u02D0'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" aI ") {unicodized[i]<-'a\u026A'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" aU ") {unicodized[i]<-'a\u028A'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" E ") {unicodized[i]<-'e'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" eI ") {unicodized[i]<-'e\u026A'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" i ") {unicodized[i]<-'i'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" i: ") {unicodized[i]<-'i\u02D0'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" I ") {unicodized[i]<-'\u026A'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" O: ") {unicodized[i]<-'\u0254\u02D0'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" OI ") {unicodized[i]<-'\u0254\u026A'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" u ") {unicodized[i]<-'u\u02D0'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" @U ") {unicodized[i]<-'\u0259\u028A'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" U ") {unicodized[i]<-'\u028A'} else {unicodized[i]<-unicodized[i]}
if (vct[i]==" V ") {unicodized[i]<-'\u028C'} else {unicodized[i]<-unicodized[i]}
}
unicodized
}
quartilize<-function(df,vct,f1,f2,vowel,session) {
#arguments are: 1) dataframe ; 2) vowel vector ; 3) number of column in df containing F1 values ; 4) same, for F2 ; 5) same, for phonemes/vowels
collQ1F1<-vector(length = length(vct))
collQ3F1<-vector(length = length(vct))
collQ1F2<-vector(length = length(vct))
collQ3F2<-vector(length = length(vct))
#this df will only store the values between the first and third quartiles
df.quantile<-data.frame(USPHONEME = character(0), fZ1 = numeric(0), fZ2 = numeric(0),SESSION = character(0),stringsAsFactors = FALSE)
for (i in 1:length(vct)) {
collQ1F1[i]<-quantile(df[df[,vowel]==monoV[i],f1],type=7)[2]
collQ3F1[i]<-quantile(df[df[,vowel]==monoV[i],f1],type=7)[4]
collQ1F2[i]<-quantile(df[df[,vowel]==monoV[i],f2],type=7)[2]
collQ3F2[i]<-quantile(df[df[,vowel]==monoV[i],f2],type=7)[4]
df.quantile<-rbind(df.quantile,df[df[,vowel]==monoV[i] & df[,f1]>=collQ1F1[i] & df[,f1]<=collQ3F1[i] & df[,f2]>=collQ1F2[i] & df[,f2]<=collQ3F2[i],c(vowel,f1,f2,session)])
}
df.quantile
}
monoV<-c(" { "," @ "," 3:r "," A "," E "," i "," i: "," I ", " O: ", " u ", " U ", " V ")
global<-read.delim(file='/home/adrien/clean_global_stats.txt')
global<-na.omit(global)
#global.quantile<-quartilize(global,levels(global$USPHONEME),19,20,4,2)
global$FCV <- global$FSTRUCCV
global$FCV <- gsub(" VC "," CVC ",global$FSTRUCCV,perl=TRUE)
global$FCV <- gsub(" V "," CV ",global$FCV, perl=TRUE)
global$FCV <- factor(global$FCV)
global$ECV <- global$ESTRUCCV
global$ECV <- gsub(" VC "," CVC ",global$ESTRUCCV,perl=TRUE)
global$ECV <- gsub(" V "," CV ",global$ECV, perl=TRUE)
global$ECV <- factor(global$ECV)
monophus<-global[!(global$USPHONEME %in% c(" eI "," aU "," @U "," aI "," OI ")),]
monophus$USPHONEME <- gsub(" i "," I ",monophus$USPHONEME,fixed=TRUE)
monophus$USPHONEME<-factor(monophus$USPHONEME)
#getting the DFs at hand
longi <- monophus[monophus$USPHONEME==" i: ",]
shorti <- monophus[monophus$USPHONEME==" i: "| monophus$USPHONEME==" I ",]
longu <- monophus[monophus$USPHONEME==" u ",]
shortu <- monophus[monophus$USPHONEME==" U ",]
longi$USPHONEME<-factor(longi$USPHONEME)
shorti$USPHONEME<-factor(shorti$USPHONEME)
longu$USPHONEME<-factor(longu$USPHONEME)
shortu$USPHONEME<-factor(shortu$USPHONEME)
iudf <- rbind(longi, shorti, longu,shortu)
levels(monophus$USPHONEME)<-unicodize(levels(monophus$USPHONEME))
t0<-addmargins(table(monophus$USPHONEME,monophus$SESSION), FUN = list(Total = sum), quiet = TRUE)
t0a <- t0[5,]
knitr::kable(t0)
```
---
### Per-session phoneme count
```{r barplot-iu}
t1 <- as.data.frame(table(iudf$SESSION, iudf$USPHONEME))
levels(t1$Var2)<-unicodize(levels(t1$Var2))
n1 <- nPlot(Freq ~ Var1, group = "Var2", data = t1, type = "multiBarChart")
#n1$set(width = 1200)
#n1$show('inline', include_assets = TRUE)
n1$print('bp2',include_assets = TRUE,cdn=TRUE)
```
---
### Phonemic evolution over four years
```{r vowel-chart2, results = 'asis', comment = NA, message = F, echo = F,cache=FALSE,fig.width=15,fig.height=10}
global.mean.session2 <- aggregate(cbind(F1Med,F2Med) ~ USPHONEME + SESSION, data = monophus, FUN = mean)
iugms2 <- global.mean.session2[global.mean.session2$USPHONEME=='\u026A' | global.mean.session2$USPHONEME=='\u028A' | global.mean.session2$USPHONEME=='i\u02D0' | global.mean.session2$USPHONEME=='u\u02D0',]
fr2 <- c("French i","French u")
f1fr2 <- c(348,404)
f2fr2 <- c(2365,1153)
sfr2 <- rep("FRENCH",2)
dffr2 <- data.frame(fr2,sfr2,f1fr2,f2fr2)
colnames(dffr2)[1]<-"USPHONEME"
colnames(dffr2)[2]<-"SESSION"
colnames(dffr2)[3]<-"F1Med"
colnames(dffr2)[4]<-"F2Med"
nv2 <- c('Native i\u02D0', 'Native \u026A','Native u\u02D0','Native \u028A')
f1nv2 <- c(285,356,309,376)
f2nv2 <- c(2373,2098,939,900)
snv2 <- rep("SBE",4)
dfnv2 <- data.frame(nv2,snv2,f1nv2,f2nv2)
colnames(dfnv2)[1]<-"USPHONEME"
colnames(dfnv2)[2]<-"SESSION"
colnames(dfnv2)[3]<-"F1Med"
colnames(dfnv2)[4]<-"F2Med"
iugms2 <- rbind(iugms2,dfnv2,dffr2)
a <- hPlot(F1Med ~ F2Med, data = iugms2, type = 'scatter', group = 'USPHONEME', radius = 6, group.na = "Not Available")
a$legend(align = 'right', verticalAlign = 'top', layout = 'vertical',itemSize = '25pt')
a$colors('rgba(255,179,0,0.7)', 'rgba(0,177,255,0.7)','rgba(255,0,255,0.7)','rgba(150,0,150,0.7)', 'rgba(0,108,168,0.7)','rgba(100,0,0,0.7)', 'rgba(0,50,0,0.7)','rgba(0,190,0,0.7)','rgba(255,0,0,0.7)','rgba(255,100,0,0.7)')
a$xAxis(reversed=T,title=list(text="F2 (Hz)"))
a$yAxis(reversed=T,title=list(text="F1 (Hz)"))
a$plotOptions(scatter = list(marker = list(symbol = 'circle')))
a$tooltip(formatter = "#! function() { return '<b> F2: </b>' +this.x + '<br/> ' + '<b> F1: </b>' +this.y + '<br/><b> Phoneme: </b>' + this.series.name ; } !#")
a$print('pe', include_assets=TRUE,cdn=TRUE)
```
<small>
* French: `r citep(bib[["gendrot2005"]])`
* English: `r citep(bib[["wells2008"]])`
</small>
---
### F1 Dispersion across all sessions
```{r sd-chart-F1, results = 'asis', comment = NA, message = F, echo = F,cache=FALSE,fig.width=15,fig.height=10}
# compute boxplot statistics and cast it as a dataframe with no headers
#bwstats = setNames( as.data.frame(boxplot(tip ~ sex, data = tips, plot = F)$stats), nm = NULL)
bwstats = setNames( as.data.frame(boxplot(F1Med ~ USPHONEME, data = iudf, plot = F)$stats), nm = NULL)
# load rCharts and initialize
library(rCharts)
h1 <- Highcharts$new()
# pass data as a list of lists
h1$set(series = list(list( name = 'Observations', data = bwstats)))
# set xaxis/yaxis titles and labels
h1$xAxis( categories = c('i\u02D0','\u026A','u\u02D0','\u028A'), title = list(text = 'Phonemes'))
h1$yAxis( title = list(text = 'F1 (Hz)') )
h1$chart(type = 'boxplot')
h1$print('f1bp',include_assets = TRUE,cdn=TRUE)
#h1$save('h1.html',cdn=TRUE)
```
---
### F2 Dispersion across all sessions
```{r sd-chart-F2, results = 'asis', comment = NA, message = F, echo = F,cache=FALSE,fig.width=15,fig.height=10}
# compute boxplot statistics and cast it as a dataframe with no headers
#bwstats = setNames( as.data.frame(boxplot(tip ~ sex, data = tips, plot = F)$stats), nm = NULL)
bwstats = setNames( as.data.frame(boxplot(F2Med ~ USPHONEME, data = iudf, plot = F)$stats), nm = NULL)
# load rCharts and initialize
library(rCharts)
h2 <- Highcharts$new()
# pass data as a list of lists
h2$set(series = list(list( name = 'Observations', data = bwstats)))
# set xaxis/yaxis titles and labels
h2$xAxis( categories = c('i\u02D0','\u026A','u\u02D0','\u028A'), title = list(text = 'Phonemes'))
h2$yAxis( title = list(text = 'F2 (Hz)') )
h2$chart(type = 'boxplot')
h2$print('f2bp',include_assets = TRUE,cdn=TRUE)
#h1$save('h1.html',cdn=TRUE)
```
---
### Evolution of F1 Standard deviations
```{r barplot-iu-sd-F1}
global.sd.session <- aggregate(cbind(F1Med,F2Med) ~ USPHONEME + SESSION, data = monophus, FUN = sd)
iusd <- global.sd.session[global.sd.session$USPHONEME=='\u026A' | global.sd.session$USPHONEME=='\u028A' | global.sd.session$USPHONEME=='i\u02D0' | global.sd.session$USPHONEME=='u\u02D0' | global.sd.session$USPHONEME=='u' | global.sd.session$USPHONEME=='i',]
n3 <- nPlot(F1Med ~ SESSION, group = "USPHONEME", data = iusd, type = "multiBarChart")
#n3$set(width = 1200)
n3$print('sdf1bp',include_assets = TRUE,cdn=TRUE)
```
---
### Evolution of F2 Standard deviations
```{r barplot-iu-sd-F2}
global.sd.session <- aggregate(cbind(F2Med,F2Med) ~ USPHONEME + SESSION, data = monophus, FUN = sd)
iusd <- global.sd.session[global.sd.session$USPHONEME=='\u026A' | global.sd.session$USPHONEME=='\u028A' | global.sd.session$USPHONEME=='i\u02D0' | global.sd.session$USPHONEME=='u\u02D0' | global.sd.session$USPHONEME=='u' | global.sd.session$USPHONEME=='i',]
n4 <- nPlot(F2Med ~ SESSION, group = "USPHONEME", data = iusd, type = "multiBarChart")
#n4$set(width = 1200)
n4$print('evo',include_assets = TRUE,cdn=TRUE)
```
***
### Evolution of Euclidian distances
<div style='text-align: center;'>
<img style="max-width: 90%" src='./assets/img/distances.svg' />
</div>
---
### Evolution of Euclidian distances
```{r distances-evo}
iugms <- global.mean.session2[global.mean.session2$USPHONEME=='\u026A' | global.mean.session2$USPHONEME=='\u028A' | global.mean.session2$USPHONEME=='i\u02D0' | global.mean.session2$USPHONEME=='u\u02D0' | global.mean.session2$USPHONEME=='u' | global.mean.session2$USPHONEME=='i',]
is1 <- dist(rbind(iugms2[1,c(3:4)],iugms2[2,c(3:4)]))
us1 <- dist(rbind(iugms2[3,c(3:4)],iugms2[4,c(3:4)]))
is2 <- dist(rbind(iugms2[5,c(3:4)],iugms2[6,c(3:4)]))
us2 <- dist(rbind(iugms2[7,c(3:4)],iugms2[8,c(3:4)]))
is3 <- dist(rbind(iugms2[9,c(3:4)],iugms2[10,c(3:4)]))
us3 <- dist(rbind(iugms2[11,c(3:4)],iugms2[12,c(3:4)]))
is4 <- dist(rbind(iugms2[13,c(3:4)],iugms2[14,c(3:4)]))
us4 <- dist(rbind(iugms2[15,c(3:4)],iugms2[16,c(3:4)]))
inat1 <- dist(rbind(iugms2[17,c(3:4)],iugms2[18,c(3:4)]))
inat2 <- dist(rbind(iugms2[17,c(3:4)],iugms2[18,c(3:4)]))
inat3 <- dist(rbind(iugms2[17,c(3:4)],iugms2[18,c(3:4)]))
inat4 <- dist(rbind(iugms2[17,c(3:4)],iugms2[18,c(3:4)]))
unat1 <- dist(rbind(iugms2[19,c(3:4)],iugms2[20,c(3:4)]))
unat2 <- dist(rbind(iugms2[19,c(3:4)],iugms2[20,c(3:4)]))
unat3 <- dist(rbind(iugms2[19,c(3:4)],iugms2[20,c(3:4)]))
unat4 <- dist(rbind(iugms2[19,c(3:4)],iugms2[20,c(3:4)]))
iud <- as.data.frame(rbind(is1,is2,is3,is4,us1,us2,us3,us4,inat1,inat2,inat3,inat4,unat1,unat2,unat3,unat4))
iud$SESSION <- c("S001","S002","S003","S004","S001","S002","S003","S004","S001","S002","S003","S004","S001","S002","S003","S004")
iud$USPHONEME <- c('i\u02D0 - \u026A','i\u02D0 - \u026A','i\u02D0 - \u026A','i\u02D0 - \u026A','u\u02D0 - \u028A','u\u02D0 - \u028A','u\u02D0 - \u028A','u\u02D0 - \u028A','Native i\u02D0 - \u026A distance','Native i\u02D0 - \u026A distance','Native i\u02D0 - \u026A distance','Native i\u02D0 - \u026A distance','Native u\u02D0 - \u028A distance','Native u\u02D0 - \u028A distance','Native u\u02D0 - \u028A distance','Native u\u02D0 - \u028A distance')
hdist <- hPlot(V1 ~ SESSION, data = iud, type = c('line', 'line'), group = 'USPHONEME', radius = 6)
hdist$set(disabled = c(T,T,T,T))
hdist$colors('rgba(0,108,168,0.7)','rgba(0,50,0,0.7)','rgba(200,100,0,0.7)','rgba(255,179,0,0.7)')
hdist$yAxis(title=list(text="Distance (Hz)"))
hdist$legend(align = 'right', verticalAlign = 'top', layout = 'vertical')
hdist$print('evo2', include_assets = TRUE,cdn=TRUE)
```
NULL HYPOTHESIS:
F1 and F2 formants only depend on the chosen phoneme (here: iː ɪ, uː or ʊ).
H1: other parameters influence F1 and F2.
F-stat. | df1 | df2 | Adj. R² | p-value | |
---|---|---|---|---|---|
F1~PHON | 128.637038 | 3 | 20210 | 0.0185916 | 0 |
F2~PHON | 1233.696209 | 3 | 20210 | 0.1546600 | 0 |
F1~FrCV | 207.690773 | 1 | 20212 | 0.0101221 | 0 |
F2~FrCV | 200.227081 | 1 | 20212 | 0.0097602 | 0 |
F1~BrCV | 166.714916 | 1 | 20212 | 0.0081318 | 0 |
F2~BrCV | 199.536542 | 1 | 20212 | 0.0097267 | 0 |
F1~WORD | 1.903967 | 1075 | 19138 | 0.0458709 | 0 |
F2~WORD | 8.576075 | 1075 | 19138 | 0.2872025 | 0 |
Other parameters than phonemic structure seem to be at play when acquiring a contrast.
---
## Analysis
### Hypotheses
NULL HYPOTHESIS:
F1 and F2 formants only depend on the chosen phoneme (here: iː ɪ, uː or ʊ).
H1: other parameters influence F1 and F2.
### Linear models
```{r lm1,cache = T}
if1up <-summary(lm(F1Med ~ USPHONEME , data=iudf))
if2up <-summary(lm(F2Med ~ USPHONEME , data=iudf))
if1cf <-summary(lm(F1Med ~ FCV , data=iudf))
if2cf <-summary(lm(F2Med ~ FCV , data=iudf))
if1cv <-summary(lm(F1Med ~ ECV , data=iudf))
if2cv <-summary(lm(F2Med ~ ECV , data=iudf))
if1wd <-summary(lm(F1Med ~ WORD , data=iudf))
if2wd <-summary(lm(F2Med ~ WORD , data=iudf))
lmp <- function (mf) {
f <- mf$fstatistic
p <- pf(f[1],f[2],f[3],lower.tail=F)
attributes(p) <- NULL
return(p)
}
lmrsa <- c(if1up$adj.r.squared, if2up$adj.r.squared, if1cf$adj.r.squared, if2cf$adj.r.squared, if1cv$adj.r.squared, if2cv$adj.r.squared, if1wd$adj.r.squared, if2wd$adj.r.squared)
lmfs <- c(if1up$fstatistic[1], if2up$fstatistic[1], if1cf$fstatistic[1], if2cf$fstatistic[1], if1cv$fstatistic[1], if2cv$fstatistic[1], if1wd$fstatistic[1], if2wd$fstatistic[1])
lmdf1 <- c(if1up$fstatistic[2], if2up$fstatistic[2], if1cf$fstatistic[2], if2cf$fstatistic[2], if1cv$fstatistic[2], if2cv$fstatistic[2], if1wd$fstatistic[2], if2wd$fstatistic[2])
lmdf2 <- c(if1up$fstatistic[3], if2up$fstatistic[3], if1cf$fstatistic[3], if2cf$fstatistic[3], if1cv$fstatistic[3], if2cv$fstatistic[3], if1wd$fstatistic[3], if2wd$fstatistic[3])
lmpv <- c(lmp(if1up), lmp(if2up), lmp(if1cf), lmp(if2cf), lmp(if1cv), lmp(if2cv), lmp(if1wd), lmp(if2wd))
lmdf <- cbind(lmfs,lmdf1,lmdf2,lmrsa,lmpv)
rownames(lmdf)[1] <- "F1~PHON"
rownames(lmdf)[2] <- "F2~PHON"
rownames(lmdf)[3] <- "F1~FrCV"
rownames(lmdf)[4] <- "F2~FrCV"
rownames(lmdf)[5] <- "F1~BrCV"
rownames(lmdf)[6] <- "F2~BrCV"
rownames(lmdf)[7] <- "F1~WORD"
rownames(lmdf)[8] <- "F2~WORD"
colnames(lmdf)[1] <- "F-stat."
colnames(lmdf)[2] <- "df1"
colnames(lmdf)[3] <- "df2"
colnames(lmdf)[4] <- "Adj. R²"
colnames(lmdf)[5] <- "p-value"
knitr::kable(lmdf)
```
### Conclusion
Other parameters than phonemic structure seem to be at play when acquiring a contrast.
---
## WIP
### To-do list
* Expand data.
* Assess alignment accuracy.
* Handle outliers (interquartile values?).
* Normalize, and repeat study with normalized values.
* Add other parameters (e.g. stress, CELEX frequencies...).
P2FA: (Yuan and Liberman, 2008)
---
### U-Penn P2FA
<div style='text-align: center;'>
<img style="max-width: 80%" src='./assets/img/tg1.png' />
</div>
<small>
P2FA: `r citep(bib[["p2fa"]])`
</small>
[1] C. T. Best. "A direct realist view of cross-language speech perception". In: Speech perception and linguistic experience: Theoretical and methodological issues. Ed. by W. Strange. Baltimore: York Press, 1995, pp. 171-204.
[2] B. Bigi. "SPPAS: A tool for the phonetic segmentations of speech". In: Proc. of LREC 2012. Ed. by LREC. 2012, pp. 1748-1755.
[3] P. Boersma. "Praat, a system for doing phonetics by computer". In: Glot International 5.9/10 (2001), pp. 341-345.
[4] J. Bybee. Language, Usage and Cognition. Cambridge: Cambridge University Press, 2010.
[5] K. Y. Chan and M. S. Vitevitch. "Network Structure Influences Speech Production". In: Cognitive Science 34 (2010), pp. 685-697.
[6] J. Flege. "Second-language Speech Learning: Theory, Findings, and Problems". In: Speech Perception and Linguistic Experience: Issues in cross-language research. Ed. by W. Strange. Timonium, MD: York Press, 1995, pp. 233-277.
[7] C. Gendrot and M. Adda-Decker. "Impact of duration on F1/F2 formant values of oral vowels: an automatic a nalysis of large broadcast news corpora in French and German". In: Proceedings Eurospeech. Ed. by Eurospeech. 2005, pp. 2453-2456.
[8] P. Goutéraux. "Learners of English and Conversational Proficiency". In: 20 Years of Corpus Research: Looking back, Moving ahead (Corpora and Language in Use 1). Ed. by S. Granger, G. Gilquin and F. Meunier. Louvain-la-Neuve: Presses Universitaires de Louvain, 2013.
[9] P. Keating, T. Cho, C. Fougeron, et al. "Domain-initial articulatory strengthening in four languages." In: Papers in Laboratory Phonology VI : Phonetic interpretation. Ed. by J. Local, R. Ogden and R. Temple. Cambridge: CUP, 2004, pp. 145-163.
[10] P. K. Kuhl, B. T. Conboy, S. Coffey-Corina, et al. "Phonetic learning as a pathway to language: new data and native language magnet theory expanded ( NLM-e)". In: Philosophical Transactions of the Royal Society B 363 (2008), pp. 979-1000.
[11] R. Major. Foreign Accent: The Ontogeny and Phylogeny of Second Language Phonology. Second Language Acquisition Research Series. Taylor & Francis, 2001. ISBN: 9781410604293.
[12] E. Middleton and M. Schwartz. " Density pervades: an analysis of phonological neighbourhood den- sity effects in aphasic speakers with different types of naming impairment." In: _ Cognitive Neuropsychology _ 27 (5) (2010), pp. 401-427.
[13] J. B. Pierrehumbert. "Exemplar dynamics: Word frequency, lenition, and contrast". In: Frequency and the Emergence of Linguistic Structure. Ed. by J. L. Bybee and P. Hopper. John Benjamins Publishing Company, 2001, pp. 137-157.
[14] J. Wells. Longman Pronunciation Dictionary. London: Pearson Longman, 2008.
[15] K. White, E. Yee, S. Blumstein, et al. "Adults show less sensitivity to phonetic detail in unfamiliar words, too." In: Journal of Memory and Language 68 (2013), pp. 362-378.
[16] J. Yuan and M. Liberman. "Speaker identification on the SCOTUS corpus." In: _Journal of the Acoustical Society of America, _ 123(5) (2008), pp. 5687-5690.
---
### References
<small>
```{r results = "asis", echo = FALSE,warning=F}
bibliography()
```
</small>
Adrien Méli | adrienmeli@gmail.com
---
### Thank you!
<small> Adrien Méli | adrienmeli@gmail.com </small>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
Table of Contents | t |
---|---|
Exposé | ESC |
Full screen slides | e |
Presenter View | p |
Source Files | s |
Slide Numbers | n |
Toggle screen blanking | b |
Show/hide slide context | c |
Notes | 2 |
Help | h |