| MAGIC VOICE | Anleitung - Manual |
![]() |
Allgemeines General |
Einführung Introduction |
Anschluss Connection |
Anwenden des Moduls Using the Module |
Vokabular Vocabulary |
Tips & Tricks Tips & Tricks |
| Ergänzendes Additional stuff |
Demos Demos |
Spiele Games |
Zeitschriften Magazines |
Sprach Downloads Speech Downloads |
Lexikon Lexicon |
|
| Internes Internal |
Hardware Hardware |
Firmware Firmware |
Sprachdaten Speechdata |
Bit-Format Bit allocation |
De-/Codierung De-/Coding |
|
| Nützliches und mehr Utilities and more |
Speech Playtool | Magic Game Cart | Magic Talkie | Magic Voice NT | Ersatzteile & Reparatur Spares & Repair |
|
Um das Magic Voice Modul zum sprechen zu veranlassen, genügt es den BASIC Befehl SAY zu verwenden. Das Magic Voice kann in BASIC und Assembler programmiert werden. |
To cause the Magic Voice Module to talk, it is sufficient to use the BASIC command SAY. It is possible to program the Magic Voice in BASIC and Assembly language. |
| Bedienungsanleitung - Operating Manual |
| Die Original Bedienungsanleitung als pdf-Dokument. Nach dem Einscannen wurden in der Nachbearbeitung verschiedene Tippfehler korrigiert. | The orignal operating manual as pdf-document. After scanning there have been corrected several typos in the postprocessing. |
| MagicVoiceSpeechModule_Manual.zip .zip 5330 KB / .pdf 5459 KB Revision 20110827 |
| BASIC |
| Das Magic Voice stellt vier zusätzliche BASIC-Befehle zur Verfügung: SAY, RATE, VOC und RDY. | The Magic voice provides four additional BASIC commands: SAY, RATE, VOC and RDY. |
| Dieser Befehl veranlasst das Magic Voice Modul, ein Wort zu sprechen. Dem SAY-Befehl muss entweder das zu sprechende Wort in Anführungszeichen oder die Wortnummer folgen. | This command causes the Magic Voice module to speak a word. Following to the SAY command must be either the spoken word in quotation marks or the word number. |
| Mit diesem Befehl kann die Sprechgeschwindigkeit in 10 Stufen eingestellt. Dem RATE-Befehl muss eine Zahl zwischen 1 (schnell) und 10 (langsam) folgen. Der Standardwert ist 4. Die folgende Tabelle zeigt die 10 verfügbaren Geschwindigkeiten und den Faktor um den sich die Standardgeschwindigkeit ändert. | With this command the speech speed can be changed in 10 steps. Following to the RATE command there must be a number between 1 (fast) and 10 (slow). The default value is 4. The following table shows the 10 available speeds, and the factor by which the standard rate changes. |
| RATE | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| Faktor (laut Datenblatt according to datasheet) |
0,7 | 0,8 | 0,9 | 1,0 | 1,1 | 1,2 | 1,3 | 1,4 | 1,5 | 1,55 |
| Faktor (laut Handbuch according to manual) |
0,65 | 1,0 | 1,4 | |||||||
| Speech speed (laut Entwickler according to developer) |
- 30 % | 100 % | + 50/55 % |
| Mit diesem Befehl wird dem Sprachmodul die Verfügbarkeit eines erweiterten Vokabulars mitgeteilt. Das Vokabular kann von einer Diskette oder Kassette geladen werden. Der Befehl wird nur benötigt, wenn zusätzliches Vokabular in den Speicher geladen wurde. | This command alerts the speech module to the presence of an extended vocabulary loaded into the system memory. This vocabulary might come from optional disks or cassettes. This command is only needed when additional vocabulary data has been loaded into memory. |
| Dies ist eine logische Funktion und dient zur Rückmeldung wenn die Sprache vollständig ausgegeben wurde. RDY ist "TRUE" (wahr), wenn die Sprache vollständig ausgegeben wurde, und "FALSE" (falsch), wenn das Modul noch spricht. | This is a logical function which returns the value TRUE if the magic voice is ready to accept another SAY command and FLASE if not. |
|
Im Handbuch wird angegeben, dass RDY auch dazu verwendet werden kann, das vorhanden sein des Moduls festzustellen. RDY = 0 wenn Modul nicht vorhanden und RDY = -1 wenn das Modul vorhanden ist. Diese Abfrage funktioniert nicht! Stattdessen kann man folgende Abfrage durchführen: |
The manual indicates that RDY can also be used to determine the existence of the module. RDY = 0 if the module is not present and RDY = -1 if the module is present. This query will not work! A correct way to detect the presence of a Magic Voice while using a basic program is as follows: |
| Das Magic Voice Modul erkennt und informiert den Anwender mit folgenden BASIC-Fehlermeldungen: | The Magic Voice detects and informs the user of certain kinds of errors that it detects: |
| ILLEGAL QUANTITY ERROR | |
| Wenn man den SAY Befehl mit einem Wort verwendet, das nicht im Wortschatz enthalten ist. | When the user tries to "SAY" a word that is not in the module's vocabulary. |
| ? TYPE MISMATCH ERROR | |
| Wenn man den Befehlen RATE oder VOC kein numerisches Argument (also eine Zahl) folgen lässt. | If the functions RATE or VOC are called with a non-numeric argument. |
| Assembler |
| Der Magic Voice enthält eine Sammlung von Routinen, damit Assembler-Programme die Sprachausgabe benutzen können. | The Magic Voice includes a collection of routines to allow assembly programs to operate the speech synthesizer. |
|
Benutzerschnittstelle Der Assembler-Schnittstelle besteht aus Unterprogrammaufrufe, wobei die Argumente in den A, X und Y-Registern übergeben werden. Wenn möglich, wurden die Prozeduraufrufe so gestaltet, dass sie Benutzerfreundlich sind. Funktionen erfordern außer dem Byte im A-Register des Prozessors kein weiteres Byte. Wenn zwei Bytes benötigt werden, wird das A-Register und das X-Register verwendet. Nur wenn ein Zählwert benötigt wird, wird das Y-Register verwendet. Die übliche Verwendung der Register ist wie folgt: A-Register: vollständiger Operand oder Low-Byte, wenn eine Adresse übergeben wird. X-Register: High-Byte, wenn eine Adresse übergeben wird. Y-Register: Anzahl (0 bedeutet 256). Registerwerte bleiben nur erhalten, wie in den detaillierten Beschreibungen unten angegeben. Es gibt ein separates Unterprogramm für jede der folgenden Funktionen: $C003 - SRESET - Modul zurücksetzen $C006 - SPSTAT - Modulstatus ermitteln $C009 - SAYIT - Sprechen eines Wortes $C00C - SAYRAM - $C00F - SPEED - $C012 - SETTAB - $C015 - SIGNAL - Detaillierte Funktionsbeschreibungen und Aufrufspezifikationen sind unten angegeben. |
User Interface: The assembly language interface consists of subroutine calls with the argument passed in the A, X and Y registers. Where possible, the calling procedures have been designed with ease of use in mind. Functions requiring a single byte except that byte in the processor's A-register. Where two bytes are needed the A-register and the X-register are both used. Only when a count is needed is the Y-register used. The conventional uses of the registers are as follows: A-register: complete operand or low byte if an adress is passed. X-register: upper byte if an adress is passed. Y-register: count (0 implies 256). Registers are preserved only as indicated in the detailed descriptions below. There is a seperate subroutine for each of the following functions: $C003 - SRESET - Reset speech module $C006 - SPSTAT - Get speech module status $C009 - SAYIT - Say a word $C00C - SAYRAM - $C00F - SPEED - $C012 - SETTAB - $C015 - SIGNAL - Detailed functional descriptions and calling specifications are provided below. |
| SRESET - Reset The Speech System / Stop Talking | ||
| Einsprung - Entry | Beschreibung - Description | |
| Adresse - Address | $C003 | Diese Anweisung ... This command resets the synthesizer hardware. It should be included in applications programs for initialization purposes and may be used to stop speech output in mid-utterance. |
| Bedingung - Condition | Keine - None | |
| Rückgabe - Returned Information | ||
| Akkumulator (A-Reg) ist zerstört Accumulator (A-reg) is destroyed |
||
| SPSTAT - Get Status Of Speech Module | ||
| Einsprung - Entry | Beschreibung - Description | |
| Adresse - Address | $C006 | Diese Anweisung ... This command may be used to determine whether the speech module has completed previous "sayit" requests and whether a new "sayit" request can be handled immediately. |
| Bedingung - Condition | Keine - None | |
| Rückgabe - Returned Information | ||
| A-Reg = 0 wenn bereit (Z-Flag = 1) A-Reg = -1 wenn mit Sprechen beschäftigt (N-Flag = 1) A-reg = 0 if ready A-reg = -1 if busy talking |
||
| SAYIT - Say A Word | ||
| Einsprung - Entry | Beschreibung - Description | |
| Adresse - Address | $C009 | Diese Anweisung ... This command initiated the synthesis of a word or phrase. Control is returned to the calling program almost immediately if the module is not already talking, then control is not already talking. If the module is talking, then control will not be returned until the current request can be initiated. Words number 0 through 255 are words which are in the speech module. Words number 256 (X=$01) through 4095 (X=$0F) are interpreted as located in the user's program space. Note: Set Bit 7 in X-Reg to access EXROM |
| Bedingung - Condition | A-Reg = niederwertiger Teil der Wortnummer X-Reg = höherwertiger Teil der Wortnummer A-reg = least significant portion of the word number X-reg = most significant portion of the word number |
|
| Rückgabe - Returned Information | ||
| Alle Register zerstört All registers destroyed |
||
| SAYRAM - Say A Word From RAM | ||
| Einsprung - Entry | Beschreibung - Description | |
| Adresse - Address | $C00C | Diese Anweisung ... This command is similar to the "SAYIT" except that the structure permitting access through the memory mapping system is bypassed. This entry point is intented to permit generation of speech from RAM based speech data. This may also be useful if RAM versions of words are modified under program control. |
| Bedingung - Condition | A-Reg = niederwertiger Teil der Wortnummer X-Reg = höherwertiger Teil der Wortnummer A-reg = least significant portion of the word number X-reg = most significant portion of the word number |
|
| Rückgabe - Returned Information | ||
| Alle Register zerstört All registers destroyed |
||
| SPEED - Set Speaking Speed Of Synthesizer | ||
| Einsprung - Entry | Beschreibung - Description | |
| Adresse - Address | $C00F | Die SPEED-Fähigkeit (Geschwindigkeit) wird benutzt, um ... The SPEED capability is used to speed up or slow down the speaking rate of the synthesizer. The range of speed variations is from .64X decrease in the speed (speed code = 1) to a 1.4X increase (speed code = 10). Normal speed is code 4. |
| Bedingung - Condition | A-Reg = gewünschter Geschwindigkeitscode von 1..10 A-reg = desired speed code from 1...10 |
|
| Rückgabe - Returned Information | ||
| Kein Register beeinflusst No register affected |
||
| SETTAB - Set Utterance Look Up Table Address | ||
| Einsprung - Entry | Beschreibung - Description | |
| Adresse - Address | $C012 | Die SETTAB-Funktion (setze Tabelle) wird benutzt, um ... The SETTAB function is used to tell the speech module the starting memory address of user supplied speech data. It is identical to the BASIC VOC command. This command MUST be employed prior to any attempts to generate speech with utterance numbers greater than 255. |
| Bedingung - Condition | A-Reg = niederwertiges Byte der Adresse X-Reg = höherwertiges Byte der Adresse A-reg = lower byte of adress X-reg = upper byte of adress |
|
| Rückgabe - Returned Information | ||
| Keine - None | ||
| SIGNAL - Enable Vectoring To Completion Code | ||
| Einsprung - Entry | Beschreibung - Description | |
| Adresse - Address | $C015 | Diese Funktion ist für ... This function is for support of advanced applications which implement asynchronous event driven programming techniques. The effect of the SIGNAL call is to increment a counting semaphore maintained by the talking process. This semaphore is waited on by the speech completion, which when signalled, will jump to the completion code vector address ($C018). Users should plant a JMP intruction in the three bytes of memory starting at this address. ONLY $C018-$C01A SHOULD BE CHANGED. |
| Bedingung - Condition | JMP Befehl ... JMP instruction to completion code handling routine MUST be planted in memory locations $C018-$C01A |
|
| Rückgabe - Returned Information | ||
| Keine - None | ||