Soundgen is an open-source algorithm for the synthesis of human non-speech sounds and animal vocalizations in a user-friendly way, with a limited number of acoustically meaningful parameters. This tool is primarily intended for psychological and biological research. Potentially it can also be used for human-machine interaction, since it provides a straightforward method for reproducing or generating de novo a wide variety of emotional vocalizations. Soundgen is published on CRAN as an R package, which also offers tools for acoustic analysis that were used in all my publications.
Bug reports, criticisms and suggestions are all warmly welcome! Soundgen is written and maintained by Andrey Anikin. You can reach me at rty.anik / at / rambler.ru
Known bugs and issues
- Due to a bug introduced in version 1.3.0, soundgen_app() sometimes crashes when switching to a new preset. Pending an update, please install from github and/or use the online app if you need to work with the GUI. Sorry for the inconvenience, but I'm sort of giving up on keeping the app bug-free in the official version published on CRAN :(
- The amount of high-frequency energy in the spectrum (slightly) varies depending on the sampling rate. The reason is that the number of extra formants added on top of the user-specified ones depends on the sampling rate (Nyquist frequency). Ideally, a generalized function summarizing the theoretical contribution of all formants above Nyquist should be used instead. If anyone knows who to do this, I'll greatly appreacite a tip!
Noticed more bugs? Need some functionality that is not available at present? Don't hesitate to send me an email!
- Aug 31, 2018: version v1.3.0. The main change is that there is no longer any distinction between "anchors" and other vectorized parameters. In other words, it is now possible to specify any change in voice quality (rolloff, nonlinear effects, etc.) directly on a natural time scale. The names of "anchor" arguments are simplified to reflect this change. There is a new vignette on reproducing an existing vocalization with soundgen (on cogsci.se only, not included with the published package). There are also extended plotting options, including an oscillogram on a dB scale.
- Aug 04, 2018: the release of a minor update, soundgen v1.2.1. Updated and extended vignette on acoustic analysis, a streamlined new function generateNoise() for synthesizing unvoiced sounds and non-biological noises, a few new arguments to soundgen(), upgraded functions flatEnv(), schwa(), crossFade(), etc.
- Jul 27, 2018: an article describing how soundgen works and presenting the results of a validation experiment is published by Behavior Research Methods with open access: https://link.springer.com/article/10.3758/s13428-018-1095-7. Please cite this publication if you use soundgen in your work.
- Mar 04, 2018: soundgen v1.2.0 is released. More experience using soundgen for actual research, more features, fewer bugs. Better control over polysyllabic vocalizations, vectorized control parameters, reproducible nonlinear effects with precise timing, and more.
- Jan 23, 2018: another minor patch of soundgen, v1.1.2. Having used the package extensively for experimental work, I discovered and fixed a number of glitches and added some new functionality: a general scale factor for regulating formant bandwidth, schwa() function for working with formant frequencies, better plotting options, etc.
- Dec 02, 2017: soundgen v1.1.1 is on CRAN. This release is primarily a patch that fixes quite a number of small bugs. Notable new features include support for discontinuous contours allowing rapid transitions like pitch jumps, dedicated functions for post-processing like fading in/out or adding formants to an existing sound, and a one-click formant picker in the interactive app.
- Oct 19, 2017: soundgen v1.1.0 is on CRAN. Formants are synthesized "properly" in this release, with zero-pole or pole-pole models. Other improvements include synthesis of individual glottal pulses with a closed phase, dynamic control of rolloff and amplitude modulation, new functions for generating percussive sounds and raspberries, and more.
- Sep 04, 2017: the first official release of soundgen v1.0.0 is published on CRAN as an R package.
- Online app for sound synthesis (limited server time): the same as soundgen_app(), but it runs online in a browser, so you don't have to install anything
- Released R package on CRAN
To install from R: install.packages("soundgen")
- Developmental version and source code on github
- Vignette on sound generation (html)
- Vignette on acoustic analysis (html)
This page was last updated on Aug 05, 2018.