Dec 172017
Add voice output to Clipper programs. Libraries included. | |||
---|---|---|---|
File Name | File Size | Zip Size | Zip Type |
MV.BIN | 20700 | 10572 | deflated |
MV.DOC | 27144 | 7562 | deflated |
MVCLIP50.LIB | 21621 | 6282 | deflated |
MVCLIP87.LIB | 22645 | 6302 | deflated |
MVDEMO.PRG | 9691 | 3046 | deflated |
MVREADER.PRG | 7337 | 2305 | deflated |
MVREADER.TXT | 467 | 295 | deflated |
MYCUSTOM.DCT | 296 | 115 | deflated |
SYSTEM01.DCT | 1154 | 419 | deflated |
Download File VOICE200.ZIP Here
Contents of the MV.DOC file
-- -- -- -- -- -- -- -- -- -- -- -- -- -
| |
** | |
** | Micro/Voice |
** | Voice Synthesis Function Library |
** | Version 2 |
** | Clipper (Summer '87 / 5.0) Edition |
** | |
** | Written by Steve Badaracco |
** | |
** | DataBlaze Solutions |
** | 48 Park Street |
** | Willimantic, CT 06226-3638 |
** | |
** -- -- -- -- -- -- -- -- -- -- -- -- -- -
*******************************************
*******************************************
To print this manual, type the following to DOS:
COPY MV.DOC PRN (and press Return)
INTRODUCTION AND PRODUCT INFORMATION
Micro/Voice was written by Steve Badaracco for use on the
IBM PC family of computers (PC, PS/2, and 100% compatibles),
using Clipper Summer '87 and 5.0 under MS-DOS 3.x or later.
It has been made available for personal, private use. You may
freely distribute this software with the following restrictions:
a) The program shall be distributed ONLY in the ORIGINAL
unmodified form, including this documentation.
b) NO FEE may be charged.
c) FOR-PROFIT use without a license is PROHIBITED.
d) The program may NOT be INCLUDED or BUNDLED or
otherwise sold with other goods or services.
Exceptions may be granted ONLY upon written request.
e) Commercial users MUST register. Site license is
available on request.
This is USER SUPPORTED SOFTWARE. If you use it, and find
it of value, please register your copy by sending $19.95
PER USER COPY ($34.95 commercial) along with the filled out
registration form, to the author, at the above address.
In other words, each user (programmer) must register his or
her own copy. Again, site licenses are available on request.
Make checks payable to: Steve Badaracco.
Your registration form (and fee) entitles you to free
technical support of Micro/Voice for Clipper Summer '87
and Clipper 5.0.
For an additional $11.95 PER USER COPY ($16.95 commercial)
with your registration form (and fee), you can purchase the
Micro/Voice Comprehensive Dictionary, a disk-based repository
of non-phonetic English words which provide Micro/Voice with
a "smarter" vocabulary. Along with the dictionary, you will
receive MV/Custom, a utility which enables you to create or
modify a "custom" dictionary with additional entries available
to Micro/Voice IN PARALLEL with the Comprehensive Dictionary.
All dictionaries for the Clipper editions are arranged in
familiar DBF format, and require no indices. Micro/Voice
accesses entries virtually instantly using a binary search.
Again, Micro/Voice is a hardware-specific programming tool,
designed to work on IBM PC and PS/2 hardware, and 100%
compatibles. Micro/Voice has NOT been tested under all possible
runtime conditions, and comes with no warranty, expressed or
implied, as to usability, "safety", or fitness for a particular
use. In no event will DataBlaze Solutions, or the author, be
liable for any direct, indirect, or consequential damages, real
or imagined, resulting from the use of the Micro/Voice code or
its associated utilities.
Micro/Voice for Clipper Summer '87 and 5.0 Manual Page 1
DISTRIBUTION FILES
The following files are distributed as version 2.00:
MVCLIP87.LIB 11-01-90 2:00a Function Code Library: Summer '87
MVCLIP50.LIB 11-01-90 2:00a Function Code Library: Clipper 5.0
MV.DOC 11-01-90 2:00a This manual
MV.BIN 11-01-90 2:00a Binary speaker data required at runtime
MVDEMO.PRG 11-01-90 2:00a Main demo
MVREADER.PRG 11-01-90 2:00a Text reader demo
MVREADER.TXT 11-01-90 2:00a Sample file for text reader demo
SYSTEM01.DCT 11-01-90 2:00a Sample "main dictionary"
MYCUSTOM.DCT 11-01-90 2:00a Sample "custom dictionary"
TRADEMARKS
Micro/Voice - DataBlaze Solutions
Clipper, Summer '87, and Clipper 5.0
- Nantucket Corporation
The FUNCky Library for Clipper
- dLESKO Associates
Turbo Link - Borland International
PLINK86plus - Phoenix Technologies Ltd.
BLINKER Dynamic Overlay Linker
- Blink, Inc.
.RTLink for Clipper Dynamic Overlay Linker
- Pocket Soft, Inc.
IBM, PC, PS/2, and PC-DOS
- International Business Machines Corporation
Microsoft Overlay Linker, and MS-DOS
- Microsoft Corporation
Micro/Voice for Clipper Summer '87 and 5.0 Manual Page 2
ABOUT MICRO/VOICE
Micro/Voice is not a talking program, per se. It is not
an April Fools' Day joke to install on a friend's computer.
This is a serious programming tool for use by developers.
Future editions of Micro/Voice are planned, to support C and
Pascal. This edition is for programmers using The Clipper
Compiler (Summer '87 and 5.0 versions), as marketed by
Nantucket Corporation.
Micro/Voice is a set, or LIBRARY, of functions written in
assembly language and, yes ... Clipper.
Although the IBM PC family of computers is equipped with
about the most rudimentary type of speaker, never intended
for true generation of speech or music, system programmers
have accepted the implied challenge to make the thing talk.
The best solution to date is to feed specially formatted
binary data out the hardware port to the speaker device.
Experts on the subject of English pronunciation have pretty
much come to an agreement that all of the sounds in our
language boil down to combinations of 36 "phonemes", or
basic verbal noises. The binary data required to produce
each of these phonemes is about 570 bytes, or a little over
1/2-K. This represents a 20K overhead in the Clipper
memory pool at runtime.
You can use the Blinker Dynamic Overlay Linker to create
executable programs which break the DOS 640K memory barrier;
Clipper 5.0 also comes with a dynamic overlay linker,
.RTLink, which has a similar effect. If your program is
cramped for memory after initiating Micro/Voice with v_init(),
you can "turn off" Micro/Voice and return all of its memory to
the free pool by calling v_close().
TECHNICAL SUPPORT
Full technical support is available to registered customers in
the United States. Please complete and mail the enclosed
registration form immediately to become eligible for technical
support. In a commercial environment, each programmer using
the Micro/Voice function library must register his or her copy
to receive technical support.
DataBlaze Solutions provides unlimited technical support to
registered customers in the United States via The Boss BBS,
which is online 24 hours a day, supporting baud rates up to
and including 9600, n, 8, 1. The Boss contains the latest
Micro/Voice updates, files of general interest to developers,
about the best Clipper conference around, the FUNCky Library
support conference, and a Clipper forum with nationwide echo.
The telephone number is (201) 568-7293; leave comments,
suggestions, and inquiries about Micro/Voice in the Clipper
Conference, to the attention of Steve Badaracco.
Micro/Voice for Clipper Summer '87 and 5.0 Manual Page 3
PROGRAMMING MICRO/VOICE
One hardware constraint to be reckoned with is the processing
speed of the workstation running your application, which will
bear directly on the speed and pitch of speech. So before
you "say a word", Micro/Voice must be initiated with some
information on speed and resolution factors, as well as desired
space between words. In fact these may vary widely with the
end user's own taste (and hearing), and are good candidates for
placement in some user profile. Functions are also provided in
the library to alter these settings after initiation (you could
SET a hot KEY for the user, to drive this).
Program sequence will look something like this:
1) Initiate
2) Fine-tune settings if necessary, or at will
3) Translate English words and/or phoneme strings into
packed format (the "script") for the speech module
4) Call the speech module with the packaged "script"
INITIATION
If initiation has not been performed, none of the other
functions will work; not a whisper will come from the speaker.
Initiation is straightforward; call the v_init() function with
information on speaker settings and, optionally, dictionary
files to search during translation.
To shut down the Micro/Voice system, use v_close().
FINE-TUNING
After initiation, the fine-tuning functions allow the user to
"play" with the speed and pitch of the speech. Normally,
these functions would be embedded in SET KEY procedures:
v_setsound() turns speech on and off
v_setdelay() varies speed of sounds sent to the speaker
v_setres() varies resolution of sound
v_setspace() varies pause between words
TRANSLATION
These functions convert text to/from "packaged" speech form:
v_pack() converts phoneme string to script
v_wpack() converts text string to script
v_apack() converts acronym string to script
v_unpack() converts script to phoneme string
SPEECH
Finally, the "script" of the speech is delivered to the
speaker:
v_pkspeak() speak a packaged script
v_speak() package and speak a phoneme string
Micro/Voice for Clipper Summer '87 and 5.0 Manual Page 4
V_INIT() FUNCTION
Purpose: Initiate Micro/Voice internals, open dictionaries
Syntax: v_init( [
[,
Arguments:
"custom" dictionary. If ONLY one
dictionary is to be used, specify it as
DEFAULT IS NO SECONDARY DICTIONARY.
1, 2, 4, 6, or 8. DEFAULT IS 1.
Combination of resolution and speed/delay
will yield the clearest speech for your
hardware. For example:
res = 1, speed/delay = 19 for PS/2-60
Higher speed/delay factor results in slower
speech (lower pitch), which is necessary on
a faster machine. Likewise, higher
resolution results in much faster speech,
which requires that the speed/delay be
increased to compensate. DEFAULT IS 20.
in the range 1..10. DEFAULT is 1.
Returns: 0 success
1 if a main dictionary was specified, but could not
be opened (not a fatal error, but NO dictionaries
will be used in this case)
2 if a secondary dictionary was specified, but could
not be opened (not a fatal error, but no custom
dictionary will be used in this case)
3 if a secondary dictionary was specified, but
neither the main nor the secondary dictionaries
could be opened (not a fatal error, but NO
dictionaries will be used in this case)
4 Insufficient free pool memory to initiate system
5 Open error on MV.BIN
6 Read error on MV.BIN
Comments: All arguments are optional. However, if you specify
an argument, then any arguments "to the left" of it
must be specified or else their places occupied by
dummy values (i.e. expressions of an invalid type).
Example: v_init( "system.dct", .f., 1, 18, 2 )
One dictionary is used, resolution is 1,
speed/delay is 18, 2 logical spaces between words.
Micro/Voice for Clipper Summer '87 and 5.0 Manual Page 5
V_SETSOUND() FUNCTION
Purpose: Turn sound on or off (does NOT initiate Micro/Voice;
use v_init() and v_close() to turn the system on/off)
Syntax: v_setsound( [
Arguments:
If argument is omitted, no change is made.
Returns: A logical value: the original sound status
Returns .F. if Micro/Voice is not initiated.
Example: v_setsound( !v_setsound() ) && toggles sound on/off
V_SETDELAY() FUNCTION
Purpose: Adjusts speed/delay
Syntax: v_setdelay( [
Arguments:
If argument is omitted, no change is made.
Returns: A numeric value: the original speed/delay factor
Example: ? v_setdelay() && prints current speed/delay value
V_SETRES() FUNCTION
Purpose: Adjusts resolution
Syntax: v_setres( [
Arguments:
If argument is omitted, no change is made.
Returns: A numeric value: the original resolution factor
Example: v_setres( if(v_setres()=1,2,min(8,v_setres()+2)) )
This code will properly increment resolution factor.
V_SETSPACE() FUNCTION
Purpose: Adjusts space between words
Syntax: v_setspace( [
Arguments:
If argument is omitted, no change is made.
Returns: A numeric value: the original space between words
Example: v_setspace( 3 ) && plenty of space between words
Micro/Voice for Clipper Summer '87 and 5.0 Manual Page 6
V_PACK() FUNCTION
Purpose: Converts a phoneme string to a script string
which can be pronounced by v_pkspeak()
Syntax: v_pack(
Arguments:
with spaces between words, and hyphens
(-) separating phonemes within each word
V_pack() is case insensitive.
Returns: A script string, or else an empty string if
an error occurred
Example: v_pkspeak( v_pack("k-ae-t") ) && says "cat"
Functionally equivalent to: v_speak("k-ae-t")
TABLE OF PHONEMES
In each example, the sound in question is capitalized.
A as in shAde ( sh-A-d )
AE as in mAn ( m-AE-n )
AH as in fAther ( f-AH-tz-uh-r )
AW as in bOy ( b-AW-ee )
B as in Bus ( B-uh-s )
CH as in CHill ( CH-ih-l )
D as in Dog ( D-aw-g )
EE as in kEEp ( k-EE-p )
EH as in wEst ( w-EH-s-t )
F as in Fig ( F-ih-g )
G as in waG ( w-ae-G )
H as in Hen ( H-eh-n )
I as in pIE ( p-I )
IH as in thIn ( th-IH-n )
J as in Jam ( J-ae-m )
K as in maKe ( m-a-K )
L as in List ( L-ih-s-t )
M as in Moose ( M-oo-s )
N as in Nut ( N-uh-t )
OH as in sOda ( s-OH-d-uh )
OO as in fOOd ( f-OO-d )
P as in maP ( m-ae-P )
R as in hoRse ( h-aw-R-s )
S as in Suit ( S-oo-t )
SH as in wiSH ( w-ih-SH )
T as in buTTer ( b-uh-T-uh-r )
TH as in maTH ( m-ae-TH )
TZ as in moTHer ( m-uh-TZ-uh-r )
U as in shIrt ( sh-U-r-t )
UH as in Unto ( UH-n-t-oo )
V as in oVal ( oh-V-uh-l )
W as in poWer ( p-ae-W-uh-r )
WH as in WHen ( WH-eh-n )
Y as in Yellow ( Y-eh-l-oh-oo )
Z as in Zebra ( Z-ee-b-r-uh )
ZH as in meaSure( m-eh-ZH-u-r )
Micro/Voice for Clipper Summer '87 and 5.0 Manual Page 7
V_WPACK() FUNCTION
Purpose: Converts a text string to a script string
which can be pronounced by v_pkspeak()
Syntax: v_wpack(
Arguments:
processed as follows:
1 - All punctuation is resolved to spaces.
Punctuation= <>{}|\*~`^_",;:?!-()[] (' is ignored)
2 - Word suffixes "S", "ABLE", "MENT", and
"LY" are hidden for lookup purposes.
3 - Each normal word in the string is looked
up in the main dictionary (if open).
4 - Each word not found there is looked up
in the custom dictionary (if open).
5 - Each word not found in EITHER dictionary
is converted to script form to be
pronounced the way it is written.
6 - Each "word" containing any of the special
characters /&$%[email protected]# or any numerals, or a
period (.) which falls within the word, is
processed as an acronym, to be "spelled
out" one character at a time.
V_wpack() is case insensitive.
Returns: A script string, or else an empty string if an
error occurred
Example: v_pkspeak( v_wpack("cat") ) && says "cat"
V_APACK() FUNCTION
Purpose: Converts an acronym string to a script string
which can be pronounced by v_pkspeak()
Syntax: v_apack(
Arguments:
spaces between "words", each of which is
processed as an acronym, to be "spelled out"
one character at a time.
The following characters are recognized and
spelled out (others are ignored):
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/&$%[email protected]#
V_apack() is case insensitive.
Returns: A script string, or else an empty string if error.
Example: v_pkspeak( v_apack("#1") ) && says "number one"
Notes: A single period (".") in an acronym is pronounced
as "POINT" (e.g. "23.1" = "TWENTY-THREE POINT ONE").
If there are multiple periods in a single acronym
"word", then none are pronounced (e.g. "Y.M.C.A.").
Micro/Voice for Clipper Summer '87 and 5.0 Manual Page 8
V_UNPACK() FUNCTION
Purpose: Converts a script string to a phoneme string
Syntax: v_unpack(
Arguments:
v_wpack(), or v_apack().
Returns: A phoneme string, with spaces between words and
hyphens separating phonemes, or else an empty
string if an error occurred
Example: ? v_unpack( v_pack("i s-ee") ) && prints "I S-EE"
V_SPEAK() FUNCTION
Purpose: Speaks a phoneme string
Syntax: v_speak(
Arguments:
Returns: .F. if sound is off, otherwise .T.
Example: v_speak( "i s-ee" ) && says "I see"
V_PKSPEAK() FUNCTION
Purpose: Speaks a script string
Syntax: v_pkspeak(
Arguments:
v_wpack(), or v_apack().
Returns: .F. if sound is off, otherwise .T.
Example: v_pkspeak( v_wpack("I see") ) && says "I see"
V_CLOSE() FUNCTION
Purpose: Deactivate the voice system and return all memory
to the Clipper free pool. A call to v_init() is
required to reactivate Micro/Voice.
Syntax: v_close()
Arguments: None
Returns: Nothing
Example: v_close() && kill Micro/Voice and free memory
Micro/Voice for Clipper Summer '87 and 5.0 Manual Page 9
REGISTRATION FORM
Micro/Voice Voice Synthesis Function Library
Clipper Summer '87 / 5.0 Edition
DataBlaze Solutions
48 Park Street
Willimantic, CT 06226-3638
Please fill out a separate registration form for each programmer who
will be using the products. Site licenses available on request.
USER NAME: ________________________________ DATE: ________
COMPANY: __________________________________________________
ADDRESS: __________________________________________________
CITY, ST: __________________________ ___ ZIP: _________
PHONE: (WORK)__________________ (HOME)__________________
1. Micro/Voice Library, Clipper Summer '87 / 5.0 Edition
Includes registration of current copy, and technical support.
One copy for personal nonprofit use only ($19.95) $_______
One copy for commercial use ($34.95) $_______
2. Micro/Voice Comprehensive Dictionary (over 2,000 entries)
Includes Comprehensive Dictionary of non-phonetic words for
Micro/Voice, plus MV/Custom utility to create and maintain
your own custom dictionaries. This product is being offered
to users who register their copy of the Micro/Voice Library.
One copy for personal nonprofit use only ($11.95) $_______
One copy for commercial use ($16.95) $_______
Diskette size for dictionary and MV/Custom:
(If none checked, 3-1/2" diskette will be used.)
*** PLEASE CHECK ONE *** [ ] 3-1/2" [ ] 5-1/4" [ ] Both
Connecticut residents add 8% tax $_______
Shipping & handling (continental USA) $1 PER DISKETTE $_______
Total enclosed (check or money order, no COD's) $
Please make checks payable to: Steve Badaracco. =======
Signature: ____________________________
I [ ] DO / [ ] DO NOT wish to receive notices concerning
enhancements and bug fixes to Micro/Voice Clipper editions,
new expanded dictionaries, and upcoming editions of
Micro/Voice for C and for PASCAL.
(Please include name and number of most currently visited
Bulletin Board if you do wish to receive notices.)
December 17, 2017
Add comments