153a5a1b3Sopenharmony_ciSonic is a simple algorithm for speeding up or slowing down speech.  However,
253a5a1b3Sopenharmony_ciit's optimized for speed ups of over 2X, unlike previous algorithms for changing
353a5a1b3Sopenharmony_cispeech rate.  The Sonic library is a very simple ANSI C library that is designed
453a5a1b3Sopenharmony_cito easily be integrated into streaming voice applications, like TTS back ends.
553a5a1b3Sopenharmony_ci
653a5a1b3Sopenharmony_ciThe primary motivation behind Sonic is to enable the blind and visually impaired
753a5a1b3Sopenharmony_cito improve their productivity with open source speech engines, like espeak.
853a5a1b3Sopenharmony_ciSonic can also be used by the sighted.  For example, Sonic can improve the
953a5a1b3Sopenharmony_ciexperience of listening to an audio book on an Android phone.
1053a5a1b3Sopenharmony_ci
1153a5a1b3Sopenharmony_ciA native Java port of Sonic is in Sonic.java.  Main.java is a simple example of
1253a5a1b3Sopenharmony_cihow to use Sonic.java.  To play with it, you'll need a "talking.wav" file in the
1353a5a1b3Sopenharmony_cicurrent directory, and you'll want to change the speed, pitch or other
1453a5a1b3Sopenharmony_ciparameters manually in Main.java, in the main method.
1553a5a1b3Sopenharmony_ci
1653a5a1b3Sopenharmony_ciSonic is Copyright 2010, 2011, Bill Cox, all rights reserved.  It is released
1753a5a1b3Sopenharmony_ciunder the Apache 2.0 license, to promote usage as widely as possible.
1853a5a1b3Sopenharmony_ci
1953a5a1b3Sopenharmony_ciPerformance test:
2053a5a1b3Sopenharmony_ci
2153a5a1b3Sopenharmony_ciI sped up a 751958176 byte wav file with sonic (a 9 hour, 28 minute mono audio
2253a5a1b3Sopenharmony_cifile encoded at 16-bit 11.KHz), but with the output writing disabled.  The
2353a5a1b3Sopenharmony_cireported time, running Ubuntu 11.04 on my HP Pavilion dm4 laptop was:
2453a5a1b3Sopenharmony_ci
2553a5a1b3Sopenharmony_cireal    0m50.839s
2653a5a1b3Sopenharmony_ciuser    0m47.370s
2753a5a1b3Sopenharmony_cisys     0m0.620s
2853a5a1b3Sopenharmony_ci
2953a5a1b3Sopenharmony_ciThe Java version is not much slower.  It reported:
3053a5a1b3Sopenharmony_ci
3153a5a1b3Sopenharmony_cireal    0m52.043s
3253a5a1b3Sopenharmony_ciuser    0m51.190s
3353a5a1b3Sopenharmony_cisys     0m0.310s
3453a5a1b3Sopenharmony_ci
3553a5a1b3Sopenharmony_ciAuthor: Bill Cox
3653a5a1b3Sopenharmony_ciemail: waywardgeek@gmail.com
37