本文整理汇总了C++中Audio::getOptions方法的典型用法代码示例。如果您正苦于以下问题:C++ Audio::getOptions方法的具体用法?C++ Audio::getOptions怎么用?C++ Audio::getOptions使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Audio
的用法示例。
在下文中一共展示了Audio::getOptions方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ex_mfcc_chain
void ex_mfcc_chain () {
ITheFramework *frame = Factory::GetFramework ();
Decorator *decorator = ssi_create (Decorator, 0, true);
frame->AddDecorator(decorator);
// audio sensor
#ifndef SIMULATE
Audio *audio = ssi_create (Audio, "audio", true);
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_AUDIO_PROVIDER_NAME);
#else
WavReader *audio = ssi_create (WavReader, 0, true);
audio->getOptions()->setPath("audio.wav");
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_WAVREADER_PROVIDER_NAME);
#endif
frame->AddSensor(audio);
// preemph
OSPreemphasis *preemph = ssi_create (OSPreemphasis, "preemph", true);
ITransformable *preemph_t = frame->AddTransformer(audio_p, preemph, "0.02s");
// fft
OSMfccChain *mfcc = ssi_create (OSMfccChain, "mfcc", true);
mfcc->getOSTransformFFT()->getOptions()->nfft = 2048;
ITransformable *mfcc_t = frame->AddTransformer(preemph_t, mfcc, "0.01s", "0.01s");
// plot
SignalPainter *plot = 0;
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("audio");
plot->getOptions()->type = PaintSignalType::AUDIO;
plot->getOptions()->size = 10.0;
frame->AddConsumer(audio_p, plot, "0.1s");
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("mfcc");
plot->getOptions()->type = PaintSignalType::IMAGE;
plot->getOptions()->size = 10.0;
frame->AddConsumer(mfcc_t, plot, "0.1s");
FileWriter *writer = ssi_create (FileWriter, 0, true);
writer->getOptions()->setPath("mfcc_chain");
writer->getOptions()->type = File::ASCII;
frame->AddConsumer(mfcc_t, writer, "0.1s");
// run framework
decorator->add("console", 0, 0, 650, 800);
decorator->add("plot*", 650, 0, 400, 400);
decorator->add("monitor*", 650, 400, 400, 400);
frame->Start();
frame->Wait();
frame->Stop();
frame->Clear();
}
示例2: ex_plp
bool ex_plp(void *args) {
ITheFramework *frame = Factory::GetFramework();
Decorator *decorator = ssi_create (Decorator, 0, true);
frame->AddDecorator(decorator);
// audio sensor
#ifndef SIMULATE
Audio *audio = ssi_create(Audio, "audio", true);
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_AUDIO_PROVIDER_NAME);
#else
WavReader *audio = ssi_create(WavReader, 0, true);
audio->getOptions()->setPath("audio.wav");
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_WAVREADER_PROVIDER_NAME);
#endif
frame->AddSensor(audio);
OSPlpChain *plp = ssi_create(OSPlpChain, "OSPlpChain", true);
ITransformable *plp_t = frame->AddTransformer(audio_p, plp, "0.06s", "0.01s");
SignalPainter *plot = 0;
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("audio");
plot->getOptions()->type = PaintSignalType::AUDIO;
plot->getOptions()->size = 10.0;
frame->AddConsumer(audio_p, plot, "0.1s");
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("lpc");
plot->getOptions()->size = 10.0;
frame->AddConsumer(plp_t, plot, "1");
FileWriter *writer = ssi_create(FileWriter, 0, true);
writer->getOptions()->setPath("plp_chain");
writer->getOptions()->type = File::ASCII;
frame->AddConsumer(plp_t, writer, "1");
#ifdef SIMULATE
AudioPlayer *player = ssi_create(AudioPlayer, "player", true);
frame->AddConsumer(audio_p, player, "0.01s");
#endif
// run framework
decorator->add("console", 0, 0, 650, 800);
decorator->add("plot*", 650, 0, 400, 400);
decorator->add("monitor*", 650, 400, 400, 400);
frame->Start();
frame->Wait();
frame->Stop();
frame->Clear();
return true;
}
示例3: ex_pitch_chain
void ex_pitch_chain () {
ITheFramework *frame = Factory::GetFramework ();
Decorator *decorator = ssi_create (Decorator, 0, true);
frame->AddDecorator(decorator);
// audio sensor
#ifndef SIMULATE
Audio *audio = ssi_create (Audio, "audio", true);
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_AUDIO_PROVIDER_NAME);
#else
WavReader *audio = ssi_create (WavReader, 0, true);
audio->getOptions()->setPath("audio.wav");
audio->getOptions()->scale = true;
audio->getOptions()->block = 0.01;
ITransformable *audio_p = frame->AddProvider(audio, SSI_WAVREADER_PROVIDER_NAME);
#endif
frame->AddSensor(audio);
// pitch
OSPitchChain *pitch = ssi_create (OSPitchChain, "pitch", true);
pitch->getOSTransformFFT()->getOptions()->nfft = 1024;
pitch->getOSPitchShs()->getOptions()->baseSr = audio_p->getSampleRate();
ITransformable *pitch_t = frame->AddTransformer(audio_p, pitch, "0.01s", "0.01s");
// plot
SignalPainter *plot = 0;
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("audio");
plot->getOptions()->type = PaintSignalType::AUDIO;
plot->getOptions()->size = 10.0;
frame->AddConsumer(audio_p, plot, "0.01s");
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("pitch");
plot->getOptions()->size = 10.0;
frame->AddConsumer(pitch_t, plot, "0.01s");
FileWriter *writer = ssi_create (FileWriter, 0, true);
writer->getOptions()->setPath("pitch_chain");
writer->getOptions()->type = File::ASCII;
frame->AddConsumer(pitch_t, writer, "0.01s");
// run framework
decorator->add("console", 0, 0, 650, 800);
decorator->add("plot*", 650, 0, 400, 400);
decorator->add("monitor*", 650, 400, 400, 400);
frame->Start();
frame->Wait();
frame->Stop();
frame->Clear();
}
示例4: ex_pitchdirection
void ex_pitchdirection () {
//general
ITheFramework *frame = Factory::GetFramework ();
Decorator *decorator = ssi_create (Decorator, 0, true);
frame->AddDecorator(decorator);
ITheEventBoard *board = Factory::GetEventBoard ();
ssi_pcast (TheEventBoard, board)->getOptions()->update = 250;
// audio sensor
#ifndef SIMULATE
Audio *audio = ssi_create (Audio, "audio", true);
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_AUDIO_PROVIDER_NAME);
#else
WavReader *audio = ssi_create (WavReader, 0, true);
audio->getOptions()->setPath("audio.wav");
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_WAVREADER_PROVIDER_NAME);
#endif
frame->AddSensor(audio);
OSPitchChain * pitch = ssi_create (OSPitchChain, "pitch", true);
pitch->getOSPitchSmoother()->getOptions()->F0final = true;
pitch->getOSPitchSmoother()->getOptions()->F0finalEnv = true;
double frameSize = audio_p->getSampleRate() * 0.01;
double deltaSize = audio_p->getSampleRate() * 0.04;
pitch->getOSTransformFFT()->getOptions()->nfft = smileMath_ceilToNextPowOf2(frameSize + deltaSize); //we set the FFT frame size so it's a power of 2 but can also fit all the samples
pitch->getOSPitchShs()->getOptions()->baseSr = audio_p->getSampleRate();
ssi::ITransformable *pitch_p = frame->AddTransformer(audio_p, pitch, "0.01s", "0.04s");
OSEnergy * energy = ssi_create (OSEnergy, 0, true);
energy->getOptions()->type = OSEnergy::TYPE::RMS;
ssi::ITransformable *energy_p = frame->AddTransformer(audio_p, energy, "0.01s");
OSPitchDirection * dir = ssi_create (OSPitchDirection, 0, true);
ssi::ITransformable * xtra_src[1] = {energy_p};
ssi::ITransformable *dir_p = frame->AddTransformer(pitch_p, 1, xtra_src, dir, "0.01s");
board->RegisterSender(*dir);
SignalPainter *audio_plot = ssi_create_id (SignalPainter, 0, "plot");
audio_plot->getOptions()->setTitle("audio");
audio_plot->getOptions()->size = 10.0;
audio_plot->getOptions()->type = PaintSignalType::AUDIO;
frame->AddConsumer(audio_p, audio_plot, "0.2s");
SignalPainter *pitch_plot = ssi_create_id (SignalPainter, 0, "plot");
pitch_plot->getOptions()->setTitle("pitch");
pitch_plot->getOptions()->size = 10.0;
pitch_plot->getOptions()->type = PaintSignalType::SIGNAL;
frame->AddConsumer(pitch_p, pitch_plot, "0.2s");
SignalPainter *energy_plot = ssi_create_id (SignalPainter, 0, "plot");
energy_plot->getOptions()->setTitle("energy");
energy_plot->getOptions()->size = 10.0;
energy_plot->getOptions()->type = PaintSignalType::SIGNAL;
frame->AddConsumer(energy_p, energy_plot, "0.2s");
SignalPainter *dir_plot = ssi_create_id (SignalPainter, 0, "plot");
dir_plot->getOptions()->setTitle("direction");
dir_plot->getOptions()->size = 10.0;
dir_plot->getOptions()->type = PaintSignalType::SIGNAL;
frame->AddConsumer(dir_p, dir_plot, "0.2s");
EventMonitor *monitor = ssi_create_id (EventMonitor, 0, "monitor");
board->RegisterListener(*monitor, dir->getEventAddress());
#ifdef SIMULATE
AudioPlayer *player = ssi_create (AudioPlayer, "player", true);
player->getOptions()->bufferSize = 0.2;
player->getOptions()->remember = true;
frame->AddConsumer(audio_p, player, "0.01s");
#endif
decorator->add("console", 0, 0, 650, 800);
decorator->add("plot*", 650, 0, 400, 400);
decorator->add("monitor*", 650, 400, 400, 400);
board->Start();
frame->Start();
frame->Wait();
frame->Stop();
board->Stop();
frame->Clear();
board->Clear();
}
示例5: ex_vad
void ex_vad () {
//general
ITheFramework *frame = Factory::GetFramework ();
Decorator *decorator = ssi_create (Decorator, 0, true);
frame->AddDecorator(decorator);
ITheEventBoard *board = Factory::GetEventBoard ();
ssi_pcast (TheEventBoard, board)->getOptions()->update = 250;
// audio sensor
#ifndef SIMULATE
Audio *audio = ssi_create (Audio, "audio", true);
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_AUDIO_PROVIDER_NAME);
#else
WavReader *audio = ssi_create (WavReader, 0, true);
audio->getOptions()->setPath("audio.wav");
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_WAVREADER_PROVIDER_NAME);
#endif
frame->AddSensor(audio);
SignalPainter *audio_plot = ssi_create_id (SignalPainter, 0, "plot");
audio_plot->getOptions()->setTitle("audio");
audio_plot->getOptions()->size = 10.0;
audio_plot->getOptions()->type = PaintSignalType::AUDIO;
frame->AddConsumer(audio_p, audio_plot, "0.2s");
OSLpc * lpc = ssi_create (OSLpc, 0, true);
lpc->getOptions()->lsp = true;
ssi::ITransformable *lpc_p = frame->AddTransformer(audio_p, lpc, "160");
OSPitchChain * pitch = ssi_create (OSPitchChain, 0, true);
pitch->getOSPitchShs()->getOptions()->voicingC1 = true;
pitch->getOSPitchSmoother()->getOptions()->voicingC1 = true;
ssi::ITransformable *pitch_p = frame->AddTransformer(audio_p, pitch, "160", "160");
OSEnergy * energy = ssi_create (OSEnergy, 0, true);
energy->getOptions()->type = OSEnergy::TYPE::LOG;
ssi::ITransformable *energy_p = frame->AddTransformer(audio_p, energy, "160");
OSVad * vad = ssi_create (OSVad, 0, true);
ssi::ITransformable * src[3] = {lpc_p, pitch_p, energy_p};
frame->AddConsumer(3, src, vad, "0.01s");
board->RegisterSender(*vad);
EventMonitor *monitor = ssi_create_id (EventMonitor, 0, "monitor");
board->RegisterListener(*monitor, vad->getEventAddress());
#ifdef SIMULATE
AudioPlayer *player = ssi_create (AudioPlayer, "player", true);
frame->AddConsumer(audio_p, player, "0.01s");
#endif
decorator->add("console", 0, 0, 650, 800);
decorator->add("plot*", 650, 0, 400, 400);
decorator->add("monitor*", 650, 400, 400, 400);
board->Start();
frame->Start();
frame->Wait();
frame->Stop();
board->Stop();
frame->Clear();
board->Clear();
}
示例6: ex_pitch
void ex_pitch () {
ITheFramework *frame = Factory::GetFramework ();
Decorator *decorator = ssi_create (Decorator, 0, true);
frame->AddDecorator(decorator);
// audio sensor
#ifndef SIMULATE
Audio *audio = ssi_create (Audio, "audio", true);
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_AUDIO_PROVIDER_NAME);
#else
WavReader *audio = ssi_create (WavReader, 0, true);
audio->getOptions()->setPath("audio.wav");
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_WAVREADER_PROVIDER_NAME);
#endif
frame->AddSensor(audio);
// fft
OSTransformFFT *fft = ssi_create (OSTransformFFT, "OSTransformFFT", true);
fft->getWindow()->getOptions()->type = OSWindow::GAUSS;
fft->getWindow()->getOptions()->gain = 1.0;
fft->getWindow()->getOptions()->sigma = 0.4;
double frameSize = audio_p->getSampleRate() * 0.01;
double deltaSize = audio_p->getSampleRate() * 0.04;
fft->getOptions()->nfft = smileMath_ceilToNextPowOf2(frameSize + deltaSize); //we set the FFT frame size so it's a power of 2 but can also fit all the samples
ITransformable *fft_t = frame->AddTransformer(audio_p, fft, "0.01s", "0.04s");
// fftmag
OSFFTmagphase *fftmag = ssi_create (OSFFTmagphase, "OSFFTmagphase", true);
ITransformable *fftmag_t = frame->AddTransformer(fft_t, fftmag, "0.1s");
// specscale
OSSpecScale *specscale = ssi_create (OSSpecScale, "OSSpecScale", true);
specscale->getOptions()->srcScale = OSSpecScale::LINEAR;
specscale->getOptions()->dstScale = OSSpecScale::LOG;
specscale->getOptions()->dstLogScaleBase = 2.0;
specscale->getOptions()->minF = 20;
specscale->getOptions()->smooth = true;
specscale->getOptions()->enhance = true;
specscale->getOptions()->weight = true;
specscale->getOptions()->fsSec = 0.064; // BUG?
ITransformable *specscale_t = frame->AddTransformer(fftmag_t, specscale, "0.1s");
// pitchshs
OSPitchShs *pitchshs = ssi_create (OSPitchShs, "OSPitchShs", false);
pitchshs->getOptions()->maxPitch = 620;
pitchshs->getOptions()->minPitch = 42;
pitchshs->getOptions()->nCandidates = 6;
pitchshs->getOptions()->scores = true;
pitchshs->getOptions()->voicing = true;
pitchshs->getOptions()->F0C1 = false;
pitchshs->getOptions()->voicingC1 = false;
pitchshs->getOptions()->F0raw = false;
pitchshs->getOptions()->voicingClip = false;
pitchshs->getOptions()->voicingCutoff = 0.7;
pitchshs->getOptions()->octaveCorrection = false;
pitchshs->getOptions()->fsSec = 0.064; // BUG?
pitchshs->getOptions()->baseSr = audio_p->getSampleRate();
ITransformable *pitchshs_t = frame->AddTransformer(specscale_t, pitchshs, "0.1s");
// pitchsmooth
OSPitchSmoother *pitchsmooth = ssi_create (OSPitchSmoother, "OSPitchSmoother", true);
pitchsmooth->getOptions()->medianFilter0 = 0;
pitchsmooth->getOptions()->postSmoothing = 0;
pitchsmooth->getOptions()->postSmoothingMethod = OSPitchSmoother::SIMPLE;
pitchsmooth->getOptions()->octaveCorrection = false;
pitchsmooth->getOptions()->F0final = true;
pitchsmooth->getOptions()->F0finalEnv = false;
pitchsmooth->getOptions()->voicingFinalClipped = false;
pitchsmooth->getOptions()->voicingFinalUnclipped = true;
pitchsmooth->getOptions()->F0raw = false;
pitchsmooth->getOptions()->voicingC1 = false;
pitchsmooth->getOptions()->voicingClip = false;
ITransformable *pitchsmooth_t = frame->AddTransformer(pitchshs_t, pitchsmooth, "0.1s");
// plot
SignalPainter *plot = 0;
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("audio");
plot->getOptions()->type = PaintSignalType::AUDIO;
plot->getOptions()->size = 10.0;
frame->AddConsumer(audio_p, plot, "0.1s");
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("fft");
plot->getOptions()->size = 10.0;
plot->getOptions()->type = PaintSignalType::IMAGE;
frame->AddConsumer(fft_t, plot, "0.1s");
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("fftmag");
plot->getOptions()->size = 10.0;
plot->getOptions()->type = PaintSignalType::IMAGE;
frame->AddConsumer(fftmag_t, plot, "0.1s");
plot = ssi_create_id (SignalPainter, 0, "plot");
//.........这里部分代码省略.........
示例7: ex_mfcc
bool ex_mfcc(void *args) {
ITheFramework *frame = Factory::GetFramework ();
Decorator *decorator = ssi_create (Decorator, 0, true);
frame->AddDecorator(decorator);
// audio sensor
#ifndef SIMULATE
Audio *audio = ssi_create (Audio, "audio", true);
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_AUDIO_PROVIDER_NAME);
#else
WavReader *audio = ssi_create (WavReader, 0, true);
audio->getOptions()->setPath("audio.wav");
audio->getOptions()->scale = true;
ITransformable *audio_p = frame->AddProvider(audio, SSI_WAVREADER_PROVIDER_NAME);
#endif
frame->AddSensor(audio);
// preemph
OSPreemphasis *preemph = ssi_create (OSPreemphasis, "preemph", true);
ITransformable *preemph_t = frame->AddTransformer(audio_p, preemph, "0.02s");
// energy
OSEnergy *energy = ssi_create (OSEnergy, "energy", true);
ITransformable *energy_t = frame->AddTransformer(preemph_t, energy, "0.015s", "0.01s");
// fft
OSTransformFFT *fft = ssi_create (OSTransformFFT, "fft", true);
fft->getOptions()->nfft = 2048;
ITransformable *fft_t = frame->AddTransformer(preemph_t, fft, "0.01s", "0.01s");
// fftmag
OSFFTmagphase *fftmag = ssi_create (OSFFTmagphase, "fftmag", true);
ITransformable *fftmag_t = frame->AddTransformer(fft_t, fftmag, "0.1s");
// melspec
OSMelspec *melspec = ssi_create (OSMelspec, "melspec", true);
ITransformable *melspec_t = frame->AddTransformer(fftmag_t, melspec, "0.1s");
// mfcc
OSMfcc *mfcc = ssi_create (OSMfcc, "mfcc", true);
ITransformable *mfcc_t = frame->AddTransformer(melspec_t, mfcc, "0.1s");
// plot
SignalPainter *plot = 0;
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("audio");
plot->getOptions()->type = PaintSignalType::AUDIO;
plot->getOptions()->size = 10.0;
frame->AddConsumer(preemph_t, plot, "0.1s");
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("energy");
plot->getOptions()->size = 10.0;
frame->AddConsumer(energy_t, plot, "0.1s");
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("fft");
plot->getOptions()->size = 10.0;
plot->getOptions()->type = PaintSignalType::IMAGE;
frame->AddConsumer(fft_t, plot, "0.1s");
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("fftmag");
plot->getOptions()->size = 10.0;
plot->getOptions()->type = PaintSignalType::IMAGE;
frame->AddConsumer(fftmag_t, plot, "0.1s");
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("melspec");
plot->getOptions()->size = 10.0;
plot->getOptions()->type = PaintSignalType::IMAGE;
frame->AddConsumer(melspec_t, plot, "0.1s");
plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->setTitle("mfcc");
plot->getOptions()->size = 10.0;
plot->getOptions()->type = PaintSignalType::IMAGE;
frame->AddConsumer(mfcc_t, plot, "0.1s");
FileWriter *writer = ssi_create (FileWriter, 0, true);
writer->getOptions()->setPath("mfcc2");
writer->getOptions()->type = File::ASCII;
frame->AddConsumer(mfcc_t, writer, "0.1s");
#ifdef SIMULATE
AudioPlayer *player = ssi_create(AudioPlayer, "player", true);
frame->AddConsumer(audio_p, player, "0.01s");
#endif
// run framework
decorator->add("console", 0, 0, 650, 800);
decorator->add("plot*", 650, 0, 400, 400);
decorator->add("monitor*", 650, 400, 400, 400);
frame->Start();
frame->Wait();
//.........这里部分代码省略.........
示例8: ex_laughter
void ex_laughter () {
ITheFramework *frame = Factory::GetFramework ();
Decorator *decorator = ssi_create (Decorator, 0, true);
frame->AddDecorator(decorator);
ITheEventBoard *board = Factory::GetEventBoard ();
#ifndef SIMULATE
Audio *audio = ssi_create (Audio, "audio", true);
audio->getOptions()->scale = true;
audio->getOptions()->sr = 48000;
ITransformable *audio_p = frame->AddProvider(audio, SSI_AUDIO_PROVIDER_NAME);
frame->AddSensor(audio);
#else
WavReader *audio = ssi_create (WavReader, 0, true);
audio->getOptions()->setPath("audio.wav");
audio->getOptions()->scale = true;
audio->getOptions()->block = 0.01;
ITransformable *audio_p = frame->AddProvider(audio, SSI_WAVREADER_PROVIDER_NAME);
frame->AddSensor(audio);
#endif
SNRatio *laughter_vad = ssi_create (SNRatio, 0, true);
ITransformable *laughter_vad_t = frame->AddTransformer(audio_p, laughter_vad, "0.2s");
LaughterPreProcessor *laughter_pre = ssi_create (LaughterPreProcessor, 0, true);
ITransformable *laughter_pre_t = frame->AddTransformer(audio_p, laughter_pre, "0.01s", "0.01s");
LaughterFeatureExtractor *laughter_extract = ssi_create (LaughterFeatureExtractor, 0, true);
Classifier *laughter_classifier = ssi_create (Classifier, 0, true);
laughter_classifier->getOptions()->setTrainer("laughter");
board->RegisterSender(*laughter_classifier);
frame->AddConsumer(laughter_pre_t, laughter_classifier, "0.5s", "0.5s", laughter_extract, laughter_vad_t);
SignalPainter *plot = ssi_create_id (SignalPainter, 0, "plot");
plot->getOptions()->type = PaintSignalType::AUDIO;
plot->getOptions()->size = 10.0;
frame->AddConsumer(audio_p, plot, "0.01s");
EventMonitor *monitor = ssi_create_id (EventMonitor, 0, "monitor");
board->RegisterListener(*monitor, laughter_classifier->getEventAddress(), 10000);
#ifdef SIMULATE
AudioPlayer *player = ssi_create (AudioPlayer, "player", true);
frame->AddConsumer(audio_p, player, "0.01s");
#endif
decorator->add("console", 0, 0, 650, 800);
decorator->add("plot*", 650, 0, 400, 400);
decorator->add("monitor*", 650, 400, 400, 400);
board->Start();
frame->Start();
frame->Wait();
frame->Stop();
board->Stop();
frame->Clear();
board->Clear();
}