Skip to content

Commit 9226202

Browse files
schemreierdanpovey
authored andcommitted
[egs] Add example scripts for Frisian-Dutch language (FAME! corpus)
1 parent cc1d677 commit 9226202

20 files changed

+536
-0
lines changed

egs/fame/README.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
The FAME! Speech Corpus
2+
3+
The components of the Frisian data collection are speech and language resources gathered for building a large vocabulary ASR system for the Frisian language. Firstly, a new broadcast database is created by collecting recordings from the archives of the regional broadcaster Omrop Fryslân, and annotating them with various information such as the language switches and speaker details. The second component of this collection is a language model created on a text corpus with diverse vocabulary. Thirdly, a Frisian phonetic dictionary with the mappings between the Frisian words and phones is built to make the ASR viable for this under-resourced language. Finally, an ASR recipe is provided which uses all previous resources to perform recognition and present the recognition performances.
4+
5+
The Corpus consists of short utterances extracted from 203 audio segments of approximately 5 minutes long which are parts of various radio programs covering a time span of almost 50 years (1966-2015), adding a longitudinal dimension to the database. The content of the recordings are very diverse including radio programs about culture, history, literature, sports, nature, agriculture, politics, society and languages. The total duration of the manually annotated radio broadcasts sums up to 18 hours, 33 minutes and 57 seconds. The stereo audio data has a sampling frequency of 48 kHz and 16-bit resolution per sample. The available meta-information helped the annotators to identify these speakers and mark them either using their names or the same label (if the name is not known). There are 309 identified speakers in the FAME! Speech Corpus, 21 of whom appear at least 3 times in the database. These speakers are mostly program presenters and celebrities appearing multiple times in different recordings over years. There are 233 unidentified speakers due to lack of meta-information. The total number of word- and sentence-level code-switching cases in the FAME! Speech Corpus is equal to 3837. Music portions have been removed, except where these overlap with speech.
6+
7+
A full description of the FAME! Speech Corpus is provided in:
8+
9+
Yilmaz, E., Heuvel, H. van den, Van de Velde, H., Kampstra, F., Algra, J., Leeuwen, D. van:
10+
11+
Open Source Speech and Language Resources for Frisian Language.
12+
13+
In: Proceedings Interspeech 2016, pp. 1536--1540, 8-12 September 2016, San Francisco
14+
15+
Please check http://www.ru.nl/clst/datasets/ to get the FAME! Speech Corpus

