VoiceLab
Automated Reproducible Acoustical Analysis
Install / Use
/learn @Voice-Lab/VoiceLabREADME
<img src="voicelab/src/Voicelab/favicon.ico">VoiceLab
Automated Reproducible Acoustical Analysis
Voice Lab is an automated voice analysis software. What this software
does is allow you to measure, manipulate, and visualize many voices at
once, without messing with analysis parameters. You can also save all of
your data, analysis parameters, manipulated voices, and full colour
spectrograms and power spectra, with the press of one button.
Version 2.0.0
License
VoiceLab is licensed under the MIT license. See the LICENSE file for more information.
Cite Voicelab
If you use VoiceLab in your research, please cite it:
- Feinberg, D. (2022). VoiceLab: Software for Fully Reproducible Automated Voice Analysis. Proc. Interspeech 2022, 351-355.
- Feinberg, D. R., & Cook, O. (2020). VoiceLab: Automated Reproducible Acoustic Analysis. PsyArxiv
Installation instructions:
- Install from pip using Python 3.9-3.11
pip install voicelab
- To install on Windows, download the .exe file from the releases page.
- run the voicelab.exe file
- To install on OSX, download the .zip file from the releases page.
- Unzip the file, and run the VoiceLab app
- Install on Ubuntu (standalone)
- Download
voicelab - change the permissions to executable:
chmod +x voicelab - try:
voicelabor./voicelab - You might need to run this to install a dependency:
sudo apt-get install libxcb-xinerama0
- Download
Changes from 1.3.1 to 2.0
New Features
-
MeasureAlphahNode measures the alpha ratio
- It is a measure of the ratio of low frequency energy to high frequency energy
- It's written by me using NumPy
-
Pitch-corrected RMS Energy (Voice Sauce) --See bug fixes.
-
Pitch-corrected Equivalent Continuous Sound Level (Leq)
-
New viewport window for LPC spectra
Bug fixes
- Major bugfix affecting all users of Energy in VoiceLab and Voice Sauce
In Voice Sauce source code, they report to calculate RMS in the documentation, but instead calculated Total energy in each pitch-dependent frame. This means the Energy value in Voice Sauce that was translated to VoiceLab was not scaled for wavelength, and therefore not pitch-independent. To fix this I have implemented and RMS calculation at every frame. You can see the values are much closer to those given by Praat now, but are different, and that is because of the pitch-dependent frame length. I've removed the old calculation of mean energy, and if you are using RMS energy as a single value, that is the RMS of all of the frames. If for some reason you want the old calculation, it is in all of the older versions of VoiceLab.
If you are concerned, I recommend anyone who has published using this algorithm, or plans to in Voice Sauce or older versions of VoiceLab, re-run their Energy measurements and use the new values. The values will be similar, but they won't be the same.
- Fixed spectrograms and spectra
- You can now see them in the boxes and you can expand them
API is no longer supported until further notice
If you clone the GitHub repo and look in the tests, you can see how to use the API. However, it is not supported at this time.
Contact
David Feinberg: feinberg@mcmaster.ca
Software Development Team
Maintainer
David Feinberg, PhD
Past Contributors
- Oliver Cook
- El Khanoussi Yassine
Documentation
https://voice-lab.github.io/VoiceLab
Voice Lab
Voice Lab is written in Python and relies heavily on a package called parselmouth-praat. parselmouth-praat is a Python package that essentially turns Praat's source code written in C and C++ into a Pythonic interface. What that means is that any praat measurement in this software is using actual Praat source code, so you can trust the underlying algorithms. Voice Lab figures out all analysis parameters for you, but you can always use your own, and these are the same parameters as in Praat, and they do the exact same thing because it is Praat's source code powering everything. That means if you are a beginner an expert, or anything in-between, you can use this software to automate your acoustical analyses.
All of the code is open source and available here on our GitHub repository, so if this manual isn't in-depth enough, and you want to see exactly what's going on, go for it. It is under the MIT license, so you are free to do what you like with the software as long as you give us credit. For more info on that license, see here.
Load Voices Tab

