Speech researchers get squeezed from both sides. Commercial annotation suites quote per-seat prices that eat an entire grant line, while generic audio libraries give you a spectrogram and wish you luck with the rest. Three open tools cover almost every real workflow — Praat, openSMILE and audioFlux — but they were built for genuinely different jobs, and using the wrong one costs weeks.
Here is what each actually does well, backed by live repository data and commands taken from the projects’ own documentation.
Quick Verdict (TL;DR)
- Use Praat when the deliverable is a human judgement: phonetic annotation, segment boundaries, pitch and formant measurement you will defend in a paper. It is the reference tool of the field and it has been for decades.
- Use openSMILE when you need standardized acoustic feature sets at scale — eGeMAPS, GeMAPS, ComParE — extracted reproducibly over thousands of files from a command line.
- Use audioFlux when you are building a Python or C pipeline and need the time-frequency transforms and pitch algorithms as composable code inside your own process, not as a separate program.
- Do not force one tool to do all three. The mature research setups use Praat for annotation, openSMILE or audioFlux for features, and a stats stack downstream.
Live Comparison (October 2026)
| Tool | GitHub stars | Last commit | Language | Interface | Licence | Primary output |
|---|---|---|---|---|---|---|
| Praat | ≈2.0K (official mirror) | active | C/C++ | Interactive GUI + scripting | Free, University of Amsterdam | TextGrid annotations, measurements, graphics |
| openSMILE | 855 | 2026-01-26 | C++ | CLI + libraries | audEERING source-available licence | Feature CSV/ARFF, configurable sets |
| audioFlux | 3,371 | 2026-03-06 | C + Python | Python/C library | Permissive (see repo) | Numeric arrays for downstream pipelines |
The star counts mislead here. Praat has the smallest GitHub footprint and the largest installed base in phonetics departments, because its development lives at the University of Amsterdam rather than on a social coding platform. Judge these tools by workflow fit, not popularity.
Decision Matrix
| Your task | Best tool | Why |
|---|---|---|
| Annotate word and phone boundaries for a corpus | Praat | Purpose-built TextGrid editor, keyboard-driven, fast for hours of labelling |
| Measure F0, formants, jitter and shimmer for one speaker | Praat | Standard, defensible measurement procedures and a scripting language |
| Extract eGeMAPS features for 10,000 recordings | openSMILE | Standardized configs, single binary, batch-friendly |
| Reproduce a published feature set exactly | openSMILE | Named config files (GeMAPS v01b, ComParE 2016) rather than ad-hoc code |
| Build pitch tracking into a product pipeline | audioFlux | Multiple pitch algorithms callable from Python with no external process |
| Real-time stream analysis on a device | openSMILE or audioFlux | openSMILE ships mobile and embedded builds; audioFlux is C-backed |
Praat: The Annotation Standard
Praat — “Doing Phonetics By Computer” — is an interactive analysis program with a scripting language bolted on, and that ordering matters. You open a recording, look at the waveform and spectrogram, and draw boundaries by hand. For the parts of the job that are measurement rather than judgement, you script it.
A minimal annotation workflow looks like this in Praat script:
| |

Three things keep Praat dominant. The TextGrid format is the de facto interchange standard for annotated speech corpora — every corpus tool reads it. The scripting language can automate measurements across folders without leaving the program. Pitch, formant, intensity and voice-quality analyses follow documented procedures that reviewers accept without a fight. If you are publishing phonetic measurements, arguing against Praat means arguing against the field’s baseline.
The honest limits: it is a desktop application, not a service. There is no headless API for your CI pipeline, and its visual style has barely moved in twenty years. Teams that need unattended batch processing use openSMILE or audioFlux instead and reserve Praat for the annotation passes a human must do.
openSMILE: Standardized Features at Scale
openSMILE is a C++ toolkit — the name expands to open-source Speech and Music Interpretation by Large-space Extraction — targeted at audio analysis, processing and classification for speech and music tasks: automatic speech recognition, speaker identification, emotion recognition, beat tracking and chord detection among them. It ships builds for Linux, Windows, macOS, Android, iOS and Raspberry Pi, which is unusual and useful if part of your pipeline runs on a device.
Feature extraction is config-driven. You name a configuration, point it at audio, and get a feature file — the reproducibility argument in one line:
| |
The config tree is the real product. Alongside gemaps/v01b you will find egemaps, compare16 (ComParE 2016), emobase, is09-13, mfcc, chroma, prosody, spectrum and audspec — a decade of shared feature-set conventions maintained as files rather than blog snippets. When a reviewer asks which feature set you used, you answer with a path, and the result is reproducible on any machine.