egs/fame/s5/RESULTS

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
%WER 41.10 [ 4974 / 12101, 522 ins, 1223 del, 3229 sub ] exp/dnn4b_pretrain-dbn_dnn/decode_devel/wer_11_0.0
2+
%WER 38.10 [ 4909 / 12886, 527 ins, 1220 del, 3162 sub ] exp/dnn4b_pretrain-dbn_dnn/decode_test/wer_11_0.0
3+
%WER 41.06 [ 4969 / 12101, 514 ins, 1277 del, 3178 sub ] exp/dnn4b_pretrain-dbn_dnn_smbr/decode_devel_it1/wer_11_0.0
4+
%WER 40.38 [ 4886 / 12101, 515 ins, 1225 del, 3146 sub ] exp/dnn4b_pretrain-dbn_dnn_smbr/decode_devel_it3/wer_11_0.0
5+
%WER 40.15 [ 4859 / 12101, 514 ins, 1177 del, 3168 sub ] exp/dnn4b_pretrain-dbn_dnn_smbr/decode_devel_it6/wer_10_0.5
6+
%WER 37.86 [ 4879 / 12886, 596 ins, 1083 del, 3200 sub ] exp/dnn4b_pretrain-dbn_dnn_smbr/decode_test_it1/wer_10_0.0
7+
%WER 37.16 [ 4789 / 12886, 592 ins, 1056 del, 3141 sub ] exp/dnn4b_pretrain-dbn_dnn_smbr/decode_test_it3/wer_10_0.0
8+
%WER 36.92 [ 4757 / 12886, 618 ins, 1010 del, 3129 sub ] exp/dnn4b_pretrain-dbn_dnn_smbr/decode_test_it6/wer_10_0.0
9+
%WER 42.38 [ 5129 / 12101, 576 ins, 1171 del, 3382 sub ] exp/dnn4d-fbank_pretrain-dbn_dnn/decode_devel/wer_11_0.0
10+
%WER 39.14 [ 5043 / 12886, 536 ins, 1172 del, 3335 sub ] exp/dnn4d-fbank_pretrain-dbn_dnn/decode_test/wer_11_0.0
11+
%WER 42.05 [ 5088 / 12101, 525 ins, 1282 del, 3281 sub ] exp/dnn4d-fbank_pretrain-dbn_dnn_smbr/decode_devel_it1/wer_11_0.0
12+
%WER 41.41 [ 5011 / 12101, 461 ins, 1345 del, 3205 sub ] exp/dnn4d-fbank_pretrain-dbn_dnn_smbr/decode_devel_it3/wer_11_0.5
13+
%WER 40.97 [ 4958 / 12101, 485 ins, 1279 del, 3194 sub ] exp/dnn4d-fbank_pretrain-dbn_dnn_smbr/decode_devel_it6/wer_11_0.5
14+
%WER 38.79 [ 4998 / 12886, 512 ins, 1194 del, 3292 sub ] exp/dnn4d-fbank_pretrain-dbn_dnn_smbr/decode_test_it1/wer_11_0.0
15+
%WER 38.16 [ 4917 / 12886, 544 ins, 1128 del, 3245 sub ] exp/dnn4d-fbank_pretrain-dbn_dnn_smbr/decode_test_it3/wer_11_0.0
16+
%WER 37.68 [ 4856 / 12886, 564 ins, 1068 del, 3224 sub ] exp/dnn4d-fbank_pretrain-dbn_dnn_smbr/decode_test_it6/wer_11_0.0
17+
%WER 70.85 [ 8574 / 12101, 414 ins, 2596 del, 5564 sub ] exp/mono/decode_devel/wer_9_0.0
18+
%WER 68.17 [ 8785 / 12886, 413 ins, 2704 del, 5668 sub ] exp/mono/decode_test/wer_9_0.0
19+
%WER 44.05 [ 5330 / 12101, 560 ins, 1467 del, 3303 sub ] exp/sgmm2/decode_devel/wer_10_0.0
20+
%WER 40.22 [ 5183 / 12886, 680 ins, 1142 del, 3361 sub ] exp/sgmm2/decode_test/wer_9_0.0
21+
%WER 54.39 [ 6582 / 12101, 695 ins, 1595 del, 4292 sub ] exp/tri1/decode_devel/wer_10_0.0
22+
%WER 51.60 [ 6649 / 12886, 630 ins, 1706 del, 4313 sub ] exp/tri1/decode_test/wer_11_0.0
23+
%WER 51.53 [ 6236 / 12101, 659 ins, 1675 del, 3902 sub ] exp/tri2/decode_devel/wer_11_0.0
24+
%WER 48.32 [ 6226 / 12886, 643 ins, 1669 del, 3914 sub ] exp/tri2/decode_test/wer_12_0.0
25+
%WER 47.15 [ 5706 / 12101, 580 ins, 1537 del, 3589 sub ] exp/tri3/decode_devel/wer_13_0.0
26+
%WER 52.13 [ 6308 / 12101, 623 ins, 1706 del, 3979 sub ] exp/tri3/decode_devel.si/wer_11_0.5
27+
%WER 43.71 [ 5632 / 12886, 594 ins, 1538 del, 3500 sub ] exp/tri3/decode_test/wer_14_0.0
28+
%WER 48.21 [ 6212 / 12886, 825 ins, 1358 del, 4029 sub ] exp/tri3/decode_test.si/wer_10_0.0

egs/fame/s5/cmd.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../wsj/s5/cmd.sh

egs/fame/s5/conf/decode_dnn.config

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
beam=18.0 # beam for decoding. Was 13.0 in the scripts.
2+
lattice_beam=10.0 # this has most effect on size of the lattices.

egs/fame/s5/conf/fbank.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# No non-default options for now.
2+

egs/fame/s5/conf/mfcc.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
--use-energy=false # only non-default option.

egs/fame/s5/conf/mfcc_hires.conf

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# config for high-resolution MFCC features, intended for neural network training
2+
# Note: we keep all cepstra, so it has the same info as filterbank features,
3+
# but MFCC is more easily compressible (because less correlated) which is why
4+
# we prefer this method.
5+
--use-energy=false # use average of log energy, not energy.
6+
--num-mel-bins=40 # similar to Google's setup.
7+
--num-ceps=40 # there is no dimensionality reduction.
8+
--low-freq=20 # low cutoff frequency for mel bins... this is high-bandwidth data, so
9+
# there might be some information at the low end.
10+
--high-freq=-400 # high cutoff frequently, relative to Nyquist of 8000 (=7600)