Load Sound File
Press this button to load sound files. You can load as many files as you like. At the moment, Voice Lab processes the following file types:
- wav
- mp3
- aiff
- ogg
- aifc
- au
- nist
- flac
Remove Sound File
Use this button to remove the selected sound file(s) from the list.
Start
Pressing this begins analysis. If you want to run the default analysis, press this button. If you want to select different analyses or adjust analysis parameters, go to the 'Settings' tab and press the 'Advanced Settings' button. Only the files selected (in blue) will be analyzed. By default we will select all files.
Settings Tab

To choose different analyses, select the Use Advanced Settings checkbox. From here, you'll be given the option to select
different analyses. You can also change any analysis parameters. If you
do change analysis parameters, make sure you know what you are doing,
and remember that those same analysis parameters will be used on all
voice files that are selected. If you don't alter these parameters, we
determine analysis parameters automatically for you, so they are
tailored for each voice to give the best measurements.
Save Results
Save Results saves two xlsx files. One is the results.xlsx file and one is the settings.xlsx file. Here you can choose the directory you want to save the files into. You don't have to click on a file, just go to the directory and press the button.
results.xlsx
The results file saves all of the voice measurements that you made. Each measurement gets a separate tab in the xlsx file.
settings.xlsx
This file saves all of the parameters used in each measurement. Each measurement gets a separate tab in the xlsx file. This is great if you want to know what happened. It can also accompany a manuscript or paper to help others replicate analyses.
Measure Duration
This measures the full duration of the sound file. There are no parameters to adjust.
Measure Pitch
This measures voice pitch or fundamental frequency. This uses Praat's
Sound: To Pitch (ac)..., by default. You can also
use the cross-correlation algorithm: Sound: To Pitch (cc)...{.python
.sourceCode}. For full details on these algorithms, see the praat
manual pitch page.
Measure Pitch returns the following measurements:
- Minimum Pitch
- Maximum Pitch
- Mean Pitch
- Standard Deviation of Pitch
- Pitch Floor
- Pitch Ceiling
We use the automated pitch floor and ceiling parameters described
here.<floor-ceiling>
Measure Pitch Yin
This is the Yin implementation from Librosa.
Measure Subharmonics
This measures subharmonic pitch and subharmonic to harmonic ratio. Subharmonic to harmonic ratio and Subharmonic pitch are measures from Open Sauce (Yu et al., 2019), a Python port of Voice Sauce (Shue et al., 2011). These measurements do not use any Praat or Parselmouth code. As in (Shue et al., 2011) and (Yu et al., 2019), subharmonic raw values are padded with NaN values to 201 data points.
- Shue, Y.-L., Keating, P., Vicenik, C., & Yu, K. (2011). VoiceSauce: A program for voice analysis. Proceedings of the ICPhS XVII, 1846–1849.
- Yu, T. M., Murray, R. D., Silverstein, K., & Yu, K. M. (2019). OpenSauce: Open source software for voice analysis, v0.1. https://doi.org/10.5281/zenodo.2638411
Automated pitch floor and ceiling parameters
Praat suggests adjusting pitch settings based on
gender
. It's not gender per se that is important, but the pitch of voice. To
mitigate this, VoiceLab first casts a wide net in floor and ceiling
settings to learn the range of probable fundamental frequencies is a
voice. Then it remeasures the voice pitch using different settings for
higher and lower pitched voices. VoiceLab by default uses employs
very accurate. VoiceLab returns
minimum pitch, maximum pitch{.python
.sourceCode}, mean pitch, and
standard deviation of pitch. By default VoiceLab
uses autocorrelation for Measuring Pitch<Pitch>{.interpreted-text
role="ref"}, and cross-correlation for
harmonicity<HNR>,
Jitter<Jitter>, and
Shimmer<Shimmer>,
Measure Harmonicity
This measures mean harmonics-to-noise-ratio using automatic floor and
ceiling settings described here.<floor-ceiling>{.interpreted-text
role="ref"} Full details of the algorithm can be found in the Praat
Manual Harmonicity
Page. By
default Voice Lab use To Harmonicity (cc)... You
can select To Harmonicity (ac) or change any
other Praat parameters if you wish.
Measure Jitter
This measures and returns values of all of Praat's jitter algorithms. This can be a bit overwhelming or difficult to understand which measure to use and why, or ca
Related Skills
node-connect
337.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
83.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
337.3kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
