Speech::Recognizer::ViaVoice version 0.02
NAME
Speech::Recognizer::ViaVoice - Perl wrappers for IBM's ViaVoice speech
Recognizer library.
SYNOPSIS
use Speech::Recognizer::ViaVoice;
$| = 1;
if (0 == connectEngine) {
if ( 0 == defineVocab('myTestVocab', ['hello','world','quit']) ) {
print 'please say "hello", "world", or "quit" at each prompt...', "\n";
while (0 == startListening) {
print "speak> ";
if (0 == recognize) {
my ($s, $score) = (getWord, getScore);
if (defined($s)) {
printf "%s, score=%d\n", $s, $score;
if ($s eq 'quit') {
exit 0;
}
} else {
printf "not recognized!\n";
}
}
stopListening;
}
}
disconnectEngine;
}
DESCRIPTION
This module provides very basic use of IBM's ViaVoice library
(
http://www-4.ibm.com/software/speech/enterprise/te_3.html) in perl. It
allows its user to pass a list of speech commands for recognition in a
perl list, connect to the engine, and request recognized spoken words.
The most notable feature missing from the current version is the ability
to select different ViaVoice users. I plan to add this functionality
shortly, but for now you must use the default user.
Consult the ViaVoice documentation for ViaVoice setup. Most will
probably just need to run vvstartuserguru, which requires a java runtime
environment. Results will be better if you take the time to do a little
training to your own voice in this utility.
You can use this perl module for reconition of words from IBM's vocab
dictionary for your chosen locale without further preparation. To
recognize words not available in the dictionary or to recognize phrases,
you need to create a file with phonetic spellings for use by the
provided script pronunciations.pl (installed in /usr/local/bin by
default). This utility reads a text file whose name is supplied as its
sole argument. The file should contain lines with two fields separated
by a tab character:
Deborah --- TAB -->D EH B OW R AX
Deborah --- TAB -->D EH B AXR R AX
Axl Rose -- TAB -->AE K S AX L R OW Z
The text on the left is the word or phrase to be recognized, and the
text on the right is a phonetic spelling of the format specified in the
ViaVoice docs (section 3 of /usr/doc/ViaVoice/bpreadme.txt in my
installation). As in the example, a word or phrase might have more than
one common pronunciation. You can provide all of them, one on each line.
pronunciations.pl will most likely require super user privileges to
write its output to files in the ViaVoice lib directory:
/usr/lib/ViaVoice/vocabs/langs/En_US/pools/
INSTALLATION
To install this module, first change the line in Makefile.PL that looks
like the following to reflect your locale:
'DEFINE' => '-DLOCALE=\"En_US\"',
Then, type the following:
perl Makefile.PL
make
make test
make install
Note: "make test" will prompt you to say a word and attempt to recognize
it. It will fail unless you have IBM ViaVoice setup and your microphone
connected and ready to go.
DEPENDENCIES
This module requires IBM's ViaVoice to run.
COPYRIGHT AND LICENSE
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
AUTHOR
Richard Kilgore,
[email protected]
SEE ALSO
the perl manpage.