Added an untested fix for global vs local wordlists
[sgc.git] / README.txt
blob16859749af83fdb70d500e7bbc8ea4e9de389614
1 SpeakGoodChinese
3 All source code in this directory is licensed under the General Public License
4 version 2 or at your wish, any later version. Stefan de Konink, after this,
5 the author, did his best to create a bug free program. This program uses the
6 Praat program extensively.
8 This program should work on any platform Praat and GTK are supported on :)
11 The contents in the directory pinyin and wordlists CAN BE licensed under 
12 another license than the GPL. These contents are not required for operation.
15 Authors:                License: 
16 Praat                   GPL             - Paul Boersma/David Weenink
17 SGC_ToneProt            GPL             - Rob van Son
18 SpeakGoodChinese        GPL             - Stefan de Konink
19 GtkTreeview Tutorial    GPL             -
20 libzip                  BSD-like        - Dieter Baron/Thomas Klausner
22 We would like to thank Paul Boersma (UvA) for his help with Praat linking and
23 Tristian van Berkom for additional help with the localization code.
24 J.E. Raaijmakers, R. van Rijsselt and S. Verhagen for feedback on the GUI and 
25 Praat library integration on Windows.
27 Requirements
28 Currently the Linux version depends on Glade, Gtk+, and libzip.
29 These must be installed before you can compile or use SpeakGoodChinese
32 Collecting usage and perfomance data, and creating example audio
34 It is possible to record all utterances and write the recognition
35 results to a logFile.txt file. This option is not available from
36 the GUI. Currently, it is switched on by creating a file
37 in the SGC_ToneProt/log directory with the name logPerformance.txt 
38 (you can rename an existing stub file DoNotlogPerformance.txt to
39 logPerformance.txt). As long as there exists a file 
40 SGC_ToneProt/log/logPerformance.txt, every processed utterance
41 (audio and result) is stored in the directory SGC_ToneProt/log
44 Links:
45 http://www.praat.org/
46 http://www.fon.hum.uva.nl/
47 http://www.speechminded.com/
48 http://www.speakgoodchinese.org/
49 http://www.glade.gnome.org/
50 http://www.nih.at/libzip/
52 ---------------------------------------------------------
54 The SpeakGoodChinese tone recognizer (SGC) helps you to practise pronouncing Mandarin Chinese tones.
56 Features
58 - The tone recogniser analyses your pronunciation of the Chinese tones by using techniques in speech recognition.
60 - It shows you via a graphical presentation the difference between your pronunciation of the tones and the standard pronunciation.
62 - It also gives you a written analysis of your pronunciation.
64 - You can listen to a hummed example of a tone or tone combination, before you record your pronunciation.
66 - You can listen to your own recorded pronunciation.
68 - You can practise all one or two syllabic words of Mandarin Chinese by simply adding them to the wordlist yourself. The wordlist is then saved automatically for your future visits.
71 STRUCTURE
73 SGC consists of four major subsystems: 
74 - Glade user interface definition (glade.gnome.org), licensed under the GNU GPL
75 - Praat phonetics, speech science, function library (www.praat.org), licensed under the GNU GPL
76 - SGC_ToneProt tone recognizer (www.SpeakGoodChinese.org), licensed under the GNU GPL
77 - Wordlists, combinations of wordlists and sound examples, 
78   licensed under the GNU GPL and Creative Commons licenses
79   (also user supplied)
80 SGC should run on all platforms that support both Praat and Glade. However, not all
81 platforms have been tested yet.
82   
83 - GLADE
84 Quote from the website glade.gnome.org:
86     Glade is a RAD tool to enable quick & easy development of user interfaces 
87     for the GTK+ toolkit and the GNOME desktop environment, released under 
88     the GNU GPL License.
90     The user interfaces designed in Glade are saved as XML, and by using the 
91     libglade library these can be loaded by applications dynamically as needed.
93     By using libglade, Glade XML files can be used in numerous programming 
94     languages including C, C++, Java, Perl, Python, C#, Pike, Ruby, Haskell, 
95     Objective Caml and Scheme. Adding support for other languages is easy too.
96     
97 The GUI definition is specified in the file sgc.glade, with additional components
98 in sgc.glade.h, sgc.h, and the po and locale directories. These files can be used 
99 with the conventional RAD tools for Glade. Definition and program code are fully 
100 separated, except for a file that contains the glue subroutine calls.
102 - PRAAT
103 The Praat program is originally a stand alone program for phonetics, speech, 
104 and acoustic research. Praat runs on most Unix variants, MacOS X and earlier 
105 versions of the MacOS (the latter are not maintained), Linux, and MS Windows.
106 SGC uses a library, libpraat, constructed from the Praat sources. SGC also 
107 makes extensive use of Praat script files (with the extension .praat). Praat 
108 is comprehensively documented at www.praat.org.
110 - SGC_ToneProt
111 The SGC_ToneProt directory contains an autonomous tone recognition module.
112 It consists of praat and sendpraat executables for several platforms. The
113 recognizer is build from platform independend praat scripts. 
114 The SGC GUI controls the recognizer by executing praat scripts on the 
115 praat executable in the background. Results are returned as files. 
116 SGC_ToneProt scripts perform several types of actions beside the
117 pure tone recognition.
119 - SINGLEWORD
120 The singleword directory contains an add-on module for SpeakGoodChinese
121 it makes it easy to test your own words and uses the configuration of
122 the main program.
124 - WORDLISTS
125 Users can add their own word lists to practise. SGC stores these lists
126 in the wordlists directory. SGC comes with precompiled word lists, some 
127 with prerecorded examples for all words. Wordlists are distributed
128 as files with the .sgc extension.
129 Word list distributions are simple ZIP files with the name <list
130 name>.sgc. They contain a list of all the words in pinyin with the
131 name wordlist.txt with one word per line (only ASCII characters) and
132 optionally a sound file for each word in the list. The sound files
133 should be named <pinyin word>.ext, where <pinyin word> is the pinyin
134 transcription, eg, sheng1zi4, and ext the sound extension type (eg,
135 wav). Note that SpeakGoodChinese uses Praat to process the sound
136 files. So only those sound files recognized by Praat can be used. This
137 excludes compressed formats like Ogg Vorbis and MP3 (see Praat: Read
138 from file...). Don't forget to include a LICENSE.txt file with the
139 copyright and licensing information. If you use one of the Creative
140 Commons licenses or the GNU GPL, you can ask us to put your list on
141 our web-site.
144 COMPONENT LIST
146 - DIRECTORIES
147 locale             : Localizations of the interface
148 pinyin             : Some standard sound files (deprecated)
149 PitchTiers         : Storage of Pitch and PitchTier files
150 po                 : Pango message files
151 records            : Stores recorded PitchTiers (deprecated)
152 todo               : Incomplete files on To Do list
153 wordlists          : Wordlists and examples (*.sgc files)
154 SGC_ToneProt       : The tone recognizer (separate subsystem)
155 singleword         : Add on module to test your own words
157 - TEXT FILES
158 COPYING            : GPL License
159 HOWTO              : Installation instructions
160 README.txt         : This file
161 TODO.txt           : List of things to do
163 - C CODE AND HEADER FILES
164 cairo.c            : The graphical module
165 config.c           : Handles storing and reading the config (sgc.ini) file.
166 distribution.c     : Handles storing and reading distribution files.
167 file.c             : Handles storing and reading wordlist files.
168 frompraat.c        : Contains modified Praat functions for drawing the Pitch.
169 frompraat.h        : Subroutine definitions for frompraat.c (header file)
170 praat.c            : All praat related calls such as sound and processing.
171 main.c             : The main program, just a call to Glade.
172 sgc.glade.h        : Text definitions of Glade (header file)
173 sgc.glade.h        : Text definitions of Glade (header file)
174 sgc.h              : Subroutine definitions for Glade and Praat (header file)
175                    : And contains compiletime config.
177 Glade function definitions
178 signals.c          : GUI application logic code.
179 signals-editor.c   : GUI-editor application logic code.
180 signals-realize.c  : GUI startup logic.
183 - LIBRARY AND RELATED FILES
184 libpraat.def       : Libpraat definition file
185 libpraat.dll       : Windows praat library
187 - MAKE FILES
188 Makefile           : Link to the makefile used
189 Makefile.linux     : Makefile for Linux (on x86/64)
190 Makefile.linuxppc  : Makefile for Linux on PowerPC
191 Makefile.mingw32   : Makefile for MS Windows (XP)
193 - SCRIPTS AND ADDITIONAL FILES
194 production         : Script to copy all libraries
195 sgc.glade          : Glade interface definition, ie, the GUI
196 sgc-logo.png       : Picture of 'shuo1 hao3 zong1wen2' in characters
197 sgc-mounded.xar    : Vector graphics file (Xara) of the final logo
198 sgc.png            : SGC logo rasterized
199 sgc.xar            : Vector graphics file (Xara) of the design logo
201 - SINGLE WORD FILES
202 cairo.c            : The graphical module to draw Pitch
203 config.c           : A limited configuration parser for sgc.ini
204 config.h           : The headerfile for config.c
205 main.c             : The main routines and initialization
206 praat.c            : Functionals calling praat
207 praat.h            : The headerfile for praat.c
208 signals.c          : The functions from the GUI
209 singleword.glade   : The GUI
210 singleword.h       : The main header file