Der C 64 lernt sprechen
Dieses Programm ist wohl die billigste Sprachein-/ausgabe, die es gibt. Man kann sie vielseitig einsetzen, zum Beispiel bei Spielen, sprechenden Menüs oder einfach als Spielerei.


Außer dem C 64 ist für dieses Programm eine Datasette erforderlich. Nachdem das Listing abgetippt und das Programm mitSYS49231 gestartet wurde, ändern sich die Bildschirmfarben, und eine Einschaltmeldung erscheint. Jetzt stehen Ihnen 2045 Byte für Basic-Programme zur Verfügung. Der Grund dafür ist, daß die Aufzeichnung von Sprache äußerst speicherintensiv ist. Selbst der Bereich unter dem Basic-ROM ($ A000 bis $BFFF) wird ausgenutzt. Die Tonwiedergabe hat zwar keine Hi-Fi-Qualität, wenn man aber laut und deutlich spricht, kann man sich gut wiedererkennen. Während der Tonein-/ausgabe wird der Bildschirm abgeschaltet, damit der Prozessor nicht ständig vom Video-Controller unterbrochen wird.
Das Arbeiten mit diesem Programm ist denkbar einfach. Es stehen fünf neue Basic-Befehle zur Verfügung. Der Speicher des C 64 wird in verschiedene Abschnitte aufgeteilt (Bild 1), in denen Wörter gespeichert werden. Hinter allen Befehlen (außer ^R und —G) ist anzugeben, in welchen Bereich gespeichert werden soll.
x= 1 bis 16: Diese Abschnitte sind für ein- bis zweisilbige Wörter reserviert. Hier können zum Beispiel Zahlen oder kurze Wörter abgelegt werden.
x = 17: Dies ist ein Abschnitt für 4 Sekunden Sprechzeit.
Hier kann ein kleiner Satz abgelegt werden.
x = 255: Hier wird der gesamte Speicher beschrieben, also auch die Abschnitte 1 bis 17. Es stehen etwa 13 Sekunden Sprechzeit zur Verfügung.
Alle anderen Zahlen werden als 17 interpretiert.
Befehle
Doch nun zu den Befehlen:
←Lx: »learn« — Nach Eingabe dieses Befehls wird der Bildschirm abgeschaltet. Die Tonsignale werden digitalisiert und im Speicher abgelegt, x entscheidet, in welchen Bereich die Sprache gespeichert wird.
←Sx: »say«—Bei diesem Befehl wird ebenfalls der Bildschirm gelöscht. Aus dem Lautsprecher des Fernsehgerätes ertönt nun Ihre eigene Stimme. Im Gegensatz zu dem Befehl »learn« benötigt dieser Befehl keinerlei Hardware. Er kann also ohne irgendwelchen Umbau benutzt werden, x entscheidet, aus welchem Bereich die Sprache entnommen wird.
←P”Filename”x: »put« — Mit diesem Befehl kann die Sprache, die sich im Speicher befindet, auf Diskette gespeichert werden. Da das Speichern von Sprache sehr aufwendig ist, belegen 13Sekunden Sprechzeit178 Blöcke, xgibtan, in welchem Bereich die Sprache gespeichert wird.
←G”Filename”: »get« — Dieser Befehl wird zum Laden der Sprache benutzt.
←R: »rate«—Mitdiesem Befehl läßtsich die Sprechgeschwindigkeit einstellen. Nach dem Befehl muß ein numerischer Ausdruck folgen, der die Geschwindigkeit angibt. Erlaubt sind Zahlen von 0 bis 19. Dabei entspricht 19 der schnellsten Sprechgeschwindigkeit und 0 der langsamsten. Alle anderen Zahlen werden mit einer Fehlermeldung quittiert. Die Grundeinstellung ist 13. Das ist etwa die normale Sprechgeschwindigkeit.
Jetzt werden Sie sich fragen, wie man in den Computer hineinspricht. Dazu ist natürlich ein Mikrofon erforderlich und somit auch ein wenig Umbau. Aber keine Angst, der Umbau hält sich in Grenzen. Es ist jedoch erforderlich, die Datasette zu öffnen. Lösen Sie dazu die vier Schrauben auf der Rückseite. Nachdem der Deckel abgenommen wurde, läßt sich auf einer Seite eine Platine erkennen, die mit einer Aluminiumfolie abgeschirmt ist. Auf der Seite, wo sich die Drucktasten befinden, ragt eine Anschlußleiste unter der Folie hervor (Bild 2). Löten Sie nun an die in Bild 2 gekennzeichneten Punkte eine Mikrofonbuchse an. Das war schon der ganze Umbau. Wollen Sie die Datasette wieder als Massenspeicher benutzen, darf das Mikrofon nicht mit der Buchse verbunden sein, da Geräusche im Raum den Datentransfer zwischen Datasette und Computer stören.
(Martin Klinger/ah)
PROGRAMM : SPRACHE SYS49231 C000 C25A ----------------------------------- C000 : 93 90 20 20 20 20 20 20 AB C008 : 2A 2A 2A 20 56 4F 49 43 62 C010 : 45 20 36 34 20 53 59 53 22 C018 : 54 45 4D 20 56 32 2E 30 76 C020 : 20 2A 2A 2A 0D 0D 31 39 96 C028 : 38 35 20 42 59 20 4D 2E 73 C030 : 4B 4C 49 4E 47 45 52 20 E6 C038 : 20 32 30 34 35 20 42 41 E4 C040 : 53 49 43 20 42 59 54 45 D8 C048 : 53 20 46 52 45 45 00 A9 59 C050 : 00 A0 C0 20 1E AB A9 0F D8 C058 : 8D 21 D0 A9 0B 8D 20 D0 1E C060 : 4C 42 C2 00 00 00 20 73 E5 C068 : 00 08 C9 5F F0 04 28 4C 33 C070 : E7 A7 28 20 73 00 08 C9 24 C078 : 4C F0 24 C9 53 F0 2B EA BE C080 : 4C 3A C1 EA 20 9B B7 08 85 C088 : E0 11 90 04 EA 4C AD C1 E1 C090 : EA A9 06 69 09 CA D0 FB 20 C098 : 85 FB 69 09 85 FC 60 28 A8 C0A0 : 20 9B B7 08 20 88 C0 4C 5F C0A8 : 5D C1 28 20 9B B7 08 20 CC C0B0 : 88 C0 4C DD C1 28 20 13 6B C0B8 : C1 EA EA EA EA EA EA EA 8E C0C0 : A2 08 A0 01 20 BA FF A2 CC C0C8 : 3C A0 03 A5 FF 20 BD FF C2 C0D0 : A9 00 A2 00 A0 00 20 D5 58 C0D8 : FF EA 4C E4 A7 20 13 C1 47 C0E0 : 28 20 9B B7 08 20 88 C0 1B C0E8 : A9 36 85 01 A2 08 20 BA 8E C0F0 : FF A2 3C A0 03 A5 FF 20 01 C0F8 : BD FF A2 00 A4 FB 86 FD 9E C100 : 84 FE A9 FD A2 01 A4 FC EC C108 : 20 D8 FF A9 37 85 01 28 BD C110 : 4C E7 A7 20 73 00 C9 22 E0 C118 : F0 03 4C 08 AF EA A0 00 73 C120 : 20 73 00 C9 22 F0 0B 99 3C C128 : 3C 03 C8 C0 10 F0 03 4C 5D C130 : 20 C1 EA 84 FF 60 00 00 7F C138 : 00 00 C9 47 F0 0C C9 50 CB C140 : F0 9B C9 52 F0 07 28 4C 3B C148 : 08 AF 4C B5 C0 28 20 9B F7 C150 : B7 08 E0 14 90 03 4C 48 A9 C158 : B2 4C C3 C1 EA AD 11 D0 5B C160 : 29 EF 8D 11 D0 A9 7F 8D 7A C168 : 0D DC 78 A9 00 85 FA A5 9A C170 : FB 85 FB A0 00 A2 08 AD D1 C178 : 0D DC 4A 4A 4A 4A 85 FE DA C180 : 06 FF A5 FF 05 FE 85 FF 4D C188 : CA D0 EC 91 FA 86 FF 88 1C C190 : D0 E3 E6 FB A5 FB C5 FC D6 C198 : D0 D9 AD 11 D0 09 10 8D 93 C1A0 : 11 D0 58 A9 81 8D 0D DC D7 C1A8 : 28 4C E7 A7 EA E0 FF F0 7D C1B0 : 09 A9 9F 85 FB A9 C0 85 41 C1B8 : FC 60 A9 10 85 FB A9 C0 B1 C1C0 : 85 FC 60 8A 69 0F 8D 0D 8C C1C8 : C2 28 4C E7 A7 00 00 00 29 C1D0 : 00 00 00 00 00 00 00 00 D1 C1D8 : 00 00 00 00 00 A9 36 85 0A C1E0 : 01 A9 7F 8D 0D DC 78 AD 3C C1E8 : 11 D0 29 EF 8D 11 D0 EA 24 C1F0 : A9 00 85 BB A5 FB 85 BC 3C C1F8 : A0 00 A2 08 B1 BB 0A 48 F4 C200 : 90 0A A9 0F 8D 18 D4 A9 22 C208 : 00 8D 18 D4 4C 1C C2 EA F6 C210 : EA EA EA EA EA EA EA EA 0F C218 : EA EA EA EA EA EA EA EA 17 C220 : EA EA 68 CA D0 D8 88 D0 8A C228 : D1 E6 BC A5 BC C5 FC D0 E0 C230 : C7 AD 11 D0 09 10 8D 11 96 C238 : D0 58 A9 37 85 01 EA 4C 2A C240 : A3 C1 A9 66 8D 08 03 A9 73 C248 : C0 8D 09 03 A9 10 85 34 0B C250 : 85 38 20 44 A6 4C 74 A4 6A C258 : 00 45 EC