Two cautions. First, the licence is audEERING’s own source-available terms, not a standard OSI licence — read the LICENSE file before shipping anything commercial; academic use is the well-trodden path. Second, the naming is not intuitive for newcomers: egemaps, gemaps and compare16 are different generations of the same idea, and choosing between them is a scientific decision about comparability with prior work, not a technical one.
audioFlux: Transforms and Pitch as Library Code
audioFlux is a C and Python library for audio and music analysis and feature extraction — the tool you pick when the analysis belongs inside your program rather than beside it. Installation is two commands:
| |
It exposes dozens of time-frequency transform methods and hundreds of corresponding time-domain and frequency-domain feature combinations, with the numeric work done in C. The pitch algorithms are the standout: recent releases added YIN, CEP, PEF, NCF, HPS, LHS, STFT and FFP methods, plus PitchShift, TimeStretch and a TuneTrack algorithm for instrument tuning. If your question is “which pitch estimator survives my noisy field recordings”, audioFlux lets you swap estimators and compare on the same array — a genuinely different workflow from reconfiguring a binary.
Choose it for streaming and embedded work as well: the C core targets real-time computation on audio streams, and it can run on mobile-class hardware. Choose something else if your deliverable is a publication-grade phonetic measurement (use Praat) or a standardized feature file that a reviewer expects to recognize (use openSMILE).
Pitfalls, Migration and Accuracy Traps
Never mix feature sets across pipeline stages. eGeMAPS and ComParE are not interchangeable, and a model trained on one will not transfer cleanly to the other. Record the config path in your experiment log at extraction time — reconstructing it later is guesswork.
Annotation format is a real dependency. Praat TextGrids round-trip through most corpus tools, but ad-hoc CSV exports lose tier structure and boundary precision. Keep TextGrids as the source of truth and derive everything else.
Check licences before you publish code, not after. openSMILE’s source-available terms are fine for research and require attention for products; audioFlux and Praat sit on easier ground. A licence audit costs an hour; a re-licensing rewrite costs a release.
Beware of sample-rate assumptions. Pitch and formant estimates differ between 16 kHz and 44.1 kHz pipelines, and some configs expect specific rates. Standardize on one rate for the whole corpus and document it.
Do not use a spectrogram as evidence of a measurement. Screenshots are illustrative; numbers come from the analysis functions. Reviewers increasingly ask for the script, so write the Praat script or the Python cell that produced the figure.
For adjacent reading, see our guide to self-hosted acoustic monitoring platforms, the Python audio processing libraries comparison, and, if you capture your own recordings, the audio DSP pipeline guide.
FAQ
Is Praat still the right choice in 2026, or is it outdated?
Still the right choice for annotation and phonetic measurement. TextGrid interoperability, documented analysis procedures and decades of teaching material mean reviewers and collaborators already trust it. It is a mature desktop tool rather than a fast-moving project, which is exactly what you want for a measurement standard.
Can openSMILE extract features without a graphical interface?
Yes — that is its primary mode. The SMILExtract binary reads a config file and writes a feature file, so it fits naturally into batch scripts and pipelines. A separate Python wrapper package exists for teams that prefer calling it from Python.
Which feature set should I use with openSMILE?
Use GeMAPS v01b or its extended variant for general purpose paralinguistic work, and ComParE 2016 for the larger standardized set. The deciding factor should be comparability with previous research in your subfield, not feature count — check what the papers you compare against used.
Is audioFlux a replacement for Praat?
No. audioFlux is library code for transforms and feature extraction inside your own Python or C process, with no annotation editor. Use it to build analysis pipelines and products; use Praat for human annotation and for measurements you need to defend in review.
Can these tools handle thousands of files unattended?
openSMILE and audioFlux can, comfortably — both are command-line and library based and scale with your batch harness. Praat can automate many tasks through its scripting language, but the workflow assumes an interactive session, so plan for a supervised run rather than a fully headless one.
What is the biggest source of irreproducible results in speech analysis?
Unrecorded preprocessing choices: sample rate, filter settings, and which feature configuration was used. Store the config path, the script and the audio checksums with every result set, and reproducibility becomes a five-minute job instead of a rewrite.
💰 想测试你的市场判断力?我用 Polymarket 做预测市场交易——这是全球最大的预测市场平台,从大选结果到技术监管时间线,什么都可以押注。和赌博不同,这是真正的信息市场:你懂的信息越多,胜率越高。我靠预测技术相关事件的走向已经赚了不少。用我的邀请链接注册:Polymarket.com