├── doc ├── ieee_article.pdf ├── sprawozdanie.pdf ├── sprawozdanie.tex ├── ieee_article.tex ├── word_network_reggresion.eps └── training_network_reggresion.eps ├── samples ├── adam_traba │ ├── imie │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ ├── kot │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ ├── nazwisko │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ └── samochod │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav ├── bartek_bulat │ ├── kot │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ ├── imie │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ ├── nazwisko │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ └── samochod │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav ├── damian_bulat │ ├── kot │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ ├── imie │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ ├── nazwisko │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ └── samochod │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav ├── szczepan_bulat │ ├── kot │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ ├── imie │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ ├── nazwisko │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ └── samochod │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav ├── konrad_malawski │ ├── imie │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ ├── kot │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ ├── nazwisko │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav │ └── samochod │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ ├── 08.wav │ │ ├── 09.wav │ │ └── 10.wav └── katarzyna_konieczna │ ├── kot │ ├── 01.wav │ ├── 02.wav │ ├── 03.wav │ ├── 04.wav │ ├── 05.wav │ ├── 06.wav │ ├── 07.wav │ ├── 08.wav │ ├── 09.wav │ └── 10.wav │ ├── imie │ ├── 01.wav │ ├── 02.wav │ ├── 03.wav │ ├── 04.wav │ ├── 05.wav │ ├── 06.wav │ ├── 07.wav │ ├── 08.wav │ ├── 09.wav │ └── 10.wav │ ├── nazwisko │ ├── 01.wav │ ├── 02.wav │ ├── 03.wav │ ├── 04.wav │ ├── 05.wav │ ├── 06.wav │ ├── 07.wav │ ├── 08.wav │ ├── 09.wav │ └── 10.wav │ └── samochod │ ├── 01.wav │ ├── 02.wav │ ├── 03.wav │ ├── 04.wav │ ├── 05.wav │ ├── 06.wav │ ├── 07.wav │ ├── 08.wav │ ├── 09.wav │ └── 10.wav ├── README.md ├── .gitignore ├── Makefile ├── install_deps.sh ├── spectrogram.py ├── lpc.py ├── audio_record.py ├── split_into_words.py ├── voice_sample.py └── network_test.py /doc/ieee_article.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/doc/ieee_article.pdf -------------------------------------------------------------------------------- /doc/sprawozdanie.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/doc/sprawozdanie.pdf -------------------------------------------------------------------------------- /samples/adam_traba/imie/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/imie/01.wav -------------------------------------------------------------------------------- /samples/adam_traba/imie/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/imie/02.wav -------------------------------------------------------------------------------- /samples/adam_traba/imie/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/imie/03.wav -------------------------------------------------------------------------------- /samples/adam_traba/imie/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/imie/04.wav -------------------------------------------------------------------------------- /samples/adam_traba/imie/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/imie/05.wav -------------------------------------------------------------------------------- /samples/adam_traba/imie/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/imie/06.wav -------------------------------------------------------------------------------- /samples/adam_traba/imie/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/imie/07.wav -------------------------------------------------------------------------------- /samples/adam_traba/imie/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/imie/08.wav -------------------------------------------------------------------------------- /samples/adam_traba/imie/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/imie/09.wav -------------------------------------------------------------------------------- /samples/adam_traba/imie/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/imie/10.wav -------------------------------------------------------------------------------- /samples/adam_traba/kot/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/kot/01.wav -------------------------------------------------------------------------------- /samples/adam_traba/kot/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/kot/02.wav -------------------------------------------------------------------------------- /samples/adam_traba/kot/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/kot/03.wav -------------------------------------------------------------------------------- /samples/adam_traba/kot/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/kot/04.wav -------------------------------------------------------------------------------- /samples/adam_traba/kot/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/kot/05.wav -------------------------------------------------------------------------------- /samples/adam_traba/kot/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/kot/06.wav -------------------------------------------------------------------------------- /samples/adam_traba/kot/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/kot/07.wav -------------------------------------------------------------------------------- /samples/adam_traba/kot/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/kot/08.wav -------------------------------------------------------------------------------- /samples/adam_traba/kot/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/kot/09.wav -------------------------------------------------------------------------------- /samples/adam_traba/kot/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/kot/10.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/kot/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/kot/01.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/kot/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/kot/02.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/kot/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/kot/03.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/kot/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/kot/04.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/kot/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/kot/05.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/kot/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/kot/06.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/kot/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/kot/07.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/kot/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/kot/08.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/kot/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/kot/09.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/kot/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/kot/10.wav -------------------------------------------------------------------------------- /samples/damian_bulat/kot/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/kot/01.wav -------------------------------------------------------------------------------- /samples/damian_bulat/kot/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/kot/02.wav -------------------------------------------------------------------------------- /samples/damian_bulat/kot/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/kot/03.wav -------------------------------------------------------------------------------- /samples/damian_bulat/kot/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/kot/04.wav -------------------------------------------------------------------------------- /samples/damian_bulat/kot/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/kot/05.wav -------------------------------------------------------------------------------- /samples/damian_bulat/kot/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/kot/06.wav -------------------------------------------------------------------------------- /samples/damian_bulat/kot/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/kot/07.wav -------------------------------------------------------------------------------- /samples/damian_bulat/kot/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/kot/08.wav -------------------------------------------------------------------------------- /samples/damian_bulat/kot/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/kot/09.wav -------------------------------------------------------------------------------- /samples/damian_bulat/kot/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/kot/10.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/imie/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/imie/01.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/imie/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/imie/02.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/imie/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/imie/03.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/imie/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/imie/04.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/imie/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/imie/05.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/imie/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/imie/06.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/imie/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/imie/07.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/imie/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/imie/08.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/imie/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/imie/09.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/imie/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/imie/10.wav -------------------------------------------------------------------------------- /samples/damian_bulat/imie/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/imie/01.wav -------------------------------------------------------------------------------- /samples/damian_bulat/imie/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/imie/02.wav -------------------------------------------------------------------------------- /samples/damian_bulat/imie/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/imie/03.wav -------------------------------------------------------------------------------- /samples/damian_bulat/imie/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/imie/04.wav -------------------------------------------------------------------------------- /samples/damian_bulat/imie/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/imie/05.wav -------------------------------------------------------------------------------- /samples/damian_bulat/imie/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/imie/06.wav -------------------------------------------------------------------------------- /samples/damian_bulat/imie/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/imie/07.wav -------------------------------------------------------------------------------- /samples/damian_bulat/imie/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/imie/08.wav -------------------------------------------------------------------------------- /samples/damian_bulat/imie/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/imie/09.wav -------------------------------------------------------------------------------- /samples/damian_bulat/imie/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/imie/10.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/kot/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/kot/01.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/kot/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/kot/02.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/kot/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/kot/03.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/kot/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/kot/04.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/kot/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/kot/05.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/kot/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/kot/06.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/kot/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/kot/07.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/kot/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/kot/08.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/kot/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/kot/09.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/kot/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/kot/10.wav -------------------------------------------------------------------------------- /samples/adam_traba/nazwisko/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/nazwisko/01.wav -------------------------------------------------------------------------------- /samples/adam_traba/nazwisko/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/nazwisko/02.wav -------------------------------------------------------------------------------- /samples/adam_traba/nazwisko/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/nazwisko/03.wav -------------------------------------------------------------------------------- /samples/adam_traba/nazwisko/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/nazwisko/04.wav -------------------------------------------------------------------------------- /samples/adam_traba/nazwisko/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/nazwisko/05.wav -------------------------------------------------------------------------------- /samples/adam_traba/nazwisko/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/nazwisko/06.wav -------------------------------------------------------------------------------- /samples/adam_traba/nazwisko/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/nazwisko/07.wav -------------------------------------------------------------------------------- /samples/adam_traba/nazwisko/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/nazwisko/08.wav -------------------------------------------------------------------------------- /samples/adam_traba/nazwisko/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/nazwisko/09.wav -------------------------------------------------------------------------------- /samples/adam_traba/nazwisko/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/nazwisko/10.wav -------------------------------------------------------------------------------- /samples/adam_traba/samochod/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/samochod/01.wav -------------------------------------------------------------------------------- /samples/adam_traba/samochod/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/samochod/02.wav -------------------------------------------------------------------------------- /samples/adam_traba/samochod/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/samochod/03.wav -------------------------------------------------------------------------------- /samples/adam_traba/samochod/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/samochod/04.wav -------------------------------------------------------------------------------- /samples/adam_traba/samochod/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/samochod/05.wav -------------------------------------------------------------------------------- /samples/adam_traba/samochod/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/samochod/06.wav -------------------------------------------------------------------------------- /samples/adam_traba/samochod/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/samochod/07.wav -------------------------------------------------------------------------------- /samples/adam_traba/samochod/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/samochod/08.wav -------------------------------------------------------------------------------- /samples/adam_traba/samochod/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/samochod/09.wav -------------------------------------------------------------------------------- /samples/adam_traba/samochod/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/adam_traba/samochod/10.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/nazwisko/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/nazwisko/01.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/nazwisko/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/nazwisko/02.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/nazwisko/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/nazwisko/03.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/nazwisko/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/nazwisko/04.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/nazwisko/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/nazwisko/05.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/nazwisko/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/nazwisko/06.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/nazwisko/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/nazwisko/07.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/nazwisko/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/nazwisko/08.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/nazwisko/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/nazwisko/09.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/nazwisko/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/nazwisko/10.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/samochod/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/samochod/01.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/samochod/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/samochod/02.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/samochod/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/samochod/03.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/samochod/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/samochod/04.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/samochod/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/samochod/05.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/samochod/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/samochod/06.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/samochod/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/samochod/07.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/samochod/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/samochod/08.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/samochod/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/samochod/09.wav -------------------------------------------------------------------------------- /samples/bartek_bulat/samochod/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/bartek_bulat/samochod/10.wav -------------------------------------------------------------------------------- /samples/damian_bulat/nazwisko/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/nazwisko/01.wav -------------------------------------------------------------------------------- /samples/damian_bulat/nazwisko/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/nazwisko/02.wav -------------------------------------------------------------------------------- /samples/damian_bulat/nazwisko/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/nazwisko/03.wav -------------------------------------------------------------------------------- /samples/damian_bulat/nazwisko/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/nazwisko/04.wav -------------------------------------------------------------------------------- /samples/damian_bulat/nazwisko/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/nazwisko/05.wav -------------------------------------------------------------------------------- /samples/damian_bulat/nazwisko/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/nazwisko/06.wav -------------------------------------------------------------------------------- /samples/damian_bulat/nazwisko/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/nazwisko/07.wav -------------------------------------------------------------------------------- /samples/damian_bulat/nazwisko/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/nazwisko/08.wav -------------------------------------------------------------------------------- /samples/damian_bulat/nazwisko/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/nazwisko/09.wav -------------------------------------------------------------------------------- /samples/damian_bulat/nazwisko/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/nazwisko/10.wav -------------------------------------------------------------------------------- /samples/damian_bulat/samochod/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/samochod/01.wav -------------------------------------------------------------------------------- /samples/damian_bulat/samochod/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/samochod/02.wav -------------------------------------------------------------------------------- /samples/damian_bulat/samochod/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/samochod/03.wav -------------------------------------------------------------------------------- /samples/damian_bulat/samochod/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/samochod/04.wav -------------------------------------------------------------------------------- /samples/damian_bulat/samochod/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/samochod/05.wav -------------------------------------------------------------------------------- /samples/damian_bulat/samochod/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/samochod/06.wav -------------------------------------------------------------------------------- /samples/damian_bulat/samochod/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/samochod/07.wav -------------------------------------------------------------------------------- /samples/damian_bulat/samochod/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/samochod/08.wav -------------------------------------------------------------------------------- /samples/damian_bulat/samochod/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/samochod/09.wav -------------------------------------------------------------------------------- /samples/damian_bulat/samochod/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/damian_bulat/samochod/10.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/imie/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/imie/01.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/imie/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/imie/02.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/imie/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/imie/03.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/imie/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/imie/04.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/imie/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/imie/05.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/imie/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/imie/06.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/imie/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/imie/07.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/imie/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/imie/08.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/imie/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/imie/09.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/imie/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/imie/10.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/kot/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/kot/01.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/kot/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/kot/02.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/kot/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/kot/03.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/kot/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/kot/04.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/kot/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/kot/05.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/kot/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/kot/06.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/kot/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/kot/07.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/kot/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/kot/08.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/kot/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/kot/09.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/kot/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/kot/10.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/imie/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/imie/01.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/imie/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/imie/02.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/imie/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/imie/03.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/imie/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/imie/04.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/imie/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/imie/05.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/imie/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/imie/06.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/imie/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/imie/07.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/imie/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/imie/08.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/imie/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/imie/09.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/imie/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/imie/10.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/kot/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/kot/01.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/kot/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/kot/02.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/kot/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/kot/03.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/kot/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/kot/04.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/kot/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/kot/05.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/kot/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/kot/06.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/kot/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/kot/07.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/kot/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/kot/08.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/kot/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/kot/09.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/kot/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/kot/10.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/nazwisko/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/nazwisko/01.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/nazwisko/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/nazwisko/02.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/nazwisko/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/nazwisko/03.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/nazwisko/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/nazwisko/04.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/nazwisko/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/nazwisko/05.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/nazwisko/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/nazwisko/06.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/nazwisko/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/nazwisko/07.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/nazwisko/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/nazwisko/08.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/nazwisko/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/nazwisko/09.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/nazwisko/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/nazwisko/10.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/samochod/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/samochod/01.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/samochod/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/samochod/02.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/samochod/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/samochod/03.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/samochod/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/samochod/04.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/samochod/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/samochod/05.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/samochod/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/samochod/06.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/samochod/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/samochod/07.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/samochod/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/samochod/08.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/samochod/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/samochod/09.wav -------------------------------------------------------------------------------- /samples/szczepan_bulat/samochod/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/szczepan_bulat/samochod/10.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/imie/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/imie/01.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/imie/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/imie/02.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/imie/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/imie/03.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/imie/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/imie/04.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/imie/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/imie/05.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/imie/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/imie/06.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/imie/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/imie/07.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/imie/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/imie/08.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/imie/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/imie/09.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/imie/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/imie/10.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/nazwisko/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/nazwisko/01.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/nazwisko/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/nazwisko/02.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/nazwisko/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/nazwisko/03.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/nazwisko/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/nazwisko/04.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/nazwisko/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/nazwisko/05.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/nazwisko/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/nazwisko/06.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/nazwisko/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/nazwisko/07.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/nazwisko/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/nazwisko/08.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/nazwisko/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/nazwisko/09.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/nazwisko/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/nazwisko/10.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/samochod/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/samochod/01.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/samochod/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/samochod/02.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/samochod/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/samochod/03.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/samochod/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/samochod/04.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/samochod/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/samochod/05.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/samochod/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/samochod/06.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/samochod/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/samochod/07.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/samochod/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/samochod/08.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/samochod/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/samochod/09.wav -------------------------------------------------------------------------------- /samples/konrad_malawski/samochod/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/konrad_malawski/samochod/10.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/nazwisko/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/nazwisko/01.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/nazwisko/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/nazwisko/02.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/nazwisko/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/nazwisko/03.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/nazwisko/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/nazwisko/04.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/nazwisko/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/nazwisko/05.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/nazwisko/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/nazwisko/06.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/nazwisko/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/nazwisko/07.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/nazwisko/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/nazwisko/08.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/nazwisko/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/nazwisko/09.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/nazwisko/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/nazwisko/10.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/samochod/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/samochod/01.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/samochod/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/samochod/02.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/samochod/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/samochod/03.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/samochod/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/samochod/04.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/samochod/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/samochod/05.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/samochod/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/samochod/06.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/samochod/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/samochod/07.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/samochod/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/samochod/08.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/samochod/09.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/samochod/09.wav -------------------------------------------------------------------------------- /samples/katarzyna_konieczna/samochod/10.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barthez/speaker-recognition-nn/HEAD/samples/katarzyna_konieczna/samochod/10.wav -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Speaker recognition using NN 2 | 3 | To run application install required python packages by running: 4 | 5 | bash install_deps.sh 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ##Sound files 2 | sound_compressed 3 | sound_uncompressed 4 | 5 | 6 | ##Temp files 7 | *.pyc 8 | *.swp 9 | *.tmp 10 | *~ 11 | *.log 12 | *.aux 13 | 14 | ##Output files 15 | *.net 16 | *.out 17 | *.tar.gz 18 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | 2 | 3 | dist: 4 | tar czf speaker_recognition_nn.tar.gz doc/sprawozdanie.pdf audio_record.py samples/* install_deps.sh lpc.py network_test.py README.md spectrogram.py split_into_words.py voice_sample.py doc/ieee_article.pdf 5 | 6 | -------------------------------------------------------------------------------- /install_deps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | type pip &> /dev/null 4 | 5 | if [[ $? -eq 0 ]] 6 | then 7 | COMMAND='pip' 8 | fi 9 | 10 | type pip2 &> /dev/null 11 | if [[ $? -eq 0 ]] 12 | then 13 | COMMAND='pip2' 14 | fi 15 | 16 | if [[ -z $COMMAND ]] 17 | then 18 | echo "PyPi not found" 19 | exit 1 20 | fi 21 | 22 | PIP_PYTHON_VER=`$COMMAND --version | sed 's/.*python \([0-9]\.[0-9]\).*/\1/g'` 23 | 24 | if [[ $PIP_PYTHON_VER != '2.7' ]] 25 | then 26 | echo "Wrong Python version (must be 2.7, was $PIP_PYTHON_VER)" 27 | exit 1 28 | fi 29 | 30 | #Install required python packages 31 | for PKG in numpy scipy matplotlib spectrum networkx ffnet 32 | do 33 | echo "sudo $COMMAND install $PKG" 34 | sudo $COMMAND install $PKG 35 | done 36 | -------------------------------------------------------------------------------- /spectrogram.py: -------------------------------------------------------------------------------- 1 | import scipy, pylab, numpy 2 | 3 | def frame(x, fs, framesz, hop): 4 | framesamp = int(framesz*fs) 5 | hopsamp = int(hop*fs) 6 | w = scipy.hamming(framesamp) 7 | return scipy.array([w*x[i:i+framesamp] 8 | for i in range(0, len(x)-framesamp, hopsamp)]) 9 | 10 | 11 | 12 | def stft(x, fs, framesz, hop): 13 | framesamp = int(framesz*fs) 14 | hopsamp = int(hop*fs) 15 | w = scipy.hamming(framesamp) 16 | X = scipy.array([scipy.fft(w*x[i:i+framesamp]) 17 | for i in range(0, len(x)-framesamp, hopsamp)]) 18 | return X 19 | 20 | def istft(X, fs, T, hop): 21 | x = scipy.zeros(T*fs) 22 | framesamp = X.shape[1] 23 | hopsamp = int(hop*fs) 24 | for n,i in enumerate(range(0, len(x)-framesamp, hopsamp)): 25 | x[i:i+framesamp] += scipy.real(scipy.ifft(X[n])) 26 | return x 27 | -------------------------------------------------------------------------------- /lpc.py: -------------------------------------------------------------------------------- 1 | import pylab, scipy, spectrum 2 | import voice_sample 3 | 4 | def frame(x, framesize, framehop): 5 | w = scipy.hamming(framesize) 6 | return scipy.array([w*x[i:i+framesize] 7 | for i in range(0, len(x)-framesize, framehop)]) 8 | 9 | if __name__ == '__main__': 10 | import scipy.io.wavfile as wf 11 | names = voice_sample.get_names() 12 | for num, name in zip(range(1, len(names) + 1), names): 13 | pylab.subplot(2,3, num) 14 | for it in range(0, 9): 15 | (fs, sd) = wf.read(voice_sample.SAMPLES_DIR + '/%s/imie/%02d.wav' % (name, it+1) ) 16 | sd = sd - scipy.mean(sd) 17 | sd = sd / scipy.amax(sd) 18 | #sf = frame(sd, int(fs*0.03), int(fs*0.02)) 19 | 20 | #lpcc = scipy.array([ lpc(f, 10) for f in sf ]); 21 | #lpcc_mean = scipy.mean(lpcc, 0) 22 | 23 | #pylab.figure(); 24 | #pylab.plot(sd); 25 | lpcc, e = spectrum.lpc(sd, 12) 26 | pylab.plot(lpcc, label="Zapis {:02d}".format(it+1) ); 27 | pylab.title(name) 28 | pylab.ylim(-5, 5) 29 | 30 | pylab.show(); 31 | 32 | -------------------------------------------------------------------------------- /audio_record.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python2 2 | 3 | 4 | 5 | import sys 6 | import time 7 | import getopt 8 | import alsaaudio 9 | from cStringIO import StringIO 10 | from os import tmpfile 11 | from numpy import fromstring, int16 12 | import scipy.io.wavfile as wf 13 | 14 | 15 | def record(card = 'default', chl = 1, sampling = 44100): 16 | """ 17 | Record one minute of sound or until KeyboardInterrupt (Ctrl+C). Return 18 | sampling frequency and sound as numpy.array(dtype=int16) 19 | 20 | Return tuple: (fs, data) 21 | """ 22 | f = StringIO() 23 | inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK, card) 24 | 25 | inp.setchannels(chl) 26 | inp.setrate(sampling) 27 | inp.setformat(alsaaudio.PCM_FORMAT_S16_LE) 28 | 29 | inp.setperiodsize(160) 30 | 31 | try: 32 | it = sampling*60; #one minute 33 | while it>0: 34 | # Read data from device 35 | l, data = inp.read() 36 | it -= l 37 | if l: 38 | f.write(data) 39 | time.sleep(.001) 40 | except KeyboardInterrupt: 41 | pass 42 | 43 | return (sampling, fromstring(f.getvalue(), dtype=int16)) 44 | 45 | if __name__ == '__main__': 46 | print "Stop recording by pressing Ctrl+C" 47 | (fs, snd) = record() 48 | fn = raw_input("Enter filename: ") 49 | wf.write(fn, fs, snd) 50 | print "File saved correctly" 51 | 52 | 53 | 54 | pass 55 | -------------------------------------------------------------------------------- /split_into_words.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python2 2 | 3 | from spectrogram import stft 4 | import pylab, numpy, scipy 5 | from os import mkdir 6 | from os.path import join as path_join 7 | from math import floor, ceil 8 | 9 | WORDS = ['imie', 'nazwisko', 'samochod', 'kot']; 10 | 11 | def plot_selected(l, nst, ned, val = 4e6): 12 | start_plot = scipy.zeros( l ) 13 | end_plot = scipy.zeros( l ) 14 | 15 | for a, b, n in zip(nst, ned, range(0, len(ned))): 16 | if n%2 == 0: 17 | start_plot[a:b] = val*numpy.ones(b-a) 18 | else: 19 | end_plot[a:b] = val*numpy.ones(b-a) 20 | 21 | pylab.fill(start_plot, color="green") 22 | pylab.fill(end_plot, color="red") 23 | 24 | def signal_energy(signal, fs, fl = 0.05, fh=0.02): 25 | X = stft(signal, fs, fl,fh) 26 | 27 | #pylab.figure(); 28 | #pylab.imshow(scipy.absolute(X.T), origin='lower', aspect='auto', 29 | # interpolation='nearest') 30 | #pylab.specgram(signal, NFFT=44100*fs, noverlap=44100*fh); 31 | #pylab.show(); 32 | 33 | mag = scipy.absolute(X); 34 | energy = scipy.sum(mag, 1) 35 | return energy 36 | 37 | 38 | def split_into_words(filename, wn, thresh, too_short): 39 | import scipy.io.wavfile as wf 40 | 41 | (folder, ext) = filename.rsplit('.', 1); 42 | 43 | (fs, sig) = wf.read(filename) 44 | print "File is readed correctly" 45 | fl = 0.050 46 | fh = 0.020 47 | 48 | energy = signal_energy(sig, fs, fl, fh) 49 | print "Energy..." 50 | 51 | xx = scipy.diff(scipy.r_[ [0], (energy > thresh).astype(int) ] ) 52 | yy = scipy.diff(scipy.r_[ (energy > thresh).astype(int), [0] ] ) 53 | start_sig = scipy.nonzero(xx > 0)[0] 54 | end_sig = scipy.nonzero(yy < 0)[0] 55 | 56 | nst = start_sig 57 | ned = end_sig 58 | print "Enough power ranges" 59 | 60 | # to_less_power = []; 61 | # for a, b, n in zip(nst, ned, range(0, len(ned))): 62 | # en = numpy.sum(energy[a:b]) 63 | # print "%d: %13.2f" % (n,en/(b-a)) 64 | # if (en/(b-a) < 10e6): 65 | # to_less_power.append(n) 66 | # 67 | 68 | # nst = scipy.delete(nst, to_less_power) 69 | # ned = scipy.delete(ned, to_less_power) 70 | # print "Remove no enough power ranges" 71 | 72 | l1 = len(nst) 73 | l2 = len(ned) 74 | 75 | dist = ned- nst 76 | 77 | 78 | tooshort = scipy.nonzero(dist < too_short) 79 | nst = scipy.delete(nst, tooshort) 80 | ned = scipy.delete(ned, tooshort) 81 | 82 | print "Remove to shor ranges" 83 | 84 | dist = ned- nst 85 | edist = ned[1:] - ned[:-1] 86 | 87 | ll = len(nst) - wn 88 | tor = edist.argsort()[:ll] 89 | print tor 90 | print dist 91 | print end_sig 92 | print edist 93 | 94 | print edist[tor] 95 | 96 | nst = scipy.delete(nst, tor+1) 97 | ned = scipy.delete(ned, tor) 98 | 99 | print "Join ranges" 100 | 101 | print nst 102 | print ned 103 | print ned - nst 104 | 105 | words = scipy.array([sig[fs*fh*a:fs*fh*b] for a, b in zip(nst, ned)]) 106 | 107 | print "Saving files" 108 | try: 109 | mkdir(folder) 110 | for w in WORDS: 111 | mkdir(path_join(folder, w )) 112 | except OSError, ex: 113 | pass 114 | 115 | for w, n in zip(words, range(0, len(words) ) ): 116 | ww = n%4 117 | wwig = floor(float(n)/4.0) 118 | flnm = path_join(folder, WORDS[ww], "%02d.wav" % (wwig+1) ) 119 | wf.write(flnm, fs, w) 120 | 121 | print "Files saved!" 122 | 123 | pylab.figure() 124 | pylab.plot( energy ) 125 | plot_selected(len(energy), nst, ned, thresh); 126 | pylab.show() 127 | 128 | def main(args): 129 | if len(args) < 5: 130 | print "Usage: %s filename word_numer thresholdi too_short" % args[0] 131 | return 1 132 | filename = args[1] 133 | wn = int(args[2]) 134 | thresh = float(args[3]) 135 | too_short = int(args[4]) 136 | split_into_words(filename, wn, thresh, too_short) 137 | 138 | 139 | 140 | 141 | 142 | if __name__ == "__main__": 143 | import sys 144 | main(sys.argv) 145 | -------------------------------------------------------------------------------- /voice_sample.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python2 2 | # coding=utf8 3 | # 4 | 5 | from scipy.io import wavfile 6 | from spectrum import lpc 7 | from numpy import array 8 | import numpy as np 9 | from os import listdir 10 | from os.path import isdir 11 | from os.path import join as path_join 12 | from re import match 13 | import audio_record 14 | from spectrogram import stft 15 | from datetime import datetime 16 | 17 | import pylab 18 | 19 | WORDS = ['imie', 'nazwisko', 'samochod', 'kot'] 20 | SAMPLES_DIR = './samples' 21 | 22 | def timestamp(fmt="%Y%m%d%H%M%S"): 23 | return datetime.now().strftime(fmt) 24 | 25 | def get_names(): 26 | return [person for person in listdir(SAMPLES_DIR)] 27 | 28 | 29 | 30 | def find_words(data, fs, num, **args): 31 | min_silence_length = args["min_silence_length"] if "min_silence_length" in args else 5 32 | _plot = args["plot"] if "plot" in args else False 33 | _debug = False 34 | 35 | frml = 0.03 36 | frmh = 0.02 37 | 38 | X = stft(data, fs, frml, frmh) 39 | magnitude = np.absolute(X) 40 | signal_energy = np.sum(magnitude, 1) 41 | 42 | 43 | if "thresh" in args.keys(): 44 | thresh = args["thresh"] 45 | else: 46 | thresh = np.mean(signal_energy) - np.min(signal_energy) 47 | 48 | en_th = (signal_energy > thresh).astype(np.int8) 49 | rising_edge = np.diff( np.hstack(([0], en_th)) ) 50 | falling_edge = np.diff( np.hstack((en_th, [0])) ) 51 | 52 | (stp,) = np.nonzero(rising_edge > 0) 53 | (edp,) = np.nonzero(falling_edge < 0) 54 | 55 | if len(stp) != len(edp): 56 | raise ValueError("Wrong threshold value") 57 | 58 | """Remove too short silence periods""" 59 | silence = stp[1:] - edp[:-1] 60 | (too_short,) = np.nonzero(silence <= min_silence_length) 61 | stp = np.delete(stp, too_short + 1) 62 | edp = np.delete(edp, too_short) 63 | 64 | nonsilence = edp - stp 65 | shortest = nonsilence.argsort() 66 | 67 | if len(nonsilence) < num: 68 | raise ValueError("You say less words than you ask me to find or you speak too fast") 69 | """ Remove too short nonsilence """ 70 | stp = np.delete(stp, shortest[:-num]) 71 | edp = np.delete(edp, shortest[:-num]) 72 | 73 | pos = lambda a: fs*frmh*a 74 | 75 | if _plot: 76 | pylab.subplot(2,1,1) 77 | etime = np.array(range(len(signal_energy)), dtype=float)*frmh 78 | pylab.plot(etime,signal_energy/1e6) 79 | pylab.axhline(thresh/1e6) 80 | [ pylab.axvline(x*frmh, color="red") for x in stp ] 81 | [ pylab.axvline(x*frmh, color="green") for x in edp ] 82 | #pylab.xlabel("Czas [s]") 83 | pylab.title("Energia wypowiedzi w czasie") 84 | time = np.array(range(len(data)), dtype=float)/fs 85 | sc_data = data - np.mean(data) 86 | sc_data = sc_data/np.max(sc_data) 87 | pylab.subplot(2,1,2) 88 | pylab.plot(time, sc_data) 89 | [ pylab.axvline(pos(x)/fs, color="red") for x in stp ] 90 | [ pylab.axvline(pos(x)/fs, color="green") for x in edp ] 91 | pylab.xlabel("Czas [s]") 92 | pylab.title(u"Zapis sygnału") 93 | pylab.show() 94 | 95 | 96 | return [ data[pos(a):pos(b)] for a,b in zip(stp,edp) ] 97 | 98 | 99 | class VoiceSample: 100 | def __init__(self, _filename, _typename, **args): 101 | if not _typename in WORDS: 102 | raise ValueError('Type is not one of premitted types: {:s}' 103 | .format(", ".join(WORDS))) 104 | self.typename = _typename 105 | self.filename = _filename 106 | argn = args.keys(); 107 | if "data" in argn and "fs" in argn: 108 | self.fs = args["fs"] 109 | self.data = args["data"] 110 | else: 111 | (self.fs, self.data) = wavfile.read(_filename); 112 | 113 | def __len__(self): 114 | return len(self.data) 115 | 116 | def lpc_coeff(self, p): 117 | #print "LPC coeff for: " + str(self) 118 | sc_data = self.data - np.mean(self.data) 119 | sc_data = sc_data/np.max(sc_data) 120 | (coeff, err) = lpc(sc_data, p); 121 | return coeff 122 | 123 | def __repr__(self): 124 | return str(self) 125 | 126 | def __str__(self): 127 | return "".format( 128 | self.filename, 129 | self.fs, 130 | len(self)*1000/self.fs) 131 | def save(self): 132 | wavfile.write(self.filename, self.fs, self.data) 133 | 134 | @classmethod 135 | def record_sample(cls, _typenames): 136 | (fs, sound) = audio_record.record() 137 | tns = _typenames if type(_typenames) == list else [_typenames] 138 | word_num = len(tns) 139 | 140 | create_voice_sample = lambda n,t,f,w: VoiceSample( 141 | "recording_{name}_{num:02d}_{tmstp}.wav".format(name=t, 142 | num=n, tmstp=timestamp()), 143 | t, 144 | fs=f, 145 | data=w) 146 | collection = zip( 147 | range(1,word_num+1), 148 | tns, 149 | find_words(sound, fs, word_num, plot=True)) 150 | 151 | return [ create_voice_sample(n,t,fs,w) for n,t,w in collection ] 152 | 153 | 154 | 155 | 156 | 157 | class VoiceTypeSamples(tuple): 158 | def __init__(self, _name, _type): 159 | tuple.__init__(self) 160 | self.name = _name 161 | self.typename = _type 162 | 163 | def __new__(cls, _name, _type): 164 | smpl = cls.__load_samples(_name, _type) 165 | return tuple.__new__(cls, smpl) 166 | 167 | @classmethod 168 | def __load_samples(cls, n, t): 169 | samples_path = path_join(SAMPLES_DIR, n, t) 170 | samples = [] 171 | paths = [path_join(samples_path, fname) for fname in 172 | listdir(samples_path)] 173 | paths.sort() 174 | for fname in paths: 175 | if match("^.*\.wav$", fname): 176 | samples.append( VoiceSample( fname, t ) ) 177 | return samples 178 | 179 | class VoicePersonSamples(dict): 180 | def __init__(self, _name): 181 | dict.__init__(self) 182 | self.name = _name; 183 | self.real_name = " ".join( map(lambda x: x[0].upper() + x[1:], 184 | _name.split('_') ) ) 185 | samples_path = path_join(SAMPLES_DIR, self.name) 186 | for fname in listdir(samples_path): 187 | if isdir(path_join(samples_path, fname)): 188 | self[fname] = VoiceTypeSamples(self.name, fname) 189 | 190 | def get_network_inputs(self, word, size, rg): 191 | if not (word in WORDS): 192 | raise ValueError('Type is not one of premitted types: {:s}' 193 | .format(", ".join(WORDS))) 194 | #print "Get inputs for word: {:s}".format(word) 195 | return array([ self[word][i].lpc_coeff(size) for i in rg]) 196 | 197 | 198 | def __lpc_for_all(): 199 | names = get_names() 200 | samples = [ VoicePersonSamples(n) for n in names ] 201 | 202 | for w in WORDS: 203 | pylab.figure() 204 | for n, name in zip(range(len(name)), name): 205 | inp = samples 206 | 207 | 208 | def __main(args): 209 | print "Program testowy" 210 | #bartek = VoiceSample('./bartek_bulat/imie/01.wav', 'imie') 211 | #bartek = VoicePersonSamples('bartek_bulat') 212 | #print bartek.real_name 213 | 214 | #(fs, data) = wavfile.read("pl3.wav") 215 | #words = find_words(data, fs, 1) 216 | #wavfile.wrie("cleared_pl3.wav", fs, words[0]) 217 | raw_input("To start recording press [Enter], to stop [Ctrl+C]") 218 | print "Recording" 219 | words = VoiceSample.record_sample(["imie", "samochod"]) 220 | map(lambda w: w.save(), words) 221 | 222 | 223 | 224 | 225 | if __name__ == "__main__": 226 | import sys 227 | __main(sys.argv) 228 | -------------------------------------------------------------------------------- /network_test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python2 2 | # coding=utf-8 3 | 4 | from ffnet import ffnet, mlgraph, savenet, loadnet 5 | from numpy import zeros, ones, argsort, array, size 6 | import pylab as pl 7 | import numpy as np 8 | from numpy.random import shuffle 9 | import voice_sample 10 | import re 11 | from getopt import getopt 12 | LPC_COE_NUM = 13 13 | 14 | def load_speaker_recognition_newtork(filename, create_new=False): 15 | """ 16 | Load or create (if you want) network for speker recognition form file 17 | 18 | returns tuple: (network, people_names, people_number) 19 | """ 20 | people = voice_sample.get_names(); 21 | people_num = len(people) 22 | network = None 23 | 24 | try: 25 | network = loadnet(filename) 26 | except IOError, ex: 27 | if create_new: 28 | 29 | network = ffnet(mlgraph((LPC_COE_NUM, people_num + LPC_COE_NUM, 30 | #network = ffnet(mlgraph((LPC_COE_NUM, 10, 31 | people_num)) ) 32 | return (network, people, people_num) 33 | 34 | def get_inputs_and_outputs(samples, word, range_start, range_end, shuffled=True): 35 | sn = len(samples) #samples (person) number 36 | rw = (range_end - range_start + 1) #Range width 37 | row_num = sn*rw 38 | outputs = zeros( (row_num, sn) ) 39 | inputs = zeros( (row_num, LPC_COE_NUM) ) 40 | for n, p in zip(range(sn), samples): 41 | a = n*rw 42 | b = (n+1)*rw 43 | idx = array(range(n,sn*rw,sn)) 44 | outputs[a:b, n] = ones(rw) 45 | inputs[a:b, :] =p.get_network_inputs(word, LPC_COE_NUM, 46 | range(range_start-1, range_end) ) 47 | 48 | idx = array(range(row_num)) 49 | 50 | shuffled and shuffle(idx) 51 | return (inputs[idx], outputs[idx]) 52 | 53 | 54 | 55 | def train_net_a_person(net, person, pn, word, rg): 56 | output = zeros(len(net.outno)) 57 | output[pn] = 1.0 58 | outputs = [ output for i in rg ] 59 | inputs = person.get_network_inputs(word, LPC_COE_NUM, rg) 60 | net.train_momentum(inputs, outputs) 61 | return net 62 | 63 | def learn_net(filename, word, **args): 64 | (network, people, people_num) = load_speaker_recognition_newtork(filename, True); 65 | 66 | print "Loading voice samples..." 67 | samples = [ voice_sample.VoicePersonSamples(s) for s in people] 68 | 69 | rs = args.get("rs",None) 70 | re = args.get("re", None) 71 | 72 | if rs is None or re is None: 73 | ans = raw_input("Select sample range (1-10): ") 74 | (rs, re) = map(lambda x: int(x), ans.strip().split("-")) 75 | 76 | (inp, out) = get_inputs_and_outputs(samples, word, rs, re); 77 | 78 | train_method = args.get("method", "momentum") 79 | training = getattr(network, "train_" + train_method) 80 | 81 | training(inp, out) 82 | 83 | _save = args.get("save", True) 84 | 85 | _save and savenet(network, filename) 86 | 87 | return (network, samples) 88 | 89 | def test_net(filename, word): 90 | (network, people, people_num) = load_speaker_recognition_newtork(filename) 91 | if not network: 92 | return 1 93 | 94 | print "Loading voice samples..." 95 | samples = [ voice_sample.VoicePersonSamples(s) for s in people] 96 | print "Which person do you want to test:" 97 | for p, n in zip(samples, range(people_num) ): 98 | print "{:d}. {:s}".format(n+1, p.real_name) 99 | 100 | choice = int(raw_input("Choice: ")) 101 | s_no = int(raw_input("Select sample (1-10): ")) 102 | 103 | if choice > 0: 104 | inp = samples[choice-1][word][s_no-1].lpc_coeff(LPC_COE_NUM) 105 | out = network(inp) 106 | fit = argsort(out)[::-1] 107 | for arg in fit: 108 | print "{:s}: {:10.5f}".format( samples[arg].real_name, out[arg] ) 109 | else: 110 | print "Wrong choice" 111 | 112 | def test_and_plot(): 113 | mean_reggresion = zeros((4,6)) 114 | pl.figure() 115 | _words=[u"Imie", u"Nazwisko", u"Samochód", u"Kot"] 116 | 117 | colors= ["#FF2800".lower(), "#FFB800".lower(), "#1729B0".lower(), 118 | "#007929".lower()] 119 | w = 3 120 | p_names = ["Slope", "Intercept", "R-value", "P-value", "Slope Error", 121 | "Estimation Error"] 122 | for n, word in zip(range(4), voice_sample.WORDS): 123 | fn = "{}_network_{}.net".format(word, voice_sample.timestamp() ) 124 | (network, samples) = learn_net(fn, word, rs=1, re=5, save=False) 125 | (inp, target) = get_inputs_and_outputs(samples, word, 6,10,False) 126 | (output, reggresion) = network.test(inp, target, iprint=0) 127 | mean_reggresion[n,:] = np.mean(reggresion,0) 128 | x = np.arange(6)*6 + n 129 | pl.bar(x, mean_reggresion[n,:], color=colors[n], width=0.9, 130 | label=_words[n]) 131 | print mean_reggresion 132 | pl.xticks( np.arange(6)*6+2, p_names ) 133 | pl.xlim( -1, 35 ) 134 | pl.legend() 135 | pl.show() 136 | 137 | def test_different_methods(): 138 | mean_reggresion = zeros((5,6)) 139 | pl.figure() 140 | word = "samochod" 141 | metods = ["momentum", "tnc", "bfgs", "cg", "rprop"] 142 | _words=[u"Backpropagation z momentem", u"Alg. BFGS (multicore)", 143 | u"Alg. BFGS", u"Gradient sprzezony", "Alg. RProp"] 144 | 145 | colors= ["#FF2800".lower(), "#FFB800".lower(), "#1729B0".lower(), 146 | "#007929".lower(), "#60016D"] 147 | w = 3 148 | p_names = ["Slope", "Intercept", "R-value", "P-value", "Slope Error", 149 | "Estimation Error"] 150 | for n, met in zip(range(5), metods): 151 | fn = "{}_network_{}.net".format(met, voice_sample.timestamp() ) 152 | (network, samples) = learn_net(fn, word, rs=1, re=5, save=False, 153 | method=met) 154 | (inp, target) = get_inputs_and_outputs(samples, word, 6,10,False) 155 | (output, reggresion) = network.test(inp, target, iprint=0) 156 | mean_reggresion[n,:] = np.mean(reggresion,0) 157 | x = np.arange(6)*7 + n 158 | pl.bar(x, mean_reggresion[n,:], color=colors[n], width=0.9, 159 | label=_words[n]) 160 | print mean_reggresion 161 | pl.xticks( np.arange(6)*7+2, p_names ) 162 | pl.xlim( -1, 44 ) 163 | pl.legend() 164 | pl.show() 165 | pass 166 | 167 | def test_net_using_file(filename): 168 | (network, people, people_num) =load_speaker_recognition_newtork(filename) 169 | if not network: 170 | return 1 171 | print "Loading voice samples..." 172 | samples = [ voice_sample.VoicePersonSamples(s) for s in people] 173 | fn = raw_input("File path: ") 174 | vs = voice_sample.VoiceSample(fn, 'imie') 175 | 176 | inp = vs.lpc_coeff(LPC_COE_NUM) 177 | out = network(inp) 178 | fit = argsort(out)[::-1] 179 | for arg in fit: 180 | print "{:s}: {:10.5f}".format( samples[arg].real_name, out[arg] ) 181 | 182 | 183 | def record_and_test(filename, word): 184 | (network, people, people_num) =load_speaker_recognition_newtork(filename) 185 | if not network: 186 | return 1 187 | 188 | print "Loading voice samples..." 189 | samples = [ voice_sample.VoicePersonSamples(s) for s in people] 190 | 191 | raw_input("To start recording press [Enter], to stop [Ctrl+C]") 192 | print("Recording...") 193 | (vs,) = voice_sample.VoiceSample.record_sample(word) 194 | print("") 195 | 196 | inp = vs.lpc_coeff(LPC_COE_NUM) 197 | out = network(inp) 198 | fit = argsort(out)[::-1] 199 | for arg in fit: 200 | print "{:s}: {:10.5f}".format( samples[arg].real_name, out[arg] ) 201 | 202 | def usage(): 203 | print "Usage [-h] [-w word] [-a action] filename" 204 | 205 | 206 | def main(argv): 207 | opts, args = getopt(argv[1:], 'hw:a:') 208 | action = 'learn' 209 | word = 'imie' 210 | for o, a in opts: 211 | if o == '-w': 212 | word = a 213 | elif o == '-a': 214 | action = a 215 | elif o == '-h': 216 | usage() 217 | return 0 218 | 219 | 220 | if not (word in voice_sample.WORDS): 221 | raise ValueError('Type is not one of premitted types: {:s}' 222 | .format(", ".join(voice_sample.WORDS))) 223 | 224 | if action != 'plot' and not args: 225 | usage() 226 | return 2 227 | elif len(args) > 0: 228 | filename = args[0] 229 | 230 | 231 | if action == 'learn': 232 | learn_net(filename, word) 233 | elif action == 'test': 234 | test_net(filename, word) 235 | elif action == 'testfile': 236 | test_net_using_file(filename) 237 | elif action == 'record': 238 | record_and_test(filename, word) 239 | elif action == 'plot': 240 | test_different_methods(); 241 | #test_and_plot() 242 | 243 | return 0 244 | 245 | 246 | if __name__ == "__main__": 247 | import sys 248 | r = main(sys.argv) 249 | sys.exit(r) 250 | 251 | -------------------------------------------------------------------------------- /doc/sprawozdanie.tex: -------------------------------------------------------------------------------- 1 | \documentclass[a4paper]{article} 2 | \usepackage[T1]{fontenc} 3 | \usepackage[utf8]{inputenc} 4 | \usepackage{lmodern} 5 | \usepackage[polish]{babel} 6 | \usepackage{makeidx} 7 | \usepackage{amsfonts} 8 | \usepackage{graphicx} 9 | \usepackage{url} 10 | \usepackage{hyperref} 11 | 12 | \title{Rozpoznawanie mówcy z użyciem sieci neuronowych feed-forward} 13 | \author{ 14 | Bartłomiej Bułat\\ 15 | Konrad Malawski\\ 16 | \\ 17 | I rok, 2 stopień, Informatyka Stosowana, EAIiE} 18 | 19 | \begin{document} 20 | 21 | \maketitle 22 | 23 | \section{Streszczenie} 24 | 25 | \textbf{ 26 | Dokument przedstawia wyniki badań nad rozpoznawaniem mówcy za pomocą sieci 27 | neuronowych feed-forward. Opisano tutaj wszystkie problemy, które należało 28 | rozwiązać, od pozyskania głosu do jego właściwego rozpoznania. Pokazano problem 29 | wykrywania aktywności mówcy, parametryzacji wypowiedzi za pomocą LPC, budowy 30 | sieci neuronowej oraz metod nauki.} 31 | 32 | Słowa kluczowe: Rozpoznawanie mówcy, sieci neuronowe feed-forward, linear prediction 33 | coding, LPC, wykrywanie aktywności mówcy. 34 | 35 | \section{Wstęp} 36 | 37 | Przedmiotem badań było rozpoznawanie mówcy z użyciem sieci neuronowych typu 38 | feed-forward. Sam problem rozpoznawania mówcy polega na jednoznacznym wskazaniu 39 | osoby po jej głosie. Zwykle dzieje się to w 3 krokach: ekstrakcja cech głosu, 40 | modelowanie tych cech oraz klasyfikacja nowych wypowiedzi i rozpoznanie osoby. 41 | Do rozpoznawania używa się tych cech zapisu audio która są specyficzne dla 42 | wybranego człowieka, te cechy odzwierciedlają takie cechy osobowe jak kształt 43 | i rozmiar ust lub krtani. 44 | 45 | Modelowanie i klasyfikacja ekstrahowanych cech w istniejących rozwiązaniach 46 | odbywa się zwykle z użyciem ukrytych modeli Markowa, algorytmów dopasowania 47 | wzorców, sieci neuronowych, reprezentacji macierzowych czy też drzew 48 | decyzyjnych. 49 | 50 | \section{Proponowane rozwiązanie} 51 | 52 | Przed rozpoczęciem prac nad aplikacją zebraliśmy bazę wypowiedzi 6 osób, pięciu 53 | mężczyzn i jedna kobieta, każda 54 | z nich wypowiada 10 razy swoje imię i nazwisko oraz dwa słowa, długie 55 | ,,samochód'' oraz krótkie ,,kot''. Dzięki takiej bazie mogliśmy zbadać cechy 56 | systemu zależnego i niezależnego od treści wypowiedzi. Niestety nie udało nam 57 | się wzbogacić bazy o więcej żeńskich głosów, aby móc zbadać ten aspekt 58 | rozpoznawania mówcy. 59 | 60 | Pierwszym etapem było wydzielenie z zapisów konkretnych słów. Potrzebny był do 61 | tego algorytm wykrywania aktywności mówcy. Aby zrealizować to zadanie z wysoką 62 | jakością należy wziąć pod uwagę wiele parametrów wypowiedzi. Każdy z mówi z 63 | różną siłą, która zmienia się również podczas wypowiedz. Nasz algorytm został 64 | bardzo uproszczony ze względu na przeznaczenie rozwiązania. Ponieważ nie była 65 | wymagana duża dokładność wyznaczenia początku i końca wypowiedzi, wyznaczane 66 | one były na podstawie energii sygnału. Jeśli energia przekroczyła próg uznawano 67 | to za początek wypowiedzi, jeśli zaś energia sygnału spadła poniżej progu na 68 | czas dłuży od 100ms, uznawano to za koniec wypowiedzi. Prób był dobierany 69 | osobno dla każdego wypowiedzianego słowa. Na rysunku \ref{fig:say} 70 | przedstawiono przykładowy wynik algorytmu na słowie ,,samochód''. 71 | 72 | \begin{figure}[h!] 73 | \includegraphics[width=\textwidth]{say_samochod} 74 | \caption{Energia sygnały zapisu wypowiedzi słowa ,,samochód'' wraz z 75 | lokalizacją początku i końca wypowiedzi.} 76 | \label{fig:say} 77 | \end{figure} 78 | 79 | Do parametryzacji wypowiedzi użyto współczynników kodowania liniowo predykcyjnego. 80 | Rozwiązanie to jest proste: nie wymaga dużo czasu ani pamięci na obliczenia, a 81 | daje stosunkowo bardzo dobre rezultaty. 82 | 83 | Została zaprojektowana sieć feed-forward posiadająca 13 neuronów wejściowych 84 | (odpowiadające ilości współczynników LPC), 19 neuronów warstwy ukrytej oraz 6 85 | neuronów warstwy wyjściowej, co odpowiada ilości osób w bazie. Na rysunku 86 | \ref{fig:network} pokazano schemat połączeń sieci. 87 | 88 | \begin{figure} 89 | \includegraphics[width=\textwidth]{network} 90 | \caption{Schemat połączeń sieci neuronowej} 91 | \label{fig:network} 92 | \end{figure} 93 | 94 | \section{Parametryzacja wypowiedzi - ekstrakcja cech} 95 | 96 | Jak zostało wcześniej powiedziane cechy wypowiedzi muszą być zależne do 97 | konkretnych osób (wysokość głosu, lokalizacja formantów). Poniżej zostanie 98 | przedstawione kilka sposób estymacji tych wartości z cyfrowych próbek mowy. 99 | 100 | \textbf{Dyskretna Transformata Fouriera} - w przeciwieństwie do sygnału w 101 | dziedzinie czasu, w dziedzinie częstotliwości można uzyskać informacje o tonie 102 | głosu i lokalizacji formantów. Jednak transformata Fouriera zawiera zbyt dużo 103 | niepotrzebnych informacji, co bardzo utrudnia jej użycie w przypadku 104 | zastosowania sieci neuronowych. 105 | 106 | \textbf{Linear Predictive Coding, LPC} - kodowanie liniowo predykcyjne to 107 | prosta, a zarazem potężna metoda wyciągania informacji o lokalizacji formantów. 108 | W skrócie algorytm LPC pozwala znaleźć wektor współczynników opisujących 109 | widmową obwiednię amplitudy DFT. Współczynniki każdej próbki mogą być wyliczone 110 | jako liniowa kombinacja współczynników próbki poprzedniej, co pokazuje równanie 111 | \ref{eqn:lpc}. 112 | 113 | \begin{equation}\label{eqn:lpc} 114 | x(n) - \sum_{k=1}^p a_k x(n-k) + e(n) 115 | \end{equation} 116 | 117 | $p$ współczynników $a_k$ minimalizujących błąd między sygnałem a jego estymatą 118 | są znane jako współczynniki LPC $p$-tego rzędu. Współczynniki LPC 13-rzędu dla 119 | słowa ,,samochód'' dla wszystkich osób z bazy znajdują się na rysunku 120 | \ref{fig:lpc}. 121 | 122 | \begin{figure} 123 | \includegraphics[width=\textwidth]{lpc_samochod} 124 | \caption{Współczynniki LPC 13-tego rzędy dla wszystkich osób z bazy} 125 | \label{fig:lpc} 126 | \end{figure} 127 | 128 | \textbf{Współczynniki Cepstralne} - te współczynniki niosą bardzo podobne 129 | informacje jak współczynniki LPC. Opisują obwiednie widmową amplitudy DFT. 130 | Cepstrum to transformata Fouriera z logarytmu amplitudy transformaty Fouriera 131 | sygnału (patrz równanie \ref{eqn:cepstrum}). 132 | 133 | \begin{equation}\label{eqn:cepstrum} 134 | C = DFT( \log ( | DFT (x) | ) ) 135 | \end{equation} 136 | 137 | Cepstrum zmniejsza liniowy trend spectrum oraz usuwa z sygnału informacje o 138 | mówcy, ta strata informacji przydatna jest w aplikacjach do rozpoznawania 139 | treści wypowiedzi. 140 | 141 | Współczynniki cepstralne można obliczyć z współczynników LPC z użyciem 142 | zależności \ref{eqn:lpc_cep}. 143 | 144 | \begin{equation}\label{eqn:lpc_cep} 145 | c_i = a_i + \frac{1}{i} \sum_{j=1}^{i-1} (j)a_{i-j} c_j 146 | \end{equation} 147 | 148 | Użycie współczynników cepstralnych, oprócz tego, że usuwa informacje o mówcy i 149 | daje się wyliczyć z LPC nie przyniosło poprawy rezultatów rozpoznawania, 150 | dlatego do dalszej analizy wybrano współczynniki LPC 13-tego rzędu. 151 | 152 | 153 | \section{Budowa sieci neuronowej} 154 | 155 | Sieć nieuronowa użyta w badaniach to typowa, trzywarstwowa sieć neuronowa 156 | feed-forward. Głównym problemem przy projektowaniu sieć do rozpoznawania mówców 157 | jest to, że ilość rozpoznawanych osób musi być znana na początku. Ilość 158 | neuronów warstwie wyjściowej odpowiada rozmiarowi bazy osób, a aktywacja 159 | wyjścia jest tożsama z rozpoznaniem danej osoby. 160 | 161 | Ilość neuronów w warstwie wejściowej odpowiada ilości współczynników LPC, czyli 162 | 13. Jak można zaobserwować na rysunku \ref{fig:lpc} wyższy rząd współczynników 163 | nie poprawił by rezultatów, bo dla każdej z osób te współczynniki są bardzo 164 | bliskie zeru. 165 | 166 | Ilość neuronów w warstwie ukrytej jest dobrana doświadczalnie. Dla mniejszej 167 | liczby sieć miała problemy z zapamiętywaniem wzorców, a dla większej liczby nie 168 | było widocznej poprawy rezultatów. 169 | 170 | \section{Testowanie} 171 | 172 | W czasie testów skupiono się na dwóch ważnych aspektach tego problemu. 173 | Rozpoznawanie zależne/niezależne od treści słowa oraz sposób uczenia sieci 174 | neuronowej. 175 | 176 | \subsection{Zależność od treści} 177 | 178 | Nasza baza próbek glosuj pozwoliła nam na testy jakości rozpoznawania mówcy w 179 | przypadku użycia tych samych i różnych słów przez każdą osobę. Imię i nazwisko 180 | jest inne dla prawie każdej osoby, a pozostałe dwa słowa (,,samochód'' i 181 | ,,kot'') były wypowiedziane przez każdą osobę z bazy. Wykres \ref{fig:word} 182 | przedstawia parametry analizy regresji sieci uczonej metodą wstecznej 183 | propagacji błędu z momentem, dla wszystkich czterech słów. 184 | 185 | \begin{figure}[h!] 186 | \includegraphics[width=\textwidth]{word_network_reggresion} 187 | \caption{Wykres parametrów regresji liniowej w zależności od słowa użytego 188 | do rozpoznawania} 189 | \label{fig:word} 190 | \end{figure} 191 | 192 | Najlepszą metodą (parametry opisującą prostą regresji zbliżone do $y=x$, niski 193 | błąd, wysoka korelacja wyjścia i wejścia) okazała się metoda zależna od treści, 194 | mianowicie wykorzystanie słowa ,,samochód''. Wykorzystanie słowa ,,kot'', 195 | pomimo, że jest to również metoda zależna od treści (która z założenia powinna 196 | dawać lepsze rezultaty), jest metodą najgorszą. Duży wpływ na taki wynik może 197 | mieć to, że słowo ,,kot'' jest bardzo krótkie, co za tym idzie, niesie mało 198 | informacji. 199 | 200 | Dobre efekty dało również wykorzystanie imienia osoby jako analizowanego słowa, 201 | wpływ na to może mieć to, że żadne z imion się nie powtarza. Wykorzystanie 202 | nazwiska nie dało zadowalających rezultatów, może to być spowodowane tym, że w 203 | badzie występują 3 osoby o tych samych nazwiskach. 204 | 205 | \subsection{Sposób trenowania sieci} 206 | 207 | Użyta implementacja trenowanie sieci czterema algorytmami, dodatkowo jeden 208 | algorytm jest zaimplementowany w wersji wielowątkowej (na wiele procesorów). 209 | Dostępne algorytmu uczenia: 210 | \begin{description} 211 | \item[Alg. wstecznej propagacji błędu z momentem] prosta metoda wstecznej 212 | propagacji błędu z zachowaniem momentu, co zapobiega utkwieniu sieci 213 | w ekstremach lokalnych lub siodłach. 214 | \item[Alg. RProp] inna metoda wstecznej propagacji błędu. 215 | \item[Gradient sprzężony] - adaptacja metody numerycznego wyznaczania 216 | ekstremów dla sieci neuronowych 217 | \item[Alg. BFGS] - ta metoda jest również zaimplementowana wielowątkowo. 218 | 219 | \end{description} 220 | Podobnie jak w przypadku różnych słów przeprowadzono testy regresji liniowej 221 | dla każdego sposobu uczenia. Porównanie parametrów znajduje się na wykresie 222 | \ref{fig:train}. 223 | 224 | 225 | \begin{figure}[h!] 226 | \includegraphics[width=\textwidth]{training_network_reggresion} 227 | \caption{Wykres parametrów regresji liniowej w zależności od metody uczenia 228 | sieci neuronowej} 229 | \label{fig:train} 230 | \end{figure} 231 | 232 | Żadna z pokazanych metod uczenia nie wykazała znaczącej przewagi nad innymi. 233 | Można jedynie zauważyć, że metoda wykorzystująca algorytm RProp daje rezultaty 234 | sporo poniżej wartości średniej. 235 | 236 | \section{Podsumowanie} 237 | 238 | W trakcie badań udało się zaimplementować podany algorytm wykrywania aktywności 239 | mówcy, wyliczanie współczynników LPC. Do zastosowań pozatestowych do uczenia 240 | sieci użyto algorytmu BFGS i wybrano porównanie na podstawie słowa ,,samochód''. 241 | 242 | W rozwoju aplikacji zostało kilka miejsc do uzupełnienia, takich jak 243 | znalezienie lepszych parametrów opisujących wypowiedź, takich które przechowują 244 | więcej cech osobowych, czy też sprawdzanie poprawności klasyfikacji z użyciem 245 | większej ilość długich słów. 246 | 247 | \section{Bibliografia} 248 | \begin{thebibliography}{123} 249 | \bibitem{textind}Text-Independent Speaker Recognition Based on Neural Networks, 250 | \url{http://www.neuralnetworks.it/neuralnetspeaker.asp} 251 | \bibitem{VINING}Automatic Speaker Recognition Using Neural Networks, \emph{Braian 252 | J. Love, Jennifer Vining, Xuening Sun}, 2004 253 | \bibitem{FFNET}Fast-forward neural network library for python, 254 | \url{http://ffnet.sourceforge.net/} 255 | \bibitem{github}Repozytorium zawierające kod źródłowy omawianego projektu, 256 | \url{https://github.com/barthez/speaker-recognition-nn} 257 | \end{thebibliography} 258 | 259 | \section{Dodatek A: Opis aplikacji} 260 | 261 | Zostało przygotowanych kilka skryptów które realizują wszystkie zadania 262 | dotyczące rozpoznawania mówcy. Głównym skryptem jest \verb|network_test.py|. 263 | Pozwala on na nauczenie sieci (parametr \verb|-a learn|) oraz na próbe 264 | dopasowania wzorca z bazy (\verb|-a test|) lub nagrania i dopasowania nowego 265 | wzorca (\verb|-a record|). Aby określić słowo które ma zostać uzyte w 266 | uczeniu/testowaniu nalezy dodać parametr \verb|-w słowo|. 267 | 268 | \end{document} 269 | -------------------------------------------------------------------------------- /doc/ieee_article.tex: -------------------------------------------------------------------------------- 1 | \documentclass[journal]{IEEEtran} 2 | \usepackage[T1]{fontenc} 3 | \usepackage[utf8]{inputenc} 4 | \usepackage{lmodern} 5 | \usepackage[polish]{babel} 6 | \usepackage{makeidx} 7 | \usepackage{amsfonts} 8 | \usepackage{graphicx} 9 | \usepackage{url} 10 | \usepackage{hyperref} 11 | 12 | \title{Rozpoznawanie mówcy z użyciem sieci neuronowych feed-forward} 13 | \author{Bartłomiej~Bułat, Konrad~Malawski} 14 | 15 | \begin{document} 16 | 17 | %\markboth{Sztuczne Sieci Neuronowe, semestr letni 2011/2012, prowadzący: mgr 18 | %inż. Tomasz Orzechowski}{} 19 | 20 | \maketitle 21 | 22 | 23 | \begin{abstract} 24 | Dokument przedstawia wyniki badań nad rozpoznawaniem mówcy za pomocą sieci 25 | neuronowych feed-forward. Opisano tutaj wszystkie problemy, które należało 26 | rozwiązać, od pozyskania głosu do jego właściwego rozpoznania. Pokazano problem 27 | wykrywania aktywności mówcy, parametryzacji wypowiedzi za pomocą LPC, budowy 28 | sieci neuronowej oraz metod nauki. 29 | \end{abstract} 30 | 31 | \begin{IEEEkeywords} 32 | Rozpoznawanie mówcy, sieci neuronowe feed-forward, linear prediction 33 | coding, LPC, wykrywanie aktywności mówcy. 34 | \end{IEEEkeywords} 35 | 36 | \section{Wstęp} 37 | 38 | Przedmiotem badań było rozpoznawanie mówcy z użyciem sieci neuronowych typu 39 | feed-forward. Sam problem rozpoznawania mówcy polega na jednoznacznym wskazaniu 40 | osoby po jej głosie. Zwykle dzieje się to w 3 krokach: ekstrakcja cech głosu, 41 | modelowanie tych cech oraz klasyfikacja nowych wypowiedzi i rozpoznanie osoby. 42 | Do rozpoznawania używa się tych cech zapisu audio która są specyficzne dla 43 | wybranego człowieka, te cechy odzwierciedlają takie cechy osobowe jak kształt 44 | i rozmiar ust lub krtani. 45 | 46 | Modelowanie i klasyfikacja ekstrahowanych cech w istniejących rozwiązaniach 47 | odbywa się zwykle z użyciem ukrytych modeli Markowa, algorytmów dopasowania 48 | wzorców, sieci neuronowych, reprezentacji macierzowych czy też drzew 49 | decyzyjnych. 50 | 51 | \section{Proponowane rozwiązanie} 52 | 53 | Przed rozpoczęciem prac nad aplikacją zebraliśmy bazę wypowiedzi 6 osób, pięciu 54 | mężczyzn i jedna kobieta, każda 55 | z nich wypowiada 10 razy swoje imię i nazwisko oraz dwa słowa, długie 56 | ,,samochód'' oraz krótkie ,,kot''. Dzięki takiej bazie mogliśmy zbadać cechy 57 | systemu zależnego i niezależnego od treści wypowiedzi. Niestety nie udało nam 58 | się wzbogacić bazy o więcej żeńskich głosów, aby móc zbadać ten aspekt 59 | rozpoznawania mówcy. 60 | 61 | Pierwszym etapem było wydzielenie z zapisów konkretnych słów. Potrzebny był do 62 | tego algorytm wykrywania aktywności mówcy. Aby zrealizować to zadanie z wysoką 63 | jakością należy wziąć pod uwagę wiele parametrów wypowiedzi. Każdy z mówi z 64 | różną siłą, która zmienia się również podczas wypowiedz. Nasz algorytm został 65 | bardzo uproszczony ze względu na przeznaczenie rozwiązania. Ponieważ nie była 66 | wymagana duża dokładność wyznaczenia początku i końca wypowiedzi, wyznaczane 67 | one były na podstawie energii sygnału. Jeśli energia przekroczyła próg uznawano 68 | to za początek wypowiedzi, jeśli zaś energia sygnału spadła poniżej progu na 69 | czas dłuży od 100ms, uznawano to za koniec wypowiedzi. Prób był dobierany 70 | osobno dla każdego wypowiedzianego słowa. Na rysunku \ref{fig:say} 71 | przedstawiono przykładowy wynik algorytmu na słowie ,,samochód''. 72 | 73 | \begin{figure}[h!] 74 | \includegraphics[width=0.5\textwidth]{say_samochod} 75 | \caption{Energia sygnały zapisu wypowiedzi słowa ,,samochód'' wraz z 76 | lokalizacją początku i końca wypowiedzi.} 77 | \label{fig:say} 78 | \end{figure} 79 | 80 | Do parametryzacji wypowiedzi użyto współczynników kodowania liniowo predykcyjnego. 81 | Rozwiązanie to jest proste: nie wymaga dużo czasu ani pamięci na obliczenia, a 82 | daje stosunkowo bardzo dobre rezultaty. 83 | 84 | Została zaprojektowana sieć feed-forward posiadająca 13 neuronów wejściowych 85 | (odpowiadające ilości współczynników LPC), 19 neuronów warstwy ukrytej oraz 6 86 | neuronów warstwy wyjściowej, co odpowiada ilości osób w bazie. Na rysunku 87 | \ref{fig:network} pokazano schemat połączeń sieci. 88 | 89 | \begin{figure} 90 | \includegraphics[width=0.5\textwidth]{network} 91 | \caption{Schemat połączeń sieci neuronowej} 92 | \label{fig:network} 93 | \end{figure} 94 | 95 | \section{Parametryzacja wypowiedzi - ekstrakcja cech} 96 | 97 | Jak zostało wcześniej powiedziane cechy wypowiedzi muszą być zależne do 98 | konkretnych osób (wysokość głosu, lokalizacja formantów). Poniżej zostanie 99 | przedstawione kilka sposób estymacji tych wartości z cyfrowych próbek mowy. 100 | 101 | \textbf{Dyskretna Transformata Fouriera} - w przeciwieństwie do sygnału w 102 | dziedzinie czasu, w dziedzinie częstotliwości można uzyskać informacje o tonie 103 | głosu i lokalizacji formantów. Jednak transformata Fouriera zawiera zbyt dużo 104 | niepotrzebnych informacji, co bardzo utrudnia jej użycie w przypadku 105 | zastosowania sieci neuronowych. 106 | 107 | \textbf{Linear Predictive Coding, LPC} - kodowanie liniowo predykcyjne to 108 | prosta, a zarazem potężna metoda wyciągania informacji o lokalizacji formantów. 109 | W skrócie algorytm LPC pozwala znaleźć wektor współczynników opisujących 110 | widmową obwiednię amplitudy DFT. Współczynniki każdej próbki mogą być wyliczone 111 | jako liniowa kombinacja współczynników próbki poprzedniej, co pokazuje równanie 112 | \ref{eqn:lpc}. 113 | 114 | \begin{equation}\label{eqn:lpc} 115 | x(n) - \sum_{k=1}^p a_k x(n-k) + e(n) 116 | \end{equation} 117 | 118 | $p$ współczynników $a_k$ minimalizujących błąd między sygnałem a jego estymatą 119 | są znane jako współczynniki LPC $p$-tego rzędu. Współczynniki LPC 13-rzędu dla 120 | słowa ,,samochód'' dla wszystkich osób z bazy znajdują się na rysunku 121 | \ref{fig:lpc}. 122 | 123 | \begin{figure} 124 | \includegraphics[width=0.5\textwidth]{lpc_samochod} 125 | \caption{Współczynniki LPC 13-tego rzędy dla wszystkich osób z bazy} 126 | \label{fig:lpc} 127 | \end{figure} 128 | 129 | \textbf{Współczynniki Cepstralne} - te współczynniki niosą bardzo podobne 130 | informacje jak współczynniki LPC. Opisują obwiednie widmową amplitudy DFT. 131 | Cepstrum to transformata Fouriera z logarytmu amplitudy transformaty Fouriera 132 | sygnału (patrz równanie \ref{eqn:cepstrum}). 133 | 134 | \begin{equation}\label{eqn:cepstrum} 135 | C = DFT( \log ( | DFT (x) | ) ) 136 | \end{equation} 137 | 138 | Cepstrum zmniejsza liniowy trend spectrum oraz usuwa z sygnału informacje o 139 | mówcy, ta strata informacji przydatna jest w aplikacjach do rozpoznawania 140 | treści wypowiedzi. 141 | 142 | Współczynniki cepstralne można obliczyć z współczynników LPC z użyciem 143 | zależności \ref{eqn:lpc_cep}. 144 | 145 | \begin{equation}\label{eqn:lpc_cep} 146 | c_i = a_i + \frac{1}{i} \sum_{j=1}^{i-1} (j)a_{i-j} c_j 147 | \end{equation} 148 | 149 | Użycie współczynników cepstralnych, oprócz tego, że usuwa informacje o mówcy i 150 | daje się wyliczyć z LPC nie przyniosło poprawy rezultatów rozpoznawania, 151 | dlatego do dalszej analizy wybrano współczynniki LPC 13-tego rzędu. 152 | 153 | 154 | \section{Budowa sieci neuronowej} 155 | 156 | Sieć nieuronowa użyta w badaniach to typowa, trzywarstwowa sieć neuronowa 157 | feed-forward. Głównym problemem przy projektowaniu sieć do rozpoznawania mówców 158 | jest to, że ilość rozpoznawanych osób musi być znana na początku. Ilość 159 | neuronów warstwie wyjściowej odpowiada rozmiarowi bazy osób, a aktywacja 160 | wyjścia jest tożsama z rozpoznaniem danej osoby. 161 | 162 | Ilość neuronów w warstwie wejściowej odpowiada ilości współczynników LPC, czyli 163 | 13. Jak można zaobserwować na rysunku \ref{fig:lpc} wyższy rząd współczynników 164 | nie poprawił by rezultatów, bo dla każdej z osób te współczynniki są bardzo 165 | bliskie zeru. 166 | 167 | Ilość neuronów w warstwie ukrytej jest dobrana doświadczalnie. Dla mniejszej 168 | liczby sieć miała problemy z zapamiętywaniem wzorców, a dla większej liczby nie 169 | było widocznej poprawy rezultatów. 170 | 171 | \section{Testowanie} 172 | 173 | W czasie testów skupiono się na dwóch ważnych aspektach tego problemu. 174 | Rozpoznawanie zależne/niezależne od treści słowa oraz sposób uczenia sieci 175 | neuronowej. 176 | 177 | \subsection{Zależność od treści} 178 | 179 | Nasza baza próbek glosuj pozwoliła nam na testy jakości rozpoznawania mówcy w 180 | przypadku użycia tych samych i różnych słów przez każdą osobę. Imię i nazwisko 181 | jest inne dla prawie każdej osoby, a pozostałe dwa słowa (,,samochód'' i 182 | ,,kot'') były wypowiedziane przez każdą osobę z bazy. Wykres \ref{fig:word} 183 | przedstawia parametry analizy regresji sieci uczonej metodą wstecznej 184 | propagacji błędu z momentem, dla wszystkich czterech słów. 185 | 186 | \begin{figure}[h!] 187 | \includegraphics[width=0.5\textwidth]{word_network_reggresion} 188 | \caption{Wykres parametrów regresji liniowej w zależności od słowa użytego 189 | do rozpoznawania} 190 | \label{fig:word} 191 | \end{figure} 192 | 193 | Najlepszą metodą (parametry opisującą prostą regresji zbliżone do $y=x$, niski 194 | błąd, wysoka korelacja wyjścia i wejścia) okazała się metoda zależna od treści, 195 | mianowicie wykorzystanie słowa ,,samochód''. Wykorzystanie słowa ,,kot'', 196 | pomimo, że jest to również metoda zależna od treści (która z założenia powinna 197 | dawać lepsze rezultaty), jest metodą najgorszą. Duży wpływ na taki wynik może 198 | mieć to, że słowo ,,kot'' jest bardzo krótkie, co za tym idzie, niesie mało 199 | informacji. 200 | 201 | Dobre efekty dało również wykorzystanie imienia osoby jako analizowanego słowa, 202 | wpływ na to może mieć to, że żadne z imion się nie powtarza. Wykorzystanie 203 | nazwiska nie dało zadowalających rezultatów, może to być spowodowane tym, że w 204 | badzie występują 3 osoby o tych samych nazwiskach. 205 | 206 | \subsection{Sposób trenowania sieci} 207 | 208 | Użyta implementacja trenowanie sieci czterema algorytmami, dodatkowo jeden 209 | algorytm jest zaimplementowany w wersji wielowątkowej (na wiele procesorów). 210 | Dostępne algorytmu uczenia: 211 | \begin{itemize} 212 | \item \textbf{Alg. wstecznej propagacji błędu z momentem} prosta metoda wstecznej 213 | propagacji błędu z zachowaniem momentu, co zapobiega utkwieniu sieci 214 | w ekstremach lokalnych lub siodłach. 215 | \item \textbf{Alg. RProp} inna metoda wstecznej propagacji błędu. 216 | \item \textbf{Gradient sprzężony} - adaptacja metody numerycznego wyznaczania 217 | ekstremów dla sieci neuronowych 218 | \item \textbf{Alg. BFGS} - ta metoda jest również zaimplementowana wielowątkowo. 219 | 220 | \end{itemize} 221 | Podobnie jak w przypadku różnych słów przeprowadzono testy regresji liniowej 222 | dla każdego sposobu uczenia. Porównanie parametrów znajduje się na wykresie 223 | \ref{fig:train}. 224 | 225 | 226 | \begin{figure}[h!] 227 | \includegraphics[width=0.5\textwidth]{training_network_reggresion} 228 | \caption{Wykres parametrów regresji liniowej w zależności od metody uczenia 229 | sieci neuronowej} 230 | \label{fig:train} 231 | \end{figure} 232 | 233 | Żadna z pokazanych metod uczenia nie wykazała znaczącej przewagi nad innymi. 234 | Można jedynie zauważyć, że metoda wykorzystująca algorytm RProp daje rezultaty 235 | sporo poniżej wartości średniej. 236 | 237 | \section{Podsumowanie} 238 | 239 | W trakcie badań udało się zaimplementować podany algorytm wykrywania aktywności 240 | mówcy, wyliczanie współczynników LPC. Do zastosowań pozatestowych do uczenia 241 | sieci użyto algorytmu BFGS i wybrano porównanie na podstawie słowa ,,samochód''. 242 | 243 | W rozwoju aplikacji zostało kilka miejsc do uzupełnienia, takich jak 244 | znalezienie lepszych parametrów opisujących wypowiedź, takich które przechowują 245 | więcej cech osobowych, czy też sprawdzanie poprawności klasyfikacji z użyciem 246 | większej ilość długich słów. 247 | 248 | 249 | \section{Dodatek A: Opis aplikacji} 250 | 251 | Zostało przygotowanych kilka skryptów które realizują wszystkie zadania 252 | dotyczące rozpoznawania mówcy. Głównym skryptem jest \verb|network_test.py|. 253 | Pozwala on na nauczenie sieci (parametr \verb|-a learn|) oraz na próbe 254 | dopasowania wzorca z bazy (\verb|-a test|) lub nagrania i dopasowania nowego 255 | wzorca (\verb|-a record|). Aby określić słowo które ma zostać uzyte w 256 | uczeniu/testowaniu nalezy dodać parametr \verb|-w słowo|. 257 | 258 | 259 | \begin{thebibliography}{123} 260 | \bibitem{textind}Text-Independent Speaker Recognition Based on Neural Networks, 261 | \url{http://www.neuralnetworks.it/neuralnetspeaker.asp} 262 | \bibitem{VINING}Automatic Speaker Recognition Using Neural Networks, \emph{Braian 263 | J. Love, Jennifer Vining, Xuening Sun}, 2004 264 | \bibitem{FFNET}Fast-forward neural network library for python, 265 | \url{http://ffnet.sourceforge.net/} 266 | \bibitem{github}Repozytorium zawierające kod źródłowy omawianego projektu, 267 | \url{https://github.com/barthez/speaker-recognition-nn} 268 | \end{thebibliography} 269 | 270 | \end{document} 271 | -------------------------------------------------------------------------------- /doc/word_network_reggresion.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%Title: /home/bartek/Programy/ssn/word_network_reggresion.eps 3 | %%Creator: matplotlib version 1.1.0, http://matplotlib.sourceforge.net/ 4 | %%CreationDate: Wed Jun 13 20:54:07 2012 5 | %%Orientation: portrait 6 | %%BoundingBox: -265 180 877 612 7 | %%EndComments 8 | %%BeginProlog 9 | /mpldict 8 dict def 10 | mpldict begin 11 | /m { moveto } bind def 12 | /l { lineto } bind def 13 | /r { rlineto } bind def 14 | /c { curveto } bind def 15 | /cl { closepath } bind def 16 | /box { 17 | m 18 | 1 index 0 r 19 | 0 exch r 20 | neg 0 r 21 | cl 22 | } bind def 23 | /clipbox { 24 | box 25 | clip 26 | newpath 27 | } bind def 28 | %!PS-Adobe-3.0 Resource-Font 29 | %%Title: Bitstream Vera Sans 30 | %%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. 31 | %%Creator: Converted from TrueType to type 3 by PPR 32 | 25 dict begin 33 | /_d{bind def}bind def 34 | /_m{moveto}_d 35 | /_l{lineto}_d 36 | /_cl{closepath eofill}_d 37 | /_c{curveto}_d 38 | /_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d 39 | /_e{exec}_d 40 | /FontName /BitstreamVeraSans-Roman def 41 | /PaintType 0 def 42 | /FontMatrix[.001 0 0 .001 0 0]def 43 | /FontBBox[-183 -236 1287 928]def 44 | /FontType 3 def 45 | /Encoding [ /space /hyphen /period /zero /one /two /four /six /eight /E /I /K /N /P /R /S /a /c /d /e /h /i /k /l /m /n /o /p /r /s /t /u /v /w /z /oacute /acute ] def 46 | /FontInfo 10 dict dup begin 47 | /FamilyName (Bitstream Vera Sans) def 48 | /FullName (Bitstream Vera Sans) def 49 | /Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc.) def 50 | /Weight (Roman) def 51 | /Version (Release 1.10) def 52 | /ItalicAngle 0.0 def 53 | /isFixedPitch false def 54 | /UnderlinePosition -213 def 55 | /UnderlineThickness 143 def 56 | end readonly def 57 | /CharStrings 37 dict dup begin 58 | /space{318 0 0 0 0 0 _sc 59 | }_d 60 | /hyphen{361 0 49 234 312 314 _sc 61 | 49 314 _m 62 | 312 314 _l 63 | 312 234 _l 64 | 49 234 _l 65 | 49 314 _l 66 | _cl}_d 67 | /period{318 0 107 0 210 124 _sc 68 | 107 124 _m 69 | 210 124 _l 70 | 210 0 _l 71 | 107 0 _l 72 | 107 124 _l 73 | _cl}_d 74 | /zero{636 0 66 -13 570 742 _sc 75 | 318 664 _m 76 | 267 664 229 639 203 589 _c 77 | 177 539 165 464 165 364 _c 78 | 165 264 177 189 203 139 _c 79 | 229 89 267 64 318 64 _c 80 | 369 64 407 89 433 139 _c 81 | 458 189 471 264 471 364 _c 82 | 471 464 458 539 433 589 _c 83 | 407 639 369 664 318 664 _c 84 | 318 742 _m 85 | 399 742 461 709 505 645 _c 86 | 548 580 570 486 570 364 _c 87 | 570 241 548 147 505 83 _c 88 | 461 19 399 -13 318 -13 _c 89 | 236 -13 173 19 130 83 _c 90 | 87 147 66 241 66 364 _c 91 | 66 486 87 580 130 645 _c 92 | 173 709 236 742 318 742 _c 93 | _cl}_d 94 | /one{636 0 110 0 544 729 _sc 95 | 124 83 _m 96 | 285 83 _l 97 | 285 639 _l 98 | 110 604 _l 99 | 110 694 _l 100 | 284 729 _l 101 | 383 729 _l 102 | 383 83 _l 103 | 544 83 _l 104 | 544 0 _l 105 | 124 0 _l 106 | 124 83 _l 107 | _cl}_d 108 | /two{{636 0 73 0 536 742 _sc 109 | 192 83 _m 110 | 536 83 _l 111 | 536 0 _l 112 | 73 0 _l 113 | 73 83 _l 114 | 110 121 161 173 226 239 _c 115 | 290 304 331 346 348 365 _c 116 | 380 400 402 430 414 455 _c 117 | 426 479 433 504 433 528 _c 118 | 433 566 419 598 392 622 _c 119 | 365 646 330 659 286 659 _c 120 | 255 659 222 653 188 643 _c 121 | 154 632 117 616 78 594 _c 122 | 78 694 _l 123 | 118 710 155 722 189 730 _c 124 | 223 738 255 742 284 742 _c 125 | 359 742 419 723 464 685 _c 126 | 509 647 532 597 532 534 _c 127 | 532 504 526 475 515 449 _c 128 | 504 422 484 390 454 354 _c 129 | 446 344 420 317 376 272 _c 130 | 332 227 271 164 192 83 _c 131 | _cl}_e}_d 132 | /four{636 0 49 0 580 729 _sc 133 | 378 643 _m 134 | 129 254 _l 135 | 378 254 _l 136 | 378 643 _l 137 | 352 729 _m 138 | 476 729 _l 139 | 476 254 _l 140 | 580 254 _l 141 | 580 172 _l 142 | 476 172 _l 143 | 476 0 _l 144 | 378 0 _l 145 | 378 172 _l 146 | 49 172 _l 147 | 49 267 _l 148 | 352 729 _l 149 | _cl}_d 150 | /six{{636 0 70 -13 573 742 _sc 151 | 330 404 _m 152 | 286 404 251 388 225 358 _c 153 | 199 328 186 286 186 234 _c 154 | 186 181 199 139 225 109 _c 155 | 251 79 286 64 330 64 _c 156 | 374 64 409 79 435 109 _c 157 | 461 139 474 181 474 234 _c 158 | 474 286 461 328 435 358 _c 159 | 409 388 374 404 330 404 _c 160 | 526 713 _m 161 | 526 623 _l 162 | 501 635 476 644 451 650 _c 163 | 425 656 400 659 376 659 _c 164 | 310 659 260 637 226 593 _c 165 | 192 549 172 482 168 394 _c 166 | 187 422 211 444 240 459 _c 167 | 269 474 301 482 336 482 _c 168 | 409 482 467 459 509 415 _c 169 | 551 371 573 310 573 234 _c 170 | 573 159 550 99 506 54 _c 171 | 462 9 403 -13 330 -13 _c 172 | 246 -13 181 19 137 83 _c 173 | 92 147 70 241 70 364 _c 174 | 70 479 97 571 152 639 _c 175 | 206 707 280 742 372 742 _c 176 | }_e{396 742 421 739 447 735 _c 177 | 472 730 498 723 526 713 _c 178 | _cl}_e}_d 179 | /eight{{636 0 68 -13 568 742 _sc 180 | 318 346 _m 181 | 271 346 234 333 207 308 _c 182 | 180 283 167 249 167 205 _c 183 | 167 161 180 126 207 101 _c 184 | 234 76 271 64 318 64 _c 185 | 364 64 401 76 428 102 _c 186 | 455 127 469 161 469 205 _c 187 | 469 249 455 283 429 308 _c 188 | 402 333 365 346 318 346 _c 189 | 219 388 _m 190 | 177 398 144 418 120 447 _c 191 | 96 476 85 511 85 553 _c 192 | 85 611 105 657 147 691 _c 193 | 188 725 245 742 318 742 _c 194 | 390 742 447 725 489 691 _c 195 | 530 657 551 611 551 553 _c 196 | 551 511 539 476 515 447 _c 197 | 491 418 459 398 417 388 _c 198 | 464 377 501 355 528 323 _c 199 | 554 291 568 251 568 205 _c 200 | 568 134 546 80 503 43 _c 201 | 459 5 398 -13 318 -13 _c 202 | 237 -13 175 5 132 43 _c 203 | 89 80 68 134 68 205 _c 204 | 68 251 81 291 108 323 _c 205 | 134 355 171 377 219 388 _c 206 | }_e{183 544 _m 207 | 183 506 194 476 218 455 _c 208 | 242 434 275 424 318 424 _c 209 | 360 424 393 434 417 455 _c 210 | 441 476 453 506 453 544 _c 211 | 453 582 441 611 417 632 _c 212 | 393 653 360 664 318 664 _c 213 | 275 664 242 653 218 632 _c 214 | 194 611 183 582 183 544 _c 215 | _cl}_e}_d 216 | /E{632 0 98 0 568 729 _sc 217 | 98 729 _m 218 | 559 729 _l 219 | 559 646 _l 220 | 197 646 _l 221 | 197 430 _l 222 | 544 430 _l 223 | 544 347 _l 224 | 197 347 _l 225 | 197 83 _l 226 | 568 83 _l 227 | 568 0 _l 228 | 98 0 _l 229 | 98 729 _l 230 | _cl}_d 231 | /I{295 0 98 0 197 729 _sc 232 | 98 729 _m 233 | 197 729 _l 234 | 197 0 _l 235 | 98 0 _l 236 | 98 729 _l 237 | _cl}_d 238 | /K{656 0 98 0 677 729 _sc 239 | 98 729 _m 240 | 197 729 _l 241 | 197 421 _l 242 | 524 729 _l 243 | 651 729 _l 244 | 289 389 _l 245 | 677 0 _l 246 | 547 0 _l 247 | 197 351 _l 248 | 197 0 _l 249 | 98 0 _l 250 | 98 729 _l 251 | _cl}_d 252 | /N{748 0 98 0 650 729 _sc 253 | 98 729 _m 254 | 231 729 _l 255 | 554 119 _l 256 | 554 729 _l 257 | 650 729 _l 258 | 650 0 _l 259 | 517 0 _l 260 | 194 610 _l 261 | 194 0 _l 262 | 98 0 _l 263 | 98 729 _l 264 | _cl}_d 265 | /P{603 0 98 0 569 729 _sc 266 | 197 648 _m 267 | 197 374 _l 268 | 321 374 _l 269 | 367 374 402 385 427 409 _c 270 | 452 433 465 467 465 511 _c 271 | 465 555 452 588 427 612 _c 272 | 402 636 367 648 321 648 _c 273 | 197 648 _l 274 | 98 729 _m 275 | 321 729 _l 276 | 402 729 464 710 506 673 _c 277 | 548 636 569 582 569 511 _c 278 | 569 439 548 384 506 348 _c 279 | 464 311 402 293 321 293 _c 280 | 197 293 _l 281 | 197 0 _l 282 | 98 0 _l 283 | 98 729 _l 284 | _cl}_d 285 | /R{{695 0 98 0 666 729 _sc 286 | 444 342 _m 287 | 465 334 486 319 506 296 _c 288 | 526 272 546 240 566 199 _c 289 | 666 0 _l 290 | 560 0 _l 291 | 467 187 _l 292 | 443 235 419 268 397 284 _c 293 | 374 300 343 308 304 308 _c 294 | 197 308 _l 295 | 197 0 _l 296 | 98 0 _l 297 | 98 729 _l 298 | 321 729 _l 299 | 404 729 466 711 507 677 _c 300 | 548 642 569 589 569 519 _c 301 | 569 473 558 434 537 404 _c 302 | 515 374 484 353 444 342 _c 303 | 197 648 _m 304 | 197 389 _l 305 | 321 389 _l 306 | 368 389 404 400 428 422 _c 307 | 452 444 465 476 465 519 _c 308 | 465 561 452 593 428 615 _c 309 | 404 637 368 648 321 648 _c 310 | 197 648 _l 311 | _cl}_e}_d 312 | /S{{635 0 66 -13 579 742 _sc 313 | 535 705 _m 314 | 535 609 _l 315 | 497 627 462 640 429 649 _c 316 | 395 657 363 662 333 662 _c 317 | 279 662 237 651 208 631 _c 318 | 179 610 165 580 165 542 _c 319 | 165 510 174 485 194 469 _c 320 | 213 452 250 439 304 429 _c 321 | 364 417 _l 322 | 437 403 491 378 526 343 _c 323 | 561 307 579 260 579 201 _c 324 | 579 130 555 77 508 41 _c 325 | 460 5 391 -13 300 -13 _c 326 | 265 -13 228 -9 189 -2 _c 327 | 150 5 110 16 69 32 _c 328 | 69 134 _l 329 | 109 111 148 94 186 83 _c 330 | 224 71 262 66 300 66 _c 331 | 356 66 399 77 430 99 _c 332 | 460 121 476 152 476 194 _c 333 | 476 230 465 258 443 278 _c 334 | 421 298 385 313 335 323 _c 335 | 275 335 _l 336 | 201 349 148 372 115 404 _c 337 | 82 435 66 478 66 534 _c 338 | 66 598 88 649 134 686 _c 339 | 179 723 242 742 322 742 _c 340 | }_e{356 742 390 739 426 733 _c 341 | 461 727 497 717 535 705 _c 342 | _cl}_e}_d 343 | /a{{613 0 60 -13 522 560 _sc 344 | 343 275 _m 345 | 270 275 220 266 192 250 _c 346 | 164 233 150 205 150 165 _c 347 | 150 133 160 107 181 89 _c 348 | 202 70 231 61 267 61 _c 349 | 317 61 357 78 387 114 _c 350 | 417 149 432 196 432 255 _c 351 | 432 275 _l 352 | 343 275 _l 353 | 522 312 _m 354 | 522 0 _l 355 | 432 0 _l 356 | 432 83 _l 357 | 411 49 385 25 355 10 _c 358 | 325 -5 287 -13 243 -13 _c 359 | 187 -13 142 2 109 33 _c 360 | 76 64 60 106 60 159 _c 361 | 60 220 80 266 122 298 _c 362 | 163 329 224 345 306 345 _c 363 | 432 345 _l 364 | 432 354 _l 365 | 432 395 418 427 391 450 _c 366 | 364 472 326 484 277 484 _c 367 | 245 484 215 480 185 472 _c 368 | 155 464 127 453 100 439 _c 369 | 100 522 _l 370 | }_e{132 534 164 544 195 550 _c 371 | 226 556 256 560 286 560 _c 372 | 365 560 424 539 463 498 _c 373 | 502 457 522 395 522 312 _c 374 | _cl}_e}_d 375 | /c{{550 0 55 -13 488 560 _sc 376 | 488 526 _m 377 | 488 442 _l 378 | 462 456 437 466 411 473 _c 379 | 385 480 360 484 334 484 _c 380 | 276 484 230 465 198 428 _c 381 | 166 391 150 339 150 273 _c 382 | 150 206 166 154 198 117 _c 383 | 230 80 276 62 334 62 _c 384 | 360 62 385 65 411 72 _c 385 | 437 79 462 90 488 104 _c 386 | 488 21 _l 387 | 462 9 436 0 410 -5 _c 388 | 383 -10 354 -13 324 -13 _c 389 | 242 -13 176 12 128 64 _c 390 | 79 115 55 185 55 273 _c 391 | 55 362 79 432 128 483 _c 392 | 177 534 244 560 330 560 _c 393 | 358 560 385 557 411 551 _c 394 | 437 545 463 537 488 526 _c 395 | _cl}_e}_d 396 | /d{{635 0 55 -13 544 760 _sc 397 | 454 464 _m 398 | 454 760 _l 399 | 544 760 _l 400 | 544 0 _l 401 | 454 0 _l 402 | 454 82 _l 403 | 435 49 411 25 382 10 _c 404 | 353 -5 319 -13 279 -13 _c 405 | 213 -13 159 13 117 65 _c 406 | 75 117 55 187 55 273 _c 407 | 55 359 75 428 117 481 _c 408 | 159 533 213 560 279 560 _c 409 | 319 560 353 552 382 536 _c 410 | 411 520 435 496 454 464 _c 411 | 148 273 _m 412 | 148 207 161 155 188 117 _c 413 | 215 79 253 61 301 61 _c 414 | 348 61 385 79 413 117 _c 415 | 440 155 454 207 454 273 _c 416 | 454 339 440 390 413 428 _c 417 | 385 466 348 485 301 485 _c 418 | 253 485 215 466 188 428 _c 419 | 161 390 148 339 148 273 _c 420 | _cl}_e}_d 421 | /e{{615 0 55 -13 562 560 _sc 422 | 562 296 _m 423 | 562 252 _l 424 | 149 252 _l 425 | 153 190 171 142 205 110 _c 426 | 238 78 284 62 344 62 _c 427 | 378 62 412 66 444 74 _c 428 | 476 82 509 95 541 113 _c 429 | 541 28 _l 430 | 509 14 476 3 442 -3 _c 431 | 408 -9 373 -13 339 -13 _c 432 | 251 -13 182 12 131 62 _c 433 | 80 112 55 181 55 268 _c 434 | 55 357 79 428 127 481 _c 435 | 175 533 241 560 323 560 _c 436 | 397 560 455 536 498 489 _c 437 | 540 441 562 377 562 296 _c 438 | 472 322 _m 439 | 471 371 457 410 431 440 _c 440 | 404 469 368 484 324 484 _c 441 | 274 484 234 469 204 441 _c 442 | 174 413 156 373 152 322 _c 443 | 472 322 _l 444 | _cl}_e}_d 445 | /h{634 0 91 0 549 760 _sc 446 | 549 330 _m 447 | 549 0 _l 448 | 459 0 _l 449 | 459 327 _l 450 | 459 379 448 417 428 443 _c 451 | 408 469 378 482 338 482 _c 452 | 289 482 251 466 223 435 _c 453 | 195 404 181 362 181 309 _c 454 | 181 0 _l 455 | 91 0 _l 456 | 91 760 _l 457 | 181 760 _l 458 | 181 462 _l 459 | 202 494 227 519 257 535 _c 460 | 286 551 320 560 358 560 _c 461 | 420 560 468 540 500 501 _c 462 | 532 462 549 405 549 330 _c 463 | _cl}_d 464 | /i{278 0 94 0 184 760 _sc 465 | 94 547 _m 466 | 184 547 _l 467 | 184 0 _l 468 | 94 0 _l 469 | 94 547 _l 470 | 94 760 _m 471 | 184 760 _l 472 | 184 646 _l 473 | 94 646 _l 474 | 94 760 _l 475 | _cl}_d 476 | /k{579 0 91 0 576 760 _sc 477 | 91 760 _m 478 | 181 760 _l 479 | 181 311 _l 480 | 449 547 _l 481 | 564 547 _l 482 | 274 291 _l 483 | 576 0 _l 484 | 459 0 _l 485 | 181 267 _l 486 | 181 0 _l 487 | 91 0 _l 488 | 91 760 _l 489 | _cl}_d 490 | /l{278 0 94 0 184 760 _sc 491 | 94 760 _m 492 | 184 760 _l 493 | 184 0 _l 494 | 94 0 _l 495 | 94 760 _l 496 | _cl}_d 497 | /m{{974 0 91 0 889 560 _sc 498 | 520 442 _m 499 | 542 482 569 511 600 531 _c 500 | 631 550 668 560 711 560 _c 501 | 767 560 811 540 842 500 _c 502 | 873 460 889 403 889 330 _c 503 | 889 0 _l 504 | 799 0 _l 505 | 799 327 _l 506 | 799 379 789 418 771 444 _c 507 | 752 469 724 482 686 482 _c 508 | 639 482 602 466 575 435 _c 509 | 548 404 535 362 535 309 _c 510 | 535 0 _l 511 | 445 0 _l 512 | 445 327 _l 513 | 445 379 435 418 417 444 _c 514 | 398 469 369 482 331 482 _c 515 | 285 482 248 466 221 435 _c 516 | 194 404 181 362 181 309 _c 517 | 181 0 _l 518 | 91 0 _l 519 | 91 547 _l 520 | 181 547 _l 521 | 181 462 _l 522 | 201 495 226 520 255 536 _c 523 | 283 552 317 560 357 560 _c 524 | 397 560 430 550 458 530 _c 525 | 486 510 506 480 520 442 _c 526 | }_e{_cl}_e}_d 527 | /n{634 0 91 0 549 560 _sc 528 | 549 330 _m 529 | 549 0 _l 530 | 459 0 _l 531 | 459 327 _l 532 | 459 379 448 417 428 443 _c 533 | 408 469 378 482 338 482 _c 534 | 289 482 251 466 223 435 _c 535 | 195 404 181 362 181 309 _c 536 | 181 0 _l 537 | 91 0 _l 538 | 91 547 _l 539 | 181 547 _l 540 | 181 462 _l 541 | 202 494 227 519 257 535 _c 542 | 286 551 320 560 358 560 _c 543 | 420 560 468 540 500 501 _c 544 | 532 462 549 405 549 330 _c 545 | _cl}_d 546 | /o{612 0 55 -13 557 560 _sc 547 | 306 484 _m 548 | 258 484 220 465 192 427 _c 549 | 164 389 150 338 150 273 _c 550 | 150 207 163 156 191 118 _c 551 | 219 80 257 62 306 62 _c 552 | 354 62 392 80 420 118 _c 553 | 448 156 462 207 462 273 _c 554 | 462 337 448 389 420 427 _c 555 | 392 465 354 484 306 484 _c 556 | 306 560 _m 557 | 384 560 445 534 490 484 _c 558 | 534 433 557 363 557 273 _c 559 | 557 183 534 113 490 63 _c 560 | 445 12 384 -13 306 -13 _c 561 | 227 -13 165 12 121 63 _c 562 | 77 113 55 183 55 273 _c 563 | 55 363 77 433 121 484 _c 564 | 165 534 227 560 306 560 _c 565 | _cl}_d 566 | /p{{635 0 91 -207 580 560 _sc 567 | 181 82 _m 568 | 181 -207 _l 569 | 91 -207 _l 570 | 91 547 _l 571 | 181 547 _l 572 | 181 464 _l 573 | 199 496 223 520 252 536 _c 574 | 281 552 316 560 356 560 _c 575 | 422 560 476 533 518 481 _c 576 | 559 428 580 359 580 273 _c 577 | 580 187 559 117 518 65 _c 578 | 476 13 422 -13 356 -13 _c 579 | 316 -13 281 -5 252 10 _c 580 | 223 25 199 49 181 82 _c 581 | 487 273 _m 582 | 487 339 473 390 446 428 _c 583 | 418 466 381 485 334 485 _c 584 | 286 485 249 466 222 428 _c 585 | 194 390 181 339 181 273 _c 586 | 181 207 194 155 222 117 _c 587 | 249 79 286 61 334 61 _c 588 | 381 61 418 79 446 117 _c 589 | 473 155 487 207 487 273 _c 590 | _cl}_e}_d 591 | /r{411 0 91 0 411 560 _sc 592 | 411 463 _m 593 | 401 469 390 473 378 476 _c 594 | 366 478 353 480 339 480 _c 595 | 288 480 249 463 222 430 _c 596 | 194 397 181 350 181 288 _c 597 | 181 0 _l 598 | 91 0 _l 599 | 91 547 _l 600 | 181 547 _l 601 | 181 462 _l 602 | 199 495 224 520 254 536 _c 603 | 284 552 321 560 365 560 _c 604 | 371 560 378 559 386 559 _c 605 | 393 558 401 557 411 555 _c 606 | 411 463 _l 607 | _cl}_d 608 | /s{{521 0 54 -13 472 560 _sc 609 | 443 531 _m 610 | 443 446 _l 611 | 417 458 391 468 364 475 _c 612 | 336 481 308 485 279 485 _c 613 | 234 485 200 478 178 464 _c 614 | 156 450 145 430 145 403 _c 615 | 145 382 153 366 169 354 _c 616 | 185 342 217 330 265 320 _c 617 | 296 313 _l 618 | 360 299 405 279 432 255 _c 619 | 458 230 472 195 472 151 _c 620 | 472 100 452 60 412 31 _c 621 | 372 1 316 -13 246 -13 _c 622 | 216 -13 186 -10 154 -5 _c 623 | 122 0 89 8 54 20 _c 624 | 54 113 _l 625 | 87 95 120 82 152 74 _c 626 | 184 65 216 61 248 61 _c 627 | 290 61 323 68 346 82 _c 628 | 368 96 380 117 380 144 _c 629 | 380 168 371 187 355 200 _c 630 | 339 213 303 226 247 238 _c 631 | 216 245 _l 632 | 160 257 119 275 95 299 _c 633 | 70 323 58 356 58 399 _c 634 | 58 450 76 490 112 518 _c 635 | 148 546 200 560 268 560 _c 636 | }_e{301 560 332 557 362 552 _c 637 | 391 547 418 540 443 531 _c 638 | _cl}_e}_d 639 | /t{392 0 27 0 368 702 _sc 640 | 183 702 _m 641 | 183 547 _l 642 | 368 547 _l 643 | 368 477 _l 644 | 183 477 _l 645 | 183 180 _l 646 | 183 135 189 106 201 94 _c 647 | 213 81 238 75 276 75 _c 648 | 368 75 _l 649 | 368 0 _l 650 | 276 0 _l 651 | 206 0 158 13 132 39 _c 652 | 106 65 93 112 93 180 _c 653 | 93 477 _l 654 | 27 477 _l 655 | 27 547 _l 656 | 93 547 _l 657 | 93 702 _l 658 | 183 702 _l 659 | _cl}_d 660 | /u{634 0 85 -13 543 547 _sc 661 | 85 216 _m 662 | 85 547 _l 663 | 175 547 _l 664 | 175 219 _l 665 | 175 167 185 129 205 103 _c 666 | 225 77 255 64 296 64 _c 667 | 344 64 383 79 411 110 _c 668 | 439 141 453 183 453 237 _c 669 | 453 547 _l 670 | 543 547 _l 671 | 543 0 _l 672 | 453 0 _l 673 | 453 84 _l 674 | 431 50 405 26 377 10 _c 675 | 348 -5 315 -13 277 -13 _c 676 | 214 -13 166 6 134 45 _c 677 | 101 83 85 140 85 216 _c 678 | _cl}_d 679 | /v{592 0 30 0 562 547 _sc 680 | 30 547 _m 681 | 125 547 _l 682 | 296 88 _l 683 | 467 547 _l 684 | 562 547 _l 685 | 357 0 _l 686 | 235 0 _l 687 | 30 547 _l 688 | _cl}_d 689 | /w{818 0 42 0 776 547 _sc 690 | 42 547 _m 691 | 132 547 _l 692 | 244 120 _l 693 | 356 547 _l 694 | 462 547 _l 695 | 574 120 _l 696 | 686 547 _l 697 | 776 547 _l 698 | 633 0 _l 699 | 527 0 _l 700 | 409 448 _l 701 | 291 0 _l 702 | 185 0 _l 703 | 42 547 _l 704 | _cl}_d 705 | /z{525 0 43 0 482 547 _sc 706 | 55 547 _m 707 | 482 547 _l 708 | 482 465 _l 709 | 144 72 _l 710 | 482 72 _l 711 | 482 0 _l 712 | 43 0 _l 713 | 43 82 _l 714 | 381 475 _l 715 | 55 475 _l 716 | 55 547 _l 717 | _cl}_d 718 | /oacute{612 0 55 -13 557 800 _sc 719 | false CharStrings /o get exec 720 | gsave 56 0 translate 721 | false CharStrings /acute get exec 722 | grestore }_d 723 | /acute{500 0 181 616 415 800 _sc 724 | 318 800 _m 725 | 415 800 _l 726 | 256 616 _l 727 | 181 616 _l 728 | 318 800 _l 729 | _cl}_d 730 | end readonly def 731 | 732 | /BuildGlyph 733 | {exch begin 734 | CharStrings exch 735 | 2 copy known not{pop /.notdef}if 736 | true 3 1 roll get exec 737 | end}_d 738 | 739 | /BuildChar { 740 | 1 index /Encoding get exch get 741 | 1 index /BuildGlyph get exec 742 | }_d 743 | 744 | FontName currentdict end definefont pop 745 | end 746 | %%EndProlog 747 | mpldict begin 748 | -265.95 180 translate 749 | 1143.9 432 0 0 clipbox 750 | gsave 751 | 0 0 m 752 | 1143.9 0 l 753 | 1143.9 432 l 754 | 0 432 l 755 | cl 756 | 1.000 setgray 757 | fill 758 | grestore 759 | gsave 760 | 142.987 43.2 m 761 | 1029.51 43.2 l 762 | 1029.51 388.8 l 763 | 142.987 388.8 l 764 | cl 765 | 1.000 setgray 766 | fill 767 | grestore 768 | 1.000 setlinewidth 769 | 1 setlinejoin 770 | 2 setlinecap 771 | [] 0 setdash 772 | 0.000 setgray 773 | gsave 774 | 886.5 345.6 143 43.2 clipbox 775 | 167.613 43.2 m 776 | 189.776 43.2 l 777 | 189.776 353.047 l 778 | 167.613 353.047 l 779 | cl 780 | gsave 781 | 1.000 0.157 0.000 setrgbcolor 782 | fill 783 | grestore 784 | stroke 785 | grestore 786 | gsave 787 | 886.5 345.6 143 43.2 clipbox 788 | 315.367 43.2 m 789 | 337.53 43.2 l 790 | 337.53 52.6048 l 791 | 315.367 52.6048 l 792 | cl 793 | gsave 794 | 1.000 0.157 0.000 setrgbcolor 795 | fill 796 | grestore 797 | stroke 798 | grestore 799 | gsave 800 | 886.5 345.6 143 43.2 clipbox 801 | 463.121 43.2 m 802 | 485.284 43.2 l 803 | 485.284 361.9 l 804 | 463.121 361.9 l 805 | cl 806 | gsave 807 | 1.000 0.157 0.000 setrgbcolor 808 | fill 809 | grestore 810 | stroke 811 | grestore 812 | gsave 813 | 886.5 345.6 143 43.2 clipbox 814 | 610.874 43.2 m 815 | 633.037 43.2 l 816 | 633.037 43.2 l 817 | 610.874 43.2 l 818 | cl 819 | gsave 820 | 1.000 0.157 0.000 setrgbcolor 821 | fill 822 | grestore 823 | stroke 824 | grestore 825 | gsave 826 | 886.5 345.6 143 43.2 clipbox 827 | 758.628 43.2 m 828 | 780.791 43.2 l 829 | 780.791 66.0577 l 830 | 758.628 66.0577 l 831 | cl 832 | gsave 833 | 1.000 0.157 0.000 setrgbcolor 834 | fill 835 | grestore 836 | stroke 837 | grestore 838 | gsave 839 | 886.5 345.6 143 43.2 clipbox 840 | 906.382 43.2 m 841 | 928.545 43.2 l 842 | 928.545 89.858 l 843 | 906.382 89.858 l 844 | cl 845 | gsave 846 | 1.000 0.157 0.000 setrgbcolor 847 | fill 848 | grestore 849 | stroke 850 | grestore 851 | gsave 852 | 886.5 345.6 143 43.2 clipbox 853 | 192.239 43.2 m 854 | 214.402 43.2 l 855 | 214.402 215.649 l 856 | 192.239 215.649 l 857 | cl 858 | gsave 859 | 1.000 0.722 0.000 setrgbcolor 860 | fill 861 | grestore 862 | stroke 863 | grestore 864 | gsave 865 | 886.5 345.6 143 43.2 clipbox 866 | 339.992 43.2 m 867 | 362.156 43.2 l 868 | 362.156 77.8541 l 869 | 339.992 77.8541 l 870 | cl 871 | gsave 872 | 1.000 0.722 0.000 setrgbcolor 873 | fill 874 | grestore 875 | stroke 876 | grestore 877 | gsave 878 | 886.5 345.6 143 43.2 clipbox 879 | 487.746 43.2 m 880 | 509.909 43.2 l 881 | 509.909 214.915 l 882 | 487.746 214.915 l 883 | cl 884 | gsave 885 | 1.000 0.722 0.000 setrgbcolor 886 | fill 887 | grestore 888 | stroke 889 | grestore 890 | gsave 891 | 886.5 345.6 143 43.2 clipbox 892 | 635.5 43.2 m 893 | 657.663 43.2 l 894 | 657.663 75.2306 l 895 | 635.5 75.2306 l 896 | cl 897 | gsave 898 | 1.000 0.722 0.000 setrgbcolor 899 | fill 900 | grestore 901 | stroke 902 | grestore 903 | gsave 904 | 886.5 345.6 143 43.2 clipbox 905 | 783.254 43.2 m 906 | 805.417 43.2 l 907 | 805.417 88.3194 l 908 | 783.254 88.3194 l 909 | cl 910 | gsave 911 | 1.000 0.722 0.000 setrgbcolor 912 | fill 913 | grestore 914 | stroke 915 | grestore 916 | gsave 917 | 886.5 345.6 143 43.2 clipbox 918 | 931.007 43.2 m 919 | 953.171 43.2 l 920 | 953.171 135.3 l 921 | 931.007 135.3 l 922 | cl 923 | gsave 924 | 1.000 0.722 0.000 setrgbcolor 925 | fill 926 | grestore 927 | stroke 928 | grestore 929 | gsave 930 | 886.5 345.6 143 43.2 clipbox 931 | 216.864 43.2 m 932 | 239.027 43.2 l 933 | 239.027 353.42 l 934 | 216.864 353.42 l 935 | cl 936 | gsave 937 | 0.090 0.161 0.690 setrgbcolor 938 | fill 939 | grestore 940 | stroke 941 | grestore 942 | gsave 943 | 886.5 345.6 143 43.2 clipbox 944 | 364.618 43.2 m 945 | 386.781 43.2 l 946 | 386.781 51.6355 l 947 | 364.618 51.6355 l 948 | cl 949 | gsave 950 | 0.090 0.161 0.690 setrgbcolor 951 | fill 952 | grestore 953 | stroke 954 | grestore 955 | gsave 956 | 886.5 345.6 143 43.2 clipbox 957 | 512.372 43.2 m 958 | 534.535 43.2 l 959 | 534.535 367.086 l 960 | 512.372 367.086 l 961 | cl 962 | gsave 963 | 0.090 0.161 0.690 setrgbcolor 964 | fill 965 | grestore 966 | stroke 967 | grestore 968 | gsave 969 | 886.5 345.6 143 43.2 clipbox 970 | 660.126 43.2 m 971 | 682.289 43.2 l 972 | 682.289 43.2 l 973 | 660.126 43.2 l 974 | cl 975 | gsave 976 | 0.090 0.161 0.690 setrgbcolor 977 | fill 978 | grestore 979 | stroke 980 | grestore 981 | gsave 982 | 886.5 345.6 143 43.2 clipbox 983 | 807.879 43.2 m 984 | 830.042 43.2 l 985 | 830.042 64.5551 l 986 | 807.879 64.5551 l 987 | cl 988 | gsave 989 | 0.090 0.161 0.690 setrgbcolor 990 | fill 991 | grestore 992 | stroke 993 | grestore 994 | gsave 995 | 886.5 345.6 143 43.2 clipbox 996 | 955.633 43.2 m 997 | 977.796 43.2 l 998 | 977.796 86.7909 l 999 | 955.633 86.7909 l 1000 | cl 1001 | gsave 1002 | 0.090 0.161 0.690 setrgbcolor 1003 | fill 1004 | grestore 1005 | stroke 1006 | grestore 1007 | gsave 1008 | 886.5 345.6 143 43.2 clipbox 1009 | 241.49 43.2 m 1010 | 263.653 43.2 l 1011 | 263.653 257.927 l 1012 | 241.49 257.927 l 1013 | cl 1014 | gsave 1015 | 0.000 0.475 0.161 setrgbcolor 1016 | fill 1017 | grestore 1018 | stroke 1019 | grestore 1020 | gsave 1021 | 886.5 345.6 143 43.2 clipbox 1022 | 389.244 43.2 m 1023 | 411.407 43.2 l 1024 | 411.407 70.4891 l 1025 | 389.244 70.4891 l 1026 | cl 1027 | gsave 1028 | 0.000 0.475 0.161 setrgbcolor 1029 | fill 1030 | grestore 1031 | stroke 1032 | grestore 1033 | gsave 1034 | 886.5 345.6 143 43.2 clipbox 1035 | 536.997 43.2 m 1036 | 559.161 43.2 l 1037 | 559.161 250.516 l 1038 | 536.997 250.516 l 1039 | cl 1040 | gsave 1041 | 0.000 0.475 0.161 setrgbcolor 1042 | fill 1043 | grestore 1044 | stroke 1045 | grestore 1046 | gsave 1047 | 886.5 345.6 143 43.2 clipbox 1048 | 684.751 43.2 m 1049 | 706.914 43.2 l 1050 | 706.914 84.1511 l 1051 | 684.751 84.1511 l 1052 | cl 1053 | gsave 1054 | 0.000 0.475 0.161 setrgbcolor 1055 | fill 1056 | grestore 1057 | stroke 1058 | grestore 1059 | gsave 1060 | 886.5 345.6 143 43.2 clipbox 1061 | 832.505 43.2 m 1062 | 854.668 43.2 l 1063 | 854.668 88.8737 l 1064 | 832.505 88.8737 l 1065 | cl 1066 | gsave 1067 | 0.000 0.475 0.161 setrgbcolor 1068 | fill 1069 | grestore 1070 | stroke 1071 | grestore 1072 | gsave 1073 | 886.5 345.6 143 43.2 clipbox 1074 | 980.259 43.2 m 1075 | 1002.42 43.2 l 1076 | 1002.42 136.431 l 1077 | 980.259 136.431 l 1078 | cl 1079 | gsave 1080 | 0.000 0.475 0.161 setrgbcolor 1081 | fill 1082 | grestore 1083 | stroke 1084 | grestore 1085 | 0.500 setlinewidth 1086 | 0 setlinecap 1087 | gsave 1088 | /o { 1089 | gsave 1090 | newpath 1091 | translate 1092 | 0 0 m 1093 | 0 4 l 1094 | gsave 1095 | 0.000 setgray 1096 | fill 1097 | grestore 1098 | stroke 1099 | grestore 1100 | } bind def 1101 | 216.864 43.2 o 1102 | grestore 1103 | gsave 1104 | /o { 1105 | gsave 1106 | newpath 1107 | translate 1108 | 0 0 m 1109 | 0 -4 l 1110 | gsave 1111 | 0.000 setgray 1112 | fill 1113 | grestore 1114 | stroke 1115 | grestore 1116 | } bind def 1117 | 216.864 388.8 o 1118 | grestore 1119 | /BitstreamVeraSans-Roman findfont 1120 | 12.000 scalefont 1121 | setfont 1122 | gsave 1123 | 200.926875 27.575000 translate 1124 | 0.000000 rotate 1125 | 0.000000 2.500000 m /S glyphshow 1126 | 7.617188 2.500000 m /l glyphshow 1127 | 10.951172 2.500000 m /o glyphshow 1128 | 18.292969 2.500000 m /p glyphshow 1129 | 25.910156 2.500000 m /e glyphshow 1130 | grestore 1131 | gsave 1132 | /o { 1133 | gsave 1134 | newpath 1135 | translate 1136 | 0 0 m 1137 | 0 4 l 1138 | gsave 1139 | 0.000 setgray 1140 | fill 1141 | grestore 1142 | stroke 1143 | grestore 1144 | } bind def 1145 | 364.618 43.2 o 1146 | grestore 1147 | gsave 1148 | /o { 1149 | gsave 1150 | newpath 1151 | translate 1152 | 0 0 m 1153 | 0 -4 l 1154 | gsave 1155 | 0.000 setgray 1156 | fill 1157 | grestore 1158 | stroke 1159 | grestore 1160 | } bind def 1161 | 364.618 388.8 o 1162 | grestore 1163 | gsave 1164 | 338.219687 27.950000 translate 1165 | 0.000000 rotate 1166 | 0.000000 2.500000 m /I glyphshow 1167 | 3.539062 2.500000 m /n glyphshow 1168 | 11.144531 2.500000 m /t glyphshow 1169 | 15.849609 2.500000 m /e glyphshow 1170 | 23.232422 2.500000 m /r glyphshow 1171 | 27.916016 2.500000 m /c glyphshow 1172 | 34.513672 2.500000 m /e glyphshow 1173 | 41.896484 2.500000 m /p glyphshow 1174 | 49.513672 2.500000 m /t glyphshow 1175 | grestore 1176 | gsave 1177 | /o { 1178 | gsave 1179 | newpath 1180 | translate 1181 | 0 0 m 1182 | 0 4 l 1183 | gsave 1184 | 0.000 setgray 1185 | fill 1186 | grestore 1187 | stroke 1188 | grestore 1189 | } bind def 1190 | 512.372 43.2 o 1191 | grestore 1192 | gsave 1193 | /o { 1194 | gsave 1195 | newpath 1196 | translate 1197 | 0 0 m 1198 | 0 -4 l 1199 | gsave 1200 | 0.000 setgray 1201 | fill 1202 | grestore 1203 | stroke 1204 | grestore 1205 | } bind def 1206 | 512.372 388.8 o 1207 | grestore 1208 | gsave 1209 | 490.981250 29.903125 translate 1210 | 0.000000 rotate 1211 | 0.000000 0.171875 m /R glyphshow 1212 | 7.837891 0.171875 m /hyphen glyphshow 1213 | 11.792969 0.171875 m /v glyphshow 1214 | 18.894531 0.171875 m /a glyphshow 1215 | 26.248047 0.171875 m /l glyphshow 1216 | 29.582031 0.171875 m /u glyphshow 1217 | 37.187500 0.171875 m /e glyphshow 1218 | grestore 1219 | gsave 1220 | /o { 1221 | gsave 1222 | newpath 1223 | translate 1224 | 0 0 m 1225 | 0 4 l 1226 | gsave 1227 | 0.000 setgray 1228 | fill 1229 | grestore 1230 | stroke 1231 | grestore 1232 | } bind def 1233 | 660.126 43.2 o 1234 | grestore 1235 | gsave 1236 | /o { 1237 | gsave 1238 | newpath 1239 | translate 1240 | 0 0 m 1241 | 0 -4 l 1242 | gsave 1243 | 0.000 setgray 1244 | fill 1245 | grestore 1246 | stroke 1247 | grestore 1248 | } bind def 1249 | 660.126 388.8 o 1250 | grestore 1251 | gsave 1252 | 639.164687 29.903125 translate 1253 | 0.000000 rotate 1254 | 0.000000 0.171875 m /P glyphshow 1255 | 6.986328 0.171875 m /hyphen glyphshow 1256 | 10.941406 0.171875 m /v glyphshow 1257 | 18.042969 0.171875 m /a glyphshow 1258 | 25.396484 0.171875 m /l glyphshow 1259 | 28.730469 0.171875 m /u glyphshow 1260 | 36.335938 0.171875 m /e glyphshow 1261 | grestore 1262 | gsave 1263 | /o { 1264 | gsave 1265 | newpath 1266 | translate 1267 | 0 0 m 1268 | 0 4 l 1269 | gsave 1270 | 0.000 setgray 1271 | fill 1272 | grestore 1273 | stroke 1274 | grestore 1275 | } bind def 1276 | 807.879 43.2 o 1277 | grestore 1278 | gsave 1279 | /o { 1280 | gsave 1281 | newpath 1282 | translate 1283 | 0 0 m 1284 | 0 -4 l 1285 | gsave 1286 | 0.000 setgray 1287 | fill 1288 | grestore 1289 | stroke 1290 | grestore 1291 | } bind def 1292 | 807.879 388.8 o 1293 | grestore 1294 | gsave 1295 | 774.699687 27.575000 translate 1296 | 0.000000 rotate 1297 | 0.000000 2.500000 m /S glyphshow 1298 | 7.617188 2.500000 m /l glyphshow 1299 | 10.951172 2.500000 m /o glyphshow 1300 | 18.292969 2.500000 m /p glyphshow 1301 | 25.910156 2.500000 m /e glyphshow 1302 | 33.292969 2.500000 m /space glyphshow 1303 | 37.107422 2.500000 m /E glyphshow 1304 | 44.689453 2.500000 m /r glyphshow 1305 | 49.373047 2.500000 m /r glyphshow 1306 | 54.056641 2.500000 m /o glyphshow 1307 | 61.398438 2.500000 m /r glyphshow 1308 | grestore 1309 | gsave 1310 | /o { 1311 | gsave 1312 | newpath 1313 | translate 1314 | 0 0 m 1315 | 0 4 l 1316 | gsave 1317 | 0.000 setgray 1318 | fill 1319 | grestore 1320 | stroke 1321 | grestore 1322 | } bind def 1323 | 955.633 43.2 o 1324 | grestore 1325 | gsave 1326 | /o { 1327 | gsave 1328 | newpath 1329 | translate 1330 | 0 0 m 1331 | 0 -4 l 1332 | gsave 1333 | 0.000 setgray 1334 | fill 1335 | grestore 1336 | stroke 1337 | grestore 1338 | } bind def 1339 | 955.633 388.8 o 1340 | grestore 1341 | gsave 1342 | 907.164375 29.903125 translate 1343 | 0.000000 rotate 1344 | 0.000000 0.171875 m /E glyphshow 1345 | 7.582031 0.171875 m /s glyphshow 1346 | 13.833984 0.171875 m /t glyphshow 1347 | 18.539062 0.171875 m /i glyphshow 1348 | 21.873047 0.171875 m /m glyphshow 1349 | 33.562500 0.171875 m /a glyphshow 1350 | 40.916016 0.171875 m /t glyphshow 1351 | 45.621094 0.171875 m /i glyphshow 1352 | 48.955078 0.171875 m /o glyphshow 1353 | 56.296875 0.171875 m /n glyphshow 1354 | 63.902344 0.171875 m /space glyphshow 1355 | 67.716797 0.171875 m /E glyphshow 1356 | 75.298828 0.171875 m /r glyphshow 1357 | 79.982422 0.171875 m /r glyphshow 1358 | 84.666016 0.171875 m /o glyphshow 1359 | 92.007812 0.171875 m /r glyphshow 1360 | grestore 1361 | gsave 1362 | /o { 1363 | gsave 1364 | newpath 1365 | translate 1366 | 0 0 m 1367 | 4 0 l 1368 | gsave 1369 | 0.000 setgray 1370 | fill 1371 | grestore 1372 | stroke 1373 | grestore 1374 | } bind def 1375 | 142.987 43.2 o 1376 | grestore 1377 | gsave 1378 | /o { 1379 | gsave 1380 | newpath 1381 | translate 1382 | 0 0 m 1383 | -4 0 l 1384 | gsave 1385 | 0.000 setgray 1386 | fill 1387 | grestore 1388 | stroke 1389 | grestore 1390 | } bind def 1391 | 1029.51 43.2 o 1392 | grestore 1393 | gsave 1394 | 121.487500 38.660937 translate 1395 | 0.000000 rotate 1396 | 0.000000 0.171875 m /zero glyphshow 1397 | 7.634766 0.171875 m /period glyphshow 1398 | 11.449219 0.171875 m /zero glyphshow 1399 | grestore 1400 | gsave 1401 | /o { 1402 | gsave 1403 | newpath 1404 | translate 1405 | 0 0 m 1406 | 4 0 l 1407 | gsave 1408 | 0.000 setgray 1409 | fill 1410 | grestore 1411 | stroke 1412 | grestore 1413 | } bind def 1414 | 142.987 112.32 o 1415 | grestore 1416 | gsave 1417 | /o { 1418 | gsave 1419 | newpath 1420 | translate 1421 | 0 0 m 1422 | -4 0 l 1423 | gsave 1424 | 0.000 setgray 1425 | fill 1426 | grestore 1427 | stroke 1428 | grestore 1429 | } bind def 1430 | 1029.51 112.32 o 1431 | grestore 1432 | gsave 1433 | 121.893750 107.780937 translate 1434 | 0.000000 rotate 1435 | 0.000000 0.171875 m /zero glyphshow 1436 | 7.634766 0.171875 m /period glyphshow 1437 | 11.449219 0.171875 m /two glyphshow 1438 | grestore 1439 | gsave 1440 | /o { 1441 | gsave 1442 | newpath 1443 | translate 1444 | 0 0 m 1445 | 4 0 l 1446 | gsave 1447 | 0.000 setgray 1448 | fill 1449 | grestore 1450 | stroke 1451 | grestore 1452 | } bind def 1453 | 142.987 181.44 o 1454 | grestore 1455 | gsave 1456 | /o { 1457 | gsave 1458 | newpath 1459 | translate 1460 | 0 0 m 1461 | -4 0 l 1462 | gsave 1463 | 0.000 setgray 1464 | fill 1465 | grestore 1466 | stroke 1467 | grestore 1468 | } bind def 1469 | 1029.51 181.44 o 1470 | grestore 1471 | gsave 1472 | 121.362500 176.900937 translate 1473 | 0.000000 rotate 1474 | 0.000000 0.171875 m /zero glyphshow 1475 | 7.634766 0.171875 m /period glyphshow 1476 | 11.449219 0.171875 m /four glyphshow 1477 | grestore 1478 | gsave 1479 | /o { 1480 | gsave 1481 | newpath 1482 | translate 1483 | 0 0 m 1484 | 4 0 l 1485 | gsave 1486 | 0.000 setgray 1487 | fill 1488 | grestore 1489 | stroke 1490 | grestore 1491 | } bind def 1492 | 142.987 250.56 o 1493 | grestore 1494 | gsave 1495 | /o { 1496 | gsave 1497 | newpath 1498 | translate 1499 | 0 0 m 1500 | -4 0 l 1501 | gsave 1502 | 0.000 setgray 1503 | fill 1504 | grestore 1505 | stroke 1506 | grestore 1507 | } bind def 1508 | 1029.51 250.56 o 1509 | grestore 1510 | gsave 1511 | 121.456250 246.020938 translate 1512 | 0.000000 rotate 1513 | 0.000000 0.171875 m /zero glyphshow 1514 | 7.634766 0.171875 m /period glyphshow 1515 | 11.449219 0.171875 m /six glyphshow 1516 | grestore 1517 | gsave 1518 | /o { 1519 | gsave 1520 | newpath 1521 | translate 1522 | 0 0 m 1523 | 4 0 l 1524 | gsave 1525 | 0.000 setgray 1526 | fill 1527 | grestore 1528 | stroke 1529 | grestore 1530 | } bind def 1531 | 142.987 319.68 o 1532 | grestore 1533 | gsave 1534 | /o { 1535 | gsave 1536 | newpath 1537 | translate 1538 | 0 0 m 1539 | -4 0 l 1540 | gsave 1541 | 0.000 setgray 1542 | fill 1543 | grestore 1544 | stroke 1545 | grestore 1546 | } bind def 1547 | 1029.51 319.68 o 1548 | grestore 1549 | gsave 1550 | 121.518750 315.140938 translate 1551 | 0.000000 rotate 1552 | 0.000000 0.171875 m /zero glyphshow 1553 | 7.634766 0.171875 m /period glyphshow 1554 | 11.449219 0.171875 m /eight glyphshow 1555 | grestore 1556 | gsave 1557 | /o { 1558 | gsave 1559 | newpath 1560 | translate 1561 | 0 0 m 1562 | 4 0 l 1563 | gsave 1564 | 0.000 setgray 1565 | fill 1566 | grestore 1567 | stroke 1568 | grestore 1569 | } bind def 1570 | 142.987 388.8 o 1571 | grestore 1572 | gsave 1573 | /o { 1574 | gsave 1575 | newpath 1576 | translate 1577 | 0 0 m 1578 | -4 0 l 1579 | gsave 1580 | 0.000 setgray 1581 | fill 1582 | grestore 1583 | stroke 1584 | grestore 1585 | } bind def 1586 | 1029.51 388.8 o 1587 | grestore 1588 | gsave 1589 | 122.003125 384.260938 translate 1590 | 0.000000 rotate 1591 | 0.000000 0.171875 m /one glyphshow 1592 | 7.634766 0.171875 m /period glyphshow 1593 | 11.449219 0.171875 m /zero glyphshow 1594 | grestore 1595 | 1.000 setlinewidth 1596 | 2 setlinecap 1597 | gsave 1598 | 142.987 388.8 m 1599 | 1029.51 388.8 l 1600 | stroke 1601 | grestore 1602 | gsave 1603 | 1029.51 43.2 m 1604 | 1029.51 388.8 l 1605 | stroke 1606 | grestore 1607 | gsave 1608 | 142.987 43.2 m 1609 | 1029.51 43.2 l 1610 | stroke 1611 | grestore 1612 | gsave 1613 | 142.987 43.2 m 1614 | 142.987 388.8 l 1615 | stroke 1616 | grestore 1617 | gsave 1618 | 897.064 296.433 m 1619 | 1022.31 296.433 l 1620 | 1022.31 381.6 l 1621 | 897.064 381.6 l 1622 | 897.064 296.433 l 1623 | cl 1624 | gsave 1625 | 1.000 setgray 1626 | fill 1627 | grestore 1628 | stroke 1629 | grestore 1630 | gsave 1631 | 902.824 365.199 m 1632 | 931.624 365.199 l 1633 | 931.624 375.279 l 1634 | 902.824 375.279 l 1635 | cl 1636 | gsave 1637 | 1.000 0.157 0.000 setrgbcolor 1638 | fill 1639 | grestore 1640 | stroke 1641 | grestore 1642 | /BitstreamVeraSans-Roman findfont 1643 | 14.400 scalefont 1644 | setfont 1645 | gsave 1646 | 943.143750 364.996250 translate 1647 | 0.000000 rotate 1648 | 0.000000 0.203125 m /I glyphshow 1649 | 4.239502 0.203125 m /m glyphshow 1650 | 18.242493 0.203125 m /i glyphshow 1651 | 22.236328 0.203125 m /e glyphshow 1652 | grestore 1653 | gsave 1654 | 902.824 344.453 m 1655 | 931.624 344.453 l 1656 | 931.624 354.533 l 1657 | 902.824 354.533 l 1658 | cl 1659 | gsave 1660 | 1.000 0.722 0.000 setrgbcolor 1661 | fill 1662 | grestore 1663 | stroke 1664 | grestore 1665 | gsave 1666 | 943.143750 344.249375 translate 1667 | 0.000000 rotate 1668 | 0.000000 0.203125 m /N glyphshow 1669 | 10.753174 0.203125 m /a glyphshow 1670 | 19.562073 0.203125 m /z glyphshow 1671 | 27.107544 0.203125 m /w glyphshow 1672 | 38.864441 0.203125 m /i glyphshow 1673 | 42.858276 0.203125 m /s glyphshow 1674 | 50.347595 0.203125 m /k glyphshow 1675 | 58.172180 0.203125 m /o glyphshow 1676 | grestore 1677 | gsave 1678 | 902.824 323.143 m 1679 | 931.624 323.143 l 1680 | 931.624 333.223 l 1681 | 902.824 333.223 l 1682 | cl 1683 | gsave 1684 | 0.090 0.161 0.690 setrgbcolor 1685 | fill 1686 | grestore 1687 | stroke 1688 | grestore 1689 | gsave 1690 | 943.143750 322.940000 translate 1691 | 0.000000 rotate 1692 | 0.000000 0.203125 m /S glyphshow 1693 | 9.124756 0.203125 m /a glyphshow 1694 | 17.933655 0.203125 m /m glyphshow 1695 | 31.936646 0.203125 m /o glyphshow 1696 | 40.731506 0.203125 m /c glyphshow 1697 | 48.634949 0.203125 m /h glyphshow 1698 | 57.745667 0.203125 m /oacute glyphshow 1699 | 66.540527 0.203125 m /d glyphshow 1700 | grestore 1701 | gsave 1702 | 902.824 302.396 m 1703 | 931.624 302.396 l 1704 | 931.624 312.476 l 1705 | 902.824 312.476 l 1706 | cl 1707 | gsave 1708 | 0.000 0.475 0.161 setrgbcolor 1709 | fill 1710 | grestore 1711 | stroke 1712 | grestore 1713 | gsave 1714 | 943.143750 302.193125 translate 1715 | 0.000000 rotate 1716 | 0.000000 0.203125 m /K glyphshow 1717 | 8.676575 0.203125 m /o glyphshow 1718 | 17.471436 0.203125 m /t glyphshow 1719 | grestore 1720 | 1721 | end 1722 | showpage 1723 | -------------------------------------------------------------------------------- /doc/training_network_reggresion.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%Title: /home/bartek/Programy/ssn/training_network_reggresion.eps 3 | %%Creator: matplotlib version 1.1.0, http://matplotlib.sourceforge.net/ 4 | %%CreationDate: Wed Jun 13 22:09:00 2012 5 | %%Orientation: portrait 6 | %%BoundingBox: -555 180 1167 612 7 | %%EndComments 8 | %%BeginProlog 9 | /mpldict 8 dict def 10 | mpldict begin 11 | /m { moveto } bind def 12 | /l { lineto } bind def 13 | /r { rlineto } bind def 14 | /c { curveto } bind def 15 | /cl { closepath } bind def 16 | /box { 17 | m 18 | 1 index 0 r 19 | 0 exch r 20 | neg 0 r 21 | cl 22 | } bind def 23 | /clipbox { 24 | box 25 | clip 26 | newpath 27 | } bind def 28 | %!PS-Adobe-3.0 Resource-Font 29 | %%Title: Bitstream Vera Sans 30 | %%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. 31 | %%Creator: Converted from TrueType to type 3 by PPR 32 | 25 dict begin 33 | /_d{bind def}bind def 34 | /_m{moveto}_d 35 | /_l{lineto}_d 36 | /_cl{closepath eofill}_d 37 | /_c{curveto}_d 38 | /_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d 39 | /_e{exec}_d 40 | /FontName /BitstreamVeraSans-Roman def 41 | /PaintType 0 def 42 | /FontMatrix[.001 0 0 .001 0 0]def 43 | /FontBBox[-183 -236 1287 928]def 44 | /FontType 3 def 45 | /Encoding [ /space /parenleft /parenright /hyphen /period /zero /one /two /four /six /eight /A /B /E /F /G /I /P /R /S /a /c /d /e /g /i /k /l /m /n /o /p /r /s /t /u /v /y /z ] def 46 | /FontInfo 10 dict dup begin 47 | /FamilyName (Bitstream Vera Sans) def 48 | /FullName (Bitstream Vera Sans) def 49 | /Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc.) def 50 | /Weight (Roman) def 51 | /Version (Release 1.10) def 52 | /ItalicAngle 0.0 def 53 | /isFixedPitch false def 54 | /UnderlinePosition -213 def 55 | /UnderlineThickness 143 def 56 | end readonly def 57 | /CharStrings 39 dict dup begin 58 | /space{318 0 0 0 0 0 _sc 59 | }_d 60 | /parenleft{390 0 86 -131 310 759 _sc 61 | 310 759 _m 62 | 266 683 234 609 213 536 _c 63 | 191 463 181 389 181 314 _c 64 | 181 238 191 164 213 91 _c 65 | 234 17 266 -56 310 -131 _c 66 | 232 -131 _l 67 | 183 -54 146 20 122 94 _c 68 | 98 168 86 241 86 314 _c 69 | 86 386 98 459 122 533 _c 70 | 146 607 182 682 232 759 _c 71 | 310 759 _l 72 | _cl}_d 73 | /parenright{390 0 80 -131 304 759 _sc 74 | 80 759 _m 75 | 158 759 _l 76 | 206 682 243 607 267 533 _c 77 | 291 459 304 386 304 314 _c 78 | 304 241 291 168 267 94 _c 79 | 243 20 206 -54 158 -131 _c 80 | 80 -131 _l 81 | 123 -56 155 17 177 91 _c 82 | 198 164 209 238 209 314 _c 83 | 209 389 198 463 177 536 _c 84 | 155 609 123 683 80 759 _c 85 | _cl}_d 86 | /hyphen{361 0 49 234 312 314 _sc 87 | 49 314 _m 88 | 312 314 _l 89 | 312 234 _l 90 | 49 234 _l 91 | 49 314 _l 92 | _cl}_d 93 | /period{318 0 107 0 210 124 _sc 94 | 107 124 _m 95 | 210 124 _l 96 | 210 0 _l 97 | 107 0 _l 98 | 107 124 _l 99 | _cl}_d 100 | /zero{636 0 66 -13 570 742 _sc 101 | 318 664 _m 102 | 267 664 229 639 203 589 _c 103 | 177 539 165 464 165 364 _c 104 | 165 264 177 189 203 139 _c 105 | 229 89 267 64 318 64 _c 106 | 369 64 407 89 433 139 _c 107 | 458 189 471 264 471 364 _c 108 | 471 464 458 539 433 589 _c 109 | 407 639 369 664 318 664 _c 110 | 318 742 _m 111 | 399 742 461 709 505 645 _c 112 | 548 580 570 486 570 364 _c 113 | 570 241 548 147 505 83 _c 114 | 461 19 399 -13 318 -13 _c 115 | 236 -13 173 19 130 83 _c 116 | 87 147 66 241 66 364 _c 117 | 66 486 87 580 130 645 _c 118 | 173 709 236 742 318 742 _c 119 | _cl}_d 120 | /one{636 0 110 0 544 729 _sc 121 | 124 83 _m 122 | 285 83 _l 123 | 285 639 _l 124 | 110 604 _l 125 | 110 694 _l 126 | 284 729 _l 127 | 383 729 _l 128 | 383 83 _l 129 | 544 83 _l 130 | 544 0 _l 131 | 124 0 _l 132 | 124 83 _l 133 | _cl}_d 134 | /two{{636 0 73 0 536 742 _sc 135 | 192 83 _m 136 | 536 83 _l 137 | 536 0 _l 138 | 73 0 _l 139 | 73 83 _l 140 | 110 121 161 173 226 239 _c 141 | 290 304 331 346 348 365 _c 142 | 380 400 402 430 414 455 _c 143 | 426 479 433 504 433 528 _c 144 | 433 566 419 598 392 622 _c 145 | 365 646 330 659 286 659 _c 146 | 255 659 222 653 188 643 _c 147 | 154 632 117 616 78 594 _c 148 | 78 694 _l 149 | 118 710 155 722 189 730 _c 150 | 223 738 255 742 284 742 _c 151 | 359 742 419 723 464 685 _c 152 | 509 647 532 597 532 534 _c 153 | 532 504 526 475 515 449 _c 154 | 504 422 484 390 454 354 _c 155 | 446 344 420 317 376 272 _c 156 | 332 227 271 164 192 83 _c 157 | _cl}_e}_d 158 | /four{636 0 49 0 580 729 _sc 159 | 378 643 _m 160 | 129 254 _l 161 | 378 254 _l 162 | 378 643 _l 163 | 352 729 _m 164 | 476 729 _l 165 | 476 254 _l 166 | 580 254 _l 167 | 580 172 _l 168 | 476 172 _l 169 | 476 0 _l 170 | 378 0 _l 171 | 378 172 _l 172 | 49 172 _l 173 | 49 267 _l 174 | 352 729 _l 175 | _cl}_d 176 | /six{{636 0 70 -13 573 742 _sc 177 | 330 404 _m 178 | 286 404 251 388 225 358 _c 179 | 199 328 186 286 186 234 _c 180 | 186 181 199 139 225 109 _c 181 | 251 79 286 64 330 64 _c 182 | 374 64 409 79 435 109 _c 183 | 461 139 474 181 474 234 _c 184 | 474 286 461 328 435 358 _c 185 | 409 388 374 404 330 404 _c 186 | 526 713 _m 187 | 526 623 _l 188 | 501 635 476 644 451 650 _c 189 | 425 656 400 659 376 659 _c 190 | 310 659 260 637 226 593 _c 191 | 192 549 172 482 168 394 _c 192 | 187 422 211 444 240 459 _c 193 | 269 474 301 482 336 482 _c 194 | 409 482 467 459 509 415 _c 195 | 551 371 573 310 573 234 _c 196 | 573 159 550 99 506 54 _c 197 | 462 9 403 -13 330 -13 _c 198 | 246 -13 181 19 137 83 _c 199 | 92 147 70 241 70 364 _c 200 | 70 479 97 571 152 639 _c 201 | 206 707 280 742 372 742 _c 202 | }_e{396 742 421 739 447 735 _c 203 | 472 730 498 723 526 713 _c 204 | _cl}_e}_d 205 | /eight{{636 0 68 -13 568 742 _sc 206 | 318 346 _m 207 | 271 346 234 333 207 308 _c 208 | 180 283 167 249 167 205 _c 209 | 167 161 180 126 207 101 _c 210 | 234 76 271 64 318 64 _c 211 | 364 64 401 76 428 102 _c 212 | 455 127 469 161 469 205 _c 213 | 469 249 455 283 429 308 _c 214 | 402 333 365 346 318 346 _c 215 | 219 388 _m 216 | 177 398 144 418 120 447 _c 217 | 96 476 85 511 85 553 _c 218 | 85 611 105 657 147 691 _c 219 | 188 725 245 742 318 742 _c 220 | 390 742 447 725 489 691 _c 221 | 530 657 551 611 551 553 _c 222 | 551 511 539 476 515 447 _c 223 | 491 418 459 398 417 388 _c 224 | 464 377 501 355 528 323 _c 225 | 554 291 568 251 568 205 _c 226 | 568 134 546 80 503 43 _c 227 | 459 5 398 -13 318 -13 _c 228 | 237 -13 175 5 132 43 _c 229 | 89 80 68 134 68 205 _c 230 | 68 251 81 291 108 323 _c 231 | 134 355 171 377 219 388 _c 232 | }_e{183 544 _m 233 | 183 506 194 476 218 455 _c 234 | 242 434 275 424 318 424 _c 235 | 360 424 393 434 417 455 _c 236 | 441 476 453 506 453 544 _c 237 | 453 582 441 611 417 632 _c 238 | 393 653 360 664 318 664 _c 239 | 275 664 242 653 218 632 _c 240 | 194 611 183 582 183 544 _c 241 | _cl}_e}_d 242 | /A{684 0 8 0 676 729 _sc 243 | 342 632 _m 244 | 208 269 _l 245 | 476 269 _l 246 | 342 632 _l 247 | 286 729 _m 248 | 398 729 _l 249 | 676 0 _l 250 | 573 0 _l 251 | 507 187 _l 252 | 178 187 _l 253 | 112 0 _l 254 | 8 0 _l 255 | 286 729 _l 256 | _cl}_d 257 | /B{{686 0 98 0 615 729 _sc 258 | 197 348 _m 259 | 197 81 _l 260 | 355 81 _l 261 | 408 81 447 92 473 114 _c 262 | 498 136 511 169 511 215 _c 263 | 511 260 498 293 473 315 _c 264 | 447 337 408 348 355 348 _c 265 | 197 348 _l 266 | 197 648 _m 267 | 197 428 _l 268 | 343 428 _l 269 | 391 428 426 437 450 455 _c 270 | 474 473 486 500 486 538 _c 271 | 486 574 474 602 450 620 _c 272 | 426 638 391 648 343 648 _c 273 | 197 648 _l 274 | 98 729 _m 275 | 350 729 _l 276 | 425 729 483 713 524 682 _c 277 | 564 650 585 606 585 549 _c 278 | 585 504 574 468 553 442 _c 279 | 532 416 502 399 462 393 _c 280 | 510 382 548 360 575 327 _c 281 | 601 294 615 253 615 204 _c 282 | 615 138 592 88 548 53 _c 283 | 504 17 441 0 360 0 _c 284 | 98 0 _l 285 | 98 729 _l 286 | }_e{_cl}_e}_d 287 | /E{632 0 98 0 568 729 _sc 288 | 98 729 _m 289 | 559 729 _l 290 | 559 646 _l 291 | 197 646 _l 292 | 197 430 _l 293 | 544 430 _l 294 | 544 347 _l 295 | 197 347 _l 296 | 197 83 _l 297 | 568 83 _l 298 | 568 0 _l 299 | 98 0 _l 300 | 98 729 _l 301 | _cl}_d 302 | /F{575 0 98 0 517 729 _sc 303 | 98 729 _m 304 | 517 729 _l 305 | 517 646 _l 306 | 197 646 _l 307 | 197 431 _l 308 | 486 431 _l 309 | 486 348 _l 310 | 197 348 _l 311 | 197 0 _l 312 | 98 0 _l 313 | 98 729 _l 314 | _cl}_d 315 | /G{{775 0 56 -13 693 742 _sc 316 | 595 104 _m 317 | 595 300 _l 318 | 434 300 _l 319 | 434 381 _l 320 | 693 381 _l 321 | 693 68 _l 322 | 655 40 613 20 567 7 _c 323 | 521 -6 472 -13 420 -13 _c 324 | 306 -13 216 20 152 86 _c 325 | 88 152 56 245 56 364 _c 326 | 56 482 88 575 152 642 _c 327 | 216 708 306 742 420 742 _c 328 | 467 742 512 736 555 724 _c 329 | 598 712 638 695 674 673 _c 330 | 674 568 _l 331 | 637 598 598 621 557 637 _c 332 | 516 653 473 661 428 661 _c 333 | 338 661 271 636 227 586 _c 334 | 182 536 160 462 160 364 _c 335 | 160 265 182 191 227 141 _c 336 | 271 91 338 67 428 67 _c 337 | 462 67 493 70 521 76 _c 338 | 549 82 573 91 595 104 _c 339 | _cl}_e}_d 340 | /I{295 0 98 0 197 729 _sc 341 | 98 729 _m 342 | 197 729 _l 343 | 197 0 _l 344 | 98 0 _l 345 | 98 729 _l 346 | _cl}_d 347 | /P{603 0 98 0 569 729 _sc 348 | 197 648 _m 349 | 197 374 _l 350 | 321 374 _l 351 | 367 374 402 385 427 409 _c 352 | 452 433 465 467 465 511 _c 353 | 465 555 452 588 427 612 _c 354 | 402 636 367 648 321 648 _c 355 | 197 648 _l 356 | 98 729 _m 357 | 321 729 _l 358 | 402 729 464 710 506 673 _c 359 | 548 636 569 582 569 511 _c 360 | 569 439 548 384 506 348 _c 361 | 464 311 402 293 321 293 _c 362 | 197 293 _l 363 | 197 0 _l 364 | 98 0 _l 365 | 98 729 _l 366 | _cl}_d 367 | /R{{695 0 98 0 666 729 _sc 368 | 444 342 _m 369 | 465 334 486 319 506 296 _c 370 | 526 272 546 240 566 199 _c 371 | 666 0 _l 372 | 560 0 _l 373 | 467 187 _l 374 | 443 235 419 268 397 284 _c 375 | 374 300 343 308 304 308 _c 376 | 197 308 _l 377 | 197 0 _l 378 | 98 0 _l 379 | 98 729 _l 380 | 321 729 _l 381 | 404 729 466 711 507 677 _c 382 | 548 642 569 589 569 519 _c 383 | 569 473 558 434 537 404 _c 384 | 515 374 484 353 444 342 _c 385 | 197 648 _m 386 | 197 389 _l 387 | 321 389 _l 388 | 368 389 404 400 428 422 _c 389 | 452 444 465 476 465 519 _c 390 | 465 561 452 593 428 615 _c 391 | 404 637 368 648 321 648 _c 392 | 197 648 _l 393 | _cl}_e}_d 394 | /S{{635 0 66 -13 579 742 _sc 395 | 535 705 _m 396 | 535 609 _l 397 | 497 627 462 640 429 649 _c 398 | 395 657 363 662 333 662 _c 399 | 279 662 237 651 208 631 _c 400 | 179 610 165 580 165 542 _c 401 | 165 510 174 485 194 469 _c 402 | 213 452 250 439 304 429 _c 403 | 364 417 _l 404 | 437 403 491 378 526 343 _c 405 | 561 307 579 260 579 201 _c 406 | 579 130 555 77 508 41 _c 407 | 460 5 391 -13 300 -13 _c 408 | 265 -13 228 -9 189 -2 _c 409 | 150 5 110 16 69 32 _c 410 | 69 134 _l 411 | 109 111 148 94 186 83 _c 412 | 224 71 262 66 300 66 _c 413 | 356 66 399 77 430 99 _c 414 | 460 121 476 152 476 194 _c 415 | 476 230 465 258 443 278 _c 416 | 421 298 385 313 335 323 _c 417 | 275 335 _l 418 | 201 349 148 372 115 404 _c 419 | 82 435 66 478 66 534 _c 420 | 66 598 88 649 134 686 _c 421 | 179 723 242 742 322 742 _c 422 | }_e{356 742 390 739 426 733 _c 423 | 461 727 497 717 535 705 _c 424 | _cl}_e}_d 425 | /a{{613 0 60 -13 522 560 _sc 426 | 343 275 _m 427 | 270 275 220 266 192 250 _c 428 | 164 233 150 205 150 165 _c 429 | 150 133 160 107 181 89 _c 430 | 202 70 231 61 267 61 _c 431 | 317 61 357 78 387 114 _c 432 | 417 149 432 196 432 255 _c 433 | 432 275 _l 434 | 343 275 _l 435 | 522 312 _m 436 | 522 0 _l 437 | 432 0 _l 438 | 432 83 _l 439 | 411 49 385 25 355 10 _c 440 | 325 -5 287 -13 243 -13 _c 441 | 187 -13 142 2 109 33 _c 442 | 76 64 60 106 60 159 _c 443 | 60 220 80 266 122 298 _c 444 | 163 329 224 345 306 345 _c 445 | 432 345 _l 446 | 432 354 _l 447 | 432 395 418 427 391 450 _c 448 | 364 472 326 484 277 484 _c 449 | 245 484 215 480 185 472 _c 450 | 155 464 127 453 100 439 _c 451 | 100 522 _l 452 | }_e{132 534 164 544 195 550 _c 453 | 226 556 256 560 286 560 _c 454 | 365 560 424 539 463 498 _c 455 | 502 457 522 395 522 312 _c 456 | _cl}_e}_d 457 | /c{{550 0 55 -13 488 560 _sc 458 | 488 526 _m 459 | 488 442 _l 460 | 462 456 437 466 411 473 _c 461 | 385 480 360 484 334 484 _c 462 | 276 484 230 465 198 428 _c 463 | 166 391 150 339 150 273 _c 464 | 150 206 166 154 198 117 _c 465 | 230 80 276 62 334 62 _c 466 | 360 62 385 65 411 72 _c 467 | 437 79 462 90 488 104 _c 468 | 488 21 _l 469 | 462 9 436 0 410 -5 _c 470 | 383 -10 354 -13 324 -13 _c 471 | 242 -13 176 12 128 64 _c 472 | 79 115 55 185 55 273 _c 473 | 55 362 79 432 128 483 _c 474 | 177 534 244 560 330 560 _c 475 | 358 560 385 557 411 551 _c 476 | 437 545 463 537 488 526 _c 477 | _cl}_e}_d 478 | /d{{635 0 55 -13 544 760 _sc 479 | 454 464 _m 480 | 454 760 _l 481 | 544 760 _l 482 | 544 0 _l 483 | 454 0 _l 484 | 454 82 _l 485 | 435 49 411 25 382 10 _c 486 | 353 -5 319 -13 279 -13 _c 487 | 213 -13 159 13 117 65 _c 488 | 75 117 55 187 55 273 _c 489 | 55 359 75 428 117 481 _c 490 | 159 533 213 560 279 560 _c 491 | 319 560 353 552 382 536 _c 492 | 411 520 435 496 454 464 _c 493 | 148 273 _m 494 | 148 207 161 155 188 117 _c 495 | 215 79 253 61 301 61 _c 496 | 348 61 385 79 413 117 _c 497 | 440 155 454 207 454 273 _c 498 | 454 339 440 390 413 428 _c 499 | 385 466 348 485 301 485 _c 500 | 253 485 215 466 188 428 _c 501 | 161 390 148 339 148 273 _c 502 | _cl}_e}_d 503 | /e{{615 0 55 -13 562 560 _sc 504 | 562 296 _m 505 | 562 252 _l 506 | 149 252 _l 507 | 153 190 171 142 205 110 _c 508 | 238 78 284 62 344 62 _c 509 | 378 62 412 66 444 74 _c 510 | 476 82 509 95 541 113 _c 511 | 541 28 _l 512 | 509 14 476 3 442 -3 _c 513 | 408 -9 373 -13 339 -13 _c 514 | 251 -13 182 12 131 62 _c 515 | 80 112 55 181 55 268 _c 516 | 55 357 79 428 127 481 _c 517 | 175 533 241 560 323 560 _c 518 | 397 560 455 536 498 489 _c 519 | 540 441 562 377 562 296 _c 520 | 472 322 _m 521 | 471 371 457 410 431 440 _c 522 | 404 469 368 484 324 484 _c 523 | 274 484 234 469 204 441 _c 524 | 174 413 156 373 152 322 _c 525 | 472 322 _l 526 | _cl}_e}_d 527 | /g{{635 0 55 -207 544 560 _sc 528 | 454 280 _m 529 | 454 344 440 395 414 431 _c 530 | 387 467 349 485 301 485 _c 531 | 253 485 215 467 188 431 _c 532 | 161 395 148 344 148 280 _c 533 | 148 215 161 165 188 129 _c 534 | 215 93 253 75 301 75 _c 535 | 349 75 387 93 414 129 _c 536 | 440 165 454 215 454 280 _c 537 | 544 68 _m 538 | 544 -24 523 -93 482 -139 _c 539 | 440 -184 377 -207 292 -207 _c 540 | 260 -207 231 -204 203 -200 _c 541 | 175 -195 147 -188 121 -178 _c 542 | 121 -91 _l 543 | 147 -105 173 -115 199 -122 _c 544 | 225 -129 251 -133 278 -133 _c 545 | 336 -133 380 -117 410 -87 _c 546 | 439 -56 454 -10 454 52 _c 547 | 454 96 _l 548 | 435 64 411 40 382 24 _c 549 | 353 8 319 0 279 0 _c 550 | 211 0 157 25 116 76 _c 551 | 75 127 55 195 55 280 _c 552 | 55 364 75 432 116 483 _c 553 | 157 534 211 560 279 560 _c 554 | }_e{319 560 353 552 382 536 _c 555 | 411 520 435 496 454 464 _c 556 | 454 547 _l 557 | 544 547 _l 558 | 544 68 _l 559 | _cl}_e}_d 560 | /i{278 0 94 0 184 760 _sc 561 | 94 547 _m 562 | 184 547 _l 563 | 184 0 _l 564 | 94 0 _l 565 | 94 547 _l 566 | 94 760 _m 567 | 184 760 _l 568 | 184 646 _l 569 | 94 646 _l 570 | 94 760 _l 571 | _cl}_d 572 | /k{579 0 91 0 576 760 _sc 573 | 91 760 _m 574 | 181 760 _l 575 | 181 311 _l 576 | 449 547 _l 577 | 564 547 _l 578 | 274 291 _l 579 | 576 0 _l 580 | 459 0 _l 581 | 181 267 _l 582 | 181 0 _l 583 | 91 0 _l 584 | 91 760 _l 585 | _cl}_d 586 | /l{278 0 94 0 184 760 _sc 587 | 94 760 _m 588 | 184 760 _l 589 | 184 0 _l 590 | 94 0 _l 591 | 94 760 _l 592 | _cl}_d 593 | /m{{974 0 91 0 889 560 _sc 594 | 520 442 _m 595 | 542 482 569 511 600 531 _c 596 | 631 550 668 560 711 560 _c 597 | 767 560 811 540 842 500 _c 598 | 873 460 889 403 889 330 _c 599 | 889 0 _l 600 | 799 0 _l 601 | 799 327 _l 602 | 799 379 789 418 771 444 _c 603 | 752 469 724 482 686 482 _c 604 | 639 482 602 466 575 435 _c 605 | 548 404 535 362 535 309 _c 606 | 535 0 _l 607 | 445 0 _l 608 | 445 327 _l 609 | 445 379 435 418 417 444 _c 610 | 398 469 369 482 331 482 _c 611 | 285 482 248 466 221 435 _c 612 | 194 404 181 362 181 309 _c 613 | 181 0 _l 614 | 91 0 _l 615 | 91 547 _l 616 | 181 547 _l 617 | 181 462 _l 618 | 201 495 226 520 255 536 _c 619 | 283 552 317 560 357 560 _c 620 | 397 560 430 550 458 530 _c 621 | 486 510 506 480 520 442 _c 622 | }_e{_cl}_e}_d 623 | /n{634 0 91 0 549 560 _sc 624 | 549 330 _m 625 | 549 0 _l 626 | 459 0 _l 627 | 459 327 _l 628 | 459 379 448 417 428 443 _c 629 | 408 469 378 482 338 482 _c 630 | 289 482 251 466 223 435 _c 631 | 195 404 181 362 181 309 _c 632 | 181 0 _l 633 | 91 0 _l 634 | 91 547 _l 635 | 181 547 _l 636 | 181 462 _l 637 | 202 494 227 519 257 535 _c 638 | 286 551 320 560 358 560 _c 639 | 420 560 468 540 500 501 _c 640 | 532 462 549 405 549 330 _c 641 | _cl}_d 642 | /o{612 0 55 -13 557 560 _sc 643 | 306 484 _m 644 | 258 484 220 465 192 427 _c 645 | 164 389 150 338 150 273 _c 646 | 150 207 163 156 191 118 _c 647 | 219 80 257 62 306 62 _c 648 | 354 62 392 80 420 118 _c 649 | 448 156 462 207 462 273 _c 650 | 462 337 448 389 420 427 _c 651 | 392 465 354 484 306 484 _c 652 | 306 560 _m 653 | 384 560 445 534 490 484 _c 654 | 534 433 557 363 557 273 _c 655 | 557 183 534 113 490 63 _c 656 | 445 12 384 -13 306 -13 _c 657 | 227 -13 165 12 121 63 _c 658 | 77 113 55 183 55 273 _c 659 | 55 363 77 433 121 484 _c 660 | 165 534 227 560 306 560 _c 661 | _cl}_d 662 | /p{{635 0 91 -207 580 560 _sc 663 | 181 82 _m 664 | 181 -207 _l 665 | 91 -207 _l 666 | 91 547 _l 667 | 181 547 _l 668 | 181 464 _l 669 | 199 496 223 520 252 536 _c 670 | 281 552 316 560 356 560 _c 671 | 422 560 476 533 518 481 _c 672 | 559 428 580 359 580 273 _c 673 | 580 187 559 117 518 65 _c 674 | 476 13 422 -13 356 -13 _c 675 | 316 -13 281 -5 252 10 _c 676 | 223 25 199 49 181 82 _c 677 | 487 273 _m 678 | 487 339 473 390 446 428 _c 679 | 418 466 381 485 334 485 _c 680 | 286 485 249 466 222 428 _c 681 | 194 390 181 339 181 273 _c 682 | 181 207 194 155 222 117 _c 683 | 249 79 286 61 334 61 _c 684 | 381 61 418 79 446 117 _c 685 | 473 155 487 207 487 273 _c 686 | _cl}_e}_d 687 | /r{411 0 91 0 411 560 _sc 688 | 411 463 _m 689 | 401 469 390 473 378 476 _c 690 | 366 478 353 480 339 480 _c 691 | 288 480 249 463 222 430 _c 692 | 194 397 181 350 181 288 _c 693 | 181 0 _l 694 | 91 0 _l 695 | 91 547 _l 696 | 181 547 _l 697 | 181 462 _l 698 | 199 495 224 520 254 536 _c 699 | 284 552 321 560 365 560 _c 700 | 371 560 378 559 386 559 _c 701 | 393 558 401 557 411 555 _c 702 | 411 463 _l 703 | _cl}_d 704 | /s{{521 0 54 -13 472 560 _sc 705 | 443 531 _m 706 | 443 446 _l 707 | 417 458 391 468 364 475 _c 708 | 336 481 308 485 279 485 _c 709 | 234 485 200 478 178 464 _c 710 | 156 450 145 430 145 403 _c 711 | 145 382 153 366 169 354 _c 712 | 185 342 217 330 265 320 _c 713 | 296 313 _l 714 | 360 299 405 279 432 255 _c 715 | 458 230 472 195 472 151 _c 716 | 472 100 452 60 412 31 _c 717 | 372 1 316 -13 246 -13 _c 718 | 216 -13 186 -10 154 -5 _c 719 | 122 0 89 8 54 20 _c 720 | 54 113 _l 721 | 87 95 120 82 152 74 _c 722 | 184 65 216 61 248 61 _c 723 | 290 61 323 68 346 82 _c 724 | 368 96 380 117 380 144 _c 725 | 380 168 371 187 355 200 _c 726 | 339 213 303 226 247 238 _c 727 | 216 245 _l 728 | 160 257 119 275 95 299 _c 729 | 70 323 58 356 58 399 _c 730 | 58 450 76 490 112 518 _c 731 | 148 546 200 560 268 560 _c 732 | }_e{301 560 332 557 362 552 _c 733 | 391 547 418 540 443 531 _c 734 | _cl}_e}_d 735 | /t{392 0 27 0 368 702 _sc 736 | 183 702 _m 737 | 183 547 _l 738 | 368 547 _l 739 | 368 477 _l 740 | 183 477 _l 741 | 183 180 _l 742 | 183 135 189 106 201 94 _c 743 | 213 81 238 75 276 75 _c 744 | 368 75 _l 745 | 368 0 _l 746 | 276 0 _l 747 | 206 0 158 13 132 39 _c 748 | 106 65 93 112 93 180 _c 749 | 93 477 _l 750 | 27 477 _l 751 | 27 547 _l 752 | 93 547 _l 753 | 93 702 _l 754 | 183 702 _l 755 | _cl}_d 756 | /u{634 0 85 -13 543 547 _sc 757 | 85 216 _m 758 | 85 547 _l 759 | 175 547 _l 760 | 175 219 _l 761 | 175 167 185 129 205 103 _c 762 | 225 77 255 64 296 64 _c 763 | 344 64 383 79 411 110 _c 764 | 439 141 453 183 453 237 _c 765 | 453 547 _l 766 | 543 547 _l 767 | 543 0 _l 768 | 453 0 _l 769 | 453 84 _l 770 | 431 50 405 26 377 10 _c 771 | 348 -5 315 -13 277 -13 _c 772 | 214 -13 166 6 134 45 _c 773 | 101 83 85 140 85 216 _c 774 | _cl}_d 775 | /v{592 0 30 0 562 547 _sc 776 | 30 547 _m 777 | 125 547 _l 778 | 296 88 _l 779 | 467 547 _l 780 | 562 547 _l 781 | 357 0 _l 782 | 235 0 _l 783 | 30 547 _l 784 | _cl}_d 785 | /y{592 0 30 -207 562 547 _sc 786 | 322 -50 _m 787 | 296 -114 271 -157 247 -177 _c 788 | 223 -197 191 -207 151 -207 _c 789 | 79 -207 _l 790 | 79 -132 _l 791 | 132 -132 _l 792 | 156 -132 175 -126 189 -114 _c 793 | 203 -102 218 -75 235 -31 _c 794 | 251 9 _l 795 | 30 547 _l 796 | 125 547 _l 797 | 296 119 _l 798 | 467 547 _l 799 | 562 547 _l 800 | 322 -50 _l 801 | _cl}_d 802 | /z{525 0 43 0 482 547 _sc 803 | 55 547 _m 804 | 482 547 _l 805 | 482 465 _l 806 | 144 72 _l 807 | 482 72 _l 808 | 482 0 _l 809 | 43 0 _l 810 | 43 82 _l 811 | 381 475 _l 812 | 55 475 _l 813 | 55 547 _l 814 | _cl}_d 815 | end readonly def 816 | 817 | /BuildGlyph 818 | {exch begin 819 | CharStrings exch 820 | 2 copy known not{pop /.notdef}if 821 | true 3 1 roll get exec 822 | end}_d 823 | 824 | /BuildChar { 825 | 1 index /Encoding get exch get 826 | 1 index /BuildGlyph get exec 827 | }_d 828 | 829 | FontName currentdict end definefont pop 830 | end 831 | %%EndProlog 832 | mpldict begin 833 | -555.75 180 translate 834 | 1723.5 432 0 0 clipbox 835 | gsave 836 | 0 0 m 837 | 1723.5 0 l 838 | 1723.5 432 l 839 | 0 432 l 840 | cl 841 | 1.000 setgray 842 | fill 843 | grestore 844 | gsave 845 | 215.438 43.2 m 846 | 1551.15 43.2 l 847 | 1551.15 388.8 l 848 | 215.438 388.8 l 849 | cl 850 | 1.000 setgray 851 | fill 852 | grestore 853 | 1.000 setlinewidth 854 | 1 setlinejoin 855 | 2 setlinecap 856 | [] 0 setdash 857 | 0.000 setgray 858 | gsave 859 | 1336 345.6 215.4 43.2 clipbox 860 | 245.12 43.2 m 861 | 271.834 43.2 l 862 | 271.834 352.33 l 863 | 245.12 352.33 l 864 | cl 865 | gsave 866 | 1.000 0.157 0.000 setrgbcolor 867 | fill 868 | grestore 869 | stroke 870 | grestore 871 | gsave 872 | 1336 345.6 215.4 43.2 clipbox 873 | 452.898 43.2 m 874 | 479.612 43.2 l 875 | 479.612 49.8459 l 876 | 452.898 49.8459 l 877 | cl 878 | gsave 879 | 1.000 0.157 0.000 setrgbcolor 880 | fill 881 | grestore 882 | stroke 883 | grestore 884 | gsave 885 | 1336 345.6 215.4 43.2 clipbox 886 | 660.675 43.2 m 887 | 687.389 43.2 l 888 | 687.389 373.081 l 889 | 660.675 373.081 l 890 | cl 891 | gsave 892 | 1.000 0.157 0.000 setrgbcolor 893 | fill 894 | grestore 895 | stroke 896 | grestore 897 | gsave 898 | 1336 345.6 215.4 43.2 clipbox 899 | 868.453 43.2 m 900 | 895.167 43.2 l 901 | 895.167 43.2 l 902 | 868.453 43.2 l 903 | cl 904 | gsave 905 | 1.000 0.157 0.000 setrgbcolor 906 | fill 907 | grestore 908 | stroke 909 | grestore 910 | gsave 911 | 1336 345.6 215.4 43.2 clipbox 912 | 1076.23 43.2 m 913 | 1102.94 43.2 l 914 | 1102.94 61.1416 l 915 | 1076.23 61.1416 l 916 | cl 917 | gsave 918 | 1.000 0.157 0.000 setrgbcolor 919 | fill 920 | grestore 921 | stroke 922 | grestore 923 | gsave 924 | 1336 345.6 215.4 43.2 clipbox 925 | 1284.01 43.2 m 926 | 1310.72 43.2 l 927 | 1310.72 79.8231 l 928 | 1284.01 79.8231 l 929 | cl 930 | gsave 931 | 1.000 0.157 0.000 setrgbcolor 932 | fill 933 | grestore 934 | stroke 935 | grestore 936 | gsave 937 | 1336 345.6 215.4 43.2 clipbox 938 | 274.803 43.2 m 939 | 301.517 43.2 l 940 | 301.517 376.23 l 941 | 274.803 376.23 l 942 | cl 943 | gsave 944 | 1.000 0.722 0.000 setrgbcolor 945 | fill 946 | grestore 947 | stroke 948 | grestore 949 | gsave 950 | 1336 345.6 215.4 43.2 clipbox 951 | 482.58 43.2 m 952 | 509.294 43.2 l 953 | 509.294 51.8438 l 954 | 482.58 51.8438 l 955 | cl 956 | gsave 957 | 1.000 0.722 0.000 setrgbcolor 958 | fill 959 | grestore 960 | stroke 961 | grestore 962 | gsave 963 | 1336 345.6 215.4 43.2 clipbox 964 | 690.358 43.2 m 965 | 717.072 43.2 l 966 | 717.072 365.144 l 967 | 690.358 365.144 l 968 | cl 969 | gsave 970 | 1.000 0.722 0.000 setrgbcolor 971 | fill 972 | grestore 973 | stroke 974 | grestore 975 | gsave 976 | 1336 345.6 215.4 43.2 clipbox 977 | 898.135 43.2 m 978 | 924.849 43.2 l 979 | 924.849 43.2 l 980 | 898.135 43.2 l 981 | cl 982 | gsave 983 | 1.000 0.722 0.000 setrgbcolor 984 | fill 985 | grestore 986 | stroke 987 | grestore 988 | gsave 989 | 1336 345.6 215.4 43.2 clipbox 990 | 1105.91 43.2 m 991 | 1132.63 43.2 l 992 | 1132.63 63.8152 l 993 | 1105.91 63.8152 l 994 | cl 995 | gsave 996 | 1.000 0.722 0.000 setrgbcolor 997 | fill 998 | grestore 999 | stroke 1000 | grestore 1001 | gsave 1002 | 1336 345.6 215.4 43.2 clipbox 1003 | 1313.69 43.2 m 1004 | 1340.4 43.2 l 1005 | 1340.4 85.2806 l 1006 | 1313.69 85.2806 l 1007 | cl 1008 | gsave 1009 | 1.000 0.722 0.000 setrgbcolor 1010 | fill 1011 | grestore 1012 | stroke 1013 | grestore 1014 | gsave 1015 | 1336 345.6 215.4 43.2 clipbox 1016 | 304.485 43.2 m 1017 | 331.199 43.2 l 1018 | 331.199 373.967 l 1019 | 304.485 373.967 l 1020 | cl 1021 | gsave 1022 | 0.090 0.161 0.690 setrgbcolor 1023 | fill 1024 | grestore 1025 | stroke 1026 | grestore 1027 | gsave 1028 | 1336 345.6 215.4 43.2 clipbox 1029 | 512.263 43.2 m 1030 | 538.977 43.2 l 1031 | 538.977 46.5492 l 1032 | 512.263 46.5492 l 1033 | cl 1034 | gsave 1035 | 0.090 0.161 0.690 setrgbcolor 1036 | fill 1037 | grestore 1038 | stroke 1039 | grestore 1040 | gsave 1041 | 1336 345.6 215.4 43.2 clipbox 1042 | 720.04 43.2 m 1043 | 746.754 43.2 l 1044 | 746.754 369.165 l 1045 | 720.04 369.165 l 1046 | cl 1047 | gsave 1048 | 0.090 0.161 0.690 setrgbcolor 1049 | fill 1050 | grestore 1051 | stroke 1052 | grestore 1053 | gsave 1054 | 1336 345.6 215.4 43.2 clipbox 1055 | 927.818 43.2 m 1056 | 954.532 43.2 l 1057 | 954.532 43.2 l 1058 | 927.818 43.2 l 1059 | cl 1060 | gsave 1061 | 0.090 0.161 0.690 setrgbcolor 1062 | fill 1063 | grestore 1064 | stroke 1065 | grestore 1066 | gsave 1067 | 1336 345.6 215.4 43.2 clipbox 1068 | 1135.6 43.2 m 1069 | 1162.31 43.2 l 1070 | 1162.31 59.0933 l 1071 | 1135.6 59.0933 l 1072 | cl 1073 | gsave 1074 | 0.090 0.161 0.690 setrgbcolor 1075 | fill 1076 | grestore 1077 | stroke 1078 | grestore 1079 | gsave 1080 | 1336 345.6 215.4 43.2 clipbox 1081 | 1343.37 43.2 m 1082 | 1370.09 43.2 l 1083 | 1370.09 75.642 l 1084 | 1343.37 75.642 l 1085 | cl 1086 | gsave 1087 | 0.090 0.161 0.690 setrgbcolor 1088 | fill 1089 | grestore 1090 | stroke 1091 | grestore 1092 | gsave 1093 | 1336 345.6 215.4 43.2 clipbox 1094 | 334.168 43.2 m 1095 | 360.882 43.2 l 1096 | 360.882 368.657 l 1097 | 334.168 368.657 l 1098 | cl 1099 | gsave 1100 | 0.000 0.475 0.161 setrgbcolor 1101 | fill 1102 | grestore 1103 | stroke 1104 | grestore 1105 | gsave 1106 | 1336 345.6 215.4 43.2 clipbox 1107 | 541.945 43.2 m 1108 | 568.659 43.2 l 1109 | 568.659 48.0945 l 1110 | 541.945 48.0945 l 1111 | cl 1112 | gsave 1113 | 0.000 0.475 0.161 setrgbcolor 1114 | fill 1115 | grestore 1116 | stroke 1117 | grestore 1118 | gsave 1119 | 1336 345.6 215.4 43.2 clipbox 1120 | 749.723 43.2 m 1121 | 776.437 43.2 l 1122 | 776.437 375.121 l 1123 | 749.723 375.121 l 1124 | cl 1125 | gsave 1126 | 0.000 0.475 0.161 setrgbcolor 1127 | fill 1128 | grestore 1129 | stroke 1130 | grestore 1131 | gsave 1132 | 1336 345.6 215.4 43.2 clipbox 1133 | 957.5 43.2 m 1134 | 984.214 43.2 l 1135 | 984.214 43.2 l 1136 | 957.5 43.2 l 1137 | cl 1138 | gsave 1139 | 0.000 0.475 0.161 setrgbcolor 1140 | fill 1141 | grestore 1142 | stroke 1143 | grestore 1144 | gsave 1145 | 1336 345.6 215.4 43.2 clipbox 1146 | 1165.28 43.2 m 1147 | 1191.99 43.2 l 1148 | 1191.99 59.4772 l 1149 | 1165.28 59.4772 l 1150 | cl 1151 | gsave 1152 | 0.000 0.475 0.161 setrgbcolor 1153 | fill 1154 | grestore 1155 | stroke 1156 | grestore 1157 | gsave 1158 | 1336 345.6 215.4 43.2 clipbox 1159 | 1373.06 43.2 m 1160 | 1399.77 43.2 l 1161 | 1399.77 76.4256 l 1162 | 1373.06 76.4256 l 1163 | cl 1164 | gsave 1165 | 0.000 0.475 0.161 setrgbcolor 1166 | fill 1167 | grestore 1168 | stroke 1169 | grestore 1170 | gsave 1171 | 1336 345.6 215.4 43.2 clipbox 1172 | 363.85 43.2 m 1173 | 390.564 43.2 l 1174 | 390.564 349.536 l 1175 | 363.85 349.536 l 1176 | cl 1177 | gsave 1178 | 0.376 0.004 0.427 setrgbcolor 1179 | fill 1180 | grestore 1181 | stroke 1182 | grestore 1183 | gsave 1184 | 1336 345.6 215.4 43.2 clipbox 1185 | 571.628 43.2 m 1186 | 598.342 43.2 l 1187 | 598.342 56.5582 l 1188 | 571.628 56.5582 l 1189 | cl 1190 | gsave 1191 | 0.376 0.004 0.427 setrgbcolor 1192 | fill 1193 | grestore 1194 | stroke 1195 | grestore 1196 | gsave 1197 | 1336 345.6 215.4 43.2 clipbox 1198 | 779.405 43.2 m 1199 | 806.119 43.2 l 1200 | 806.119 347.805 l 1201 | 779.405 347.805 l 1202 | cl 1203 | gsave 1204 | 0.376 0.004 0.427 setrgbcolor 1205 | fill 1206 | grestore 1207 | stroke 1208 | grestore 1209 | gsave 1210 | 1336 345.6 215.4 43.2 clipbox 1211 | 987.183 43.2 m 1212 | 1013.9 43.2 l 1213 | 1013.9 43.2003 l 1214 | 987.183 43.2003 l 1215 | cl 1216 | gsave 1217 | 0.376 0.004 0.427 setrgbcolor 1218 | fill 1219 | grestore 1220 | stroke 1221 | grestore 1222 | gsave 1223 | 1336 345.6 215.4 43.2 clipbox 1224 | 1194.96 43.2 m 1225 | 1221.67 43.2 l 1226 | 1221.67 70.4561 l 1227 | 1194.96 70.4561 l 1228 | cl 1229 | gsave 1230 | 0.376 0.004 0.427 setrgbcolor 1231 | fill 1232 | grestore 1233 | stroke 1234 | grestore 1235 | gsave 1236 | 1336 345.6 215.4 43.2 clipbox 1237 | 1402.74 43.2 m 1238 | 1429.45 43.2 l 1239 | 1429.45 98.8363 l 1240 | 1402.74 98.8363 l 1241 | cl 1242 | gsave 1243 | 0.376 0.004 0.427 setrgbcolor 1244 | fill 1245 | grestore 1246 | stroke 1247 | grestore 1248 | 0.500 setlinewidth 1249 | 0 setlinecap 1250 | gsave 1251 | /o { 1252 | gsave 1253 | newpath 1254 | translate 1255 | 0 0 m 1256 | 0 4 l 1257 | gsave 1258 | 0.000 setgray 1259 | fill 1260 | grestore 1261 | stroke 1262 | grestore 1263 | } bind def 1264 | 304.485 43.2 o 1265 | grestore 1266 | gsave 1267 | /o { 1268 | gsave 1269 | newpath 1270 | translate 1271 | 0 0 m 1272 | 0 -4 l 1273 | gsave 1274 | 0.000 setgray 1275 | fill 1276 | grestore 1277 | stroke 1278 | grestore 1279 | } bind def 1280 | 304.485 388.8 o 1281 | grestore 1282 | /BitstreamVeraSans-Roman findfont 1283 | 12.000 scalefont 1284 | setfont 1285 | gsave 1286 | 288.547500 27.575000 translate 1287 | 0.000000 rotate 1288 | 0.000000 2.500000 m /S glyphshow 1289 | 7.617188 2.500000 m /l glyphshow 1290 | 10.951172 2.500000 m /o glyphshow 1291 | 18.292969 2.500000 m /p glyphshow 1292 | 25.910156 2.500000 m /e glyphshow 1293 | grestore 1294 | gsave 1295 | /o { 1296 | gsave 1297 | newpath 1298 | translate 1299 | 0 0 m 1300 | 0 4 l 1301 | gsave 1302 | 0.000 setgray 1303 | fill 1304 | grestore 1305 | stroke 1306 | grestore 1307 | } bind def 1308 | 512.263 43.2 o 1309 | grestore 1310 | gsave 1311 | /o { 1312 | gsave 1313 | newpath 1314 | translate 1315 | 0 0 m 1316 | 0 -4 l 1317 | gsave 1318 | 0.000 setgray 1319 | fill 1320 | grestore 1321 | stroke 1322 | grestore 1323 | } bind def 1324 | 512.263 388.8 o 1325 | grestore 1326 | gsave 1327 | 485.864063 27.950000 translate 1328 | 0.000000 rotate 1329 | 0.000000 2.500000 m /I glyphshow 1330 | 3.539062 2.500000 m /n glyphshow 1331 | 11.144531 2.500000 m /t glyphshow 1332 | 15.849609 2.500000 m /e glyphshow 1333 | 23.232422 2.500000 m /r glyphshow 1334 | 27.916016 2.500000 m /c glyphshow 1335 | 34.513672 2.500000 m /e glyphshow 1336 | 41.896484 2.500000 m /p glyphshow 1337 | 49.513672 2.500000 m /t glyphshow 1338 | grestore 1339 | gsave 1340 | /o { 1341 | gsave 1342 | newpath 1343 | translate 1344 | 0 0 m 1345 | 0 4 l 1346 | gsave 1347 | 0.000 setgray 1348 | fill 1349 | grestore 1350 | stroke 1351 | grestore 1352 | } bind def 1353 | 720.04 43.2 o 1354 | grestore 1355 | gsave 1356 | /o { 1357 | gsave 1358 | newpath 1359 | translate 1360 | 0 0 m 1361 | 0 -4 l 1362 | gsave 1363 | 0.000 setgray 1364 | fill 1365 | grestore 1366 | stroke 1367 | grestore 1368 | } bind def 1369 | 720.04 388.8 o 1370 | grestore 1371 | gsave 1372 | 698.649375 29.903125 translate 1373 | 0.000000 rotate 1374 | 0.000000 0.171875 m /R glyphshow 1375 | 7.837891 0.171875 m /hyphen glyphshow 1376 | 11.792969 0.171875 m /v glyphshow 1377 | 18.894531 0.171875 m /a glyphshow 1378 | 26.248047 0.171875 m /l glyphshow 1379 | 29.582031 0.171875 m /u glyphshow 1380 | 37.187500 0.171875 m /e glyphshow 1381 | grestore 1382 | gsave 1383 | /o { 1384 | gsave 1385 | newpath 1386 | translate 1387 | 0 0 m 1388 | 0 4 l 1389 | gsave 1390 | 0.000 setgray 1391 | fill 1392 | grestore 1393 | stroke 1394 | grestore 1395 | } bind def 1396 | 927.818 43.2 o 1397 | grestore 1398 | gsave 1399 | /o { 1400 | gsave 1401 | newpath 1402 | translate 1403 | 0 0 m 1404 | 0 -4 l 1405 | gsave 1406 | 0.000 setgray 1407 | fill 1408 | grestore 1409 | stroke 1410 | grestore 1411 | } bind def 1412 | 927.818 388.8 o 1413 | grestore 1414 | gsave 1415 | 906.856563 29.903125 translate 1416 | 0.000000 rotate 1417 | 0.000000 0.171875 m /P glyphshow 1418 | 6.986328 0.171875 m /hyphen glyphshow 1419 | 10.941406 0.171875 m /v glyphshow 1420 | 18.042969 0.171875 m /a glyphshow 1421 | 25.396484 0.171875 m /l glyphshow 1422 | 28.730469 0.171875 m /u glyphshow 1423 | 36.335938 0.171875 m /e glyphshow 1424 | grestore 1425 | gsave 1426 | /o { 1427 | gsave 1428 | newpath 1429 | translate 1430 | 0 0 m 1431 | 0 4 l 1432 | gsave 1433 | 0.000 setgray 1434 | fill 1435 | grestore 1436 | stroke 1437 | grestore 1438 | } bind def 1439 | 1135.6 43.2 o 1440 | grestore 1441 | gsave 1442 | /o { 1443 | gsave 1444 | newpath 1445 | translate 1446 | 0 0 m 1447 | 0 -4 l 1448 | gsave 1449 | 0.000 setgray 1450 | fill 1451 | grestore 1452 | stroke 1453 | grestore 1454 | } bind def 1455 | 1135.6 388.8 o 1456 | grestore 1457 | gsave 1458 | 1102.415313 27.575000 translate 1459 | 0.000000 rotate 1460 | 0.000000 2.500000 m /S glyphshow 1461 | 7.617188 2.500000 m /l glyphshow 1462 | 10.951172 2.500000 m /o glyphshow 1463 | 18.292969 2.500000 m /p glyphshow 1464 | 25.910156 2.500000 m /e glyphshow 1465 | 33.292969 2.500000 m /space glyphshow 1466 | 37.107422 2.500000 m /E glyphshow 1467 | 44.689453 2.500000 m /r glyphshow 1468 | 49.373047 2.500000 m /r glyphshow 1469 | 54.056641 2.500000 m /o glyphshow 1470 | 61.398438 2.500000 m /r glyphshow 1471 | grestore 1472 | gsave 1473 | /o { 1474 | gsave 1475 | newpath 1476 | translate 1477 | 0 0 m 1478 | 0 4 l 1479 | gsave 1480 | 0.000 setgray 1481 | fill 1482 | grestore 1483 | stroke 1484 | grestore 1485 | } bind def 1486 | 1343.37 43.2 o 1487 | grestore 1488 | gsave 1489 | /o { 1490 | gsave 1491 | newpath 1492 | translate 1493 | 0 0 m 1494 | 0 -4 l 1495 | gsave 1496 | 0.000 setgray 1497 | fill 1498 | grestore 1499 | stroke 1500 | grestore 1501 | } bind def 1502 | 1343.37 388.8 o 1503 | grestore 1504 | gsave 1505 | 1294.903750 29.903125 translate 1506 | 0.000000 rotate 1507 | 0.000000 0.171875 m /E glyphshow 1508 | 7.582031 0.171875 m /s glyphshow 1509 | 13.833984 0.171875 m /t glyphshow 1510 | 18.539062 0.171875 m /i glyphshow 1511 | 21.873047 0.171875 m /m glyphshow 1512 | 33.562500 0.171875 m /a glyphshow 1513 | 40.916016 0.171875 m /t glyphshow 1514 | 45.621094 0.171875 m /i glyphshow 1515 | 48.955078 0.171875 m /o glyphshow 1516 | 56.296875 0.171875 m /n glyphshow 1517 | 63.902344 0.171875 m /space glyphshow 1518 | 67.716797 0.171875 m /E glyphshow 1519 | 75.298828 0.171875 m /r glyphshow 1520 | 79.982422 0.171875 m /r glyphshow 1521 | 84.666016 0.171875 m /o glyphshow 1522 | 92.007812 0.171875 m /r glyphshow 1523 | grestore 1524 | gsave 1525 | /o { 1526 | gsave 1527 | newpath 1528 | translate 1529 | 0 0 m 1530 | 4 0 l 1531 | gsave 1532 | 0.000 setgray 1533 | fill 1534 | grestore 1535 | stroke 1536 | grestore 1537 | } bind def 1538 | 215.438 43.2 o 1539 | grestore 1540 | gsave 1541 | /o { 1542 | gsave 1543 | newpath 1544 | translate 1545 | 0 0 m 1546 | -4 0 l 1547 | gsave 1548 | 0.000 setgray 1549 | fill 1550 | grestore 1551 | stroke 1552 | grestore 1553 | } bind def 1554 | 1551.15 43.2 o 1555 | grestore 1556 | gsave 1557 | 193.937500 38.660937 translate 1558 | 0.000000 rotate 1559 | 0.000000 0.171875 m /zero glyphshow 1560 | 7.634766 0.171875 m /period glyphshow 1561 | 11.449219 0.171875 m /zero glyphshow 1562 | grestore 1563 | gsave 1564 | /o { 1565 | gsave 1566 | newpath 1567 | translate 1568 | 0 0 m 1569 | 4 0 l 1570 | gsave 1571 | 0.000 setgray 1572 | fill 1573 | grestore 1574 | stroke 1575 | grestore 1576 | } bind def 1577 | 215.438 112.32 o 1578 | grestore 1579 | gsave 1580 | /o { 1581 | gsave 1582 | newpath 1583 | translate 1584 | 0 0 m 1585 | -4 0 l 1586 | gsave 1587 | 0.000 setgray 1588 | fill 1589 | grestore 1590 | stroke 1591 | grestore 1592 | } bind def 1593 | 1551.15 112.32 o 1594 | grestore 1595 | gsave 1596 | 194.343750 107.780937 translate 1597 | 0.000000 rotate 1598 | 0.000000 0.171875 m /zero glyphshow 1599 | 7.634766 0.171875 m /period glyphshow 1600 | 11.449219 0.171875 m /two glyphshow 1601 | grestore 1602 | gsave 1603 | /o { 1604 | gsave 1605 | newpath 1606 | translate 1607 | 0 0 m 1608 | 4 0 l 1609 | gsave 1610 | 0.000 setgray 1611 | fill 1612 | grestore 1613 | stroke 1614 | grestore 1615 | } bind def 1616 | 215.438 181.44 o 1617 | grestore 1618 | gsave 1619 | /o { 1620 | gsave 1621 | newpath 1622 | translate 1623 | 0 0 m 1624 | -4 0 l 1625 | gsave 1626 | 0.000 setgray 1627 | fill 1628 | grestore 1629 | stroke 1630 | grestore 1631 | } bind def 1632 | 1551.15 181.44 o 1633 | grestore 1634 | gsave 1635 | 193.812500 176.900937 translate 1636 | 0.000000 rotate 1637 | 0.000000 0.171875 m /zero glyphshow 1638 | 7.634766 0.171875 m /period glyphshow 1639 | 11.449219 0.171875 m /four glyphshow 1640 | grestore 1641 | gsave 1642 | /o { 1643 | gsave 1644 | newpath 1645 | translate 1646 | 0 0 m 1647 | 4 0 l 1648 | gsave 1649 | 0.000 setgray 1650 | fill 1651 | grestore 1652 | stroke 1653 | grestore 1654 | } bind def 1655 | 215.438 250.56 o 1656 | grestore 1657 | gsave 1658 | /o { 1659 | gsave 1660 | newpath 1661 | translate 1662 | 0 0 m 1663 | -4 0 l 1664 | gsave 1665 | 0.000 setgray 1666 | fill 1667 | grestore 1668 | stroke 1669 | grestore 1670 | } bind def 1671 | 1551.15 250.56 o 1672 | grestore 1673 | gsave 1674 | 193.906250 246.020938 translate 1675 | 0.000000 rotate 1676 | 0.000000 0.171875 m /zero glyphshow 1677 | 7.634766 0.171875 m /period glyphshow 1678 | 11.449219 0.171875 m /six glyphshow 1679 | grestore 1680 | gsave 1681 | /o { 1682 | gsave 1683 | newpath 1684 | translate 1685 | 0 0 m 1686 | 4 0 l 1687 | gsave 1688 | 0.000 setgray 1689 | fill 1690 | grestore 1691 | stroke 1692 | grestore 1693 | } bind def 1694 | 215.438 319.68 o 1695 | grestore 1696 | gsave 1697 | /o { 1698 | gsave 1699 | newpath 1700 | translate 1701 | 0 0 m 1702 | -4 0 l 1703 | gsave 1704 | 0.000 setgray 1705 | fill 1706 | grestore 1707 | stroke 1708 | grestore 1709 | } bind def 1710 | 1551.15 319.68 o 1711 | grestore 1712 | gsave 1713 | 193.968750 315.140938 translate 1714 | 0.000000 rotate 1715 | 0.000000 0.171875 m /zero glyphshow 1716 | 7.634766 0.171875 m /period glyphshow 1717 | 11.449219 0.171875 m /eight glyphshow 1718 | grestore 1719 | gsave 1720 | /o { 1721 | gsave 1722 | newpath 1723 | translate 1724 | 0 0 m 1725 | 4 0 l 1726 | gsave 1727 | 0.000 setgray 1728 | fill 1729 | grestore 1730 | stroke 1731 | grestore 1732 | } bind def 1733 | 215.438 388.8 o 1734 | grestore 1735 | gsave 1736 | /o { 1737 | gsave 1738 | newpath 1739 | translate 1740 | 0 0 m 1741 | -4 0 l 1742 | gsave 1743 | 0.000 setgray 1744 | fill 1745 | grestore 1746 | stroke 1747 | grestore 1748 | } bind def 1749 | 1551.15 388.8 o 1750 | grestore 1751 | gsave 1752 | 194.453125 384.260938 translate 1753 | 0.000000 rotate 1754 | 0.000000 0.171875 m /one glyphshow 1755 | 7.634766 0.171875 m /period glyphshow 1756 | 11.449219 0.171875 m /zero glyphshow 1757 | grestore 1758 | 1.000 setlinewidth 1759 | 2 setlinecap 1760 | gsave 1761 | 215.438 388.8 m 1762 | 1551.15 388.8 l 1763 | stroke 1764 | grestore 1765 | gsave 1766 | 1551.15 43.2 m 1767 | 1551.15 388.8 l 1768 | stroke 1769 | grestore 1770 | gsave 1771 | 215.438 43.2 m 1772 | 1551.15 43.2 l 1773 | stroke 1774 | grestore 1775 | gsave 1776 | 215.438 43.2 m 1777 | 215.438 388.8 l 1778 | stroke 1779 | grestore 1780 | gsave 1781 | 1271.61 273.546 m 1782 | 1543.95 273.546 l 1783 | 1543.95 381.6 l 1784 | 1271.61 381.6 l 1785 | 1271.61 273.546 l 1786 | cl 1787 | gsave 1788 | 1.000 setgray 1789 | fill 1790 | grestore 1791 | stroke 1792 | grestore 1793 | gsave 1794 | 1277.37 365.199 m 1795 | 1306.17 365.199 l 1796 | 1306.17 375.279 l 1797 | 1277.37 375.279 l 1798 | cl 1799 | gsave 1800 | 1.000 0.157 0.000 setrgbcolor 1801 | fill 1802 | grestore 1803 | stroke 1804 | grestore 1805 | /BitstreamVeraSans-Roman findfont 1806 | 14.400 scalefont 1807 | setfont 1808 | gsave 1809 | 1317.690000 362.293125 translate 1810 | 0.000000 rotate 1811 | 0.000000 2.906250 m /B glyphshow 1812 | 9.861755 2.906250 m /a glyphshow 1813 | 18.670654 2.906250 m /c glyphshow 1814 | 26.574097 2.906250 m /k glyphshow 1815 | 34.898682 2.906250 m /p glyphshow 1816 | 44.023438 2.906250 m /r glyphshow 1817 | 49.558472 2.906250 m /o glyphshow 1818 | 58.353333 2.906250 m /p glyphshow 1819 | 67.478088 2.906250 m /a glyphshow 1820 | 76.286987 2.906250 m /g glyphshow 1821 | 85.411743 2.906250 m /a glyphshow 1822 | 94.220642 2.906250 m /t glyphshow 1823 | 99.856934 2.906250 m /i glyphshow 1824 | 103.850769 2.906250 m /o glyphshow 1825 | 112.645630 2.906250 m /n glyphshow 1826 | 121.756348 2.906250 m /space glyphshow 1827 | 126.325745 2.906250 m /z glyphshow 1828 | 133.871216 2.906250 m /space glyphshow 1829 | 138.440613 2.906250 m /m glyphshow 1830 | 152.443604 2.906250 m /o glyphshow 1831 | 161.238464 2.906250 m /m glyphshow 1832 | 175.241455 2.906250 m /e glyphshow 1833 | 184.085449 2.906250 m /n glyphshow 1834 | 193.196167 2.906250 m /t glyphshow 1835 | 198.832458 2.906250 m /e glyphshow 1836 | 207.676453 2.906250 m /m glyphshow 1837 | grestore 1838 | gsave 1839 | 1277.37 344.453 m 1840 | 1306.17 344.453 l 1841 | 1306.17 354.533 l 1842 | 1277.37 354.533 l 1843 | cl 1844 | gsave 1845 | 1.000 0.722 0.000 setrgbcolor 1846 | fill 1847 | grestore 1848 | stroke 1849 | grestore 1850 | gsave 1851 | 1317.690000 341.546250 translate 1852 | 0.000000 rotate 1853 | 0.000000 2.906250 m /A glyphshow 1854 | 9.833679 2.906250 m /l glyphshow 1855 | 13.827515 2.906250 m /g glyphshow 1856 | 22.952271 2.906250 m /period glyphshow 1857 | 27.521667 2.906250 m /space glyphshow 1858 | 32.091064 2.906250 m /B glyphshow 1859 | 41.952820 2.906250 m /F glyphshow 1860 | 50.221252 2.906250 m /G glyphshow 1861 | 61.360474 2.906250 m /S glyphshow 1862 | 70.485229 2.906250 m /space glyphshow 1863 | 75.054626 2.906250 m /parenleft glyphshow 1864 | 80.662842 2.906250 m /m glyphshow 1865 | 94.665833 2.906250 m /u glyphshow 1866 | 103.776550 2.906250 m /l glyphshow 1867 | 107.770386 2.906250 m /t glyphshow 1868 | 113.406677 2.906250 m /i glyphshow 1869 | 117.400513 2.906250 m /c glyphshow 1870 | 125.303955 2.906250 m /o glyphshow 1871 | 134.098816 2.906250 m /r glyphshow 1872 | 139.633850 2.906250 m /e glyphshow 1873 | 148.477844 2.906250 m /parenright glyphshow 1874 | grestore 1875 | gsave 1876 | 1277.37 323.706 m 1877 | 1306.17 323.706 l 1878 | 1306.17 333.786 l 1879 | 1277.37 333.786 l 1880 | cl 1881 | gsave 1882 | 0.090 0.161 0.690 setrgbcolor 1883 | fill 1884 | grestore 1885 | stroke 1886 | grestore 1887 | gsave 1888 | 1317.690000 320.799375 translate 1889 | 0.000000 rotate 1890 | 0.000000 2.906250 m /A glyphshow 1891 | 9.833679 2.906250 m /l glyphshow 1892 | 13.827515 2.906250 m /g glyphshow 1893 | 22.952271 2.906250 m /period glyphshow 1894 | 27.521667 2.906250 m /space glyphshow 1895 | 32.091064 2.906250 m /B glyphshow 1896 | 41.952820 2.906250 m /F glyphshow 1897 | 50.221252 2.906250 m /G glyphshow 1898 | 61.360474 2.906250 m /S glyphshow 1899 | grestore 1900 | gsave 1901 | 1277.37 302.959 m 1902 | 1306.17 302.959 l 1903 | 1306.17 313.039 l 1904 | 1277.37 313.039 l 1905 | cl 1906 | gsave 1907 | 0.000 0.475 0.161 setrgbcolor 1908 | fill 1909 | grestore 1910 | stroke 1911 | grestore 1912 | gsave 1913 | 1317.690000 300.052500 translate 1914 | 0.000000 rotate 1915 | 0.000000 2.906250 m /G glyphshow 1916 | 11.139221 2.906250 m /r glyphshow 1917 | 17.049255 2.906250 m /a glyphshow 1918 | 25.858154 2.906250 m /d glyphshow 1919 | 34.982910 2.906250 m /i glyphshow 1920 | 38.976746 2.906250 m /e glyphshow 1921 | 47.820740 2.906250 m /n glyphshow 1922 | 56.931458 2.906250 m /t glyphshow 1923 | 62.567749 2.906250 m /space glyphshow 1924 | 67.137146 2.906250 m /s glyphshow 1925 | 74.626465 2.906250 m /p glyphshow 1926 | 83.751221 2.906250 m /r glyphshow 1927 | 89.661255 2.906250 m /z glyphshow 1928 | 97.206726 2.906250 m /e glyphshow 1929 | 106.050720 2.906250 m /z glyphshow 1930 | 113.596191 2.906250 m /o glyphshow 1931 | 122.391052 2.906250 m /n glyphshow 1932 | 131.501770 2.906250 m /y glyphshow 1933 | grestore 1934 | gsave 1935 | 1277.37 282.212 m 1936 | 1306.17 282.212 l 1937 | 1306.17 292.292 l 1938 | 1277.37 292.292 l 1939 | cl 1940 | gsave 1941 | 0.376 0.004 0.427 setrgbcolor 1942 | fill 1943 | grestore 1944 | stroke 1945 | grestore 1946 | gsave 1947 | 1317.690000 279.305625 translate 1948 | 0.000000 rotate 1949 | 0.000000 2.906250 m /A glyphshow 1950 | 9.833679 2.906250 m /l glyphshow 1951 | 13.827515 2.906250 m /g glyphshow 1952 | 22.952271 2.906250 m /period glyphshow 1953 | 27.521667 2.906250 m /space glyphshow 1954 | 32.091064 2.906250 m /R glyphshow 1955 | 42.079163 2.906250 m /P glyphshow 1956 | 50.497681 2.906250 m /r glyphshow 1957 | 56.032715 2.906250 m /o glyphshow 1958 | 64.827576 2.906250 m /p glyphshow 1959 | grestore 1960 | 1961 | end 1962 | showpage 1963 | --------------------------------------------------------------------------------