blob: 9a0b9fe9ffb3640403ba2fe26df33dfbd79ace85 [file] [log] [blame]
Bill Cox9e7f1ae2010-11-04 09:19:09 -04001Sonic is a simple algorithm for speeding up or slowing down speech. However,
2it's optimized for speed ups of over 2X, unlike previous algorithms for changing
3speech rate. The Sonic library is a very simple ANSI C library that is designed
4to easily be integrated into streaming voice applications, like TTS back ends.
5
6The primary motivation behind Sonic is to enable the blind and visually impaired
7to improve their productivity with open source speech engines, like espeak.
Bill Cox9e7f1ae2010-11-04 09:19:09 -04008Sonic can also be used by the sighted. For example, Sonic can improve the
9experience of listening to an audio book on an Android phone.
10
Bill Coxe7200652011-07-16 12:09:05 -040011A native Java port of Sonic is in Sonic.java. Main.java is a simple example of
12how to use Sonic.java. To play with it, you'll need a "talking.wav" file in the
13current directory, and you'll want to change the speed, pitch or other
14parameters manually in Main.java, in the main method.
Bill Coxdfe6b372011-07-15 13:38:26 -040015
Bill Cox60eeb062015-02-27 10:17:45 -080016Sonic is Copyright 2010, 2011, Bill Cox, all rights reserved. It is released
17under the Apache 2.0 license, to promote usage as widely as possible.
Bill Cox2e48c222011-07-16 12:00:46 -040018
19Performance test:
20
21I sped up a 751958176 byte wav file with sonic (a 9 hour, 28 minute mono audio
22file encoded at 16-bit 11.KHz), but with the output writing disabled. The
23reported time, running Ubuntu 11.04 on my HP Pavilion dm4 laptop was:
24
25real 0m50.839s
26user 0m47.370s
27sys 0m0.620s
28
29The Java version is not much slower. It reported:
30
31real 0m52.043s
32user 0m51.190s
33sys 0m0.310s
Bill Cox9e7f1ae2010-11-04 09:19:09 -040034
35Author: Bill Cox
36email: waywardgeek@gmail.com