egs/fame/s5/conf/online_cmvn.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# configuration file for apply-cmvn-online, used in the script ../local/online/run_online_decoding_nnet2.sh
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/bin/bash
2+
# Copyright 2015-2016 Sarah Flora Juan
3+
# Copyright 2016 Johns Hopkins University (Author: Yenda Trmal)
4+
# Copyright 2016 Radboud University (Author: Emre Yilmaz)
5+
6+
# Apache 2.0
7+
8+
corpus=$1
9+
set -e -o pipefail
10+
if [ -z "$corpus" ] ; then
11+
echo >&2 "The script $0 expects one parameter -- the location of the FAME! speech database"
12+
exit 1
13+
fi
14+
if [ ! -d "$corpus" ] ; then
15+
echo >&2 "The directory $corpus does not exist"
16+
fi
17+
18+
echo "Preparing train, development and test data"
19+
mkdir -p data data/local data/train data/devel data/test
20+
21+
for x in train devel test; do
22+
echo "Copy spk2utt, utt2spk, wav.scp, text for $x"
23+
cp $corpus/data/$x/text data/$x/text || exit 1;
24+
cp $corpus/data/$x/spk2utt data/$x/spk2utt || exit 1;
25+
cp $corpus/data/$x/utt2spk data/$x/utt2spk || exit 1;
26+
27+
# the corpus wav.scp contains physical paths, so we just re-generate
28+
# the file again from scratchn instead of figuring out how to edit it
29+
for rec in $(awk '{print $1}' $corpus/data/$x/text) ; do
30+
spk=${rec%_*}
31+
filename=$corpus/fame/wav/${x}/${rec:8}.wav
32+
if [ ! -f "$filename" ] ; then
33+
echo >&2 "The file $filename could not be found ($rec)"
34+
exit 1
35+
fi
36+
# we might want to store physical paths as a general rule
37+
filename=$(readlink -f $filename)
38+
echo "$rec $filename"
39+
done > data/$x/wav.scp
40+
41+
# fix_data_dir.sh fixes common mistakes (unsorted entries in wav.scp,
42+
# duplicate entries and so on). Also, it regenerates the spk2utt from
43+
# utt2sp
44+
utils/fix_data_dir.sh data/$x
45+
done
46+
47+
echo "Copying language model"
48+
if [ -f $corpus/lm/LM_FR_IKN3G ] ; then
49+
gzip -c $corpus/lm/LM_FR_IKN3G > data/local/LM.gz
50+
fi
51+
52+
echo "Data preparation completed."
53+
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/bin/bash
2+
# Copyright 2015-2016 Sarah Flora Juan
3+
# Copyright 2016 Johns Hopkins University (Author: Yenda Trmal)
4+
# Copyright 2016 Radboud University (Author: Emre Yilmaz)
5+
6+
# Apache 2.0
7+
8+
corpus=$1
9+
if [ -z "$corpus" ] ; then
10+
echo >&2 "The script $0 expects one parameter -- the location of the Iban corpus"
11+
exit 1
12+
fi
13+
if [ ! -d "$corpus" ] ; then
14+
echo >&2 "The directory $corpus does not exist"
15+
fi
16+
17+
mkdir -p data/lang data/local/dict
18+
19+
20+
cat $corpus/lexicon/lex.asr $corpus/lexicon/lex.oov > data/local/dict/lexicon.txt
21+
echo "!SIL SIL" >> data/local/dict/lexicon.txt
22+
echo "<UNK> SPN" >> data/local/dict/lexicon.txt
23+
env LC_ALL=C sort -u -o data/local/dict/lexicon.txt data/local/dict/lexicon.txt
24+
cat data/local/dict/lexicon.txt | \
25+
perl -ane 'print join("\n", @F[1..$#F]) . "\n"; ' | \
26+
sort -u | grep -v 'SIL' > data/local/dict/nonsilence_phones.txt
27+
28+
29+
touch data/local/dict/extra_questions.txt
30+
touch data/local/dict/optional_silence.txt
31+
32+
echo "SIL" > data/local/dict/optional_silence.txt
33+
echo "SIL" > data/local/dict/silence_phones.txt
34+
echo "<UNK>" > data/local/dict/oov.txt
35+
36+
echo "Dictionary preparation succeeded"

0 commit comments

Comments
 (0)