12067fd92SSamuel Thibault 22067fd92SSamuel ThibaultThe Speakup User's Guide 32067fd92SSamuel ThibaultFor Speakup 3.1.2 and Later 42067fd92SSamuel ThibaultBy Gene Collins 52067fd92SSamuel ThibaultUpdated by others 62067fd92SSamuel ThibaultLast modified on Mon Sep 27 14:26:31 2010 72067fd92SSamuel ThibaultDocument version 1.3 82067fd92SSamuel Thibault 92067fd92SSamuel ThibaultCopyright (c) 2005 Gene Collins 102067fd92SSamuel ThibaultCopyright (c) 2008 Samuel Thibault 112067fd92SSamuel ThibaultCopyright (c) 2009, 2010 the Speakup Team 122067fd92SSamuel Thibault 132067fd92SSamuel ThibaultPermission is granted to copy, distribute and/or modify this document 142067fd92SSamuel Thibaultunder the terms of the GNU Free Documentation License, Version 1.2 or 152067fd92SSamuel Thibaultany later version published by the Free Software Foundation; with no 162067fd92SSamuel ThibaultInvariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A 172067fd92SSamuel Thibaultcopy of the license is included in the section entitled "GNU Free 182067fd92SSamuel ThibaultDocumentation License". 192067fd92SSamuel Thibault 202067fd92SSamuel ThibaultPreface 212067fd92SSamuel Thibault 222067fd92SSamuel ThibaultThe purpose of this document is to familiarize users with the user 232067fd92SSamuel Thibaultinterface to Speakup, a Linux Screen Reader. If you need instructions 242067fd92SSamuel Thibaultfor installing or obtaining Speakup, visit the web site at 252067fd92SSamuel Thibaulthttp://linux-speakup.org/. Speakup is a set of patches to the standard 262067fd92SSamuel ThibaultLinux kernel source tree. It can be built as a series of modules, or as 272067fd92SSamuel Thibaulta part of a monolithic kernel. These details are beyond the scope of 282067fd92SSamuel Thibaultthis manual, but the user may need to be aware of the module 292067fd92SSamuel Thibaultcapabilities, depending on how your system administrator has installed 302067fd92SSamuel ThibaultSpeakup. If Speakup is built as a part of a monolithic kernel, and the 312067fd92SSamuel Thibaultuser is using a hardware synthesizer, then Speakup will be able to 322067fd92SSamuel Thibaultprovide speech access from the time the kernel is loaded, until the time 332067fd92SSamuel Thibaultthe system is shutdown. This means that if you have obtained Linux 342067fd92SSamuel Thibaultinstallation media for a distribution which includes Speakup as a part 352067fd92SSamuel Thibaultof its kernel, you will be able, as a blind person, to install Linux 362067fd92SSamuel Thibaultwith speech access unaided by a sighted person. Again, these details 372067fd92SSamuel Thibaultare beyond the scope of this manual, but the user should be aware of 382067fd92SSamuel Thibaultthem. See the web site mentioned above for further details. 392067fd92SSamuel Thibault 402067fd92SSamuel Thibault1. Starting Speakup 412067fd92SSamuel Thibault 422067fd92SSamuel ThibaultIf your system administrator has installed Speakup to work with your 432067fd92SSamuel Thibaultspecific synthesizer by default, then all you need to do to use Speakup 442067fd92SSamuel Thibaultis to boot your system, and Speakup should come up talking. This 452067fd92SSamuel Thibaultassumes of course that your synthesizer is a supported hardware 462067fd92SSamuel Thibaultsynthesizer, and that it is either installed in or connected to your 472067fd92SSamuel Thibaultsystem, and is if necessary powered on. 482067fd92SSamuel Thibault 492067fd92SSamuel ThibaultIt is possible, however, that Speakup may have been compiled into the 502067fd92SSamuel Thibaultkernel with no default synthesizer. It is even possible that your 512067fd92SSamuel Thibaultkernel has been compiled with support for some of the supported 522067fd92SSamuel Thibaultsynthesizers and not others. If you find that this is the case, and 532067fd92SSamuel Thibaultyour synthesizer is supported but not available, complain to the person 542067fd92SSamuel Thibaultwho compiled and installed your kernel. Or better yet, go to the web 552067fd92SSamuel Thibaultsite, and learn how to patch Speakup into your own kernel source, and 562067fd92SSamuel Thibaultbuild and install your own kernel. 572067fd92SSamuel Thibault 582067fd92SSamuel ThibaultIf your kernel has been compiled with Speakup, and has no default 592067fd92SSamuel Thibaultsynthesizer set, or you would like to use a different synthesizer than 602067fd92SSamuel Thibaultthe default one, then you may issue the following command at the boot 612067fd92SSamuel Thibaultprompt of your boot loader. 622067fd92SSamuel Thibault 632067fd92SSamuel Thibaultlinux speakup.synth=ltlk 642067fd92SSamuel Thibault 652067fd92SSamuel ThibaultThis command would tell Speakup to look for and use a LiteTalk or 662067fd92SSamuel ThibaultDoubleTalk LT at boot up. You may replace the ltlk synthesizer keyword 672067fd92SSamuel Thibaultwith the keyword for whatever synthesizer you wish to use. The 682067fd92SSamuel Thibaultspeakup.synth parameter will accept the following keywords, provided 692067fd92SSamuel Thibaultthat support for the related synthesizers has been built into the 702067fd92SSamuel Thibaultkernel. 712067fd92SSamuel Thibault 722067fd92SSamuel Thibaultacntsa -- Accent SA 732067fd92SSamuel Thibaultacntpc -- Accent PC 742067fd92SSamuel Thibaultapollo -- Apollo 752067fd92SSamuel Thibaultaudptr -- Audapter 762067fd92SSamuel Thibaultbns -- Braille 'n Speak 772067fd92SSamuel Thibaultdectlk -- DecTalk Express (old and new, db9 serial only) 782067fd92SSamuel Thibaultdecext -- DecTalk (old) External 792067fd92SSamuel Thibaultdtlk -- DoubleTalk PC 802067fd92SSamuel Thibaultkeypc -- Keynote Gold PC 812067fd92SSamuel Thibaultltlk -- DoubleTalk LT, LiteTalk, or external Tripletalk (db9 serial only) 822067fd92SSamuel Thibaultspkout -- Speak Out 832067fd92SSamuel Thibaulttxprt -- Transport 842067fd92SSamuel Thibaultdummy -- Plain text terminal 852067fd92SSamuel Thibault 862067fd92SSamuel ThibaultNote: Speakup does * NOT * support usb connections! Speakup also does * 872067fd92SSamuel ThibaultNOT * support the internal Tripletalk! 882067fd92SSamuel Thibault 892067fd92SSamuel ThibaultSpeakup does support two other synthesizers, but because they work in 902067fd92SSamuel Thibaultconjunction with other software, they must be loaded as modules after 912067fd92SSamuel Thibaulttheir related software is loaded, and so are not available at boot up. 922067fd92SSamuel ThibaultThese are as follows: 932067fd92SSamuel Thibault 942067fd92SSamuel Thibaultdecpc -- DecTalk PC (not available at boot up) 952067fd92SSamuel Thibaultsoft -- One of several software synthesizers (not available at boot up) 962067fd92SSamuel Thibault 972067fd92SSamuel ThibaultSee the sections on loading modules and software synthesizers later in 982067fd92SSamuel Thibaultthis manual for further details. It should be noted here that the 992067fd92SSamuel Thibaultspeakup.synth boot parameter will have no effect if Speakup has been 1002067fd92SSamuel Thibaultcompiled as modules. In order for Speakup modules to be loaded during 1012067fd92SSamuel Thibaultthe boot process, such action must be configured by your system 1022067fd92SSamuel Thibaultadministrator. This will mean that you will hear some, but not all, of 1032067fd92SSamuel Thibaultthe bootup messages. 1042067fd92SSamuel Thibault 1052067fd92SSamuel Thibault2. Basic operation 1062067fd92SSamuel Thibault 1072067fd92SSamuel ThibaultOnce you have booted the system, and if necessary, have supplied the 1082067fd92SSamuel Thibaultproper bootup parameter for your synthesizer, Speakup will begin 1092067fd92SSamuel Thibaulttalking as soon as the kernel is loaded. In fact, it will talk a lot! 1102067fd92SSamuel ThibaultIt will speak all the boot up messages that the kernel prints on the 1112067fd92SSamuel Thibaultscreen during the boot process. This is because Speakup is not a 1122067fd92SSamuel Thibaultseparate screen reader, but is actually built into the operating 1132067fd92SSamuel Thibaultsystem. Since almost all console applications must print text on the 1142067fd92SSamuel Thibaultscreen using the kernel, and must get their keyboard input through the 1152067fd92SSamuel Thibaultkernel, they are automatically handled properly by Speakup. There are a 1162067fd92SSamuel Thibaultfew exceptions, but we'll come to those later. 1172067fd92SSamuel Thibault 1182067fd92SSamuel ThibaultNote: In this guide I will refer to the numeric keypad as the keypad. 1192067fd92SSamuel ThibaultThis is done because the speakupmap.map file referred to later in this 1202067fd92SSamuel Thibaultmanual uses the term keypad instead of numeric keypad. Also I'm lazy 1212067fd92SSamuel Thibaultand would rather only type one word. So keypad it is. Got it? Good. 1222067fd92SSamuel Thibault 1232067fd92SSamuel ThibaultMost of the Speakup review keys are located on the keypad at the far 1242067fd92SSamuel Thibaultright of the keyboard. The numlock key should be off, in order for these 1252067fd92SSamuel Thibaultto work. If you toggle the numlock on, the keypad will produce numbers, 1262067fd92SSamuel Thibaultwhich is exactly what you want for spreadsheets and such. For the 1272067fd92SSamuel Thibaultpurposes of this guide, you should have the numlock turned off, which is 1282067fd92SSamuel Thibaultits default state at bootup. 1292067fd92SSamuel Thibault 1302067fd92SSamuel ThibaultYou probably won't want to listen to all the bootup messages every time 1312067fd92SSamuel Thibaultyou start your system, though it's a good idea to listen to them at 1322067fd92SSamuel Thibaultleast once, just so you'll know what kind of information is available to 1332067fd92SSamuel Thibaultyou during the boot process. You can always review these messages after 1342067fd92SSamuel Thibaultbootup with the command: 1352067fd92SSamuel Thibault 1362067fd92SSamuel Thibaultdmesg | more 1372067fd92SSamuel Thibault 1382067fd92SSamuel ThibaultIn order to speed the boot process, and to silence the speaking of the 1392067fd92SSamuel Thibaultbootup messages, just press the keypad enter key. This key is located 1402067fd92SSamuel Thibaultin the bottom right corner of the keypad. Speakup will shut up and stay 1412067fd92SSamuel Thibaultthat way, until you press another key. 1422067fd92SSamuel Thibault 1432067fd92SSamuel ThibaultYou can check to see if the boot process has completed by pressing the 8 1442067fd92SSamuel Thibaultkey on the keypad, which reads the current line. This also has the 1452067fd92SSamuel Thibaulteffect of starting Speakup talking again, so you can press keypad enter 1462067fd92SSamuel Thibaultto silence it again if the boot process has not completed. 1472067fd92SSamuel Thibault 1482067fd92SSamuel ThibaultWhen the boot process is complete, you will arrive at a "login" prompt. 1492067fd92SSamuel ThibaultAt this point, you'll need to type in your user id and password, as 1502067fd92SSamuel Thibaultprovided by your system administrator. You will hear Speakup speak the 1512067fd92SSamuel Thibaultletters of your user id as you type it, but not the password. This is 1522067fd92SSamuel Thibaultbecause the password is not displayed on the screen for security 1532067fd92SSamuel Thibaultreasons. This has nothing to do with Speakup, it's a Linux security 1542067fd92SSamuel Thibaultfeature. 1552067fd92SSamuel Thibault 1562067fd92SSamuel ThibaultOnce you've logged in, you can run any Linux command or program which is 1572067fd92SSamuel Thibaultallowed by your user id. Normal users will not be able to run programs 1582067fd92SSamuel Thibaultwhich require root privileges. 1592067fd92SSamuel Thibault 1602067fd92SSamuel ThibaultWhen you are running a program or command, Speakup will automatically 1612067fd92SSamuel Thibaultspeak new text as it arrives on the screen. You can at any time silence 1622067fd92SSamuel Thibaultthe speech with keypad enter, or use any of the Speakup review keys. 1632067fd92SSamuel Thibault 1642067fd92SSamuel ThibaultHere are some basic Speakup review keys, and a short description of what 1652067fd92SSamuel Thibaultthey do. 1662067fd92SSamuel Thibault 1672067fd92SSamuel Thibaultkeypad 1 -- read previous character 1682067fd92SSamuel Thibaultkeypad 2 -- read current character (pressing keypad 2 twice rapidly will speak 1692067fd92SSamuel Thibault the current character phonetically) 1702067fd92SSamuel Thibaultkeypad 3 -- read next character 1712067fd92SSamuel Thibaultkeypad 4 -- read previous word 1722067fd92SSamuel Thibaultkeypad 5 -- read current word (press twice rapidly to spell the current word) 1732067fd92SSamuel Thibaultkeypad 6 -- read next word 1742067fd92SSamuel Thibaultkeypad 7 -- read previous line 1752067fd92SSamuel Thibaultkeypad 8 -- read current line (press twice rapidly to hear how much the 1762067fd92SSamuel Thibault text on the current line is indented) 1772067fd92SSamuel Thibaultkeypad 9 -- read next line 1782067fd92SSamuel Thibaultkeypad period -- speak current cursor position and announce current 1792067fd92SSamuel Thibault virtual console 1802067fd92SSamuel Thibault 1812067fd92SSamuel ThibaultIt's also worth noting that the insert key on the keypad is mapped 1822067fd92SSamuel Thibaultas the speakup key. Instead of pressing and releasing this key, as you 1832067fd92SSamuel Thibaultdo under DOS or Windows, you hold it like a shift key, and press other 1842067fd92SSamuel Thibaultkeys in combination with it. For example, repeatedly holding keypad 1852067fd92SSamuel Thibaultinsert, from now on called speakup, and keypad enter will toggle the 1862067fd92SSamuel Thibaultspeaking of new text on the screen on and off. This is not the same as 1872067fd92SSamuel Thibaultjust pressing keypad enter by itself, which just silences the speech 1882067fd92SSamuel Thibaultuntil you hit another key. When you hit speakup plus keypad enter, 1892067fd92SSamuel ThibaultSpeakup will say, "You turned me off.", or "Hey, that's better." When 1902067fd92SSamuel ThibaultSpeakup is turned off, no new text on the screen will be spoken. You 1912067fd92SSamuel Thibaultcan still use the reading controls to review the screen however. 1922067fd92SSamuel Thibault 1932067fd92SSamuel Thibault3. Using the Speakup Help System 1942067fd92SSamuel Thibault 1952067fd92SSamuel ThibaultIn order to enter the Speakup help system, press and hold the speakup 1962067fd92SSamuel Thibaultkey (remember that this is the keypad insert key), and press the f1 key. 1972067fd92SSamuel ThibaultYou will hear the message: 1982067fd92SSamuel Thibault 1992067fd92SSamuel Thibault"Press space to leave help, cursor up or down to scroll, or a letter to 2002067fd92SSamuel Thibaultgo to commands in list." 2012067fd92SSamuel Thibault 2022067fd92SSamuel ThibaultWhen you press the spacebar to leave the help system, you will hear: 2032067fd92SSamuel Thibault 2042067fd92SSamuel Thibault"Leaving help." 2052067fd92SSamuel Thibault 2062067fd92SSamuel ThibaultWhile you are in the Speakup help system, you can scroll up or down 2072067fd92SSamuel Thibaultthrough the list of available commands using the cursor keys. The list 2082067fd92SSamuel Thibaultof commands is arranged in alphabetical order. If you wish to jump to 2092067fd92SSamuel Thibaultcommands in a specific part of the alphabet, you may press the letter of 2102067fd92SSamuel Thibaultthe alphabet you wish to jump to. 2112067fd92SSamuel Thibault 2122067fd92SSamuel ThibaultYou can also just explore by typing keyboard keys. Pressing keys will 2132067fd92SSamuel Thibaultcause Speakup to speak the command associated with that key. For 2142067fd92SSamuel Thibaultexample, if you press the keypad 8 key, you will hear: 2152067fd92SSamuel Thibault 2162067fd92SSamuel Thibault"Keypad 8 is line, say current." 2172067fd92SSamuel Thibault 2182067fd92SSamuel ThibaultYou'll notice that some commands do not have keys assigned to them. 2192067fd92SSamuel ThibaultThis is because they are very infrequently used commands, and are also 2202067fd92SSamuel Thibaultaccessible through the sys system. We'll discuss the sys system later 2212067fd92SSamuel Thibaultin this manual. 2222067fd92SSamuel Thibault 2232067fd92SSamuel ThibaultYou'll also notice that some commands have two keys assigned to them. 2242067fd92SSamuel ThibaultThis is because Speakup has a built in set of alternative key bindings 2252067fd92SSamuel Thibaultfor laptop users. The alternate speakup key is the caps lock key. You 2262067fd92SSamuel Thibaultcan press and hold the caps lock key, while pressing an alternate 2272067fd92SSamuel Thibaultspeakup command key to activate the command. On most laptops, the 2282067fd92SSamuel Thibaultnumeric keypad is defined as the keys in the j k l area of the keyboard. 2292067fd92SSamuel Thibault 2302067fd92SSamuel ThibaultThere is usually a function key which turns this keypad function on and 2312067fd92SSamuel Thibaultoff, and some other key which controls the numlock state. Toggling the 2322067fd92SSamuel Thibaultkeypad functionality on and off can become a royal pain. So, Speakup 2332067fd92SSamuel Thibaultgives you a simple way to get at an alternative set of key mappings for 2342067fd92SSamuel Thibaultyour laptop. These are also available by default on desktop systems, 2352067fd92SSamuel Thibaultbecause Speakup does not know whether it is running on a desktop or 2362067fd92SSamuel Thibaultlaptop. So you may choose which set of Speakup keys to use. Some 2372067fd92SSamuel Thibaultsystem administrators may have chosen to compile Speakup for a desktop 2382067fd92SSamuel Thibaultsystem without this set of alternate key bindings, but these details are 2392067fd92SSamuel Thibaultbeyond the scope of this manual. To use the caps lock for its normal 2402067fd92SSamuel Thibaultpurpose, hold the shift key while toggling the caps lock on and off. We 2412067fd92SSamuel Thibaultshould note here, that holding the caps lock key and pressing the z key 2422067fd92SSamuel Thibaultwill toggle the alternate j k l keypad on and off. 2432067fd92SSamuel Thibault 2442067fd92SSamuel Thibault4. Keys and Their Assigned Commands 2452067fd92SSamuel Thibault 2462067fd92SSamuel ThibaultIn this section, we'll go through a list of all the speakup keys and 2472067fd92SSamuel Thibaultcommands. You can also get a list of commands and assigned keys from 2482067fd92SSamuel Thibaultthe help system. 2492067fd92SSamuel Thibault 2502067fd92SSamuel ThibaultThe following list was taken from the speakupmap.map file. Key 2512067fd92SSamuel Thibaultassignments are on the left of the equal sign, and the associated 2522067fd92SSamuel ThibaultSpeakup commands are on the right. The designation "spk" means to press 2532067fd92SSamuel Thibaultand hold the speakup key, a.k.a. keypad insert, a.k.a. caps lock, while 2542067fd92SSamuel Thibaultpressing the other specified key. 2552067fd92SSamuel Thibault 2562067fd92SSamuel Thibaultspk key_f9 = punc_level_dec 2572067fd92SSamuel Thibaultspk key_f10 = punc_level_inc 2582067fd92SSamuel Thibaultspk key_f11 = reading_punc_dec 2592067fd92SSamuel Thibaultspk key_f12 = reading_punc_inc 2602067fd92SSamuel Thibaultspk key_1 = vol_dec 2612067fd92SSamuel Thibaultspk key_2 = vol_inc 2622067fd92SSamuel Thibaultspk key_3 = pitch_dec 2632067fd92SSamuel Thibaultspk key_4 = pitch_inc 2642067fd92SSamuel Thibaultspk key_5 = rate_dec 2652067fd92SSamuel Thibaultspk key_6 = rate_inc 2662067fd92SSamuel Thibaultkey_kpasterisk = toggle_cursoring 2672067fd92SSamuel Thibaultspk key_kpasterisk = speakup_goto 2682067fd92SSamuel Thibaultspk key_f1 = speakup_help 2692067fd92SSamuel Thibaultspk key_f2 = set_win 2702067fd92SSamuel Thibaultspk key_f3 = clear_win 2712067fd92SSamuel Thibaultspk key_f4 = enable_win 2722067fd92SSamuel Thibaultspk key_f5 = edit_some 2732067fd92SSamuel Thibaultspk key_f6 = edit_most 2742067fd92SSamuel Thibaultspk key_f7 = edit_delim 2752067fd92SSamuel Thibaultspk key_f8 = edit_repeat 2762067fd92SSamuel Thibaultshift spk key_f9 = edit_exnum 2772067fd92SSamuel Thibault key_kp7 = say_prev_line 2782067fd92SSamuel Thibaultspk key_kp7 = left_edge 2792067fd92SSamuel Thibault key_kp8 = say_line 2802067fd92SSamuel Thibaultdouble key_kp8 = say_line_indent 2812067fd92SSamuel Thibaultspk key_kp8 = say_from_top 2822067fd92SSamuel Thibault key_kp9 = say_next_line 2832067fd92SSamuel Thibaultspk key_kp9 = top_edge 2842067fd92SSamuel Thibault key_kpminus = speakup_parked 2852067fd92SSamuel Thibaultspk key_kpminus = say_char_num 2862067fd92SSamuel Thibault key_kp4 = say_prev_word 2872067fd92SSamuel Thibaultspk key_kp4 = say_from_left 2882067fd92SSamuel Thibault key_kp5 = say_word 2892067fd92SSamuel Thibaultdouble key_kp5 = spell_word 2902067fd92SSamuel Thibaultspk key_kp5 = spell_phonetic 2912067fd92SSamuel Thibault key_kp6 = say_next_word 2922067fd92SSamuel Thibaultspk key_kp6 = say_to_right 2932067fd92SSamuel Thibault key_kpplus = say_screen 2942067fd92SSamuel Thibaultspk key_kpplus = say_win 2952067fd92SSamuel Thibault key_kp1 = say_prev_char 2962067fd92SSamuel Thibaultspk key_kp1 = right_edge 2972067fd92SSamuel Thibault key_kp2 = say_char 2982067fd92SSamuel Thibaultspk key_kp2 = say_to_bottom 2992067fd92SSamuel Thibaultdouble key_kp2 = say_phonetic_char 3002067fd92SSamuel Thibault key_kp3 = say_next_char 3012067fd92SSamuel Thibaultspk key_kp3 = bottom_edge 3022067fd92SSamuel Thibault key_kp0 = spk_key 3032067fd92SSamuel Thibault key_kpdot = say_position 3042067fd92SSamuel Thibaultspk key_kpdot = say_attributes 3052067fd92SSamuel Thibaultkey_kpenter = speakup_quiet 3062067fd92SSamuel Thibaultspk key_kpenter = speakup_off 3072067fd92SSamuel Thibaultkey_sysrq = speech_kill 3082067fd92SSamuel Thibault key_kpslash = speakup_cut 3092067fd92SSamuel Thibaultspk key_kpslash = speakup_paste 3102067fd92SSamuel Thibaultspk key_pageup = say_first_char 3112067fd92SSamuel Thibaultspk key_pagedown = say_last_char 3122067fd92SSamuel Thibaultkey_capslock = spk_key 3132067fd92SSamuel Thibault spk key_z = spk_lock 3142067fd92SSamuel Thibaultkey_leftmeta = spk_key 3152067fd92SSamuel Thibaultctrl spk key_0 = speakup_goto 3162067fd92SSamuel Thibaultspk key_u = say_prev_line 3172067fd92SSamuel Thibaultspk key_i = say_line 3182067fd92SSamuel Thibaultdouble spk key_i = say_line_indent 3192067fd92SSamuel Thibaultspk key_o = say_next_line 3202067fd92SSamuel Thibaultspk key_minus = speakup_parked 3212067fd92SSamuel Thibaultshift spk key_minus = say_char_num 3222067fd92SSamuel Thibaultspk key_j = say_prev_word 3232067fd92SSamuel Thibaultspk key_k = say_word 3242067fd92SSamuel Thibaultdouble spk key_k = spell_word 3252067fd92SSamuel Thibaultspk key_l = say_next_word 3262067fd92SSamuel Thibaultspk key_m = say_prev_char 3272067fd92SSamuel Thibaultspk key_comma = say_char 3282067fd92SSamuel Thibaultdouble spk key_comma = say_phonetic_char 3292067fd92SSamuel Thibaultspk key_dot = say_next_char 3302067fd92SSamuel Thibaultspk key_n = say_position 3312067fd92SSamuel Thibault ctrl spk key_m = left_edge 3322067fd92SSamuel Thibault ctrl spk key_y = top_edge 3332067fd92SSamuel Thibault ctrl spk key_dot = right_edge 3342067fd92SSamuel Thibaultctrl spk key_p = bottom_edge 3352067fd92SSamuel Thibaultspk key_apostrophe = say_screen 3362067fd92SSamuel Thibaultspk key_h = say_from_left 3372067fd92SSamuel Thibaultspk key_y = say_from_top 3382067fd92SSamuel Thibaultspk key_semicolon = say_to_right 3392067fd92SSamuel Thibaultspk key_p = say_to_bottom 3402067fd92SSamuel Thibaultspk key_slash = say_attributes 3412067fd92SSamuel Thibault spk key_enter = speakup_quiet 3422067fd92SSamuel Thibault ctrl spk key_enter = speakup_off 3432067fd92SSamuel Thibault spk key_9 = speakup_cut 3442067fd92SSamuel Thibaultspk key_8 = speakup_paste 3452067fd92SSamuel Thibaultshift spk key_m = say_first_char 3462067fd92SSamuel Thibault ctrl spk key_semicolon = say_last_char 347f96a15c7SSamuel Thibaultspk key_r = read_all_doc 3482067fd92SSamuel Thibault 3492067fd92SSamuel Thibault5. The Speakup Sys System 3502067fd92SSamuel Thibault 3512067fd92SSamuel ThibaultThe Speakup screen reader also creates a speakup subdirectory as a part 3522067fd92SSamuel Thibaultof the sys system. 3532067fd92SSamuel Thibault 3542067fd92SSamuel ThibaultAs a convenience, run as root 3552067fd92SSamuel Thibault 3562067fd92SSamuel Thibaultln -s /sys/accessibility/speakup /speakup 3572067fd92SSamuel Thibault 3582067fd92SSamuel Thibaultto directly access speakup parameters from /speakup. 3592067fd92SSamuel ThibaultYou can see these entries by typing the command: 3602067fd92SSamuel Thibault 3612067fd92SSamuel Thibaultls -1 /speakup/* 3622067fd92SSamuel Thibault 3632067fd92SSamuel ThibaultIf you issue the above ls command, you will get back something like 3642067fd92SSamuel Thibaultthis: 3652067fd92SSamuel Thibault 3662067fd92SSamuel Thibault/speakup/attrib_bleep 3672067fd92SSamuel Thibault/speakup/bell_pos 3682067fd92SSamuel Thibault/speakup/bleep_time 3692067fd92SSamuel Thibault/speakup/bleeps 3702067fd92SSamuel Thibault/speakup/cursor_time 3712067fd92SSamuel Thibault/speakup/delimiters 3722067fd92SSamuel Thibault/speakup/ex_num 3732067fd92SSamuel Thibault/speakup/key_echo 3742067fd92SSamuel Thibault/speakup/keymap 3752067fd92SSamuel Thibault/speakup/no_interrupt 3762067fd92SSamuel Thibault/speakup/punc_all 3772067fd92SSamuel Thibault/speakup/punc_level 3782067fd92SSamuel Thibault/speakup/punc_most 3792067fd92SSamuel Thibault/speakup/punc_some 3802067fd92SSamuel Thibault/speakup/reading_punc 3812067fd92SSamuel Thibault/speakup/repeats 3822067fd92SSamuel Thibault/speakup/say_control 3832067fd92SSamuel Thibault/speakup/say_word_ctl 3842067fd92SSamuel Thibault/speakup/silent 3852067fd92SSamuel Thibault/speakup/spell_delay 3862067fd92SSamuel Thibault/speakup/synth 3872067fd92SSamuel Thibault/speakup/synth_direct 3882067fd92SSamuel Thibault/speakup/version 3892067fd92SSamuel Thibault 3902067fd92SSamuel Thibault/speakup/i18n: 3912067fd92SSamuel Thibaultannouncements 3922067fd92SSamuel Thibaultcharacters 3932067fd92SSamuel Thibaultchartab 3942067fd92SSamuel Thibaultcolors 3952067fd92SSamuel Thibaultctl_keys 3962067fd92SSamuel Thibaultformatted 3972067fd92SSamuel Thibaultfunction_names 3982067fd92SSamuel Thibaultkey_names 3992067fd92SSamuel Thibaultstates 4002067fd92SSamuel Thibault 4012067fd92SSamuel Thibault/speakup/soft: 4022067fd92SSamuel Thibaultcaps_start 4032067fd92SSamuel Thibaultcaps_stop 4042067fd92SSamuel Thibaultdelay_time 4052067fd92SSamuel Thibaultdirect 4062067fd92SSamuel Thibaultfreq 4072067fd92SSamuel Thibaultfull_time 4082067fd92SSamuel Thibaultjiffy_delta 4092067fd92SSamuel Thibaultpitch 4102067fd92SSamuel Thibaultinflection 4112067fd92SSamuel Thibaultpunct 4122067fd92SSamuel Thibaultrate 4132067fd92SSamuel Thibaulttone 4142067fd92SSamuel Thibaulttrigger_time 4152067fd92SSamuel Thibaultvoice 4162067fd92SSamuel Thibaultvol 4172067fd92SSamuel Thibault 4182067fd92SSamuel ThibaultNotice the two subdirectories of /speakup: /speakup/i18n and 4192067fd92SSamuel Thibault/speakup/soft. 4202067fd92SSamuel ThibaultThe i18n subdirectory is described in a later section. 4212067fd92SSamuel ThibaultThe files under /speakup/soft represent settings that are specific to the 4222067fd92SSamuel Thibaultdriver for the software synthesizer. If you use the LiteTalk, your 4232067fd92SSamuel Thibaultsynthesizer-specific settings would be found in /speakup/ltlk. In other words, 4242067fd92SSamuel Thibaulta subdirectory named /speakup/KWD is created to hold parameters specific 4252067fd92SSamuel Thibaultto the device whose keyword is KWD. 4262067fd92SSamuel ThibaultThese parameters include volume, rate, pitch, and others. 4272067fd92SSamuel Thibault 4282067fd92SSamuel ThibaultIn addition to using the Speakup hot keys to change such things as 4292067fd92SSamuel Thibaultvolume, pitch, and rate, you can also echo values to the appropriate 4302067fd92SSamuel Thibaultentry in the /speakup directory. This is very useful, since it 4312067fd92SSamuel Thibaultlets you control Speakup parameters from within a script. How you 4322067fd92SSamuel Thibaultwould write such scripts is somewhat beyond the scope of this manual, 4332067fd92SSamuel Thibaultbut I will include a couple of simple examples here to give you a 4342067fd92SSamuel Thibaultgeneral idea of what such scripts can do. 4352067fd92SSamuel Thibault 4362067fd92SSamuel ThibaultSuppose for example, that you wanted to control both the punctuation 4372067fd92SSamuel Thibaultlevel and the reading punctuation level at the same time. For 4382067fd92SSamuel Thibaultsimplicity, we'll call them punc0, punc1, punc2, and punc3. The scripts 4392067fd92SSamuel Thibaultmight look something like this: 4402067fd92SSamuel Thibault 4412067fd92SSamuel Thibault#!/bin/bash 4422067fd92SSamuel Thibault# punc0 4432067fd92SSamuel Thibault# set punc and reading punc levels to 0 4442067fd92SSamuel Thibaultecho 0 >/speakup/punc_level 4452067fd92SSamuel Thibaultecho 0 >/speakup/reading_punc 4462067fd92SSamuel Thibaultecho Punctuation level set to 0. 4472067fd92SSamuel Thibault 4482067fd92SSamuel Thibault#!/bin/bash 4492067fd92SSamuel Thibault# punc1 4502067fd92SSamuel Thibault# set punc and reading punc levels to 1 4512067fd92SSamuel Thibaultecho 1 >/speakup/punc_level 4522067fd92SSamuel Thibaultecho 1 >/speakup/reading_punc 4532067fd92SSamuel Thibaultecho Punctuation level set to 1. 4542067fd92SSamuel Thibault 4552067fd92SSamuel Thibault#!/bin/bash 4562067fd92SSamuel Thibault# punc2 4572067fd92SSamuel Thibault# set punc and reading punc levels to 2 4582067fd92SSamuel Thibaultecho 2 >/speakup/punc_level 4592067fd92SSamuel Thibaultecho 2 >/speakup/reading_punc 4602067fd92SSamuel Thibaultecho Punctuation level set to 2. 4612067fd92SSamuel Thibault 4622067fd92SSamuel Thibault#!/bin/bash 4632067fd92SSamuel Thibault# punc3 4642067fd92SSamuel Thibault# set punc and reading punc levels to 3 4652067fd92SSamuel Thibaultecho 3 >/speakup/punc_level 4662067fd92SSamuel Thibaultecho 3 >/speakup/reading_punc 4672067fd92SSamuel Thibaultecho Punctuation level set to 3. 4682067fd92SSamuel Thibault 4692067fd92SSamuel ThibaultIf you were to store these four small scripts in a directory in your 4702067fd92SSamuel Thibaultpath, perhaps /usr/local/bin, and set the permissions to 755 with the 4712067fd92SSamuel Thibaultchmod command, then you could change the default reading punc and 4722067fd92SSamuel Thibaultpunctuation levels at the same time by issuing just one command. For 4732067fd92SSamuel Thibaultexample, if you were to execute the punc3 command at your shell prompt, 4742067fd92SSamuel Thibaultthen the reading punc and punc level would both get set to 3. 4752067fd92SSamuel Thibault 4762067fd92SSamuel ThibaultI should note that the above scripts were written to work with bash, but 4772067fd92SSamuel Thibaultregardless of which shell you use, you should be able to do something 4782067fd92SSamuel Thibaultsimilar. 4792067fd92SSamuel Thibault 4802067fd92SSamuel ThibaultThe Speakup sys system also has another interesting use. You can echo 4812067fd92SSamuel ThibaultSpeakup parameters into the sys system in a script during system 4822067fd92SSamuel Thibaultstartup, and speakup will return to your preferred parameters every time 4832067fd92SSamuel Thibaultthe system is rebooted. 4842067fd92SSamuel Thibault 4852067fd92SSamuel ThibaultMost of the Speakup sys parameters can be manipulated by a regular user 4862067fd92SSamuel Thibaulton the system. However, there are a few parameters that are dangerous 4872067fd92SSamuel Thibaultenough that they should only be manipulated by the root user on your 4882067fd92SSamuel Thibaultsystem. There are even some parameters that are read only, and cannot 4892067fd92SSamuel Thibaultbe written to at all. For example, the version entry in the Speakup 4902067fd92SSamuel Thibaultsys system is read only. This is because there is no reason for a user 4912067fd92SSamuel Thibaultto tamper with the version number which is reported by Speakup. Doing 4922067fd92SSamuel Thibaultan ls -l on /speakup/version will return this: 4932067fd92SSamuel Thibault 4942067fd92SSamuel Thibault-r--r--r-- 1 root root 0 Mar 21 13:46 /speakup/version 4952067fd92SSamuel Thibault 4962067fd92SSamuel ThibaultAs you can see, the version entry in the Speakup sys system is read 4972067fd92SSamuel Thibaultonly, is owned by root, and belongs to the root group. Doing a cat of 4982067fd92SSamuel Thibault/speakup/version will display the Speakup version number, like 4992067fd92SSamuel Thibaultthis: 5002067fd92SSamuel Thibault 5012067fd92SSamuel Thibaultcat /speakup/version 5022067fd92SSamuel ThibaultSpeakup v-2.00 CVS: Thu Oct 21 10:38:21 EDT 2004 5032067fd92SSamuel Thibaultsynth dtlk version 1.1 5042067fd92SSamuel Thibault 5052067fd92SSamuel ThibaultThe display shows the Speakup version number, along with the version 5062067fd92SSamuel Thibaultnumber of the driver for the current synthesizer. 5072067fd92SSamuel Thibault 5082067fd92SSamuel ThibaultLooking at entries in the Speakup sys system can be useful in many 5092067fd92SSamuel Thibaultways. For example, you might wish to know what level your volume is set 5102067fd92SSamuel Thibaultat. You could type: 5112067fd92SSamuel Thibault 5122067fd92SSamuel Thibaultcat /speakup/KWD/vol 5132067fd92SSamuel Thibault# Replace KWD with the keyword for your synthesizer, E.G., ltlk for LiteTalk. 5142067fd92SSamuel Thibault5 5152067fd92SSamuel Thibault 5162067fd92SSamuel ThibaultThe number five which comes back is the level at which the synthesizer 5172067fd92SSamuel Thibaultvolume is set at. 5182067fd92SSamuel Thibault 5192067fd92SSamuel ThibaultAll the entries in the Speakup sys system are readable, some are 5202067fd92SSamuel Thibaultwritable by root only, and some are writable by everyone. Unless you 5212067fd92SSamuel Thibaultknow what you are doing, you should probably leave the ones that are 5222067fd92SSamuel Thibaultwritable by root only alone. Most of the names are self explanatory. 5232067fd92SSamuel ThibaultVol for controlling volume, pitch for pitch, inflection for pitch range, rate 5242067fd92SSamuel Thibaultfor controlling speaking rate, etc. If you find one you aren't sure about, you 5252067fd92SSamuel Thibaultcan post a query on the Speakup list. 5262067fd92SSamuel Thibault 5272067fd92SSamuel Thibault6. Changing Synthesizers 5282067fd92SSamuel Thibault 5292067fd92SSamuel ThibaultIt is possible to change to a different synthesizer while speakup is 5302067fd92SSamuel Thibaultrunning. In other words, it is not necessary to reboot the system 5312067fd92SSamuel Thibaultin order to use a different synthesizer. You can simply echo the 5322067fd92SSamuel Thibaultsynthesizer keyword to the /speakup/synth sys entry. 5332067fd92SSamuel ThibaultDepending on your situation, you may wish to echo none to the synth 5342067fd92SSamuel Thibaultsys entry, to disable speech while one synthesizer is disconnected and 5352067fd92SSamuel Thibaulta second one is connected in its place. Then echo the keyword for the 5362067fd92SSamuel Thibaultnew synthesizer into the synth sys entry in order to start speech 5372067fd92SSamuel Thibaultwith the newly connected synthesizer. See the list of synthesizer 5382067fd92SSamuel Thibaultkeywords in section 1 to find the keyword which matches your synth. 5392067fd92SSamuel Thibault 5402067fd92SSamuel Thibault7. Loading modules 5412067fd92SSamuel Thibault 5422067fd92SSamuel ThibaultAs mentioned earlier, Speakup can either be completely compiled into the 5432067fd92SSamuel Thibaultkernel, with the exception of the help module, or it can be compiled as 5442067fd92SSamuel Thibaulta series of modules. When compiled as modules, Speakup will only be 5452067fd92SSamuel Thibaultable to speak some of the bootup messages if your system administrator 546d64fbe9fSColin Ian Kinghas configured the system to load the modules at boot time. The modules 5472067fd92SSamuel Thibaultcan be loaded after the file systems have been checked and mounted, or 5482067fd92SSamuel Thibaultfrom an initrd. There is a third possibility. Speakup can be compiled 5492067fd92SSamuel Thibaultwith some components built into the kernel, and others as modules. As 5502067fd92SSamuel Thibaultwe'll see in the next section, this is particularly useful when you are 5512067fd92SSamuel Thibaultworking with software synthesizers. 5522067fd92SSamuel Thibault 5532067fd92SSamuel ThibaultIf Speakup is completely compiled as modules, then you must use the 5542067fd92SSamuel Thibaultmodprobe command to load Speakup. You do this by loading the module for 5552067fd92SSamuel Thibaultthe synthesizer driver you wish to use. The driver modules are all 5562067fd92SSamuel Thibaultnamed speakup_<keyword>, where <keyword> is the keyword for the 5572067fd92SSamuel Thibaultsynthesizer you want. So, in order to load the driver for the DecTalk 5582067fd92SSamuel ThibaultExpress, you would type the following command: 5592067fd92SSamuel Thibault 5602067fd92SSamuel Thibaultmodprobe speakup_dectlk 5612067fd92SSamuel Thibault 5622067fd92SSamuel ThibaultIssuing this command would load the DecTalk Express driver and all other 5632067fd92SSamuel Thibaultrelated Speakup modules necessary to get Speakup up and running. 5642067fd92SSamuel Thibault 5652067fd92SSamuel ThibaultTo completely unload Speakup, again presuming that it is entirely built 5662067fd92SSamuel Thibaultas modules, you would give the command: 5672067fd92SSamuel Thibault 5682067fd92SSamuel Thibaultmodprobe -r speakup_dectlk 5692067fd92SSamuel Thibault 5702067fd92SSamuel ThibaultThe above command assumes you were running a DecTalk Express. If you 5712067fd92SSamuel Thibaultwere using a different synth, then you would substitute its keyword in 5722067fd92SSamuel Thibaultplace of dectlk. 5732067fd92SSamuel Thibault 5742067fd92SSamuel ThibaultIf you have multiple drivers loaded, you need to unload all of them, in 5752067fd92SSamuel Thibaultorder to completely unload Speakup. 5762067fd92SSamuel ThibaultFor example, if you have loaded both the dectlk and ltlk drivers, use the 5772067fd92SSamuel Thibaultcommand: 5782067fd92SSamuel Thibaultmodprobe -r speakup_dectlk speakup_ltlk 5792067fd92SSamuel Thibault 5802067fd92SSamuel ThibaultYou cannot unload the driver for software synthesizers when a user-space 5812067fd92SSamuel Thibaultdaemon is using /dev/softsynth. First, kill the daemon. Next, remove 5822067fd92SSamuel Thibaultthe driver with the command: 5832067fd92SSamuel Thibaultmodprobe -r speakup_soft 5842067fd92SSamuel Thibault 5852067fd92SSamuel ThibaultNow, suppose we have a situation where the main Speakup component 5862067fd92SSamuel Thibaultis built into the kernel, and some or all of the drivers are built as 5872067fd92SSamuel Thibaultmodules. Since the main part of Speakup is compiled into the kernel, a 5882067fd92SSamuel Thibaultpartial Speakup sys system has been created which we can take advantage 5892067fd92SSamuel Thibaultof by simply echoing the synthesizer keyword into the 5902067fd92SSamuel Thibault/speakup/synth sys entry. This will cause the kernel to 5912067fd92SSamuel Thibaultautomatically load the appropriate driver module, and start Speakup 5922067fd92SSamuel Thibaulttalking. To switch to another synth, just echo a new keyword to the 5932067fd92SSamuel Thibaultsynth sys entry. For example, to load the DoubleTalk LT driver, 5942067fd92SSamuel Thibaultyou would type: 5952067fd92SSamuel Thibault 5962067fd92SSamuel Thibaultecho ltlk >/speakup/synth 5972067fd92SSamuel Thibault 5982067fd92SSamuel ThibaultYou can use the modprobe -r command to unload driver modules, regardless 5992067fd92SSamuel Thibaultof whether the main part of Speakup has been built into the kernel or 6002067fd92SSamuel Thibaultnot. 6012067fd92SSamuel Thibault 6022067fd92SSamuel Thibault8. Using Software Synthesizers 6032067fd92SSamuel Thibault 6042067fd92SSamuel ThibaultUsing a software synthesizer requires that some other software be 6052067fd92SSamuel Thibaultinstalled and running on your system. For this reason, software 6062067fd92SSamuel Thibaultsynthesizers are not available for use at bootup, or during a system 6072067fd92SSamuel Thibaultinstallation process. 6082067fd92SSamuel ThibaultThere are two freely-available solutions for software speech: Espeakup and 6092067fd92SSamuel ThibaultSpeech Dispatcher. 6102067fd92SSamuel ThibaultThese are described in subsections 8.1 and 8.2, respectively. 6112067fd92SSamuel Thibault 6122067fd92SSamuel ThibaultDuring the rest of this section, we assume that speakup_soft is either 6132067fd92SSamuel Thibaultbuilt in to your kernel, or loaded as a module. 6142067fd92SSamuel Thibault 6152067fd92SSamuel ThibaultIf your system does not have udev installed , before you can use a 6162067fd92SSamuel Thibaultsoftware synthesizer, you must have created the /dev/softsynth device. 6172067fd92SSamuel ThibaultIf you have not already done so, issue the following commands as root: 6182067fd92SSamuel Thibault 6192067fd92SSamuel Thibaultcd /dev 6202067fd92SSamuel Thibaultmknod softsynth c 10 26 6212067fd92SSamuel Thibault 6222067fd92SSamuel ThibaultWhile we are at it, we might just as well create the /dev/synth device, 6232067fd92SSamuel Thibaultwhich can be used to let user space programs send information to your 6242067fd92SSamuel Thibaultsynthesizer. To create /dev/synth, change to the /dev directory, and 6252067fd92SSamuel Thibaultissue the following command as root: 6262067fd92SSamuel Thibault 6272067fd92SSamuel Thibaultmknod synth c 10 25 6282067fd92SSamuel Thibault 6292067fd92SSamuel Thibaultof both. 6302067fd92SSamuel Thibault 6312067fd92SSamuel Thibault8.1. Espeakup 6322067fd92SSamuel Thibault 6332067fd92SSamuel ThibaultEspeakup is a connector between Speakup and the eSpeak software synthesizer. 6342067fd92SSamuel ThibaultEspeakup may already be available as a package for your distribution 6352067fd92SSamuel Thibaultof Linux. If it is not packaged, you need to install it manually. 6362067fd92SSamuel ThibaultYou can find it in the contrib/ subdirectory of the Speakup sources. 6372067fd92SSamuel ThibaultThe filename is espeakup-$VERSION.tar.bz2, where $VERSION 6382067fd92SSamuel Thibaultdepends on the current release of Espeakup. The Speakup 3.1.2 source 6392067fd92SSamuel Thibaultships with version 0.71 of Espeakup. 6402067fd92SSamuel ThibaultThe README file included with the Espeakup sources describes the process 6412067fd92SSamuel Thibaultof manual installation. 6422067fd92SSamuel Thibault 6432067fd92SSamuel ThibaultAssuming that Espeakup is installed, either by the user or by the distributor, 6442067fd92SSamuel Thibaultfollow these steps to use it. 6452067fd92SSamuel Thibault 6462067fd92SSamuel ThibaultTell Speakup to use the "soft driver: 6472067fd92SSamuel Thibaultecho soft > /speakup/synth 6482067fd92SSamuel Thibault 6492067fd92SSamuel ThibaultFinally, start the espeakup program. There are two ways to do it. 6502067fd92SSamuel ThibaultBoth require root privileges. 6512067fd92SSamuel Thibault 6522067fd92SSamuel ThibaultIf Espeakup was installed as a package for your Linux distribution, 6532067fd92SSamuel Thibaultyou probably have a distribution-specific script that controls the operation 6542067fd92SSamuel Thibaultof the daemon. Look for a file named espeakup under /etc/init.d or 6552067fd92SSamuel Thibault/etc/rc.d. Execute the following command with root privileges: 6562067fd92SSamuel Thibault/etc/init.d/espeakup start 6572067fd92SSamuel ThibaultReplace init.d with rc.d, if your distribution uses scripts located under 6582067fd92SSamuel Thibault/etc/rc.d. 6592067fd92SSamuel ThibaultYour distribution will also have a procedure for starting daemons at 6602067fd92SSamuel Thibaultboot-time, so it is possible to have software speech as soon as user-space 6612067fd92SSamuel Thibaultdaemons are started by the bootup scripts. 6622067fd92SSamuel ThibaultThese procedures are not described in this document. 6632067fd92SSamuel Thibault 6642067fd92SSamuel ThibaultIf you built Espeakup manually, the "make install" step placed the binary 6652067fd92SSamuel Thibaultunder /usr/bin. 6662067fd92SSamuel ThibaultRun the following command as root: 6672067fd92SSamuel Thibault/usr/bin/espeakup 6682067fd92SSamuel ThibaultEspeakup should start speaking. 6692067fd92SSamuel Thibault 6702067fd92SSamuel Thibault8.2. Speech Dispatcher 6712067fd92SSamuel Thibault 6722067fd92SSamuel ThibaultFor this option, you must have a package called 6732067fd92SSamuel ThibaultSpeech Dispatcher running on your system, and it must be configured to 6742067fd92SSamuel Thibaultwork with one of its supported software synthesizers. 6752067fd92SSamuel Thibault 6762067fd92SSamuel ThibaultTwo open source synthesizers you might use are Flite and Festival. You 6772067fd92SSamuel Thibaultmight also choose to purchase the Software DecTalk from Fonix Sales Inc. 6782067fd92SSamuel ThibaultIf you run a google search for Fonix, you'll find their web site. 6792067fd92SSamuel Thibault 6802067fd92SSamuel ThibaultYou can obtain a copy of Speech Dispatcher from free(b)soft at 6812067fd92SSamuel Thibaulthttp://www.freebsoft.org/. Follow the installation instructions that 6822067fd92SSamuel Thibaultcome with Speech Dispatcher in order to install and configure Speech 6832067fd92SSamuel ThibaultDispatcher. You can check out the web site for your Linux distribution 6842067fd92SSamuel Thibaultin order to get a copy of either Flite or Festival. Your Linux 6852067fd92SSamuel Thibaultdistribution may also have a precompiled Speech Dispatcher package. 6862067fd92SSamuel Thibault 6872067fd92SSamuel ThibaultOnce you've installed, configured, and tested Speech Dispatcher with your 6882067fd92SSamuel Thibaultchosen software synthesizer, you still need one more piece of software 6892067fd92SSamuel Thibaultin order to make things work. You need a package called speechd-up. 6902067fd92SSamuel ThibaultYou get it from the free(b)soft web site mentioned above. After you've 6912067fd92SSamuel Thibaultcompiled and installed speechd-up, you are almost ready to begin using 6922067fd92SSamuel Thibaultyour software synthesizer. 6932067fd92SSamuel Thibault 6942067fd92SSamuel ThibaultNow you can begin using your software synthesizer. In order to do so, 6952067fd92SSamuel Thibaultecho the soft keyword to the synth sys entry like this: 6962067fd92SSamuel Thibault 6972067fd92SSamuel Thibaultecho soft >/speakup/synth 6982067fd92SSamuel Thibault 6992067fd92SSamuel ThibaultNext run the speechd_up command like this: 7002067fd92SSamuel Thibault 7012067fd92SSamuel Thibaultspeechd_up & 7022067fd92SSamuel Thibault 7032067fd92SSamuel ThibaultYour synth should now start talking, and you should be able to adjust 7042067fd92SSamuel Thibaultthe pitch, rate, etc. 7052067fd92SSamuel Thibault 7062067fd92SSamuel Thibault9. Using The DecTalk PC Card 7072067fd92SSamuel Thibault 7082067fd92SSamuel ThibaultThe DecTalk PC card is an ISA card that is inserted into one of the ISA 7092067fd92SSamuel Thibaultslots in your computer. It requires that the DecTalk PC software be 7102067fd92SSamuel Thibaultinstalled on your computer, and that the software be loaded onto the 7112067fd92SSamuel ThibaultDectalk PC card before it can be used. 7122067fd92SSamuel Thibault 7132067fd92SSamuel ThibaultYou can get the dec_pc.tgz file from the linux-speakup.org site. The 7142067fd92SSamuel Thibaultdec_pc.tgz file is in the ~ftp/pub/linux/speakup directory. 7152067fd92SSamuel Thibault 7162067fd92SSamuel ThibaultAfter you have downloaded the dec_pc.tgz file, untar it in your home 7172067fd92SSamuel Thibaultdirectory, and read the Readme file in the newly created dec_pc 7182067fd92SSamuel Thibaultdirectory. 7192067fd92SSamuel Thibault 7202067fd92SSamuel ThibaultThe easiest way to get the software working is to copy the entire dec_pc 7212067fd92SSamuel Thibaultdirectory into /user/local/lib. To do this, su to root in your home 7222067fd92SSamuel Thibaultdirectory, and issue the command: 7232067fd92SSamuel Thibault 7242067fd92SSamuel Thibaultcp dec_pc /usr/local/lib 7252067fd92SSamuel Thibault 7262067fd92SSamuel ThibaultYou will need to copy the dtload command from the dec_pc directory to a 7272067fd92SSamuel Thibaultdirectory in your path. Either /usr/bin or /usr/local/bin is a good 7282067fd92SSamuel Thibaultchoice. 7292067fd92SSamuel Thibault 7302067fd92SSamuel ThibaultYou can now run the dtload command in order to load the DecTalk PC 7312067fd92SSamuel Thibaultsoftware onto the card. After you have done this, echo the decpc 7322067fd92SSamuel Thibaultkeyword to the synth entry in the sys system like this: 7332067fd92SSamuel Thibault 7342067fd92SSamuel Thibaultecho decpc >/speakup/synth 7352067fd92SSamuel Thibault 7362067fd92SSamuel ThibaultYour DecTalk PC should start talking, and then you can adjust the pitch, 7372067fd92SSamuel Thibaultrate, volume, voice, etc. The voice entry in the Speakup sys system 7382067fd92SSamuel Thibaultwill accept a number from 0 through 7 for the DecTalk PC synthesizer, 7392067fd92SSamuel Thibaultwhich will give you access to some of the DecTalk voices. 7402067fd92SSamuel Thibault 7412067fd92SSamuel Thibault10. Using Cursor Tracking 7422067fd92SSamuel Thibault 7432067fd92SSamuel ThibaultIn Speakup version 2.0 and later, cursor tracking is turned on by 7442067fd92SSamuel Thibaultdefault. This means that when you are using an editor, Speakup will 7452067fd92SSamuel Thibaultautomatically speak characters as you move left and right with the 7462067fd92SSamuel Thibaultcursor keys, and lines as you move up and down with the cursor keys. 7472067fd92SSamuel ThibaultThis is the traditional sort of cursor tracking. 7482067fd92SSamuel ThibaultRecent versions of Speakup provide two additional ways to control the 7492067fd92SSamuel Thibaulttext that is spoken when the cursor is moved: 7502067fd92SSamuel Thibault"highlight tracking" and "read window." 7512067fd92SSamuel ThibaultThey are described later in this section. 7522067fd92SSamuel ThibaultSometimes, these modes get in your way, so you can disable cursor tracking 7532067fd92SSamuel Thibaultaltogether. 7542067fd92SSamuel Thibault 7552067fd92SSamuel ThibaultYou may select among the various forms of cursor tracking using the keypad 7562067fd92SSamuel Thibaultasterisk key. 7572067fd92SSamuel ThibaultEach time you press this key, a new mode is selected, and Speakup speaks 7582067fd92SSamuel Thibaultthe name of the new mode. The names for the four possible states of cursor 7592067fd92SSamuel Thibaulttracking are: "cursoring on", "highlight tracking", "read window", 7602067fd92SSamuel Thibaultand "cursoring off." The keypad asterisk key moves through the list of 7612067fd92SSamuel Thibaultmodes in a circular fashion. 7622067fd92SSamuel Thibault 7632067fd92SSamuel ThibaultIf highlight tracking is enabled, Speakup tracks highlighted text, 7642067fd92SSamuel Thibaultrather than the cursor itself. When you move the cursor with the arrow keys, 7652067fd92SSamuel ThibaultSpeakup speaks the currently highlighted information. 7662067fd92SSamuel ThibaultThis is useful when moving through various menus and dialog boxes. 7672067fd92SSamuel ThibaultIf cursor tracking isn't helping you while navigating a menu, 7682067fd92SSamuel Thibaulttry highlight tracking. 7692067fd92SSamuel Thibault 7702067fd92SSamuel ThibaultWith the "read window" variety of cursor tracking, you can limit the text 7712067fd92SSamuel Thibaultthat Speakup speaks by specifying a window of interest on the screen. 7722067fd92SSamuel ThibaultSee section 15 for a description of the process of defining windows. 7732067fd92SSamuel ThibaultWhen you move the cursor via the arrow keys, Speakup only speaks 7742067fd92SSamuel Thibaultthe contents of the window. This is especially helpful when you are hearing 7752067fd92SSamuel Thibaultsuperfluous speech. Consider the following example. 7762067fd92SSamuel Thibault 7772067fd92SSamuel ThibaultSuppose that you are at a shell prompt. You use bash, and you want to 7782067fd92SSamuel Thibaultexplore your command history using the up and down arrow keys. If you 7792067fd92SSamuel Thibaulthave enabled cursor tracking, you will hear two pieces of information. 7802067fd92SSamuel ThibaultSpeakup speaks both your shell prompt and the current entry from the 7812067fd92SSamuel Thibaultcommand history. You may not want to hear the prompt repeated 7822067fd92SSamuel Thibaulteach time you move, so you can silence it by specifying a window. Find 7832067fd92SSamuel Thibaultthe last line of text on the screen. Clear the current window by pressing 7842067fd92SSamuel Thibaultthe key combination speakup f3. Use the review cursor to find the first 7852067fd92SSamuel Thibaultcharacter that follows your shell prompt. Press speakup + f2 twice, to 7862067fd92SSamuel Thibaultdefine a one-line window. The boundaries of the window are the 7872067fd92SSamuel Thibaultcharacter following the shell prompt and the end of the line. Now, cycle 7882067fd92SSamuel Thibaultthrough the cursor tracking modes using keypad asterisk, until Speakup 7892067fd92SSamuel Thibaultsays "read window." Move through your history using your arrow keys. 7902067fd92SSamuel ThibaultYou will notice that Speakup no longer speaks the redundant prompt. 7912067fd92SSamuel Thibault 7922067fd92SSamuel ThibaultSome folks like to turn cursor tracking off while they are using the 7932067fd92SSamuel Thibaultlynx web browser. You definitely want to turn cursor tracking off when 7942067fd92SSamuel Thibaultyou are using the alsamixer application. Otherwise, you won't be able 7952067fd92SSamuel Thibaultto hear your mixer settings while you are using the arrow keys. 7962067fd92SSamuel Thibault 7972067fd92SSamuel Thibault11. Cut and Paste 7982067fd92SSamuel Thibault 7992067fd92SSamuel ThibaultOne of Speakup's more useful features is the ability to cut and paste 8002067fd92SSamuel Thibaulttext on the screen. This means that you can capture information from a 8012067fd92SSamuel Thibaultprogram, and paste that captured text into a different place in the 8022067fd92SSamuel Thibaultprogram, or into an entirely different program, which may even be 8032067fd92SSamuel Thibaultrunning on a different console. 8042067fd92SSamuel Thibault 8052067fd92SSamuel ThibaultFor example, in this manual, we have made references to several web 8062067fd92SSamuel Thibaultsites. It would be nice if you could cut and paste these urls into your 8072067fd92SSamuel Thibaultweb browser. Speakup does this quite nicely. Suppose you wanted to 8082067fd92SSamuel Thibaultpast the following url into your browser: 8092067fd92SSamuel Thibault 8102067fd92SSamuel Thibaulthttp://linux-speakup.org/ 8112067fd92SSamuel Thibault 8122067fd92SSamuel ThibaultUse the speakup review keys to position the reading cursor on the first 8132067fd92SSamuel Thibaultcharacter of the above url. When the reading cursor is in position, 8142067fd92SSamuel Thibaultpress the keypad slash key once. Speakup will say, "mark". Next, 8152067fd92SSamuel Thibaultposition the reading cursor on the rightmost character of the above 8162067fd92SSamuel Thibaulturl. Press the keypad slash key once again to actually cut the text 8172067fd92SSamuel Thibaultfrom the screen. Speakup will say, "cut". Although we call this 8182067fd92SSamuel Thibaultcutting, Speakup does not actually delete the cut text from the screen. 8192067fd92SSamuel ThibaultIt makes a copy of the text in a special buffer for later pasting. 8202067fd92SSamuel Thibault 8212067fd92SSamuel ThibaultNow that you have the url cut from the screen, you can paste it into 8222067fd92SSamuel Thibaultyour browser, or even paste the url on a command line as an argument to 8232067fd92SSamuel Thibaultyour browser. 8242067fd92SSamuel Thibault 8252067fd92SSamuel ThibaultSuppose you want to start lynx and go to the Speakup site. 8262067fd92SSamuel Thibault 8272067fd92SSamuel ThibaultYou can switch to a different console with the alt left and right 8282067fd92SSamuel Thibaultarrows, or you can switch to a specific console by typing alt and a 8292067fd92SSamuel Thibaultfunction key. These are not Speakup commands, just standard Linux 8302067fd92SSamuel Thibaultconsole capabilities. 8312067fd92SSamuel Thibault 8322067fd92SSamuel ThibaultOnce you've changed to an appropriate console, and are at a shell prompt, 8332067fd92SSamuel Thibaulttype the word lynx, followed by a space. Now press and hold the speakup 8342067fd92SSamuel Thibaultkey, while you type the keypad slash character. The url will be pasted 8352067fd92SSamuel Thibaultonto the command line, just as though you had typed it in. Press the 8362067fd92SSamuel Thibaultenter key to execute the command. 8372067fd92SSamuel Thibault 8382067fd92SSamuel ThibaultThe paste buffer will continue to hold the cut information, until a new 8392067fd92SSamuel Thibaultmark and cut operation is carried out. This means you can paste the cut 8402067fd92SSamuel Thibaultinformation as many times as you like before doing another cut 8412067fd92SSamuel Thibaultoperation. 8422067fd92SSamuel Thibault 8432067fd92SSamuel ThibaultYou are not limited to cutting and pasting only one line on the screen. 8442067fd92SSamuel ThibaultYou can also cut and paste rectangular regions of the screen. Just 8452067fd92SSamuel Thibaultposition the reading cursor at the top left corner of the text to be 8462067fd92SSamuel Thibaultcut, mark it with the keypad slash key, then position the reading cursor 8472067fd92SSamuel Thibaultat the bottom right corner of the region to be cut, and cut it with the 8482067fd92SSamuel Thibaultkeypad slash key. 8492067fd92SSamuel Thibault 8502067fd92SSamuel Thibault12. Changing the Pronunciation of Characters 8512067fd92SSamuel Thibault 8522067fd92SSamuel ThibaultThrough the /speakup/i18n/characters sys entry, Speakup gives you the 8532067fd92SSamuel Thibaultability to change how Speakup pronounces a given character. You could, 8542067fd92SSamuel Thibaultfor example, change how some punctuation characters are spoken. You can 8552067fd92SSamuel Thibaulteven change how Speakup will pronounce certain letters. 8562067fd92SSamuel Thibault 8572067fd92SSamuel ThibaultYou may, for example, wish to change how Speakup pronounces the z 8582067fd92SSamuel Thibaultcharacter. The author of Speakup, Kirk Reiser, is Canadian, and thus 8592067fd92SSamuel Thibaultbelieves that the z should be pronounced zed. If you are an American, 8602067fd92SSamuel Thibaultyou might wish to use the zee pronunciation instead of zed. You can 8612067fd92SSamuel Thibaultchange the pronunciation of both the upper and lower case z with the 8622067fd92SSamuel Thibaultfollowing two commands: 8632067fd92SSamuel Thibault 8642067fd92SSamuel Thibaultecho 90 zee >/speakup/characters 8652067fd92SSamuel Thibaultecho 122 zee >/speakup/characters 8662067fd92SSamuel Thibault 8672067fd92SSamuel ThibaultLet's examine the parts of the two previous commands. They are issued 8682067fd92SSamuel Thibaultat the shell prompt, and could be placed in a startup script. 8692067fd92SSamuel Thibault 8702067fd92SSamuel ThibaultThe word echo tells the shell that you want to have it display the 8712067fd92SSamuel Thibaultstring of characters that follow the word echo. If you were to just 8722067fd92SSamuel Thibaulttype: 8732067fd92SSamuel Thibault 8742067fd92SSamuel Thibaultecho hello. 8752067fd92SSamuel Thibault 8762067fd92SSamuel ThibaultYou would get the word hello printed on your screen as soon as you 8772067fd92SSamuel Thibaultpressed the enter key. In this case, we are echoing strings that we 8782067fd92SSamuel Thibaultwant to be redirected into the sys system. 8792067fd92SSamuel Thibault 8802067fd92SSamuel ThibaultThe numbers 90 and 122 in the above echo commands are the ascii numeric 8812067fd92SSamuel Thibaultvalues for the upper and lower case z, the characters we wish to change. 8822067fd92SSamuel Thibault 8832067fd92SSamuel ThibaultThe string zee is the pronunciation that we want Speakup to use for the 8842067fd92SSamuel Thibaultupper and lower case z. 8852067fd92SSamuel Thibault 8862067fd92SSamuel ThibaultThe > symbol redirects the output of the echo command to a file, just 8872067fd92SSamuel Thibaultlike in DOS, or at the Windows command prompt. 8882067fd92SSamuel Thibault 8892067fd92SSamuel ThibaultAnd finally, /speakup/i18n/characters is the file entry in the sys system 8902067fd92SSamuel Thibaultwhere we want the output to be directed. Speakup looks at the numeric 8912067fd92SSamuel Thibaultvalue of the character we want to change, and inserts the pronunciation 8922067fd92SSamuel Thibaultstring into an internal table. 8932067fd92SSamuel Thibault 8942067fd92SSamuel ThibaultYou can look at the whole table with the following command: 8952067fd92SSamuel Thibault 8962067fd92SSamuel Thibaultcat /speakup/i18n/characters 8972067fd92SSamuel Thibault 8982067fd92SSamuel ThibaultSpeakup will then print out the entire character pronunciation table. I 8992067fd92SSamuel Thibaultwon't display it here, but leave you to look at it at your convenience. 9002067fd92SSamuel Thibault 9012067fd92SSamuel Thibault13. Mapping Keys 9022067fd92SSamuel Thibault 9032067fd92SSamuel ThibaultSpeakup has the capability of allowing you to assign or "map" keys to 9042067fd92SSamuel Thibaultinternal Speakup commands. This section necessarily assumes you have a 9052067fd92SSamuel ThibaultLinux kernel source tree installed, and that it has been patched and 9062067fd92SSamuel Thibaultconfigured with Speakup. How you do this is beyond the scope of this 9072067fd92SSamuel Thibaultmanual. For this information, visit the Speakup web site at 9082067fd92SSamuel Thibaulthttp://linux-speakup.org/. The reason you'll need the kernel source 9092067fd92SSamuel Thibaulttree patched with Speakup is that the genmap utility you'll need for 9102067fd92SSamuel Thibaultprocessing keymaps is in the 9112067fd92SSamuel Thibault/usr/src/linux-<version_number>/drivers/char/speakup directory. The 9122067fd92SSamuel Thibault<version_number> in the above directory path is the version number of 9132067fd92SSamuel Thibaultthe Linux source tree you are working with. 9142067fd92SSamuel Thibault 9152067fd92SSamuel ThibaultSo ok, you've gone off and gotten your kernel source tree, and patched 9162067fd92SSamuel Thibaultand configured it. Now you can start manipulating keymaps. 9172067fd92SSamuel Thibault 9182067fd92SSamuel ThibaultYou can either use the 9192067fd92SSamuel Thibault/usr/src/linux-<version_number>/drivers/char/speakup/speakupmap.map file 9202067fd92SSamuel Thibaultincluded with the Speakup source, or you can cut and paste the copy in 9212067fd92SSamuel Thibaultsection 4 into a separate file. If you use the one in the Speakup 9222067fd92SSamuel Thibaultsource tree, make sure you make a backup of it before you start making 9232067fd92SSamuel Thibaultchanges. You have been warned! 9242067fd92SSamuel Thibault 9252067fd92SSamuel ThibaultSuppose that you want to swap the key assignments for the Speakup 9262067fd92SSamuel Thibaultsay_last_char and the Speakup say_first_char commands. The 9272067fd92SSamuel Thibaultspeakupmap.map lists the key mappings for these two commands as follows: 9282067fd92SSamuel Thibault 9292067fd92SSamuel Thibaultspk key_pageup = say_first_char 9302067fd92SSamuel Thibaultspk key_pagedown = say_last_char 9312067fd92SSamuel Thibault 9322067fd92SSamuel ThibaultYou can edit your copy of the speakupmap.map file and swap the command 9332067fd92SSamuel Thibaultnames on the right side of the = (equals) sign. You did make a backup, 9342067fd92SSamuel Thibaultright? The new keymap lines would look like this: 9352067fd92SSamuel Thibault 9362067fd92SSamuel Thibaultspk key_pageup = say_last_char 9372067fd92SSamuel Thibaultspk key_pagedown = say_first_char 9382067fd92SSamuel Thibault 9392067fd92SSamuel ThibaultAfter you edit your copy of the speakupmap.map file, save it under a new 9402067fd92SSamuel Thibaultfile name, perhaps newmap.map. Then exit your editor and return to the 9412067fd92SSamuel Thibaultshell prompt. 9422067fd92SSamuel Thibault 9432067fd92SSamuel ThibaultYou are now ready to load your keymap with your swapped key assignments. 9442067fd92SSamuel Thibault Assuming that you saved your new keymap as the file newmap.map, you 9452067fd92SSamuel Thibaultwould load your keymap into the sys system like this: 9462067fd92SSamuel Thibault 9472067fd92SSamuel Thibault/usr/src/linux-<version_number>/drivers/char/speakup/genmap newmap.map 9482067fd92SSamuel Thibault>/speakup/keymap 9492067fd92SSamuel Thibault 9502067fd92SSamuel ThibaultRemember to substitute your kernel version number for the 9512067fd92SSamuel Thibault<version_number> in the above command. Also note that although the 9522067fd92SSamuel Thibaultabove command wrapped onto two lines in this document, you should type 9532067fd92SSamuel Thibaultit all on one line. 9542067fd92SSamuel Thibault 9552067fd92SSamuel ThibaultYour say first and say last characters should now be swapped. Pressing 9562067fd92SSamuel Thibaultspeakup pagedown should read you the first non-whitespace character on 9572067fd92SSamuel Thibaultthe line your reading cursor is in, and pressing speakup pageup should 9582067fd92SSamuel Thibaultread you the last character on the line your reading cursor is in. 9592067fd92SSamuel Thibault 9602067fd92SSamuel ThibaultYou should note that these new mappings will only stay in effect until 9612067fd92SSamuel Thibaultyou reboot, or until you load another keymap. 9622067fd92SSamuel Thibault 9632067fd92SSamuel ThibaultOne final warning. If you try to load a partial map, you will quickly 9642067fd92SSamuel Thibaultfind that all the mappings you didn't include in your file got deleted 9652067fd92SSamuel Thibaultfrom the working map. Be extremely careful, and always make a backup! 9662067fd92SSamuel ThibaultYou have been warned! 9672067fd92SSamuel Thibault 9682067fd92SSamuel Thibault14. Internationalizing Speakup 9692067fd92SSamuel Thibault 9702067fd92SSamuel ThibaultSpeakup indicates various conditions to the user by speaking messages. 9712067fd92SSamuel ThibaultFor instance, when you move to the left edge of the screen with the 9722067fd92SSamuel Thibaultreview keys, Speakup says, "left." 9732067fd92SSamuel ThibaultPrior to version 3.1.0 of Speakup, all of these messages were in English, 9742067fd92SSamuel Thibaultand they could not be changed. If you used a non-English synthesizer, 9752067fd92SSamuel Thibaultyou still heard English messages, such as "left" and "cursoring on." 9762067fd92SSamuel ThibaultIn version 3.1.0 or higher, one may load translations for the various 9772067fd92SSamuel Thibaultmessages via the /sys filesystem. 9782067fd92SSamuel Thibault 9792067fd92SSamuel ThibaultThe directory /speakup/i18n contains several collections of messages. 9802067fd92SSamuel ThibaultEach group of messages is stored in its own file. 9812067fd92SSamuel ThibaultThe following section lists all of these files, along with a brief description 9822067fd92SSamuel Thibaultof each. 9832067fd92SSamuel Thibault 9842067fd92SSamuel Thibault14.1. Files Under the i18n Subdirectory 9852067fd92SSamuel Thibault 9862067fd92SSamuel Thibault* announcements: 9872067fd92SSamuel ThibaultThis file contains various general announcements, most of which cannot 9882067fd92SSamuel Thibaultbe categorized. You will find messages such as "You killed Speakup", 9892067fd92SSamuel Thibault"I'm alive", "leaving help", "parked", "unparked", and others. 9902067fd92SSamuel ThibaultYou will also find the names of the screen edges and cursor tracking modes 9912067fd92SSamuel Thibaulthere. 9922067fd92SSamuel Thibault 9932067fd92SSamuel Thibault* characters: 9942067fd92SSamuel ThibaultSee section 12 for a description of this file. 9952067fd92SSamuel Thibault 9962067fd92SSamuel Thibault* chartab: 9972067fd92SSamuel ThibaultSee section 12. Unlike the rest of the files in the i18n subdirectory, 9982067fd92SSamuel Thibaultthis one does not contain messages to be spoken. 9992067fd92SSamuel Thibault 10002067fd92SSamuel Thibault* colors: 10012067fd92SSamuel ThibaultWhen you use the "say attributes" function, Speakup says the name of the 10022067fd92SSamuel Thibaultforeground and background colors. These names come from the i18n/colors 10032067fd92SSamuel Thibaultfile. 10042067fd92SSamuel Thibault 10052067fd92SSamuel Thibault* ctl_keys: 10062067fd92SSamuel ThibaultHere, you will find names of control keys. These are used with Speakup's 10072067fd92SSamuel Thibaultsay_control feature. 10082067fd92SSamuel Thibault 10092067fd92SSamuel Thibault* formatted: 10102067fd92SSamuel ThibaultThis group of messages contains embedded formatting codes, to specify 10112067fd92SSamuel Thibaultthe type and width of displayed data. If you change these, you must 10122067fd92SSamuel Thibaultpreserve all of the formatting codes, and they must appear in the order 10132067fd92SSamuel Thibaultused by the default messages. 10142067fd92SSamuel Thibault 10152067fd92SSamuel Thibault* function_names: 10162067fd92SSamuel ThibaultHere, you will find a list of names for Speakup functions. These are used 10172067fd92SSamuel Thibaultby the help system. For example, suppose that you have activated help mode, 10182067fd92SSamuel Thibaultand you pressed keypad 3. Speakup says: 10192067fd92SSamuel Thibault"keypad 3 is character, say next." 10202067fd92SSamuel ThibaultThe message "character, say next" names a Speakup function, and it 10212067fd92SSamuel Thibaultcomes from this function_names file. 10222067fd92SSamuel Thibault 10232067fd92SSamuel Thibault* key_names: 10242067fd92SSamuel ThibaultAgain, key_names is used by Speakup's help system. In the previous 10252067fd92SSamuel Thibaultexample, Speakup said that you pressed "keypad 3." 10262067fd92SSamuel ThibaultThis name came from the key_names file. 10272067fd92SSamuel Thibault 10282067fd92SSamuel Thibault* states: 10292067fd92SSamuel ThibaultThis file contains names for key states. 10302067fd92SSamuel ThibaultAgain, these are part of the help system. For instance, if you had pressed 10312067fd92SSamuel Thibaultspeakup + keypad 3, you would hear: 10322067fd92SSamuel Thibault"speakup keypad 3 is go to bottom edge." 10332067fd92SSamuel ThibaultThe speakup key is depressed, so the name of the key state is speakup. 10342067fd92SSamuel ThibaultThis part of the message comes from the states collection. 10352067fd92SSamuel Thibault 1036cae2181bSSamuel Thibault14.2. Changing language 1037cae2181bSSamuel Thibault 1038cae2181bSSamuel Thibault14.2.1. Loading Your Own Messages 10392067fd92SSamuel Thibault 10402067fd92SSamuel ThibaultThe files under the i18n subdirectory all follow the same format. 10412067fd92SSamuel ThibaultThey consist of lines, with one message per line. 10422067fd92SSamuel ThibaultEach message is represented by a number, followed by the text of the message. 10432067fd92SSamuel ThibaultThe number is the position of the message in the given collection. 10442067fd92SSamuel ThibaultFor example, if you view the file /speakup/i18n/colors, you will see the 10452067fd92SSamuel Thibaultfollowing list: 10462067fd92SSamuel Thibault 10472067fd92SSamuel Thibault0 black 10482067fd92SSamuel Thibault1 blue 10492067fd92SSamuel Thibault2 green 10502067fd92SSamuel Thibault3 cyan 10512067fd92SSamuel Thibault4 red 10522067fd92SSamuel Thibault5 magenta 10532067fd92SSamuel Thibault6 yellow 10542067fd92SSamuel Thibault7 white 10552067fd92SSamuel Thibault8 grey 10562067fd92SSamuel Thibault 10572067fd92SSamuel ThibaultYou can change one message, or you can change a whole group. 10582067fd92SSamuel ThibaultTo load a whole collection of messages from a new source, simply use 10592067fd92SSamuel Thibaultthe cp command: 10602067fd92SSamuel Thibaultcp ~/my_colors /speakup/i18n/colors 10612067fd92SSamuel ThibaultYou can change an individual message with the echo command, 10622067fd92SSamuel Thibaultas shown in the following example. 10632067fd92SSamuel Thibault 10642067fd92SSamuel ThibaultThe Spanish name for the color blue is azul. 10652067fd92SSamuel ThibaultLooking at the colors file, we see that the name "blue" is at position 1 10662067fd92SSamuel Thibaultwithin the colors group. Let's change blue to azul: 10672067fd92SSamuel Thibaultecho '1 azul' > /speakup/i18n/colors 10682067fd92SSamuel ThibaultThe next time that Speakup says message 1 from the colors group, it will 10692067fd92SSamuel Thibaultsay "azul", rather than "blue." 10702067fd92SSamuel Thibault 1071cae2181bSSamuel Thibault14.2.2. Choose a language 1072cae2181bSSamuel Thibault 10732067fd92SSamuel ThibaultIn the future, translations into various languages will be made available, 1074cae2181bSSamuel Thibaultand most users will just load the files necessary for their language. So far, 1075cae2181bSSamuel Thibaultonly French language is available beyond native Canadian English language. 1076cae2181bSSamuel Thibault 1077cae2181bSSamuel ThibaultFrench is only available after you are logged in. 1078cae2181bSSamuel Thibault 1079cae2181bSSamuel ThibaultCanadian English is the default language. To toggle another language, 1080cae2181bSSamuel Thibaultdownload the source of Speakup and untar it in your home directory. The 1081cae2181bSSamuel Thibaultfollowing command should let you do this: 1082cae2181bSSamuel Thibault 1083cae2181bSSamuel Thibaulttar xvjf speakup-<version>.tar.bz2 1084cae2181bSSamuel Thibault 1085cae2181bSSamuel Thibaultwhere <version> is the version number of the application. 1086cae2181bSSamuel Thibault 1087cae2181bSSamuel ThibaultNext, change to the newly created directory, then into the tools/ directory, and 1088cae2181bSSamuel Thibaultrun the script speakup_setlocale. You are asked the language that you want to 1089cae2181bSSamuel Thibaultuse. Type the number associated to your language (e.g. fr for French) then press 1090cae2181bSSamuel ThibaultEnter. Needed files are copied in the i18n directory. 1091cae2181bSSamuel Thibault 1092cae2181bSSamuel ThibaultNote: the speakupconf must be installed on your system so that settings are saved. 1093cae2181bSSamuel ThibaultOtherwise, you will have an error: your language will be loaded but you will 1094cae2181bSSamuel Thibaulthave to run the script again every time Speakup restarts. 1095cae2181bSSamuel ThibaultSee section 16.1. for information about speakupconf. 1096cae2181bSSamuel Thibault 1097cae2181bSSamuel ThibaultYou will have to repeat these steps for any change of locale, i.e. if you wish 1098cae2181bSSamuel Thibaultchange the speakup's language or charset (iso-8859-15 ou UTF-8). 1099cae2181bSSamuel Thibault 1100cae2181bSSamuel ThibaultIf you wish store the settings, note that at your next login, you will need to 1101cae2181bSSamuel Thibaultdo: 1102cae2181bSSamuel Thibault 1103cae2181bSSamuel Thibaultspeakup load 1104cae2181bSSamuel Thibault 1105cae2181bSSamuel ThibaultAlternatively, you can add the above line to your file 1106cae2181bSSamuel Thibault~/.bashrc or ~/.bash_profile. 1107cae2181bSSamuel Thibault 1108*dbeb56feSRandy DunlapIf your system administrator himself ran the script, all the users will be able 1109*dbeb56feSRandy Dunlapto change from English to the language chosen by root and do directly 1110cae2181bSSamuel Thibaultspeakupconf load (or add this to the ~/.bashrc or 1111cae2181bSSamuel Thibault~/.bash_profile file). If there are several languages to handle, the 1112cae2181bSSamuel Thibaultadministrator (or every user) will have to run the first steps until speakupconf 1113cae2181bSSamuel Thibaultsave, choosing the appropriate language, in every user's home directory. Every 1114cae2181bSSamuel Thibaultuser will then be able to do speakupconf load, Speakup will load his own settings. 11152067fd92SSamuel Thibault 11162067fd92SSamuel Thibault14.3. No Support for Non-Western-European Languages 11172067fd92SSamuel Thibault 11182067fd92SSamuel ThibaultAs of the current release, Speakup only supports Western European languages. 11192067fd92SSamuel ThibaultSupport for the extended characters used by languages outside of the Western 11202067fd92SSamuel ThibaultEuropean family of languages is a work in progress. 11212067fd92SSamuel Thibault 11222067fd92SSamuel Thibault15. Using Speakup's Windowing Capability 11232067fd92SSamuel Thibault 11242067fd92SSamuel ThibaultSpeakup has the capability of defining and manipulating windows on the 11252067fd92SSamuel Thibaultscreen. Speakup uses the term "Window", to mean a user defined area of 11262067fd92SSamuel Thibaultthe screen. The key strokes for defining and manipulating Speakup 11272067fd92SSamuel Thibaultwindows are as follows: 11282067fd92SSamuel Thibault 11292067fd92SSamuel Thibaultspeakup + f2 -- Set the bounds of the window. 11302067fd92SSamuel ThibaultSpeakup + f3 -- clear the current window definition. 11312067fd92SSamuel Thibaultspeakup + f4 -- Toggle window silence on and off. 11322067fd92SSamuel Thibaultspeakup + keypad plus -- Say the currently defined window. 11332067fd92SSamuel Thibault 11342067fd92SSamuel ThibaultThese capabilities are useful for tracking a certain part of the screen 11352067fd92SSamuel Thibaultwithout rereading the whole screen, or for silencing a part of the 11362067fd92SSamuel Thibaultscreen that is constantly changing, such as a clock or status line. 11372067fd92SSamuel Thibault 11382067fd92SSamuel ThibaultThere is no way to save these window settings, and you can only have one 11392067fd92SSamuel Thibaultwindow defined for each virtual console. There is also no way to have 11402067fd92SSamuel Thibaultwindows automatically defined for specific applications. 11412067fd92SSamuel Thibault 11422067fd92SSamuel ThibaultIn order to define a window, use the review keys to move your reading 11432067fd92SSamuel Thibaultcursor to the beginning of the area you want to define. Then press 11442067fd92SSamuel Thibaultspeakup + f2. Speakup will tell you that the window starts at the 11452067fd92SSamuel Thibaultindicated row and column position. Then move the reading cursor to the 11462067fd92SSamuel Thibaultend of the area to be defined as a window, and press speakup + f2 again. 11472067fd92SSamuel Thibault If there is more than one line in the window, Speakup will tell you 11482067fd92SSamuel Thibaultthat the window ends at the indicated row and column position. If there 11492067fd92SSamuel Thibaultis only one line in the window, then Speakup will tell you that the 11502067fd92SSamuel Thibaultwindow is the specified line on the screen. If you are only defining a 11512067fd92SSamuel Thibaultone line window, you can just press speakup + f2 twice after placing the 11522067fd92SSamuel Thibaultreading cursor on the line you want to define as a window. It is not 11532067fd92SSamuel Thibaultnecessary to position the reading cursor at the end of the line in order 11542067fd92SSamuel Thibaultto define the whole line as a window. 11552067fd92SSamuel Thibault 11562067fd92SSamuel Thibault16. Tools for Controlling Speakup 11572067fd92SSamuel Thibault 11582067fd92SSamuel ThibaultThe speakup distribution includes extra tools (in the tools directory) 11592067fd92SSamuel Thibaultwhich were written to make speakup easier to use. This section will 11602067fd92SSamuel Thibaultbriefly describe the use of these tools. 11612067fd92SSamuel Thibault 11622067fd92SSamuel Thibault16.1. Speakupconf 11632067fd92SSamuel Thibault 11642067fd92SSamuel Thibaultspeakupconf began life as a contribution from Steve Holmes, a member of 11652067fd92SSamuel Thibaultthe speakup community. We would like to thank him for his work on the 11662067fd92SSamuel Thibaultearly versions of this project. 11672067fd92SSamuel Thibault 11682067fd92SSamuel ThibaultThis script may be installed as part of your linux distribution, but if 11692067fd92SSamuel Thibaultit isn't, the recommended places to put it are /usr/local/bin or 11702067fd92SSamuel Thibault/usr/bin. This script can be run by any user, so it does not require 11712067fd92SSamuel Thibaultroot privileges. 11722067fd92SSamuel Thibault 11732067fd92SSamuel ThibaultSpeakupconf allows you to save and load your Speakup settings. It works 11742067fd92SSamuel Thibaultby reading and writing the /sys files described above. 11752067fd92SSamuel Thibault 11762067fd92SSamuel ThibaultThe directory that speakupconf uses to store your settings depends on 11772067fd92SSamuel Thibaultwhether it is run from the root account. If you execute speakupconf as 11782067fd92SSamuel Thibaultroot, it uses the directory /etc/speakup. Otherwise, it uses the directory 11792067fd92SSamuel Thibault~/.speakup, where ~ is your home directory. 11802067fd92SSamuel ThibaultAnyone who needs to use Speakup from your console can load his own custom 11812067fd92SSamuel Thibaultsettings with this script. 11822067fd92SSamuel Thibault 11832067fd92SSamuel Thibaultspeakupconf takes one required argument: load or save. 11842067fd92SSamuel ThibaultUse the command 11852067fd92SSamuel Thibaultspeakupconf save 11862067fd92SSamuel Thibaultto save your Speakup settings, and 11872067fd92SSamuel Thibaultspeakupconf load 11882067fd92SSamuel Thibaultto load them into Speakup. 11892067fd92SSamuel ThibaultA second argument may be specified to use an alternate directory to 11902067fd92SSamuel Thibaultload or save the speakup parameters. 11912067fd92SSamuel Thibault 11922067fd92SSamuel Thibault16.2. Talkwith 11932067fd92SSamuel Thibault 11942067fd92SSamuel ThibaultCharles Hallenbeck, another member of the speakup community, wrote the 11952067fd92SSamuel Thibaultinitial versions of this script, and we would also like to thank him for 11962067fd92SSamuel Thibaulthis work on it. 11972067fd92SSamuel Thibault 11982067fd92SSamuel ThibaultThis script needs root privileges to run, so if it is not installed as 11992067fd92SSamuel Thibaultpart of your linux distribution, the recommended places to install it 12002067fd92SSamuel Thibaultare /usr/local/sbin or /usr/sbin. 12012067fd92SSamuel Thibault 12022067fd92SSamuel ThibaultTalkwith allows you to switch synthesizers on the fly. It takes a synthesizer 12032067fd92SSamuel Thibaultname as an argument. For instance, 12042067fd92SSamuel Thibaulttalkwith dectlk 12052067fd92SSamuel Thibaultcauses Speakup to use the DecTalk Express. If you wish to switch to a 12062067fd92SSamuel Thibaultsoftware synthesizer, you must also indicate which daemon you wish to 12072067fd92SSamuel Thibaultuse. There are two possible choices: 12082067fd92SSamuel Thibaultspd and espeakup. spd is an abbreviation for speechd-up. 12092067fd92SSamuel ThibaultIf you wish to use espeakup for software synthesis, give the command 12102067fd92SSamuel Thibaulttalkwith soft espeakup 12112067fd92SSamuel ThibaultTo use speechd-up, type: 12122067fd92SSamuel Thibaulttalkwith soft spd 12132067fd92SSamuel ThibaultAny arguments that follow the name of the daemon are passed to the daemon 12142067fd92SSamuel Thibaultwhen it is invoked. For instance: 12152067fd92SSamuel Thibaulttalkwith espeakup --default-voice=fr 12162067fd92SSamuel Thibaultcauses espeakup to use the French voice. 12172067fd92SSamuel ThibaultNote that talkwith must always be executed with root privileges. 12182067fd92SSamuel Thibault 12192067fd92SSamuel ThibaultTalkwith does not attempt to load your settings after the new 12202067fd92SSamuel Thibaultsynthesizer is activated. You can use speakupconf to load your settings 12212067fd92SSamuel Thibaultif desired. 12222067fd92SSamuel Thibault 12232067fd92SSamuel Thibault GNU Free Documentation License 12242067fd92SSamuel Thibault Version 1.2, November 2002 12252067fd92SSamuel Thibault 12262067fd92SSamuel Thibault 12272067fd92SSamuel Thibault Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 12282067fd92SSamuel Thibault Everyone is permitted to copy and distribute verbatim copies 12292067fd92SSamuel Thibault of this license document, but changing it is not allowed. 12302067fd92SSamuel Thibault 12312067fd92SSamuel Thibault 12322067fd92SSamuel Thibault0. PREAMBLE 12332067fd92SSamuel Thibault 12342067fd92SSamuel ThibaultThe purpose of this License is to make a manual, textbook, or other 12352067fd92SSamuel Thibaultfunctional and useful document "free" in the sense of freedom: to 12362067fd92SSamuel Thibaultassure everyone the effective freedom to copy and redistribute it, 12372067fd92SSamuel Thibaultwith or without modifying it, either commercially or noncommercially. 12382067fd92SSamuel ThibaultSecondarily, this License preserves for the author and publisher a way 12392067fd92SSamuel Thibaultto get credit for their work, while not being considered responsible 12402067fd92SSamuel Thibaultfor modifications made by others. 12412067fd92SSamuel Thibault 12422067fd92SSamuel ThibaultThis License is a kind of "copyleft", which means that derivative 12432067fd92SSamuel Thibaultworks of the document must themselves be free in the same sense. It 12442067fd92SSamuel Thibaultcomplements the GNU General Public License, which is a copyleft 12452067fd92SSamuel Thibaultlicense designed for free software. 12462067fd92SSamuel Thibault 12472067fd92SSamuel ThibaultWe have designed this License in order to use it for manuals for free 12482067fd92SSamuel Thibaultsoftware, because free software needs free documentation: a free 12492067fd92SSamuel Thibaultprogram should come with manuals providing the same freedoms that the 12502067fd92SSamuel Thibaultsoftware does. But this License is not limited to software manuals; 12512067fd92SSamuel Thibaultit can be used for any textual work, regardless of subject matter or 12522067fd92SSamuel Thibaultwhether it is published as a printed book. We recommend this License 12532067fd92SSamuel Thibaultprincipally for works whose purpose is instruction or reference. 12542067fd92SSamuel Thibault 12552067fd92SSamuel Thibault 12562067fd92SSamuel Thibault1. APPLICABILITY AND DEFINITIONS 12572067fd92SSamuel Thibault 12582067fd92SSamuel ThibaultThis License applies to any manual or other work, in any medium, that 12592067fd92SSamuel Thibaultcontains a notice placed by the copyright holder saying it can be 12602067fd92SSamuel Thibaultdistributed under the terms of this License. Such a notice grants a 12612067fd92SSamuel Thibaultworld-wide, royalty-free license, unlimited in duration, to use that 12622067fd92SSamuel Thibaultwork under the conditions stated herein. The "Document", below, 12632067fd92SSamuel Thibaultrefers to any such manual or work. Any member of the public is a 12642067fd92SSamuel Thibaultlicensee, and is addressed as "you". You accept the license if you 12652067fd92SSamuel Thibaultcopy, modify or distribute the work in a way requiring permission 12662067fd92SSamuel Thibaultunder copyright law. 12672067fd92SSamuel Thibault 12682067fd92SSamuel ThibaultA "Modified Version" of the Document means any work containing the 12692067fd92SSamuel ThibaultDocument or a portion of it, either copied verbatim, or with 12702067fd92SSamuel Thibaultmodifications and/or translated into another language. 12712067fd92SSamuel Thibault 12722067fd92SSamuel ThibaultA "Secondary Section" is a named appendix or a front-matter section of 12732067fd92SSamuel Thibaultthe Document that deals exclusively with the relationship of the 12742067fd92SSamuel Thibaultpublishers or authors of the Document to the Document's overall subject 12752067fd92SSamuel Thibault(or to related matters) and contains nothing that could fall directly 12762067fd92SSamuel Thibaultwithin that overall subject. (Thus, if the Document is in part a 12772067fd92SSamuel Thibaulttextbook of mathematics, a Secondary Section may not explain any 12782067fd92SSamuel Thibaultmathematics.) The relationship could be a matter of historical 12792067fd92SSamuel Thibaultconnection with the subject or with related matters, or of legal, 12802067fd92SSamuel Thibaultcommercial, philosophical, ethical or political position regarding 12812067fd92SSamuel Thibaultthem. 12822067fd92SSamuel Thibault 12832067fd92SSamuel ThibaultThe "Invariant Sections" are certain Secondary Sections whose titles 12842067fd92SSamuel Thibaultare designated, as being those of Invariant Sections, in the notice 12852067fd92SSamuel Thibaultthat says that the Document is released under this License. If a 12862067fd92SSamuel Thibaultsection does not fit the above definition of Secondary then it is not 12872067fd92SSamuel Thibaultallowed to be designated as Invariant. The Document may contain zero 12882067fd92SSamuel ThibaultInvariant Sections. If the Document does not identify any Invariant 12892067fd92SSamuel ThibaultSections then there are none. 12902067fd92SSamuel Thibault 12912067fd92SSamuel ThibaultThe "Cover Texts" are certain short passages of text that are listed, 12922067fd92SSamuel Thibaultas Front-Cover Texts or Back-Cover Texts, in the notice that says that 12932067fd92SSamuel Thibaultthe Document is released under this License. A Front-Cover Text may 12942067fd92SSamuel Thibaultbe at most 5 words, and a Back-Cover Text may be at most 25 words. 12952067fd92SSamuel Thibault 12962067fd92SSamuel ThibaultA "Transparent" copy of the Document means a machine-readable copy, 12972067fd92SSamuel Thibaultrepresented in a format whose specification is available to the 12982067fd92SSamuel Thibaultgeneral public, that is suitable for revising the document 12992067fd92SSamuel Thibaultstraightforwardly with generic text editors or (for images composed of 13002067fd92SSamuel Thibaultpixels) generic paint programs or (for drawings) some widely available 13012067fd92SSamuel Thibaultdrawing editor, and that is suitable for input to text formatters or 13022067fd92SSamuel Thibaultfor automatic translation to a variety of formats suitable for input 13032067fd92SSamuel Thibaultto text formatters. A copy made in an otherwise Transparent file 13042067fd92SSamuel Thibaultformat whose markup, or absence of markup, has been arranged to thwart 13052067fd92SSamuel Thibaultor discourage subsequent modification by readers is not Transparent. 13062067fd92SSamuel ThibaultAn image format is not Transparent if used for any substantial amount 13072067fd92SSamuel Thibaultof text. A copy that is not "Transparent" is called "Opaque". 13082067fd92SSamuel Thibault 13092067fd92SSamuel ThibaultExamples of suitable formats for Transparent copies include plain 13102067fd92SSamuel ThibaultASCII without markup, Texinfo input format, LaTeX input format, SGML 13112067fd92SSamuel Thibaultor XML using a publicly available DTD, and standard-conforming simple 13122067fd92SSamuel ThibaultHTML, PostScript or PDF designed for human modification. Examples of 13132067fd92SSamuel Thibaulttransparent image formats include PNG, XCF and JPG. Opaque formats 13142067fd92SSamuel Thibaultinclude proprietary formats that can be read and edited only by 13152067fd92SSamuel Thibaultproprietary word processors, SGML or XML for which the DTD and/or 13162067fd92SSamuel Thibaultprocessing tools are not generally available, and the 13172067fd92SSamuel Thibaultmachine-generated HTML, PostScript or PDF produced by some word 13182067fd92SSamuel Thibaultprocessors for output purposes only. 13192067fd92SSamuel Thibault 13202067fd92SSamuel ThibaultThe "Title Page" means, for a printed book, the title page itself, 13212067fd92SSamuel Thibaultplus such following pages as are needed to hold, legibly, the material 13222067fd92SSamuel Thibaultthis License requires to appear in the title page. For works in 13232067fd92SSamuel Thibaultformats which do not have any title page as such, "Title Page" means 13242067fd92SSamuel Thibaultthe text near the most prominent appearance of the work's title, 13252067fd92SSamuel Thibaultpreceding the beginning of the body of the text. 13262067fd92SSamuel Thibault 13272067fd92SSamuel ThibaultA section "Entitled XYZ" means a named subunit of the Document whose 13282067fd92SSamuel Thibaulttitle either is precisely XYZ or contains XYZ in parentheses following 13292067fd92SSamuel Thibaulttext that translates XYZ in another language. (Here XYZ stands for a 13302067fd92SSamuel Thibaultspecific section name mentioned below, such as "Acknowledgements", 13312067fd92SSamuel Thibault"Dedications", "Endorsements", or "History".) To "Preserve the Title" 13322067fd92SSamuel Thibaultof such a section when you modify the Document means that it remains a 13332067fd92SSamuel Thibaultsection "Entitled XYZ" according to this definition. 13342067fd92SSamuel Thibault 13352067fd92SSamuel ThibaultThe Document may include Warranty Disclaimers next to the notice which 13362067fd92SSamuel Thibaultstates that this License applies to the Document. These Warranty 13372067fd92SSamuel ThibaultDisclaimers are considered to be included by reference in this 13382067fd92SSamuel ThibaultLicense, but only as regards disclaiming warranties: any other 13392067fd92SSamuel Thibaultimplication that these Warranty Disclaimers may have is void and has 13402067fd92SSamuel Thibaultno effect on the meaning of this License. 13412067fd92SSamuel Thibault 13422067fd92SSamuel Thibault 13432067fd92SSamuel Thibault2. VERBATIM COPYING 13442067fd92SSamuel Thibault 13452067fd92SSamuel ThibaultYou may copy and distribute the Document in any medium, either 13462067fd92SSamuel Thibaultcommercially or noncommercially, provided that this License, the 13472067fd92SSamuel Thibaultcopyright notices, and the license notice saying this License applies 13482067fd92SSamuel Thibaultto the Document are reproduced in all copies, and that you add no other 13492067fd92SSamuel Thibaultconditions whatsoever to those of this License. You may not use 13502067fd92SSamuel Thibaulttechnical measures to obstruct or control the reading or further 13512067fd92SSamuel Thibaultcopying of the copies you make or distribute. However, you may accept 13522067fd92SSamuel Thibaultcompensation in exchange for copies. If you distribute a large enough 13532067fd92SSamuel Thibaultnumber of copies you must also follow the conditions in section 3. 13542067fd92SSamuel Thibault 13552067fd92SSamuel ThibaultYou may also lend copies, under the same conditions stated above, and 13562067fd92SSamuel Thibaultyou may publicly display copies. 13572067fd92SSamuel Thibault 13582067fd92SSamuel Thibault 13592067fd92SSamuel Thibault3. COPYING IN QUANTITY 13602067fd92SSamuel Thibault 13612067fd92SSamuel ThibaultIf you publish printed copies (or copies in media that commonly have 13622067fd92SSamuel Thibaultprinted covers) of the Document, numbering more than 100, and the 13632067fd92SSamuel ThibaultDocument's license notice requires Cover Texts, you must enclose the 13642067fd92SSamuel Thibaultcopies in covers that carry, clearly and legibly, all these Cover 13652067fd92SSamuel ThibaultTexts: Front-Cover Texts on the front cover, and Back-Cover Texts on 13662067fd92SSamuel Thibaultthe back cover. Both covers must also clearly and legibly identify 13672067fd92SSamuel Thibaultyou as the publisher of these copies. The front cover must present 13682067fd92SSamuel Thibaultthe full title with all words of the title equally prominent and 13692067fd92SSamuel Thibaultvisible. You may add other material on the covers in addition. 13702067fd92SSamuel ThibaultCopying with changes limited to the covers, as long as they preserve 13712067fd92SSamuel Thibaultthe title of the Document and satisfy these conditions, can be treated 13722067fd92SSamuel Thibaultas verbatim copying in other respects. 13732067fd92SSamuel Thibault 13742067fd92SSamuel ThibaultIf the required texts for either cover are too voluminous to fit 13752067fd92SSamuel Thibaultlegibly, you should put the first ones listed (as many as fit 13762067fd92SSamuel Thibaultreasonably) on the actual cover, and continue the rest onto adjacent 13772067fd92SSamuel Thibaultpages. 13782067fd92SSamuel Thibault 13792067fd92SSamuel ThibaultIf you publish or distribute Opaque copies of the Document numbering 13802067fd92SSamuel Thibaultmore than 100, you must either include a machine-readable Transparent 13812067fd92SSamuel Thibaultcopy along with each Opaque copy, or state in or with each Opaque copy 13822067fd92SSamuel Thibaulta computer-network location from which the general network-using 13832067fd92SSamuel Thibaultpublic has access to download using public-standard network protocols 13842067fd92SSamuel Thibaulta complete Transparent copy of the Document, free of added material. 13852067fd92SSamuel ThibaultIf you use the latter option, you must take reasonably prudent steps, 13862067fd92SSamuel Thibaultwhen you begin distribution of Opaque copies in quantity, to ensure 13872067fd92SSamuel Thibaultthat this Transparent copy will remain thus accessible at the stated 13882067fd92SSamuel Thibaultlocation until at least one year after the last time you distribute an 13892067fd92SSamuel ThibaultOpaque copy (directly or through your agents or retailers) of that 13902067fd92SSamuel Thibaultedition to the public. 13912067fd92SSamuel Thibault 13922067fd92SSamuel ThibaultIt is requested, but not required, that you contact the authors of the 13932067fd92SSamuel ThibaultDocument well before redistributing any large number of copies, to give 13942067fd92SSamuel Thibaultthem a chance to provide you with an updated version of the Document. 13952067fd92SSamuel Thibault 13962067fd92SSamuel Thibault 13972067fd92SSamuel Thibault4. MODIFICATIONS 13982067fd92SSamuel Thibault 13992067fd92SSamuel ThibaultYou may copy and distribute a Modified Version of the Document under 14002067fd92SSamuel Thibaultthe conditions of sections 2 and 3 above, provided that you release 14012067fd92SSamuel Thibaultthe Modified Version under precisely this License, with the Modified 14022067fd92SSamuel ThibaultVersion filling the role of the Document, thus licensing distribution 14032067fd92SSamuel Thibaultand modification of the Modified Version to whoever possesses a copy 14042067fd92SSamuel Thibaultof it. In addition, you must do these things in the Modified Version: 14052067fd92SSamuel Thibault 14062067fd92SSamuel ThibaultA. Use in the Title Page (and on the covers, if any) a title distinct 14072067fd92SSamuel Thibault from that of the Document, and from those of previous versions 14082067fd92SSamuel Thibault (which should, if there were any, be listed in the History section 14092067fd92SSamuel Thibault of the Document). You may use the same title as a previous version 14102067fd92SSamuel Thibault if the original publisher of that version gives permission. 14112067fd92SSamuel ThibaultB. List on the Title Page, as authors, one or more persons or entities 14122067fd92SSamuel Thibault responsible for authorship of the modifications in the Modified 14132067fd92SSamuel Thibault Version, together with at least five of the principal authors of the 14142067fd92SSamuel Thibault Document (all of its principal authors, if it has fewer than five), 14152067fd92SSamuel Thibault unless they release you from this requirement. 14162067fd92SSamuel ThibaultC. State on the Title page the name of the publisher of the 14172067fd92SSamuel Thibault Modified Version, as the publisher. 14182067fd92SSamuel ThibaultD. Preserve all the copyright notices of the Document. 14192067fd92SSamuel ThibaultE. Add an appropriate copyright notice for your modifications 14202067fd92SSamuel Thibault adjacent to the other copyright notices. 14212067fd92SSamuel ThibaultF. Include, immediately after the copyright notices, a license notice 14222067fd92SSamuel Thibault giving the public permission to use the Modified Version under the 14232067fd92SSamuel Thibault terms of this License, in the form shown in the Addendum below. 14242067fd92SSamuel ThibaultG. Preserve in that license notice the full lists of Invariant Sections 14252067fd92SSamuel Thibault and required Cover Texts given in the Document's license notice. 14262067fd92SSamuel ThibaultH. Include an unaltered copy of this License. 14272067fd92SSamuel ThibaultI. Preserve the section Entitled "History", Preserve its Title, and add 14282067fd92SSamuel Thibault to it an item stating at least the title, year, new authors, and 14292067fd92SSamuel Thibault publisher of the Modified Version as given on the Title Page. If 14302067fd92SSamuel Thibault there is no section Entitled "History" in the Document, create one 14312067fd92SSamuel Thibault stating the title, year, authors, and publisher of the Document as 14322067fd92SSamuel Thibault given on its Title Page, then add an item describing the Modified 14332067fd92SSamuel Thibault Version as stated in the previous sentence. 14342067fd92SSamuel ThibaultJ. Preserve the network location, if any, given in the Document for 14352067fd92SSamuel Thibault public access to a Transparent copy of the Document, and likewise 14362067fd92SSamuel Thibault the network locations given in the Document for previous versions 14372067fd92SSamuel Thibault it was based on. These may be placed in the "History" section. 14382067fd92SSamuel Thibault You may omit a network location for a work that was published at 14392067fd92SSamuel Thibault least four years before the Document itself, or if the original 14402067fd92SSamuel Thibault publisher of the version it refers to gives permission. 14412067fd92SSamuel ThibaultK. For any section Entitled "Acknowledgements" or "Dedications", 14422067fd92SSamuel Thibault Preserve the Title of the section, and preserve in the section all 14432067fd92SSamuel Thibault the substance and tone of each of the contributor acknowledgements 14442067fd92SSamuel Thibault and/or dedications given therein. 14452067fd92SSamuel ThibaultL. Preserve all the Invariant Sections of the Document, 14462067fd92SSamuel Thibault unaltered in their text and in their titles. Section numbers 14472067fd92SSamuel Thibault or the equivalent are not considered part of the section titles. 14482067fd92SSamuel ThibaultM. Delete any section Entitled "Endorsements". Such a section 14492067fd92SSamuel Thibault may not be included in the Modified Version. 14502067fd92SSamuel ThibaultN. Do not retitle any existing section to be Entitled "Endorsements" 14512067fd92SSamuel Thibault or to conflict in title with any Invariant Section. 14522067fd92SSamuel ThibaultO. Preserve any Warranty Disclaimers. 14532067fd92SSamuel Thibault 14542067fd92SSamuel ThibaultIf the Modified Version includes new front-matter sections or 14552067fd92SSamuel Thibaultappendices that qualify as Secondary Sections and contain no material 14562067fd92SSamuel Thibaultcopied from the Document, you may at your option designate some or all 14572067fd92SSamuel Thibaultof these sections as invariant. To do this, add their titles to the 14582067fd92SSamuel Thibaultlist of Invariant Sections in the Modified Version's license notice. 14592067fd92SSamuel ThibaultThese titles must be distinct from any other section titles. 14602067fd92SSamuel Thibault 14612067fd92SSamuel ThibaultYou may add a section Entitled "Endorsements", provided it contains 14622067fd92SSamuel Thibaultnothing but endorsements of your Modified Version by various 14632067fd92SSamuel Thibaultparties--for example, statements of peer review or that the text has 14642067fd92SSamuel Thibaultbeen approved by an organization as the authoritative definition of a 14652067fd92SSamuel Thibaultstandard. 14662067fd92SSamuel Thibault 14672067fd92SSamuel ThibaultYou may add a passage of up to five words as a Front-Cover Text, and a 14682067fd92SSamuel Thibaultpassage of up to 25 words as a Back-Cover Text, to the end of the list 14692067fd92SSamuel Thibaultof Cover Texts in the Modified Version. Only one passage of 14702067fd92SSamuel ThibaultFront-Cover Text and one of Back-Cover Text may be added by (or 14712067fd92SSamuel Thibaultthrough arrangements made by) any one entity. If the Document already 14722067fd92SSamuel Thibaultincludes a cover text for the same cover, previously added by you or 14732067fd92SSamuel Thibaultby arrangement made by the same entity you are acting on behalf of, 14742067fd92SSamuel Thibaultyou may not add another; but you may replace the old one, on explicit 14752067fd92SSamuel Thibaultpermission from the previous publisher that added the old one. 14762067fd92SSamuel Thibault 14772067fd92SSamuel ThibaultThe author(s) and publisher(s) of the Document do not by this License 14782067fd92SSamuel Thibaultgive permission to use their names for publicity for or to assert or 14792067fd92SSamuel Thibaultimply endorsement of any Modified Version. 14802067fd92SSamuel Thibault 14812067fd92SSamuel Thibault 14822067fd92SSamuel Thibault5. COMBINING DOCUMENTS 14832067fd92SSamuel Thibault 14842067fd92SSamuel ThibaultYou may combine the Document with other documents released under this 14852067fd92SSamuel ThibaultLicense, under the terms defined in section 4 above for modified 14862067fd92SSamuel Thibaultversions, provided that you include in the combination all of the 14872067fd92SSamuel ThibaultInvariant Sections of all of the original documents, unmodified, and 14882067fd92SSamuel Thibaultlist them all as Invariant Sections of your combined work in its 14892067fd92SSamuel Thibaultlicense notice, and that you preserve all their Warranty Disclaimers. 14902067fd92SSamuel Thibault 14912067fd92SSamuel ThibaultThe combined work need only contain one copy of this License, and 14922067fd92SSamuel Thibaultmultiple identical Invariant Sections may be replaced with a single 14932067fd92SSamuel Thibaultcopy. If there are multiple Invariant Sections with the same name but 14942067fd92SSamuel Thibaultdifferent contents, make the title of each such section unique by 14952067fd92SSamuel Thibaultadding at the end of it, in parentheses, the name of the original 14962067fd92SSamuel Thibaultauthor or publisher of that section if known, or else a unique number. 14972067fd92SSamuel ThibaultMake the same adjustment to the section titles in the list of 14982067fd92SSamuel ThibaultInvariant Sections in the license notice of the combined work. 14992067fd92SSamuel Thibault 15002067fd92SSamuel ThibaultIn the combination, you must combine any sections Entitled "History" 15012067fd92SSamuel Thibaultin the various original documents, forming one section Entitled 15022067fd92SSamuel Thibault"History"; likewise combine any sections Entitled "Acknowledgements", 15032067fd92SSamuel Thibaultand any sections Entitled "Dedications". You must delete all sections 15042067fd92SSamuel ThibaultEntitled "Endorsements". 15052067fd92SSamuel Thibault 15062067fd92SSamuel Thibault 15072067fd92SSamuel Thibault6. COLLECTIONS OF DOCUMENTS 15082067fd92SSamuel Thibault 15092067fd92SSamuel ThibaultYou may make a collection consisting of the Document and other documents 15102067fd92SSamuel Thibaultreleased under this License, and replace the individual copies of this 15112067fd92SSamuel ThibaultLicense in the various documents with a single copy that is included in 15122067fd92SSamuel Thibaultthe collection, provided that you follow the rules of this License for 15132067fd92SSamuel Thibaultverbatim copying of each of the documents in all other respects. 15142067fd92SSamuel Thibault 15152067fd92SSamuel ThibaultYou may extract a single document from such a collection, and distribute 15162067fd92SSamuel Thibaultit individually under this License, provided you insert a copy of this 15172067fd92SSamuel ThibaultLicense into the extracted document, and follow this License in all 15182067fd92SSamuel Thibaultother respects regarding verbatim copying of that document. 15192067fd92SSamuel Thibault 15202067fd92SSamuel Thibault 15212067fd92SSamuel Thibault7. AGGREGATION WITH INDEPENDENT WORKS 15222067fd92SSamuel Thibault 15232067fd92SSamuel ThibaultA compilation of the Document or its derivatives with other separate 15242067fd92SSamuel Thibaultand independent documents or works, in or on a volume of a storage or 15252067fd92SSamuel Thibaultdistribution medium, is called an "aggregate" if the copyright 15262067fd92SSamuel Thibaultresulting from the compilation is not used to limit the legal rights 15272067fd92SSamuel Thibaultof the compilation's users beyond what the individual works permit. 15282067fd92SSamuel ThibaultWhen the Document is included in an aggregate, this License does not 15292067fd92SSamuel Thibaultapply to the other works in the aggregate which are not themselves 15302067fd92SSamuel Thibaultderivative works of the Document. 15312067fd92SSamuel Thibault 15322067fd92SSamuel ThibaultIf the Cover Text requirement of section 3 is applicable to these 15332067fd92SSamuel Thibaultcopies of the Document, then if the Document is less than one half of 15342067fd92SSamuel Thibaultthe entire aggregate, the Document's Cover Texts may be placed on 15352067fd92SSamuel Thibaultcovers that bracket the Document within the aggregate, or the 15362067fd92SSamuel Thibaultelectronic equivalent of covers if the Document is in electronic form. 15372067fd92SSamuel ThibaultOtherwise they must appear on printed covers that bracket the whole 15382067fd92SSamuel Thibaultaggregate. 15392067fd92SSamuel Thibault 15402067fd92SSamuel Thibault 15412067fd92SSamuel Thibault8. TRANSLATION 15422067fd92SSamuel Thibault 15432067fd92SSamuel ThibaultTranslation is considered a kind of modification, so you may 15442067fd92SSamuel Thibaultdistribute translations of the Document under the terms of section 4. 15452067fd92SSamuel ThibaultReplacing Invariant Sections with translations requires special 15462067fd92SSamuel Thibaultpermission from their copyright holders, but you may include 15472067fd92SSamuel Thibaulttranslations of some or all Invariant Sections in addition to the 15482067fd92SSamuel Thibaultoriginal versions of these Invariant Sections. You may include a 15492067fd92SSamuel Thibaulttranslation of this License, and all the license notices in the 15502067fd92SSamuel ThibaultDocument, and any Warranty Disclaimers, provided that you also include 15512067fd92SSamuel Thibaultthe original English version of this License and the original versions 15522067fd92SSamuel Thibaultof those notices and disclaimers. In case of a disagreement between 15532067fd92SSamuel Thibaultthe translation and the original version of this License or a notice 15542067fd92SSamuel Thibaultor disclaimer, the original version will prevail. 15552067fd92SSamuel Thibault 15562067fd92SSamuel ThibaultIf a section in the Document is Entitled "Acknowledgements", 15572067fd92SSamuel Thibault"Dedications", or "History", the requirement (section 4) to Preserve 15582067fd92SSamuel Thibaultits Title (section 1) will typically require changing the actual 15592067fd92SSamuel Thibaulttitle. 15602067fd92SSamuel Thibault 15612067fd92SSamuel Thibault 15622067fd92SSamuel Thibault9. TERMINATION 15632067fd92SSamuel Thibault 15642067fd92SSamuel ThibaultYou may not copy, modify, sublicense, or distribute the Document except 15652067fd92SSamuel Thibaultas expressly provided for under this License. Any other attempt to 15662067fd92SSamuel Thibaultcopy, modify, sublicense or distribute the Document is void, and will 15672067fd92SSamuel Thibaultautomatically terminate your rights under this License. However, 15682067fd92SSamuel Thibaultparties who have received copies, or rights, from you under this 15692067fd92SSamuel ThibaultLicense will not have their licenses terminated so long as such 15702067fd92SSamuel Thibaultparties remain in full compliance. 15712067fd92SSamuel Thibault 15722067fd92SSamuel Thibault 15732067fd92SSamuel Thibault10. FUTURE REVISIONS OF THIS LICENSE 15742067fd92SSamuel Thibault 15752067fd92SSamuel ThibaultThe Free Software Foundation may publish new, revised versions 15762067fd92SSamuel Thibaultof the GNU Free Documentation License from time to time. Such new 15772067fd92SSamuel Thibaultversions will be similar in spirit to the present version, but may 15782067fd92SSamuel Thibaultdiffer in detail to address new problems or concerns. See 15792067fd92SSamuel Thibaulthttps://www.gnu.org/copyleft/. 15802067fd92SSamuel Thibault 15812067fd92SSamuel ThibaultEach version of the License is given a distinguishing version number. 15822067fd92SSamuel ThibaultIf the Document specifies that a particular numbered version of this 15832067fd92SSamuel ThibaultLicense "or any later version" applies to it, you have the option of 15842067fd92SSamuel Thibaultfollowing the terms and conditions either of that specified version or 15852067fd92SSamuel Thibaultof any later version that has been published (not as a draft) by the 15862067fd92SSamuel ThibaultFree Software Foundation. If the Document does not specify a version 15872067fd92SSamuel Thibaultnumber of this License, you may choose any version ever published (not 15882067fd92SSamuel Thibaultas a draft) by the Free Software Foundation. 15892067fd92SSamuel Thibault 15902067fd92SSamuel Thibault 15912067fd92SSamuel ThibaultADDENDUM: How to use this License for your documents 15922067fd92SSamuel Thibault 15932067fd92SSamuel ThibaultTo use this License in a document you have written, include a copy of 15942067fd92SSamuel Thibaultthe License in the document and put the following copyright and 15952067fd92SSamuel Thibaultlicense notices just after the title page: 15962067fd92SSamuel Thibault 15972067fd92SSamuel Thibault Copyright (c) YEAR YOUR NAME. 15982067fd92SSamuel Thibault Permission is granted to copy, distribute and/or modify this document 15992067fd92SSamuel Thibault under the terms of the GNU Free Documentation License, Version 1.2 16002067fd92SSamuel Thibault or any later version published by the Free Software Foundation; 16012067fd92SSamuel Thibault with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. 16022067fd92SSamuel Thibault A copy of the license is included in the section entitled "GNU 16032067fd92SSamuel Thibault Free Documentation License". 16042067fd92SSamuel Thibault 16052067fd92SSamuel ThibaultIf you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, 16062067fd92SSamuel Thibaultreplace the "with...Texts." line with this: 16072067fd92SSamuel Thibault 16082067fd92SSamuel Thibault with the Invariant Sections being LIST THEIR TITLES, with the 16092067fd92SSamuel Thibault Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. 16102067fd92SSamuel Thibault 16112067fd92SSamuel ThibaultIf you have Invariant Sections without Cover Texts, or some other 16122067fd92SSamuel Thibaultcombination of the three, merge those two alternatives to suit the 16132067fd92SSamuel Thibaultsituation. 16142067fd92SSamuel Thibault 16152067fd92SSamuel ThibaultIf your document contains nontrivial examples of program code, we 16162067fd92SSamuel Thibaultrecommend releasing these examples in parallel under your choice of 16172067fd92SSamuel Thibaultfree software license, such as the GNU General Public License, 16182067fd92SSamuel Thibaultto permit their use in free software. 16192067fd92SSamuel Thibault 16202067fd92SSamuel ThibaultThe End. 1621