• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

debian/H07-May-2022-246154

doc/H03-May-2022-193145

samples/H03-May-2022-3527

.gitignoreH A D16-Mar-20217 21

COPYINGH A D16-Mar-202111.1 KiB203169

Main.javaH A D16-Mar-20212.8 KiB8573

MakefileH A D16-Mar-20212.7 KiB10469

READMEH A D16-Mar-20211.9 KiB4634

Sonic.javaH A D16-Mar-202137.2 KiB1,083889

main.cH A D16-Mar-20216.3 KiB198181

mkorigH A D16-Mar-2021694 2317

sonic.1H A D16-Mar-20211.8 KiB6047

sonic.cH A D16-Mar-202140 KiB1,174927

sonic.hH A D16-Mar-20219.9 KiB22871

spectrogram.cH A D16-Mar-202111.9 KiB371303

wave.cH A D16-Mar-20219.7 KiB346273

wave.hH A D16-Mar-2021569 176

README

1Sonic 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.
8Sonic 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
11A 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.
15
16Sonic 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.
18
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
34
35Update, May 7, 2017
36-------------------
37I upgraded the pitch change algorithm to use a 12-point sinc FIR filter for
38interpolation, rather than linearly interpolating between points.  This
39significantly reduces noise introduced by the pitch change algorithm.  It is
40most noticable in low-sample-rate streams, such as the 11,025 Hz output of the
41Eloquence TTS engine.  The upgrade is in both the C and Java versions.
42
43
44Author: Bill Cox
45email: waywardgeek@gmail.com
46