| Speech-Recognizer-ScLite documentation | Contained in the Speech-Recognizer-ScLite distribution. |
Speech::Recognizer::ScLite::Line - Stores a single datum for use in
Speech::Recognizer::ScLite
Data-bearing class for Speech::Recognizer::ScLite speech
recognition scoring utility.
wf_id => unique-string, [ attribute => value ]*)Class method. Creates a new instance of this class. Takes as arguments:
wf_id => unique-stringnew() always requires you to identify the wf_id when you call it.
new() allows any number of additional attribute-value pairs,
where attribute is one of the data fields of this object (see
Data access methods below).
Gets sets the reference text. This should be the correct transcription (for some values of "correct").
Gets/sets the hypothesized text. This should be what your reco system thought was the right transcription.
Gets/sets the waveform ID of the datum. This should probably be some
unique key to the line. Usually, this is the full path to the waveform
you tested. This should probably not be altered after setting it in
the new() call, but the function is available for those who wish to
work such black magic.
Gets/sets the sort group for this key. This reflects the membership in an arbitrary group.
If not specified by argument to new() or by calling this function,
the default sort_key will be the directory name of the wf_id
you pass in.
See SYNOPSIS in Speech::Recognizer::ScLite for an example of an
alternate sort_key setting.
The following methods are intended to be called by very friendly
classes (e.g. Speech::Recognizer::ScLite) -- hence the leading
underscores. But since they are not strictly private methods, they are
documented below.
Writes a "hyp" line to the Filehandle provided, in the format that
Speech::Recognizer::ScLite expects.
Writes a "ref" line to the Filehandle provided, in the format that
Speech::Recognizer::ScLite expects.
Original version; created by h2xs 1.21 with options
-CAX Speech::Recognizer::ScLite::Line
Jeremy Kahn, <kahn@cpan.org>
perl.
| Speech-Recognizer-ScLite documentation | Contained in the Speech-Recognizer-ScLite distribution. |
package Speech::Recognizer::ScLite::Line; use 5.006; use strict; use warnings; use Carp; our $VERSION = '0.01'; ################################################################## # set up a whole bunch of default object management code. # ask Class::MethodMaker to build methods: use Class::MethodMaker # constructor that calls 'init' new_with_init => 'new', # initializer that sets an instance's data from a hash # (private by convention of leading _) new_hash_init => '_hash_init', # methods to access/modify scalar data fields get_set => [ qw / ref hyp wf_id sort_key / ]; ################################################################## # if new() gets any arguments, they'll be passed here. # Regardless of whether it does, we want to initialize at least a few # fields in the instance. sub init ($;%) { my ($self) = shift; my (%args) = @_; # check for abuse if (not defined $args{wf_id}) { croak "->new() invoked without (wf_id => ...) argument pair"; } # set default values for some data fields if (not defined $args{sort_key}) { use File::Basename 'dirname'; $args{sort_key} = dirname('wf_id'); } # force users to defined all fields at initialization: if (not defined $args{ref}) { croak "'ref' => ... not specified to new()"; } if (not defined $args{hyp}) { croak "'hyp' => ... not specified to new()"; } # invoke the appropriate initializers $self->_hash_init(%args); } ################################################################## # shared only out to clan (Speech::Recognizer::ScLite::*) sub _write_hyp ($$) { my ($self) = shift; my ($fh) = shift; croak "_write_hyp expects exactly 1 filehandle arg" if not defined $fh or scalar @_; $self->_write_line($fh, $self->hyp); } ################################################################## # shared only out to clan (Speech::Recognizer::ScLite::*) sub _write_ref ($$) { my ($self) = shift; my ($fh) = shift; croak "_write_ref expects exactly 1 filehandle arg" if not defined $fh or scalar @_; $self->_write_line($fh, $self->ref); } ################################################################## # generic function, shared only internally sub _write_line($$$) { my ($self) = shift; my ($fh) = shift; my ($text) = shift; print { $fh } $text, "\t(", $self->sort_key, '_', $self->wf_id, ")\n"; } ################################################################## 1; __END__ # Documentation below.