Audio::SPX 0.0801 review

Download
by rbytes.net on

Audio::SPX is a Perl interface to the Sphinx-II audio library. SYNOPSIS use Audio::SPX; my $ad = Audio::SPX->open_sps(1600

License: Perl Artistic License
File size: 88K
Developer: David Huggins-Daines
0 stars award from rbytes.net

Audio::SPX is a Perl interface to the Sphinx-II audio library.

SYNOPSIS

use Audio::SPX;
my $ad = Audio::SPX->open_sps(16000);

$ad->start_rec or die "start_rec failed";
$ad->stop_rec or die "stop_rec failed";
my $samples = $ad->read($buf, $max);

my $cad = Audio::SPX::Continuous->init($ad);
my $cad = Audio::SPX::Continuous->init_nbfh($fh, $sps);
my $cad = Audio::SPX::Continuous->init_raw($fh, $sps);

$cad->calib;
$cad->calib_loop($buf);
$cad->set_thresh($sil, $sp);
$cad->set_params($delta_sil, $delta_speech, $min_noise,
$max_noise, $winsize, $speech_onset,
$sil_onset, $leader, $trailer);
my ($delta_sil, $delta_speech, $min_noise, $max_noise,
$winsize, $speech_onset, $sil_onset, $leader, $trailer)
= $cad->get_params;

# If init_raw was used, this will consume the data in $buf, then
# write back any non-slience data. Yes, this feature is
# undocumented in the Sphinx-II headers. Yes, it's very useful.
my $samples = $cad->read($buf, $max);

$cad->reset;
$cad->detach;
$cad->attach($ad);
$cad->read_ts;
$cad->set_logfp(*FH);

Warning! This interface is suboptimal and is therefore probably going to change, both in the Perl module and the underlying library.

BUGS

The only supported sample rate for Audio::SPX is 16kHz (Audio::SPX::Continuous should be fine with others). init_sps() will simply fail rudely if you try something else... which means it isn't really very useful. I suggest either opening the audio device yourself, setting non-blocking mode (beware, some sound drivers don't like this...) and passing it to the init_nbfh method in Audio::SPX::Continuous, or using init_raw and managing the audio device yourself.

There isn't enough documentation yet, partly because the API is somewhat in flux, and partly because I haven't figured out what some of this stuff does either.

Requirements:
Perl

Audio::SPX 0.0801 keywords