Ruby
is one of the hottest, newest languages which bundles
features of from Java, Smalltalk,
C++, and Eiffel (among others.) It is a perfect collaborative
prototyping tool readily lending itself to basic research and
the extreme programming environment.
Thus marriage Ruby and Snack was inevitable.
The
Snack Sound Toolkit
is a collection of sound/voice
processing routines used to extend scripting
languages enabling any user to easily process speech.
The original implementation inspired
by
Kåre
Sjölander
extended Tcl/Tk, and contains
direct support for display of Spectrograms and Waveforms.
Snack for Ruby is intended to provide these features
from the ruby programming environment.
Our initial implementation, tksnack, leverages the existing Tk-graphics
by creating a ruby wrapper over the Tcl/Tk version of Snack.
We hope that we will eventually extend this to other graphical environments. (Fox for instance.)
Screen Shots
The following are screen shots of sample applications.
-
SpeakEasy is a recorder featuring: recording, playback, echo effect,
...
-
Generator is waveform generator featuring: sin, square, sawtooth, noise,
etc...
-
PowerDisplay shows the power distribution: recording, playback,
etc...
-
SegmentationWorshop is simple segmentation program for separation sounds: recording, playback,
etc...
-
Formant Filter applies formant filters to a given sound file.
-
Spectral Power Display allows the user to select a segment of speech and display
the accumlated power spectrum for that segment.
-
FIR Display allows the user to do a quick inspection of the results of applying a
FIR to a given signal.
-
IIR Display allows the user to do a quick inspection of the results of applying a
IIR to a given signal.
-
Formant Display allows the user to select a segment of recorded speech and display
the first and second formants for that segment.
-
Formant Monitor segments, monitors and displays
the first and second formants of speech as it is spoken.
-
Formant Dynamic Time Warping stretches the feature sequences of a pair of sounds to align them
with the best possible matching. This technique has been used to obtain a score the similarity of a pair of utterances.
Demonstrates the use of dynamic programming.
-
Formant Archiver segments, displays, and saves formant feature sequences.
It is very similar to Formant Monitor, except for its storage capabilites.
It is used to create codebooks.
-
formantSynthesizer is a simple program to synthesize vowels .
-
whichWay is a simple Automated Speech Recognition program which points an arrow in the
direction indicated by the speaker.
OnLine Help
For those with curiosity, on line help using the ruby-snack api is
available here.
Installation
Snack for ruby (tksnack.rb) requires the snack package to be installed
Snack requires Tcl/Tk to be installed. So depending on what you have on your
system, there may be 1,2, 3 or 4 steps involved:
Unix Gurus
- First download and install ruby.
(if you don't already have it)
- Second download and install Tcl/Tk (if you don't already have it)
- Third
download and install Snack (if you don't already have it)
- Fourth
download
and install snack for ruby
Linux Groupies
RPM's are available or you may follow the same steps as above.
- First download and install ruby.
(if you don't already have it)
- Second download Tcl/Tk rpm and install Tcl/Tk(if you don't already have it)
- Third download Snack rpm and install Snack(if you don't already have it)
- Fourth
download
and install snack for ruby
Windows Addicts
Precompiled binaries are available for windows users.
- First download and install ruby.
binaries (if you don't already have it) This will include tcl/tk.
- Second
download
and install snack for ruby/win (rbsnack-tk/win) This will include a snack dll.
I confess, I haven't used the rpms, so I don't know if their status. If anyone does
tell me:) Also
I don't have access to a MAC, so if anyone wants to volunteer to help
contact me:)
The Current State of Affairs
This site in the primordial stage of construction (and hence full of oversights and discrepancies)
The current state of the code is best described as alpha.001 minus. Unit testing? (hah)
We currently employ the Redmond model of QA.
Presentation at the International Ruby Conference 2002
Powerpoint presentation slides from the 2002 International Ruby Conference are available
here.
Quote of the day
The goal of Computer Science is to build something that will last at least until we've finished building it.
- Anonymous
Useful links
Project Page
Ruby home
Snack home
Ruby Application Archive
Download Snack
DownLoad Snack for Ruby Extension
Snack Tcl Tutorial
Ruby/Tk Tutorial
Snack manual for Tcl/Tk
Links related to Snack
Links related to scripting languages
This website is hosted by SourceForge.net
and VA Linux Systems. Thanks guys!
Last updated 30 October 2002