💾 Archived View for mirrors.apple2.org.za › active › ftp.apple.asimov.net › images › sound › appleli… captured on 2023-01-29 at 06:52:57.

View Raw

More Information

-=-=-=-=-=-=-

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.



-----

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