💾 Archived View for mirrors.apple2.org.za › active › ftp.apple.asimov.net › images › sound › appleli… captured on 2024-03-22 at 00:13:20.
View Raw
More Information
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
Converted to text by: Kevin Greene
-----
SOFTAPE
SIDE 1 TM SIDE 2 APPLE-LIS'NER APPLE-LIS'NER PREFIX
10756 Vanowen, North Hollywood, Ca. 91605
by Bob Bishop
Software speech recognition for your Apple II Make your own "us 'ner"
programs
"Your Apple's Ears"
"CASSETTE = TM ALB-978 =
TM APPLE.LIS'NER DESCRIPTION
APPLE-LIS'NER IS A SOFTWARE PACKAGE THAT ALLOWS YOU TO PERFORM VOICE
RECOGNITION EXPERIMENTS WITH YOUR APPLE II* COMPUTER. IT HAS THE ABILITY
TO RECOGNIZE UP TO 31 DIFFERENT "WORDS". EACH "WORD" CAN BE A SOUND OR
A SERIES OF CONTINUOUS SOUNDS OF UP TO ABOUT 5 SECONDS DURATION. THE
AUDIO INFORMATION IS ENTERED INTO YOUR COMPUTER THROUGH THE CASSETTE
INPUT PORT. YOUR STANDARD CASSETTE RECORDER IS USED AS AN AMPLIFIER WHEN
PLACED IN THE RECORD MODE. THE INFORMATION IS DIGITIZED AND STORED IN
NUMBERED TABLES IN YOUR COMPUTER'S MEMORY (RAM). IT IS LATER USED DURING
THE "RECOGNITION MODE" WHEN NEW AUDIO INFORMATION IS COMPARED WITH THAT
STORED IN MEMORY DURING THE "LEARNING MODE".
THE SOFTWARE ROUTINES RESIDE ON MEMORY PAGE NINE (HEX LOCATIONS $0900 TO
$09FF), AND THE RECOGNITION TABLES ARE LOCATED FROM $0A00 TO $0AFF. THUS,
APPLE-LIS'NER USES VERY LITTLE MEMORY TO MAKE YOUR COMPUTER "LISTEN"! AS
AN ADDED CONVENIENCE, WE HAVE INCLUDED AN APPLE-LIS'NER PREFIX. THIS PREFIX
MAY BE APPENDED TO YOUR INTEGER BASIC PROGRAMS. (NOTE: APPLE-LIS'NER CANNOT
BE USED WITH APPLESOFT* BASIC DUE TO MEMORY ALLOCATION CONFLICTS). THIS
PREFIX AUTOMATICALLY SETS LOMEM AND MOVES THE MACHINE LANGUAGE SUBROUTINES
INTO THEIR PROPER LOCATIONS FOR EXECUTION. USING THIS PACKAGE AND A
FEW LINES OF-BASIC, YOU CAN GIVE ANY APPLE PROGRAM THE POWER OF VOICE
RECOGNITION WITHOUT HARDWARE COSTS.
- APPLE II AND APPLESOFT ARE REGISTERED TRADEMARKS OF APPLE COMPUTER, INC.
-----
TM USING APPLE-LIS'NER SUBROUTINES
1. ROUTINES MUST BE RESIDENT IN MEMORY AT HEX LOCATIONS $0900 TO $09FF.
2. LOMEM MUST BE SET AT 2816 DECIMAL ($B00 HEX).
3. CONDITIONS 1 AND 2 ABOVE ARE MET WHEN USING THE PREFIX PROGRAM. IT
ALLOWS YOU TO MAKE THE ENTIRE PROGRAM LOAD IN BASIC.
4. THE FIRST LINE OF THE PROGRAM SHOULD READ: 0 LEARN = 2304 : RECOG = 2307 :
BUILD = 2425 : SAVE = 2313
LEARNING MODE
WHEN YOU TEACH THE APPLE-LIS'NER A WORD, IT IS IDENTIFIED BY AN INTEGER
NUMBER FROM 1 TO 31. POKE DECIMAL 16 WITH THE I.D. NUMBER FOR THE WORD
AND THEN CALL LEARN (CALL 2304) IN YOUR PROGRAM. THE COMPUTER WILL WAIT
FOR YOU TO SPEAK. AFTER IT DETECTS THE END OF THE "WORD" (INDICATED BY
THE ABSENCE OF SOUND), IT WLL STORE A REPRESENTATION OF THE "WORD" IN
THE I.D.th PORTION OF THE RECOGNITION TABLES AND THEN RETURN TO YOUR
PROGRAM.
example: 10 POKE 16, n : CALL LEARN
RECOGNITION MODE
AFTER ALL "n" WORDS (1 <= n <= 31) HAVE BEEN TAUGHT, THE COMPUTER CAN NOW BE
PUT INTO THE RECOGNITION MODE. SIMPLY POKE DECIMAL 16 IN MEMORY WITH THE
TOTAL NUMBER OF WORDS, 'n", AND THEN CALL RECOG (CALL 2307). THE
COMPUTER WILL AGAIN WAIT FOR YOU TO SPEAK. THIS TIME IT WILL COMPARE THE
INPUT "WORD" WITH THE "WORDS" IN THE RECOGNITION TABLES TO FIND WHAT IT
THINKS IS THE CLOSEST MATCH. THE I.D. NUMBER OF THIS MATCHED "WORD" WILL
BE STORED IN DECIMAL LOCATION 16 OF MEMORY ($10 HEX) AND A 16 BIT
MEASURE OF THE ERROR WILL APPEAR IN LOCATION 17 ($11 HEX) AND 18 ($12
HEX).** THIS PERMITS USER SELECTABLE TOLERANCE RANGE FOR RECOGNITION.
(NOTE: THE RECOGNITION PROCESS INVOLVES SEARCHING THE RECOGNITION TABLES
FROM 1.D. = 1 TO I.D. = n. THUS YOU MUST NOT LEAVE ANY "HOLES" IN THE
TABLES WHEN INITIALLY TEACHING THE WORDS TO THE COMPUTER; ie., ALL I.D's
BETWEEN 1 AND n MUST BE SPECIFIED AT LEARN TIME).
example: 20 POKE 16, n : CALL LEARN
30 I.D. = PEEK (16) : ERR = PEEK (17)
40 IF PEEK (18) > 0 THEN 20
BUILD MODE (OPTIONAL)
THIS WILL ACCEPT VOICE RESPONSE AND BUILD A RECOGNITION TABLE BUT NOT
PERMANENTLY STORE IT.
example: 50 CALL BUILD
SAVE MODE (OPTIONAL)
THIS WILL TAKE THE TEMPORARY DATA LIST BUILT AND STORE IT IN LOCATION n
(n = 1 TO 31)
example: 60 POKE 16,n : CALL SAVE
USING THE APPLE-LIS'NER PREFIX
THIS PROGRAM LOADS FROM INTEGER BASIC AND CAN BE APPENDED TO YOUR BASIC
PROGRAM TO MAKE IT LISTEN. THE FIRST LINE OF THE USER PROGRAM SHOULD
ALWAYS BE 0 OR A ** BAD BRANCH ERR ** WILL OCCUR WHEN YOU TYPE RUN. IF
YOU HAVE AN APPEND PROGRAM THEN:
1. RUN RENUM/APPEND PROGRAM
2. SELECT APPEND FUNCTION
3. LOAD IN USER PROGRAM
4. APPEND APPLE-LIS'NER PREFIX (LOAD)
5. SAVE FINISHED PROGRAM TO TAPE OR DISKETTE
IF YOU DO NOT HAVE A RENUMBER/APPEND PROGRAM, THEN BY HAND:
1. LOAD USER PROGRAM
2. CALL -35 (IGNORE HEX DUMP AND BELL)
3. TYPE FROM MONITOR *CA.CB (RETURN). THE APPLE WILL PRINT:
00CA- XX YY (THESE ARE VARIABLES FOR STEP 5)
4. TYPE FROM MONITOR *4C.4D (RETURN).THE APPLE WILL PRINT:
004C- AA BB (THESE ARE VARIABLES FOR STEP 9)
5. TYPE FROM MONITOR *4C: XX YY (RETURN). THIS SETS HIMEM.
6. TYPE A CONTROL C AND RETURN TO GO TO BASIC
7. LOAD APPLE-LIS'NER PREFIX PROGRAM (LOAD)
8. CALL -35 (IGNORE HEX DUMP AND BELL)
9. TYPE FROM MONITOR *4C: AA BB (RETURN).THIS RESETS HIMEM.
10. TYPE A CONTROL C AND RETURN TODD TO BASIC
11. SAVE FINISHED PROGRAM TO TAPE OR DISKETTE
- * STRICTLY SPEAKING. THE ERROR IS ACTUALLY: ERROR PEEK (17) + PEEK (18)
- 256 BUT LOCATION 18 SHOULD ALMOST ALWAYS HAVE A ZERO IN IT.