SPPAS Revision notes
SPPAS 1.x
Version 1.0
(2011, 9th March)
The only implemented feature was that the tool was able to perform speech segmentation of English read speech.
The tool was made only of tcsh
and gawk
scripts.
It was developed under Linux, and was efficiently tested under
Windows with Cygwin.
Version 1.1
(2011, 7th June)
This was mainly the debug of the previous version and some code re-organization and cleaning.
Version 1.2
(2011, 23th July)
The support of English, French and Italian was added: a lexicon, a pronunciation dictionary and an acoustic model of each language was created. The speech segmentation procedure was divided into three different annotations: Tokenization, Phonetization, Alignment.
The foundation is being laid for a multi-lingual methodology.
Version 1.3
(2011, 12th December)
This was a transitional version, from the script programming language to Python programming language. The main fixes and improvements were as follows.
Development:
- macOS support
- bugs corrected in many scripts
- check.csh -> check.py
- sppas.csh -> sppas.py
- GUI: zenity -> pyGtk
- the usage of sox is limited for re-sampling audio signal
- a python library to manage wav files is added.
- added IPUs segmentation automatic annotation
Resources:
- Italian dictionary improved
- Italian acoustic model changed (triphones trained from map-task dialogues)
- French acoustic model changed
But the tool still hasn’t a name and wasn’t distributed.
SPPAS 1.4.0
(2012, 14th June)
It’s the official birth of SPPAS. The software has a name, a license, a GUI, a web-page and is freely distributed to the community.
The source code is only based on Python 2.7.x language and the GUI is
based on WxPython 2.8.x or 2.9.x (on macOS, it must be 32 bits).
SPPAS requires also sox
and julius
software to
be installed.
Automatic annotations:
- added
Momel (MOdelling MELody) which is an algorithm developed by
Daniel Hirst and Robert Espesser for the analysis and synthesis of
intonation patterns. Momel needs a .hz files with pitch values: ASCII
file with one value each 10ms. This implementation of Momel can be used
directly, with a large set of options. Get options with:
> python $SPPAS/scripts/lib/momel.py -h
or in SPPAS GUI, or in text-mode (only with default options):> $SPPAS/sppas.py -i INPUT –momel
- added the first version of INTSINT, proposed by Daniel Hirst. INTSINT is an acronym for INternational Transcription System for INTonation. INTSINT codes the intonation of an utterance by means of an alphabet of i 8 discrete symbols constituting a surface phonological representation of the intonation.
Packaging:
- merged AUTHORS, VERSION and README files into the README file
- created packages in the lib directory
- ipu-segmentation re-implemented in python language
- improve ipu segmentation algorithm
- phonetization re-implemented in python, and added an unknown word phonetization algorithm
- alignment entirely re-implemented in python
- syllabification re-implemented with python, and tool/syllabify.py
- add a simple terminal controller (not needed for Unix, just for
DOS
) - Momel can read PitchTier (from Praat) files
- Momel can deal with long sounds (not only one IPU)
- manage source files, comments, exceptions…
- SPPAS works as a single instance by mean of a lock file.
- SPPAS can be installed in a directory containing spaces and can deal with file names with spaces.
GUI:
- GUI with the wxpython library
- Manage a list of selected files
- Add a
File information
- Add a
Wav player
- Fix options to each annotation step with the menu
- Open the log file after each process
Resources:
- French dictionary is using UTF-8 (instead of iso8859-1 in previous versions)
- French dictionary is based on X-SAMPA phone set
- Chinese: deal with chinese characters instead of pinyin.
Known Bugs:
- The wav player can't play wav files if the filename contains
#
. - The first line of the Italian dictionary must be changed to
# [#] #
.
SPPAS 1.4.1
(2012, 13th July)
Resources:
- Updated English acoustic model (from voxforge, 2012-06-25)
- English acoustic models converted to X-SAMPA
Automatic annotations:
- IPUs Segmentation annotation performs a simple silence detection if no transcription is available (the volume is automatically adjusted)
- A specific language can be selected for each annotation depending on available resources
- Updated transcription conventions:
- truncated words: a
-
at the end of the token string (an ex- example) - liaisons: the
letter
between=
(an =n= example) - noises: * (only for FR and IT)
- short pauses: + (a + example)
- silences: # (a # example)
- truncated words: a
GUI:
- Create (systematically) a merged annotations TextGrid file.
Development:
- Package’s management
SPPAS 1.4.2
(2012, 2nd August)
GUI:
- add a panel with a Transcription editor
- IPU segmentation can split a wav into tracks
- IPU segmentation can fix a shift value to boundaries
- IPU segmentation: the min-volume option is removed (because the min-volume value is automatically adjusted)
File Information
button adds some tier manipulation tools: cut/copy/paste/rename/duplicate/move/preview/filter
Known bug:
- The filter frame is not working under Windows XP.
SPPAS 1.4.3
(2012, 10th October)
This is primarily a bug-fix release. The author is addressing many thanks to all users who send their comments!
GUI:
- Frames and Dialog design is more uniform.
- Users preferences changed. Themes and colors introduced.
- Help is available.
Automatic annotations:
- Bug fixed for phonetization/alignement if the input transcription contains series of silence intervals or series of speech intervals. Previous versions were expecting a strict IPUs input transcription.
- Tokenization is done.
Development:
- Code cleaning in the package wxGUI.
- Debug…
SPPAS 1.4.4
(2012, 6th December)
GUI:
- add information/options when
Request
a file - debug Request/Filter (for Windows systems)
Automatic annotations:
- New Italian acoustic model
- New Chinese acoustic model, and some minor changes in the dictionary
Development:
.trs
files support (transcriptions from Transcriber)- debug (alignment, tokenization)
- add
.lab
files export (HTK format)
Known bugs:
- Alignment: it fails under Windows, if
julius
is not installed properly. - Syllabification: the last syllable of each file is
broken
. - Alignment error if there's an unknown word during phonetization.
SPPAS 1.4.5
(2013, 15th January)
Development:
- Correct a few bugs of the previous version (phonetization, alignment, syllabification)
.eaf
files support (transcriptions from Elan software)- add script tierfilter.py
- add script tiercombine.py
Automatic annotations:
- Experimental version of Vietnamese
- add Tokenization as a specific annotation level
- add Phonetization of PinYin
GUI:
- Request/Filter a tier: multiple patterns filtering
- Request: add a
New File
button
SPPAS 1.4.6
(2013, 12th February)
GUI:
- Improved Request/Filter a tier:
- add new modes: not contains, not starts with, not ends with
- add time constraints: minimum duration, maximum duration, meets
- multiple modes selection (replace radio buttons by check buttons)
- Add Requests/Stats to obtain basic statistics
- Requests Copy/Cut/Paste/Duplicate/Save debugged
Automatic annotations:
- IPU segmentation: can take a
Name
tier to fix names of tracks (if theSplit into tracks
option is checked)
SPPAS 1.4.7
(2013, 25th March)
Development:
- re-organization of lib, except for the wxGUI library.
- Cancel the 'sppas.lock' file creation when SPPAS is running.
- Requests/Filter:
Starts search at…
andEnds search at…
- Requests/Filter: remove negative search (because of a bug…).
Replaced by a
reverse
option.
Resources:
- add an experimental version of Taiwanese automatic segmentation (from romanized transcriptions)
Annotations:
- New version of INTSINT, based on the algorithm proposed in (Hirst 2011) and implemented in the last version of Momel/INTSINT Praat plugin!
SPPAS 1.4.8
(2013, 30th May)
Development:
- reorganization of the GUI code. SPPAS is made of:
- automatic annotations;
- 3 components (wavplayer, transcriber, requests).
- sppas.py removed. sppas.bat created (for Windows).
- Input/Output library entirely changed
GUI:
- components (wavplayer, transcriber, requests) in separate frames
- new design
- Help and documentation changed, expanded and improved
SPPAS 1.4.9
(2013, 3rd July)
SPPAS has a new and more colored logo!
Development:
- bug correction:
- Bug fixed in IPU segmentation with option
Split into tracks
- Bug fixed in Momel with some rare files
- Bug fixed to create a merged file
- Bug fixed in alignment and IPU seg.
- Bug fixed in Transcriber
- Bug fixed in IPU segmentation with option
- library organization revised
GUI:
- Add an export button to the File List Panel
- Migrate wav infos from the Requests component to the Wav player component
- Volume control removed in the Wav Player component
- Save As improved in the Requests component
SPPAS 1.5.0
(2013, 2nd August)
Development:
- bug correction
Annotation:
- Tokenization: TOE support finalized
GUI:
- Transcribe: debug of IPU player, for macOS
Resources:
- New French acoustic model. Attention: phoneset changed.
- New French dictionary: use the new phoneset!
- New Taiwanese acoustic model. Attention: phoneset changed: accept some chinese…
- New Taiwanese dictionary: use the new phoneset + some chinese syllabes added.
- Vietnamese removed: due to the lack of data, the model can’t be improved.
SPPAS 1.5.1
(2013, 29th August)
Development:
- bug correction in annotations
- the help system is debugged
Annotation:
- Phonetization of unknown words improved
Resources:
- French dict modified
SPPAS 1.5.2
(2013, 27th September)
All resources are moved into the resources
directory.
Development:
- bug correction in annotations and GUI
Resources:
- French dict modified
- New resources for the tokenization
Components:
Statistics
: an avanced component to estimate (and save!) descriptive statistics on multiple annotated files
SPPAS 1.5.3
(2013, 25th October)
Resources:
- Add Spanish support
Components:
- improved Statistics component
- Add a
Filter
component, first version with a basic GUI
GUI:
- Help updated.
SPPAS 1.5.4
(2013, 3rd December)
Components:
- Wav Player changed.
- Information and Requests removed. Replaced by Data Roamer.
- Transcriber removed. Replaced by IPU Transcriber.
- Statistics updated.
- Filter updated.
Annotations:
- Add Repetitions (detection of sources only)
It is the first stable release.
SPPAS 1.5.5
(2013, 23th December)
Development:
- improved annotationdata (add methods: Find, Index; add uncertain label; debug radius).
Components:
- debug
GUI:
- Tips at start-up
- New theme: Christmast
SPPAS 1.5.6
(2014, 28th January)
Development:
- improved annotationdata (add methods: Near, Search).
- Package cleaning!
Components:
- debug
Resources:
- New Italian dictionary (including gemination)
SPPAS 1.5.7
(2014, 18th February)
Development:
- Plugins manager added.
Resources:
- Japanese support, thanks to the resources available on the Julius website.
SPPAS 1.5.8
(2014, 18th March)
Development:
- annotationdata: more flexibility while adding annotations, add subdivisions, export csv modified, docstrings, import/export in a native format (xra, version 1.0).
Documentation:
- add a PDF file of slides:
SPPAS for dummies
SPPAS 1.5.9
(2014, 15th April)
Components:
- new: DataViewer, experimental version
Annotations:
- syllabification rules: accept 2 types of vowels (V and W)
- syllabification: faster!
Development:
- Export Elan
- Import/Export xra. XRA is the native format of SPPAS annotation files. See etc/xra for details.
Resources:
- New French acoustic model
SPPAS 1.6.0
(2014, 22th May)
Package:
- Rename folder
Doc
todocumentation
- A documentation is created
- SPPAS-for-dummies updated
Development:
- helpsystem removed
- GUI: package re-organization, re-implementation.
- Alignment: choice of the aligner (julius, hvite or basic)
Resources:
- new acoustic model: FR-Read and FR
- new acoustic model: ZH
- new acoustic model: TW
- new acoustic model: SP
SPPAS 1.6.1
(2014, 26th September)
Development:
- bug correction (export, syllabification, alignment)
- DataViewer, major bugs corrected.
Resources:
- Italian: new pronunciation dictionary and new acoustic model
- add resources for Catalan
GUI:
- add a new Export button
SPPAS 1.6.2
(2014, 21th October)
Resources:
- language names changed. They are now corresponding to the international standard ISO639-3. See http://www-01.sil.org/iso639-3/
- Mandarin Chinese dictionary changed.
- Catalan dictionary changed.
SPPAS 1.6.3
(2014, 2nd November)
Resources:
- Add resources for Cantonese
Documentation:
- It’s now (more or less) finished!
Development:
- Support of Elan files is improved (add Controlled vocabulary)
GUI:
- Change the organization of the main frame: annotations above components
This version is known to be a stable release.
SPPAS 1.6.4
(2014, 5th December)
From this version, SPPAS requires wxpython to be updated to version 3.0, particularly for macOS users, and they need to install the 64 bits version. It is recommended to Windows users to install Python 2.7 and wxpython in 32bits.
Development:
- Package re-organized!
- Phonetization of unknown words improved
- Support of upper/lower of the extension of speech files (wav, WAV)
- Tokenization of languages with dictionaries in upper case (eng, ita): bug fixed.
- Creates systematically a dump file of resources for a faster load at the next use
- Read TextGrid files exported by Elan: bug fixed.
sppas.command
checks the system and run either in 32 or 64 bits (macOS)
Components:
- IPUscribe is replacing IPUTranscriber mainly for the support of large files: tested with a file with one hour of speech (143 Go) and 800 IPUs.
- SndRoamer replaces WavPlayer
- Dataroamer has also a new version
SPPAS 1.6.5
(2014, 17th December)
This is primarily a bug-fix release.
Development:
- all programs in
bin
andscripts
sub-directories were revised and tested, or removed.
Annotation:
- Tokenization: code cleaning and re-organisation.
GUI:
- Procedure outcome report: print a warning message in the log file if no file is matching the expected extension
SPPAS 1.6.6
(2015, 19th January)
Web site host has changed: http://sldr.org/sldr00800/preview/
Documentation completed and updated. Now, only the documentation of all the components is missing.
Annotations:
- log messages more explicit and status printed with intuitive colors.
- management of input/output file format re-done: now easier for the user.
Development:
- package architecture revised: mainly
sppasgui
andcomponents
merged inwxgui
, and many other changes. - thread removed in automatic annotation process.
- debug of alignment: if too short units.
- radius value properly fixed in most of the automatic annotations.
GUI:
- GUI is more homogeneous and pretty (hope!)
- Show the date in the status bar
- New Settings frame:
- 4 icon themes available
- Choice of foreground and background colours
- Choice of the font
- Choice of the input/output file format of annotations
- New in the "Help" menu:
- access to the project homepage
- access to the online documentation
- New Feedback window
- New Help browser
- Add Keyboard shortcuts:
- ALT+F4 to exit,
- CTRL+A to add files in FLP
- SHIFT+CTRL+A to add a directory in FLP
- Del to remove selected files of the FLP
- SHIFT+Del to erase selected files of the FLP
- CTRL+C to copy files
- CTRL+E to export files
- F5 to refresh the FLP
- F1 to open the help browser
- F2 to open the
About
frame
Components:
- GUI design unified for DataRoamer, SndPlayer, IPUscribe and SppasEdit
- New Tier Preview frame (still under development)
- SndPlayer print information about a sound file with colors:
- Green: the information corresponds to the SPPAS requirements
- Orange: the information does not exactly correspond to the requirements; however, SPPAS is able to deal with (after conversion)
- Red: SPPAS does not support. It must be converted before using it!
SPPAS-1.6.7
(2015, 16th February)
Automatic Annotations:
- By default, tokenization produces only one tier. Check an option to get TokensStd and TokensFaked, in case of EOT.
- radius value properly fixed in most of the automatic annotations.
GUI:
- Tested and debugged on macOS (version 10.9.5, with wxpython 3.0.2)
Development:
- Tier hierarchy partly implemented: TimeAlignement and
TimeAssociation are two
links
that can be fixed between tiers.
Annotations:
- Add Polish support
SPPAS-1.6.8
(2015, 9th April)
Resources:
- new French acoustic model
- new English acoustic model (VoxForge nightly build of March, 15th, 2015)
- add phoneset mapping tables
Development:
- Add a phoneme mapping in models, to allow both the dictionary to include real X-SAMPA symbols and the acoustic model to be compatible with Hvite requirements (only ASCII).
- annotationdata bug correction with min and max values
- IPUs Segmentation:
- bug correction when split into tracks with a tier
Name
- add the ipu number in speech segments if silence/speech segmentation
- bug correction when split into tracks with a tier
- Self-repetitions debug in finding the repetition interval
GUI:
- DataRoamer:
New
button debugged - DataRoamer: Add a button
Radius
to adjust manually the vagueness of each bounday of a tier
SPPAS-1.6.9
(2015, 14th May)
The installation of dependencies is simplified: sox
is
unnecessary. Python 2.7.x, WxPython and Julius are the only remaining
dependencies.
Development:
- package annotationdata.filter updated to support last changes in annotationdata: multiple labels and numerical labels.
- package annotationdata.io:
- praat.py newly created. Support of TextGrid, PitchTier and IntensityTier files completely re-written
- htk.py newly created to support .lab and .mlf files
- sclite.py newly created to support .stm and .ctm files
- signaix.py newly created to support .hz files
- SPPAS native format XRA upgraded to version 1.1 to support improvements of the library.
- package annotationdata:
- updated object Transcription to support more/different input data
- updated hierarchy
- updated meta-data
- package signal: partially re-written. As a consequence, sox won’t be used anymore; however, the file conversion (if required) is slower.
GUI:
- DataFilter component partially re-written to facilitate its use
- Preview frame modified
SPPAS-1.7.0
(2015, 3th July)
Development:
- package annotationdata.io:
- add support of subtitles: sub, srt
- elan.py created to replace eaf.py: allows a full support of Elan annotations
- transcriber.py created to replace trs.py for a better support of Transcriber files
- anvil.py allows importing anvil files
- package annotationdata:
- updated hierarchy (simplified)
- updated meta-data
- package signal:
- support of audio files re-written: can open/save wav, aiff and au files
- add a lot of possibilities to manage one channel of an audio file
GUI:
- DataFilter component finalized: can deal with alternative labels, and typed labels (string, number, boolean)
- Statistics component fully re-written to facilitate its use
- SndRoamer displays more properties of audio files (min, mean and max added)
Annotations:
- IPUs Segmentation produces 2 tiers if a transcription is given: the IPUs segmentation itself, and the Transcription time-aligned at the IPUs level.
SPPAS-1.7.1
(2015, 5th August)
Development:
- package re-organization:
- package signal is now standalone
- package resources is now standalone
- package presenters created
- updated statistics estimations
- package annotationdata:
- add Media object
- add CtrlVocab object
- add inheritance of MetaObject for Annotation
- package annotationdata.io:
- full debug of all file formats
- add comments and documentation
- add also some tests
- add Media/CtrlVocab in some file formats
- add Annotation Pro support of antx files (in API)
Components:
- add Time Group Analyser (TGA) in Statistics
- add Kappa estimation on labels of 2 tiers with the same number of intervals
Annotations:
- New version of XRA: 1.2
- Make XRA the default input/output file format
SPPAS-1.7.2
(2015, 3th September)
Development:
- updated XRA reader/writer to solve problems with upper/lower cases of elements
- updated Elan reader to be compatible with format 2.8
- updated Praat reader/writer for single/double quotes
- support of AnnotationPro antx files in the GUI
- add the julius score in PhonAlign annotation (can be seen only if XRA)
- removed tk dependency
SPPAS-1.7.3
(2015, 9th October)
Resources:
- New word-based vocab for Cantonese
- New word-based dict for Cantonese
- New phoneme-based acoustic model for Cantonese
Development:
- Descriptive statistics debugged for detailed panels.
SPPAS-1.7.4
(2015, 6th November)
Resources:
- Add a vocab for Portuguese
- Add a dict for Portuguese
- Add an acoustic model for Portuguese. It has to be noticed that it was constructed from French/Spanish/Italian models, not trained from data.
Samples:
- Add Portuguese
- Change some samples in various languages
Development:
- Debug of the Tokenizer.
SPPAS-1.7.5
(2015, 11th December)
Development:
- Add vagueness to the annotation duration estimation
- Bug correction while saving the procedure outcome report in the GUI
GUI:
- Changed all pictures to remove the problem with colorset of some of them
- Add a christmast theme for the pictures of tips
- IPUscribe improvements:
- add keyboard shortcuts to play/pause/stop the sound
- add a new button to autoplay the sound
SPPAS-1.7.6
(2016, 28th January)
Web site host has changed to http://www.sppas.org/
Development:
- IPU segmentation:
- bug correction with option
split into tracks
- new option to add or not add the IPU index of each IPU into the transcription tier
- bug correction with option
- Tokenization:
- bug correction in input tier selection
- bug correction for replacements
Resources:
- add a vocabulary of Korean
- add an acoustic model for Korean (made from the English and the Taiwanese ones).
GUI:
- DataRoamer: bug correction of
Duplicate
Others:
- Add a sample in Korean
- Updated references to cite SPPAS in publications
SPPAS-1.7.7
(2016, 30th March)
Resources:
- Correction of errors in most of the acoustics models, for /@@/ and /dummy/ models
- New vocabulary and pronunciation dictionary for Mandarin Chinese.
GUI:
- Dialogs are customized
- DataRoamer debug and changes: save buttons moved in the main toolbar.
- HelpSystem is (welcome) back!
Development:
- Add the API and a script to train acoustic models with HTK.
- Add Kullback-Leibler distance estimator.
- Add a script to compare segmentation of 2 tiers.
- Classes of the package resources are debugged, improved and extended.
- Alignment: bug correction if input starts by an empty interval.
sppas.command
modified for macOS-X (use python if python2 not available)- GUIs in
bin
directory are updated (test of python, wxpython, and so on).
SPPAS-1.7.8
(2016, 5th May)
Resources:
- Add a pronunciation mapping table
eng-fra.map
: to be used for the speech segmentation for French speakers reading an English text.
Development:
- Phonetization is extended: it can take into account a mapping table of phones to generate new pronunciation variants.
- Phonetization: use of minus instead of dots to separate phones like recommended in the X-SAMPA standard.
- Alignment is restructured and extended: it can take into account two acoustics models and mix them.
- Filter is extended: Relations can be based on a delay between the intervals
- annotationdata: add Xtrans reader (extension: .tdf)
- Code cleaning in several packages.
GUI:
- Automatic annotations: more explicit log messages.
SPPAS-1.7.9
(2016, 3th June)
GUI:
- Some debug in SppasEdit
- SndPlayer renamed AudioRoamer because new functionalities were
added:
- See detailed information about each channel of an audio file
- Can extract/save a channel or a fragment of channel
- Can modify the frame rate and the sample width of a channel
- Can add a bias on amplitude values of a channel
- Can multiply amplitude values of a channel
- Can remove the offset of amplitude values of a channel
Automatic annotations:
- IPUs Segmentation fully re-implemented.
- Silence/speech segmentation improved for both quality and fastness
- Package code cleaning and re-organization.
SPPAS-1.8.0
(2016, 30th August)
GUI:
- Design fully revisited and tested under Linux Mint, Windows 10 and macOS 10.9
Development:
- SLM package created: can estimate a statistical language model (without smooth method) on a small corpus
Automatic annotations:
- Add a diagnosis of files
- Tokenize extended: applied also on alternative labels
- Phonetize extended: applied also on alternative labels
- Alignment code cleaning and partly re-implemented
- Add
Chunk alignment
- Use of a .ini file to configure each annotation instead of a sppas.conf file
SPPAS-1.8.1
(2016, 28th November)
A few tutorials are available on the web site.
Automatic annotations:
- Align: an ActivityDuration tier can be optionally added.
- Support of 3-columns tab-delimited files with .txt extension. It allows the compatibility with Audacity Label track files.
- Acoustic models training validated.
Resources:
- Catalan: new pronunciation dictionary and new acoustic model.
SPPAS-1.8.2
(2017, 18th January)
Analysis:
- debug of DataFilter
Resources:
- French vocabulary and dictionary updated
Development:
- new plugins package with a new plugin manager
- GUI integration of this new plugins system
- some unittest appended and all existing ones updated
- annotationdata.io renamed annotationdata.aio
- docstrings of some packages converted from epytext to reST syntax
GUI:
- DataStats, DataFilter and DataRoamer toolbars don’t scroll anymore
- Themes management changed.
- Main font is managed by the Themes.
SPPAS-1.8.3
(2017, 10th March)
Development:
- Elan reader highly improved (faster reader).
- updated plugins
SPPAS 1.8.4
(2017, 10th April)
Development:
- Elan writer modified: create a time slot for each localization.
SPPAS 1.8.5
(2017, 20th April)
Development:
- Vizualizer renamed Visualizer
- AudioRoamer: bug with an icon corrected
- New Phonedit mrk format support.
- Updated AnnotationPro Antx reader/writer
SPPAS 1.8.6
(2017, 19th June)
Resources:
- Polish dictionary and acoustic model updated.
SPPAS 1.9.0
(2017, 28th July)
Programming:
- Relative imports used in the standard way for Python
- PEP 8 code style (except for wxgui/annotationdata)
- PEP 257 reST code documentation style (except for wxqui/annotationdata)
- Unittests:
- existing tests verified, improved, extended
- new tests added
- tests migrated into the packages
- Compatibility for both Python 2.7 and Python > 3.2:
- makeunicode.py contains functions and classes to deal with strings
- utils, term, structs, resources, presenters, plugins, calculus packages: migration is done
- Exceptions are separately managed
- Introduction of a system for the internationalization of the messages. Done in English and French for the packages: audiodata, calculus, plugins, resources, structs, term, utils
- Package re-organization:
- new package
models
, with acm and slm - utils
- resources
- …
- new package
- meta.py is replacing sp_glob.py
- new scripts: tieraligntophon.py, dictmerge.py
- new bin: pluginbuild.py
- Robustness to read malformed HTK-ASCII pronunciation dictionaries.
- Bug corrected in the management of pronunciation variants
- re-structured package TextNormalization
- re-structured package Repetitions
- new version of the plugins: updated and debugged.
Resources:
- Add support of Naija language (pcm)
- English-French mapping table updated
Annotations:
- Tokenizer renamed into Text Normalization:
- a lot of debug mainly for English language, and punctuation managements
- new option: can output a customized tier.
- Repetitions: some debug
Communication:
- Add a description document of the orthographic transcription convention in the package.
- Web page updated, new tutorials available
- Documentation updated
- Better information about the licenses
SPPAS 1.9.1
(2017, 1st September)
Development:
- Bug correction in the ELAN reader.
- Bug correction with quotation marks of the Praat writer.
Resources:
- Add an acoustic model for English, including laughter and noises.
SPPAS 1.9.2
(2017, 6th October)
Programming:
- Bug correction in the diagnosis of audio files.
- Package
anndata
continued, in the scope of replacingannotationdata
. - Acoustic model training procedure debugged and improved, code cleaned, scripts updated, etc.
SPPAS 1.9.3
(2017, 18th October)
Programming:
- Critical bug correction in Alignment: error when loading the tiedlist.
- Correction of TextNormalization of broken words:
-
is now not removed.
Resources:
- Italian pronunciation dictionary updated.
- French vocabulary updated: list of compound words revised.
Known bugs:
- Spanish alignment does not work: corrupted acoustic model
SPPAS 1.9.4
(2018, 15th January)
Programming:
- Script to train acoustic models updated
- Script to evaluate alignments updated
- Bug corrections of the search tier system
Resources:
- Spanish:
- new pronunciation dictionary
- new acoustic model
SPPAS 1.9.5
(2018, 26th April)
Programming:
- I/O development of the package
anndata
. - Reading and writing of annotated files is now based on the new
anndata
package instead of the oldannotationdata
package. This was a big issue, and it allows a better support of annotated files (lesser bugs and the amount of lost information is drastically reduced).
SPPAS 1.9.6
(2018, 25th May)
Resources:
- New: support of German language for Text Normalization (except num2letter), Phonetization and Alignment.
- French: new acoustic model with an updated phoneset and a better accuracy.
- Laugh and noise are uniformly represented in all languages.
- English: context-independent model is the default, instead of context-dependent model, for Alignment.
Development
- debug of the Transcriber file reader.
- debug in the management of the hierarchy in file readers/writers.
- Resources package: add compatibility with PLS (W3C xml) pronunciation dictionaries
Known bugs:
Syllabification of French: the configuration file is not correct.
SPPAS 1.9.7
(2018, 23th July)
Development
- new filter system in anndata
- IPUs segmentation: debug in fixing automatically the threshold for the search of silences (can’t be negative!)
- Annotations: improved messages for the procedure outcome report
- Annotations: Text normalization is based on
anndata
API instead ofannotationdata
- the result is now a sequence of individual tokens (each token is a sppasLabel()), instead of a single string separating tokens with space.
- Annotations: Phonetization is based on
anndata
API instead ofannotationdata
- the result is now a sequence of sppasLabel() with alternative tags: each tag corresponds to a pronunciation variant
- Annotations: Syllabification re-programmed and now based on
anndata
API- only sequences of phonemes are syllabified (i.e., no silence, no laugh nor noise in the result)
O
class name changed intoP
class name- do not generate the tier
structures
tier anymore - generating the
classes
tier is optional
- Annotations: INTSINT is based on
anndata
API instead ofannotationdata
- IPUScriber is based on
anndata
API instead ofannotationdata
Resources:
- French syllabification rules updated to be compliant with the new phoneset (used since version 1.9.6)
Documentation
- updated chapter 6: scripting with Python and SPPAS. It is now based
on
anndata
API instead ofannotationdata
.
SPPAS 1.9.8
(2018, 06th September)
e-mail contact is changed to:
- contact@sppas.org for general questions of users
- develop@sppas.org for developer questions or for a bug alert
Development
- bug correction for GMT with a negative value, like GMT-4.
- most of the scripts are based on
anndata
API instead ofannotationdata
- dependency to markdown removed
- new solution to work with global variables with the new package
config
and the new classes likesppasGlobalSettings
,sppasPathSettings
, … - translation management moved in package
config
- better way to work with imports
- increased pep8 and pep257 compatibility (should be continued)
anndata
is used in DataRoamer, Visualizer, DataFilter- new script trsshift.py to shift the transcription of a delay in time
Documentation
The API documentation is based on Sphinx http://www.sphinx-doc.org.
SPPAS 1.9.9
(2018, 23th October)
Development
- package for the
aligment
is fully re-structured (re-implemented partially), new unittests are added, and compatibility with python 3, pep8 and pep257. - new GUI based on python3 + phoenix: it prints an information message in case SPPAS is launched with these versions.
- package
prensenters
updated: unittests, python 3, pep8 and pep257.
Plugins
- sampa2ipa included to the SPPAS package
- audiosegmenter included to the SPPAS package
Annotations
- IPUs Segmentation removed. It is replaced by:
- Search for IPUs: to find silences/tracks from an audio file
- Fill in IPUs: to find silences/tracks from an audio file and its transcription
- AudioSegmenter plugin: to segment audio files into several tracks
- annotation.py: bug correction with the default output extension
- bug correction when the phonetization was unknown
Resources
- add a file
monophones
into each model, for the compatibility with HVite. - errors of the acoustic models of
spa
andnan
corrected.
SPPAS 2.x
SPPAS 2.0
(2019, 4th January)
The main change of this release is that the package
annotationdata
has been removed, so that all packages are
using anndata
instead. One of the most important
consequences of this change is that all packages, except the wxGUI, are
compatible with both Python 2.7 and Python 3.4+.
Annotations
- Alignment: bug correction if the last unit is empty.
- Self-Repetitions and Other-Repetitions split into two different packages
- Un-used package
Chunks
removed - Better management of annotations: sppasBaseAnnot, sppasParam and sppasManager revised.
UI
- All programs in
bin
folder updated. Amanual mode
and anauto mode
are available in the annotations to fix input/output, and a –log option is proposed to save a report. - Plugins: marsatagplugin added and debugged.
SPPAS 2.1
(2019, 28th February)
Development
- Praat TextGrid: it’s now allowed to use the symbol
=
in annotation labels. - Use of
json
files instead ofini
files to configure SPPAS, the annotations and the plugins. - New package
analysis
with the filter and statistic systems.
Annotations
- Search for IPUs: the program has been improved and evaluated.
- Alignment: priority is given to standard tokens (if EOT).
- Alignment: problem of whitespace in filenames solved.
UI
- Plugins: new plugin to remove untranslated IPUs and to re-index the IPUs
- extended internationalization of the messages (for English and French)
SPPAS 2.2
(2019, 09th May)
'sppas.bat' and 'sppas.command', the two main ways to launch the GUI,
were fully re-written to search for pythonw
command first.
It results in the following two advantages:
- it increases the compatibility with macOS systems;
- it allows to not display the dark frame of
python
under Windows.
Development
- New package
files
for a further use. - Increased compatibility of file formats: can read alternative tags with {|} system, whitespace vs CR, etc.
Plugins
- Debug of the plugin to clean IPUs.
Annotations
- Search for IPUs: a special threshold value is set when the audio recording has a very low median value (i.e., very low volume values)
- Normalization/Phonetization/Alignment/Syllabification can work without audio
- Search for IPUs and Fill in IPUs: the problem with upper/lower extension is solved.
GUI
Delete
button of theFile Explorer
: files are no longer definitively deleted. Instead, they are moved into a hidden folder with name.trash
in the package of SPPAS.- wxFrame to display log messages.
- Annotations in GUI: better compatibility to annotate written texts
Resources
- fra.dict: corrected 6 errors with a non-existing
eu
sound
SPPAS 2.3
(2019, 25th June)
Development
- JSON configuration files of sppas modified.
- package
files
is used: the annotations manager is using a workspace instead of a list of files. - the GUI based on wx4 is managing properly the workspaces and the
annotations: a page with
Files
is displayed and allows toadd/remove/delete
files in the list,import from/export to/pin&save/rename
workspaces, tocreate/edit/delete
references and tocheck with filters/check all/associate/dissociate
files and references. - Workspaces are saved in
JSON
format in theworkspaces
folder.
Annotations
- New annotation
Activity
. This annotation was previously available as an option ofAlignment
. - Text Normalization: the Num2Letter module has been fully re-programmed.
- Text Normalization: new option
occurrence & duration
to estimate the number of tokens of each IPU and the duration of this latter. - Annotations are categorized as: STANDALONE, SPEAKER or INTERACTION. The GUI based on wx3 only shows the STANDALONE ones, but the GUI based on wx4 can deal with all of them.
Resources
- New folder
num
with dictionaries of numbers for cmn, eng, fra, ita, jpn, khm, pol, por, spa, vie.
SPPAS 2.4
(2019, 26th June)
Development
- the GUI based on wx4 is managing the plugins
- bug correction in
files
package
Annotations
- New annotation
Re-Occurrences
, of type INTERACTION. Can only be used with the CLI or the GUI based on wx4. - Either one or two new options in all the annotations:
- inputpattern: to choose the pattern of the input file (like
-token
for Phonetization) - outputpattern: to choose the pattern of the output file (like
-token
for Tokenization)
- inputpattern: to choose the pattern of the input file (like
- CLI: the script annotation.py is fully re-implemented
Resources
- New pronunciation dictionary for Iranian Persian (pes), for Phonetzation
- New acoustic model for Iranian Persian (pes), for Alignment
SPPAS 2.5
(2019, 30th July)
Development
- the GUI based on wx4 can convert files.
Annotations
- New annotation
RMS
to estimate the Root-mean square of an audio file in given intervals
SPPAS 2.6
(2019, 1st October)
Various
- New script
dictsampa.py
to convert a pronunciation dictionary in IPA into SAMPA encoding - New script
clippingrate.py
to estimate the clipping rate at several factors in sub-parts of the audio file - New plugin
StatGroups
to estimate distributional statistics on sequences of numbers in annotations.
Development
- the GUI based on wx4 can convert files (debugged and extended)
- the GUI based on wx4 can display the content of a file (ListView) in
the page
Analyze
- GUI:
Save all
button debugged in DataFilter (remaining bug in DataRoamer)
SPPAS 2.7
(2019, 2nd December)
Various
- Add the possibility to remove unlabelled annotations in tiers (in DataFilter)
- Plugin
StatGroups
updated: it can optionally create a tier with the not-selected intervals
Resources
- Modified French lexicon: include words of Québec French
- New Québec French pronunciation dictionary
- New Québec French acoustic model
- Modified French syllabification file: added vowels of Québec French
- Tiedlist of Italien model re-introduced… Alignment of
ita
is once again completely functional
Development
- the GUI based on wx4: in
Files
, the list of files uses collapsible panels instead of a table
SPPAS 2.8
(2020, 17th January)
Two new scripts (sppas-py3.bat and sppas-py3.command) added to run directly the new GUI based on py3+wx4.
Development
- the GUI based on wx4: some debug, improved compatibility with the 3
OS and DataFilter and DataStats implemented in the page
Analyze
Annotations
- New annotation: Stop Tags: estimate if tags of annotations are relevant or not. Relevance is estimated like for Other-Repetitions detections.
SPPAS 2.9
(2020, 03th April)
This is the last version for which both Python 2.7 and Python 3.5+ are supported. Running SPPAS with Python 2.7 will not be maintained past 2020, May when SPPAS 3.0 will be released.
Development
- the GUI based in wx4 is extended and debugged: AudioRoamer and
IPUScriber integrated in the page
Analyze
, a multiplayer is added, it can play several media at a time.
Resources
- updated dictionary and acoustic model of Polish language
Annotations
- New annotation LexMetric to estimate occurrences and rank
Known bugs:
In the page Analyze
, the view Multi-Player
does not
properly displays the annotation boundaries, and the scrollbar is not
updated when needed.
SPPAS 3.x
Python 2.7 reached the end of its life. This version expects Python to 3.x as Python 2.7 is no longer maintained. No new bug reports, fixes, or changes will be made to SPPAS when used with Python 2.
A new setup program allows installing external programs to enable
some features of SPPAS. It includes wxpython
to enable the
Graphical User Interface.
SPPAS-3.0
(2020, 20th May)
Known bugs
- Does not support Julius 4.5+
GUI:
- The version based on wxPython 3 is deprecated. Instead, the one based on wxPython 4 is the default but some features are still not implemented.
- A large amount of debug of the GUI. Remaining bug: In the page
Analyze
, the viewMulti-Player
does not properly update the scrollbar when needed. - Page annotate: can display the content of any report of the list, can delete existing reports.
Development:
- new package
preinstall
, and new script preinstall.py to install external programs - Package
files
renamed towkps
. Updated classes and methods for a better support of reading and writing wjson files; a version 2.0 is then introduced. Add of aMISSING
state allowing to properly manage missing entries of a workspace, relative paths added, etc. - config package, classes and methods fully verified/modified including a new sppasAppConfig() class
- Modified main to enable to launch SPPAS GUI with
the command:
python3 sppas
- new bin
juliusdownload.py
to automatize the installation of julius under Windows.
Resources:
- Updated lexicon, dictionary and acoustic model for Naija Language.
Automatic annotations:
- Automatic alignment, when EOT, is rescueing a failed interval
alignment with the
Tokens
tier instead of the default one.
SPPAS-3.1
(2020, 10th July)
Annotations:
- new annotation FaceDetection to detect faces in an image
- new annotation FaceLandmark to find coordiates of 68 points on an image representing a face, and only one
- new annotation SpkLexRep to find what are the tokens or phases repreated from one file to another one of the same speaker
- linguistic resources are downloaded and installed with the setup or directly from Ortolang web site
Others:
- renamed .deps~ into .app~
SPPAS-3.2
(2020, 4th September)
Known bugs
- Under Windows, when a ComboBox is clicked, the Log Window is focused.
Annotations
- better support of antx files
- new FaceTracking annotation to detect faces of a video, still under development, and not in the GUI.
- transfer the metadata of the input transcription to the output transcription. Reliable only for annotation formats that support metadata.
- face detection: sort detected faces by confidence score
Development
- bug correction and tests added
- debug of the features reading with UTF-8 encoding allowing the setup to work properly
- new videodata package to read and manipulate video files.
GUI
- The Home page includes links to the SPPAS web site
- some wx.ComboBox replaced by our sppasComboBox to look the same on all platforms
- Keyboard shortcuts added to message dialogs:
- ESC: Cancel
- Return: OK
- n: No
- y: Yes
- New keyboard shortcuts in the
Files
page of the main frame:- alt + a: add files
- alt + e: export workspace
- alt + i: import workspace
- alt + s: pin&save workspace
- alt + n: rename the workspace
- alt + r: create a new reference
- alt + f: check some files
- alt + g: check all files
- alt + l: link checked files to checked references
SPPAS-3.3
(2020, 20th October)
Package
.logs
and.trash
folders are no longer hidden. Now, they are namedlogs
andtrash
.
GUI
- The page Analyze is simplified: there’s no longer a notebook to open
files into tabs, and there’s no longer different
views
. Instead, 1/ to edit the text content of a file, the pageFiles
has a new buttonEdit checked
in the top toolbar; and 2/ to view files in a time-line style, a new pageEditor
was created. The latter is still under development.
Annotations
- Support of versions 4.5+ of the Julius CSR Engine, used by the “Alignment automatic annotation.
- new FaceTrack annotation to detect faces into a video. Currently, it is not fully tested.
Development
- new package
videodata
to support video files with opencv. - preinstall: a different way to search for the python command. It
should solve problems when the Python3 executable is
python
command instead ofpython3
.
SPPAS-3.4
(2020, 4th December)
GUI
- web links to the reference publications are indicated for each automatic annotation, either in PDF or URL.
- the main app is no longer using the option
useBestVisual
- a user reported that the app crashes with anaconda/ubuntu if enabled. - some debug and improvement of the page Analyze. Now, it looks better under Windows.
- the page Editor is continued. It allows to:
- open audio, video and transcription files (no limit on the number of files);
- play all audio and video files really synchronously: the max delay between media players is 10ms;
- a slider allows selecting 5 different periods to play: either the whole duration, or the visible part, or the selected part, or the visible part until the selected part or the visible part after the selected part.
- scroll/zoom the files to change the visible part;
- display annotations both in a spreadsheet and in a timeline;
- select an annotation;
- edit the annotation content: a text entry allows editing the labels of an annotation either in a serialized string, in XML or in JSON.
- add/delete/split annotations.
- save.
Development
- setup.bat was modified, expecting it can install wxpython even if python was not installed from the Windows store. not tested.
- analyze: added a new option in the filter system when using relations. It allows to crop annotations of X when they are ovelapping Y (overlaps, overlapped by and contains).
SPPAS-3.5
(2021, 20th January)
GUI
- Page Annotate: the installation of new languages and new annotations is enabled.
- Page Analyze:
- view of the waveform of audio files
- the files of the timeline can be sorted
- in the timeline, right-click on a transcription file to check-uncheck tiers
Annotations
- LexMetric: bug correction of the supported files. No remaining unjustified error message.
- FaceDetection: can detect faces on both an image or a video.
- FaceMark renamed FaceSights: can fix 68 sights of detected faces on both an image or a video.
Development
- two new scripts: 1/ to convert a folder of images into a video and 2/ to export a video into a folder of images
SPPAS-3.6
(2021, 23th February)
Plugins
- cleanipus updated: solved import error and version updated to 1.1
Annotations
- INFO1220 migrated from report to logging
- <UNK> replaced by dummy for unknown phonetizations
- FaceDetection: more options, more models
- New annotation FaceIdentity to assign an identity on detected faces
Development
- bug correction in audioframes with an exception not properly raised
- anndata: sppasWEKA renamed to sppasTable and enhanced with export of TRA files – Table Rich Annotations
- installer: added numpy to video feature with a version > 1.20. This is due to the Windows 2004 update and its consequences…
- workspaces: when reading wjson, the references are properly assigned to files
- sppasLPC renamed to sppasCuedSpeech
CLI
- the script trstotable.py is replacing trstoweka.py
- other-repetition script can take a workspace as input
SPPAS-3.7
(2021, 14th April)
Annotations
- creating a merged file is enabled by default
- Overlaps: new INTERACTION annotation to create a tier with overlapping activities.
- Alignment: a better support of non us-ascii characters
- Stopwords: no remaining error about the file extension.
- FaceDetection: the default is to load both a DNN and a HAAR model instead of two DNNs. Enlarged portrait size (if option is enabled).
- FaceIdent: can export a smoothed portrait video.
- CuedSpeech: can export the video with the position of the 5 vowels and a number to represent the consonant during the audio key. The resulting tier with the key is made of two labels: the consonant number and the vowel number.
- OtherRepetitions: 3 more tiers about the OR source are created (word strain, nb of labels, source type). Bug correction in the position of the first found echo.
- SelfRepetitions: 3 more tiers about the SR source are created (word strain, nb of labels, source type)
- Linguistic resources and annotation resources are no longer downloaded from ortolang but from gandi instead. Manual download is still on ortolang (when it works!)
Analysis
- filter system: New filter
nlab
on the number of labels of annotations
Development
- bug correction in video coords reader
- videodata: the FPS is not converted to integer anymore, now it can be a float. Support of .mov files with H264 codec.
- updated sppasui.json to re-rank annotations of faces
- images: extended support with transparency and overlay added
GUI
- page files: bug correction when adding a folder, automatically adjust the column width of the filename when adding new files
- page analyze: new filter added to the SingleFilter, modified files can be saved
- page editor: annotation list view and labels edit re-organized, a new rise panel for the timeline view of file allows seeing action buttons when collapsed instead of when expanded. No remaining infinite loop (macOS, Linux) when displaying tiers. A proportional frame when reading a video.
- Problem with foreground color of lists solved (macOS, Linux)
SPPAS-3.8
(2021, 26th May)
Annotations
- New annotation IVA: Interval Values Analysis.
- Lexical Metric: Add the number of annotations and the number of labels in segments. Segments are fixed from a list of separators.
- Fill in IPUs: more options to fix shift start and shift end.
- CuedSpeech: bug correction in key generation at the end of an IPU with a consonant.
- CuedSpeech: return two different tiers with the key, either with a single combined label or with two different labels (one for C then one for V).
- Alignment: a better way to convert point to intervals in case of alignment without audio.
- Other Repetitions: optionally can add a tier with all echo candidates.
- Extended search for syllable tier name: it's for applying TGA to
any tier with
Syll
in its name.
GUI
- buttons have new custom events: it allows customizing their look when mouse is entering, leaving, …
- page editor: annotation boundaries can be moved. The selected bound is in green if several annotations share the same time value, or in red if the bound corresponds to only one time value. Both the midpoint and the radius can be modified.
- page editor: can create an annotation in the timeline by dragging with the mouse.
- page editor: Some minor changes in the look of the page.
- page editor: bug correction with threads in video player under MACOS. Allows playing several videos at a time, like on the other systems.
- page editor: bug correction in the list of annotations when adding before.
- page files: bug correction when adding a non-valid file.
- page files: adding the parent folder
..
is forbidden.
Development
- preinstall: added linux+microsoft in the list of supported distrib for those who installed Ubuntu from the Windows Store
- a global sppasLogSetup() instance is declared in the config.
- the script slmtrain.py can take sentences from stdin and then write the probas on stdout.
- anndata: refactor of sppasRW into sppasTrsRW.
- anndata: added a trs_type in all reader/writer classes and in sppasTrsRW file properties. Allows classifying annotated files into: ANNOT, MEASURE or TABLE.
- annotations: by default, automatic annotations can only create files of the type ANNOT (except if overwrite the method).
- config: add a log error message if no write access to sppas directory.
Scripts
audioinfo: new options to get clipping values in details or no clipping values at all
SPPAS-3.9
(2021, 6th July)
Annotations
- More logging messages for a better understanding of the automatic annotations procedures
- bugs corrections in RMS and SpkLexRep
- The
merge
can now be checked/unchecked in the page to annotate. If checked, it merges only checked files of each root.
GUI
- Under macOS, the GUI application is not crashing anymore on exit; previously it was randomly either not crashing, or bus error or segmentation fault
- Make the GUI work correctly with the macOS Dock
- Page File: Edit files button is moved to the vertical toolbar, and two buttons are added to remove missing files and to add all files sharing checked roots
- Page Editor: An elaborated search dialog is available in the editor to find label patterns in annotations of one or several tiers
Development
- setup for Windows is simplified
- a new class autils.SppasFiles() allows a better control of the files to manage in the automatic annotations
- annotations: No longer required vs optional inputs. A more generic solution is used instead in all the annotations
SPPAS 4.x
Python 2.7 is no longer supported.
SPPAS-4.0
(2021, 5th October)
** One of Python 3.6 or 3.7 or 3.8 is required.**
GUI
- sppas.bat: do not launch pythonw3 anymore but python3 in order to display error messages if any
- GUI for wx3+py2 is definitively removed
- A new
Colored
icons theme - Translation enabled under macOS
- Bug correction: the settings are not modified anymore when cancel is clicked
- Fade in and fade out of dialog windows can be fixed into the settings
- The splash delay can be fixed into the settings
- The Page Editor can play synchronously audio and video files
- Page Editor: Bug correction in displaying the waveform. It is now properly synchronized on the timeline.
- Page Editor: Bug correction in the annotation label editor which can now write special characters. It's beneficial for an enriched transcription.
- Page Files: Remove missing files also remove remaining missing roots and paths.
Development
- config: simplified use of locale. We now use language but not country (en_US => en ; fr_FR => fr)
- gui: the application has a new custom splash with a gauge to indicate the loading progress
- gui: the 'install' app is updated – code cleaning, better macOS support, etc
- annotations: bug correction in Face Detection because in some videos an image of the buffer can be None
- annotations: bug correction of input pattern management in LPC, Syllabify, FaceIdent, Repet
- annotations: JSON config file modified for LPC and Syllabify
- tips moved to structs package (they are now unused)
- ui: only one gettext message definition of _ in init. No longer a
msg
definition in each class… - ui.players: code re-organized, class diagram simplified, package moved into ui.phoenix
- videodata: a faster solution to seek at a pos when the pos is closely later
- preinstall: the installer uses sys.executable to get the appropriate python
Annotations
- CuedSpeech: use a different code to represent vowels and consonants. The new configuration file is not compatible with previous versions of SPPAS.
SPPAS-4.1
(2021, 25th November)
Known problems
audioplay
feature is not available for python 3.9 or 3.10 because simpleaudio pypi package is not available. Another solution has to be found…- opencv-contrib 4.5.4+ is not supported. The authors changed
something in the library. Some tests have to be performed to find what
exactly changed and how SPPAS can deal with. opencv-contrib is required
by the
video
feature.
Package
- The XRA 1.5 scheme is described in a PDF documentation file (16 pages)
- The package includes the PDF of the documentation of resources
- The package includes a PDF with the workflow of 19 automatic annotations
GUI
- page edit: the waveform is not drawn in an over-period anymore.
- page edit: new keyboard shortcuts in the timeline to:
- zoom in (ctrl+i),
- zoom out (ctrl+o),
- scroll before (ctrl+left)
- scroll later (ctrl+right)
- select the next annotation (Alt+RIGHT)
- select the previous annotation (Alt+LEFT)
Annotations
- Search for IPUs: the min sil value is taking into account the shift values. In the new results, none of the silences will have a duration less than the given one.
- By default, the Face Detection, Face Landmark and Person Face Identity are creating an XRA file instead of a CSV one.
- Person Face Identity is creating a video and an XRA with the portrait of each identified person. It also has a better selection of identities, based on both coordinates overlap and image similarity.
- The
do merge
option is turned off by default when using either the GUI or the CLI - An annotation development progress indicator is introduced. This is a percentage value defined into the annotation JSON files and displayed in the GUI if no reference is available.
- Person Face Identity: two different videos are created when
tag
option is enabled, one without the tagged face and one with.
Resources
- Support of Bengali language.
Development
- an exception is raised at the init stage if python is deprecated.
- anndata.annlocation: bug correction in the filtering system with overlaps intervals
- anndata: Two new types are introduced for a sppasTag: it can be a
fuzzy point
or arectangle
- anndata: A sppasLabel has a new member
key
(string). - new XRA format. Version 1.5 can take into account the two new types of
a sppasTag and the
key
attribute of a label. - bug correction in the workspaces: the application captures the
ValueEror that is raised when using
relpath
on Windows OS if the path is on a different drive. - bug correction in the workspaces when adding brothers in roots
- Less restrictions in the definition of a pattern filename (now it can have a single char).
sppas
is no longer added in the python path by the init- models package migrated into
Align
to provide circular imports. The training of ACM models is updated. - Bengali language added to the num2letter module
- fileutils.py migrated into utils package; makeunicode.py migrated into config package
- annotations: bug correction with exception EmptyOutput and an added message in TextNorm and Phon (name of the tier).
- structs: bug correction in 'lang' list. It isn’t ignoring the resource name anymore.
- videodata: bug correction in the videowriter.set_size() to write videos of a custom size.
- sppas.json renamed sppasmeta.json with a few metadata added
- install: takes the version into account when installing a pypi package
- setup.bat: add a 5-seconds delay after wx is installed to let Windows OS realize that something changed…
SPPAS-4.2
(2022, 28th January)
Known problems
- This version (and the previous ones) does not work with Python 3.10.x or later.
audioplay
feature is not available for python 3.9 or 3.10 because simpleaudio pypi package is not available. Another solution has to be found…- The use of Python 3.6, 3.7 or 3.8 is then recommended.
Package
Important The setup is now creating a Python Virtual Environment in the hidden folder .sppaspyenv~. Then, the setup has to be launched every time a new SPPAS package is installed. The sppas commands are launching the GUI with Python of this virtual environment.
Annotations
- Syllabification: a new option to output one more tier with syllable structures
- CuedSpeech: code cleaning and re-organization, two more tiers are created: HandShapes and HandPositions. They are predicting respectively the moments D1-D2 (change of shape) and M1-M2 (change of position). The prediction model is a set of rules based on the work described in (Attina, 2005), page 117 and page 136. It can export a video with badges moving and standing depending on this model, or with pictures of a hand when the debug logging level is set (in the .app~ file).
- FaceDetection: can choose the model(s) to enable or disable in the options. MediaPipe Face Detection is added to one of the possible recognizers - it’s very fast but results are worse than other models.
- FaceSights: MediaPipe Face Mesh is used to predict the 68 face sights (weight=6) interpolated with OpenCV LBF (weight=1). No longer use of the DAT model nor the empirical sights.
- PersonFaceIdentity: A new filter is added to remove unrelevant known identified persons, when number of stored images is less than 1/3 of the expected ones. Added options: mincoords, minrefcoords, mindistcoords, mindistimgs, nbfrimg. And now, the person is identified with the automatic face recognizer first, then with the coordinates instead of the contrary.
GUI
- Page Edit: new buttons in the player control panel to play one frame of a video in both ways (next or previous frame)
- Page Files: a better view of the filename in the tree, particularly under Windows, and the pattern is now in a specific column.
Development
- the
video
feature is now also requiring MediaPipe - https://mediapipe.dev/#! - workspaces: extended max length of the attribute key. It was 12, it’s 20 now.
- features.ini and object detection: can support all versions of opencv-contrib. They changed the output of the detection data structure at version 4.5.4.
- imgdata: the object's detection can load all models then enable or disable any of them.
- Sights and SightsWriter migrated into "imgdata" package.
- sppas.command is
cd
to $SPPAS to make 'sppas.command' working properly with the Finder on macOS and is creating asymlinks
virtual environment on macOS because it does not support thecopies
option - setup.bat: search for python.exe first.
SPPAS-4.3
(2022, 22th March)
Known problems
This version has an import
bug: it does not start at
all on some computers.
Resources
- Updated French acoustic model, added French pronunciation dictionary for standard French with name fre.dict, and updated documentation of French resources.
Annotations
- MediaPipe (https://mediapipe.dev/) can be used by Face Detection and is used by default in the Face Landmarks automatic detection. It is installed to enable the video feature.
- Face landmarks: smooth sights trajectory
- Search for IPUs: the default output pattern is -ipus
- RMS: can optionally add two tiers with min and max value of each interval
- CuedSpeech: a new tier is created with the coordinates of the vowels (if sights are given)
- If any, add properly the language in the metadata of the output transcription file, and add the linguistic resource filename in the metadata of the tier.
Development
- anndata: bug correction when reading and writing .lab files
- plugins: audioseg bug correction when searching for the annotated file and a new option is added.
- plugins: classphones bug correction in imports and new options.
- GUI-Edit: the player control can play frame-by-frame with a step value, not only 1.
- facesights & faceidenity: smooth points trajectory with another algorithm
- cuedspeech: what, when and where files separated in 3 packages
GUI
- updated icon: a more modern version with fewer colors
- updated splash image to add a representation of both a video and a hand
- plugins: solved a problem of page refresh under Windows when adding or deleting a plugin
Scripts
- formants.py creates a file with f1, f2, f3, f4 of all phonemes. It requires Praat and to install the pypi of ParselMouth.
- saplay.py plays an audio file or a part of it. It uses either pyaudio or simpleaudio. At least one of them must be installed with pypi.
- img_to_cartoon.py is able to cartoonize an image or a video.
- sppasseg.py performs the full automatic segmentation process. It’s a
three automatic steps process:
- Prepare the data (if required):
- Nothing is done if the ortho. transcription is already time-aligned into the IPUs;
- Fill in IPUs if the ortho transcription is already available but not time-aligned. Notice that it can’t work if the recording protocol was not very very very strict: it works only if the number of sounding segments EXACTLY matches the given number of transcribed segments.
- Search for IPUs and auto transcribe with the STT DeepSpeech. It requires installing DeepSpeech in the currently used Python and giving the path of the models. Get it here (DeepSpeech + English model): https://github.com/mozilla/DeepSpeech/releases/ or here for another language: https://discourse.mozilla.org/t/links-to-pretrained-models/62688
- Perform Speech Segmentation:
- no option to configure the annotations. They are all fixed internally!
- can estimate an intensity coefficient;
- can predict silent pauses (the ones into the IPUs).
- Format the output (if asked):
- can map the phoneme into another set (IPA, Praat, …) if a mapping table is given. It’s a file with two columns, both separated by a whitespace: 1st is SPPAS phoneme, 2nd is expected phoneme.
- can create a data structure with all the results and write into a JSON file.
- Prepare the data (if required):
SPPAS-4.4
(2022, 5th April)
Known problems
The use of Python 3.6 or 3.7 is possible but Python 3.8 is
recommended because: - the feature audioplay
can’t be
enabled with a more recent version, - recent versions of MediaPipe have
better results and the most recent one is available for python 3.8.
Annotations
- Hand&Pose: a new automatic annotation of an image or a video. SPPAS is a wrapper for MediaPipe Hand detection and Mediapipe Pose detection. It also proposes a custom solution to detect right-left hands of a person.
SPPAS-4.5
(2022, 15th April)
Known problems
For a full experience of SPPAS using of Python 3.8 or 3.9 is recommended. The use of Python 3.6 or 3.7 is possible.
Install
- Under Windows, pipwin is installed and used when pip failed to install a package. pipwin installs unofficial python package binaries for Windows provided by Christoph Gohlke here: http://www.lfd.uci.edu/~gohlke/pythonlibs/
- Both simpleaudio and PyAudio are installed, if available for the
OS. The
audioplay
feature is enabled if one of them is successfully installed.
Package
- a demo is added with all its annotated files. Only the orthographic transcription was performed manually. SPPAS did the rest.
Resources
- updated French dictionary (fra.dict)
GUI
- Page Edit: select the nearest annotation when clicking in a hole of a tier
- Page Analyze: when a tier is copied/paste, its media and controlled vocab are also copied/paste to the destination file.
Annotations
- Alignment: add the aligner name in the metadata of the result, i.e., either julius, hvite or basic.
- FaceSights: bug correction when writing coordinates in a CSV file.
SPPAS-4.6
(2022, 22th August)
Known problems or bugs
The French resources distributed in the package are corrupted. They
have to be re-installed to perform Alignment
annotation.
For a full experience of SPPAS using of Python 3.8 is recommended because some dependencies are no longer maintained and no new release is published. Other versions of Python are possible but without any warranty.
Annotations
- CuedSpeech is continued. The Proof of Concept is turned into some stable and tested packages, but it is not yet version 1.
- FaceIdentity: new option to shift the portrait/selfie at the left or right
- FaceIdentity and FaceSights: debug of the smoothing. The points are no longer shivering.
- HandPose: bug correction when writing hand sights for an image for XRA format
- Updated demo files with the results of the automatic annotations
Plugins
- The plugins folder migrated from the base directory to the sppas directory; and each plugin is now a python package.
- audioseg: A version 3.0 is released, an option
video
was added to segment both the audio and the video into tracks. Track filenames start with an index instead of the interval number.
Resources
- updated French dictionary (fre.dict) with new entries added and with
J
instead ofn j
in all words containinggn
Development:
- anndata.tier: bug correction in index() method to search for the index of a point in a point-tier.
- preinstall: a new key
pip_opt
in the features.ini file. The installer is now trying pip with option–pre
if the installation of the stable version failed. The pip_opt allows assigning options to pip. It is used by wxPython to fix the pre-build host. - imgdata.coordinates: added a xy ratio in parameters of portrait() to force a ratio between width and height. Default is 14:16.
- anndata.label: can optionally add the same tag into a label, without adding their scores
- anndata.aio.praat: an appropriate error message in case of chronological textgrid file.
SPPAS-4.7
(2022, 12th October)
Annotations
- CuedSpeech is continued. The transition duration of the shape is reduced (d2 is before), and the hand picture is not blur on the video when the position is changing.
- Text Normalization: a new option is used by default to estimate the number of tokens in each IPU, but only if the token is speech, events are ignored (i.e., dummy, noise, laugh, pause and silence).
Development
- Python 3.10 compatibility.
- Bug correction with imports if video is not enabled.
- Bugs correction in workspaces: Can append a file with a whitespace
before the pattern, like
toto - Copie.txt
and the relative path should work properly. - Installation: bug correction with quotes when launching a command that solved the installation problem - setup.bat does not need to be launch twice anymore, once is enough!
- Installation: do not stop an installation if a pip package fails to be updated.
- Script
mlf2labs.py
: a new script to split an MLF file into several lab files. - The custom event’s management changed in the Phoenix UI.
GUI
- There’s no longer a LogWindow in the installation wizard.
- Bug correction in slider and progress dialog (mainly used by the Edit page).
- Revised toolbars.
- Page Files: two buttons moved from associate to files (remove missing, add bros) and the 'delete' button migrated from files to associate.
- Page Editor: Search dialog debugged.
Resources
- Updated list of phones for Bengali language, updated dictionary and acoustic model
SPPAS-4.8
(2022, 14th December)
Development
- Break the dependency to wx when importing annotations. The SPPAS API can then be used without requiring wx to be installed.
- the script evalsegmentation.py is more generic (vowel and consonants lists), boxplots are in case-insensitive order, can deal with phonemes with a ’' and do not remove R files.
- anndata.aio: bug correction when reading CSV. Now, use the Python CSV reader.
- Updated SWHIG
Annotations
- Alignment: bug correction when using HVite instead of Julius.
- The transcribed tier – with orthographic transliteration, can’t have
a name with
ipu
anymore.
Resources
- Added an acoustic model of Persian language for Alignment
- A new acoustic model for English, with phonemes of British English added, and the full model re-trained.
- Updated French vocabulary and pronunciation dictionary
Installation
- Under Windows, do not stop an installation if
pipwin
fails to be installed or updated. - Under macOS: Homebrew is removed of the automatic setup. Users will have to install it themselves.
SPPAS-4.9
(2023, 10th February)
Web site url has changed: http://sppas.org/. An automatic redirection is maintained.
Development
- new ui package: htmlmaker is a package to work with a tree of HTML nodes and to serialize it into an HTML page.
- updated SWHIG, and files README, AUTHORS and LICENSE of
src
folder - a standard codemeta.json is added at the root of the
src
folder. It replaces the sppas.json file that was previously localed inetc
folder. - anndata: bug correction, when reading and writing a CSV (a problem with quotes was solved).
- all available features are saved into the .app~ file, with true or false value to mention that they are enabled or not.
- preinstall: catch the exception
http.client.HTTPResponse
which can occur if unstable internet connection when downloading an annotation (because too large zip file).
Resources
- updated English resources, the resources’ documentation indicates the list of phonemes, including the ones of British English.
- updated French resources
GUI
- a major bug correction: when the workspace is modified in a page, the other ones are properly informed and taking into account the new version.
- Page Edit: a major bug correction allowing to play audio with
pyaudio
under windows.
SPPAS-4.10
(2023, 10th March)
Web site url has changed: https://sppas.org/. An automatic redirection is maintained.
Major change: The Setup is launching a SPPAS Web-based application, instead of the one based on WxPython.
GUI
- The Setup program has been fully re-implemented with a Web-based User Interface. As a consequence, it does not require wxPython to be installed. Notice that it must be launched within the SPPAS python virtual environment. Firefox is highly recommended, none of the other web-browsers was tested.
Development
- new ui package
swapp
for SPPAS Web-based APPlication. Already contains ahttpd
package to implement a server and a handler, and anapp_setup
package for the SPPAS Setup, with a main program, main settings, etc. - ui.phoenix was renamed to ui.wxapp – which means WX-based sppas
application, to be consistent with
ui.swapp
. - Migrated sppas/bin/preinstallgui.py into ui.wxapp package. It is intended to be removed in next version, like the WX-based setup app.
- The custom settings of user interfaces are stored in wxapp and swapp folders instead of sppas base directory.
- preinstall: The installer system was entirely revised. An alternative list of pip packages can be defined, the progress indicates absolute percentage, and the installation error is not raised anymore if the package was installed but returned a warning/error message.
Annotations
- The diagnosis of the file is made on the exact filename without lowering the extension like it was previously done, because the file extensions for the annotations are case-sensitive.
SPPAS-4.11
(2023, 10th June)
Python 2.7.9+ compatibility is restored for most of the annotations.
New SPPAS logo
Resources
- Updated cueConfig-fra for better management of the neutral position and shape
Annotations
- TextNormalization can deal with the HTML tag
cut
like <cut unit="ms" from="12" to="34"/> into the orthographic transcription. See the transcription convention documentation for details. - TextNormalization, Phonetization and Alignment annotations can be performed on a raw text. When using the CLI, they can use stdin and stdout.
- CuedSpeech can produce the key from stdin, either from time-aligned phonemes or directly from a phonetization (without variants)
- CuedSpeech Video Tagging is fully re-implemented, and tested. New options are available to apply filters on the tagged hands.
- CuedSpeech: add an output annotated file with coordinates, only if createvideo option is enabled and log level is 0 (debug mode).
- Implemented a
SpeechSeg
annotation which allows to perform TextNormalization, Phonetization, Alignment and RMS, all-in-one. - Implemented an
AutoTrs
annotation which allows to prepare the data automatically. - The script
sppasseg.py
is now using AutoTrs and SpeechSeg instead of implementing them.
Development
- modified the way to instantiate the global settings. The main consequence is that there’s no longer a bunch of warning messages on macOS due to the miss of locale.
- bin.plugin.py: added a –list argument to print the list of installed plugins
- debug of the plugin audioseg: corrected the SPPAS path search when
no
SPPAS
environment variable is defined, and modified python into python3 into the JSON file – for macOS only - debug of table file formats: do not write arff and xrff in bytes anymore
- debug of TextNormalization annotation which can now deal properly with capitalized characters
- debug of Alignment annotation when PhonAlign is a PointTier
- debug of reading a RAW transcription
- debug of FaceSights: added an empty list of sights when an annotation is not labeled (no estimated sights)
- debug of the slope_intercept estimation: the function does not return (0,0) anymore in case slope is 0.
- debug of the translation system which is invoked only once when starting the application, and not each time a message has to be translated
- imgdata: created the sppasImageFilter() class to apply filters on an image
- annotations.CuedSpeech: the Proof-of-Concept of the
When
part of the annotation is turned into a cleaned and tested package. - annotations.CuedSpeech: the Proof-of-Concept of the
Where
part of the annotation has been fully changed to predict the position of five hand sights.
GUI
- Setup: separated the existing
video
feature into two different ones:video
andmediapipe
. This is because mediapipe is supported only by python 3.6 to 3.10. This change allows annotations using video to continue to work even without mediapipe. - The setup application is not blinking anymore neither when processing nor when clicking a button. Its design slightly changed to make it hopefully nicer. A button to increase the contrast is added. The accessibility is verified and compliant with WCAG2.1.
- Page Editor: added an extended frame player which can play videos and display the previous, current, next frames and information of the played video file(s).
SPPAS-4.12
(2023, 14th July)
Resources
- added an utf-8 specific
-
in punctuation list - updated French list of words
- Updated orthographic transcription convention, mainly for the $ support which is now used to surround any segment that will be buzzed.
Annotations
- enabled audio files in the list of possible output extensions for the annotations
- New automatic annotation for Anonymization of audio
and video files. Allows selecting a pattern in a tier in order to
buzz
the intervals in the annotated file. The annotation can blur the detected faces of a video during these intervals or only the mouth. Anonymization of audio intervals is preserving the intensity, but not the F0. - CuedSpeech: a better estimation of the angle for the hand. Bug correction of the "key 7" target finger.
- Text Normalization: corrected bugs of
cut
tag introduction. Do not try to find cut tags in tier of typePoint
. Modified and extended the use of thecut
tag. It generates adummy
tagged interval, or the content of theevent
attribute value. See oriana1.txt as example. Allowed the support of $ character in the orthographic transcription. - FaceDetection: modified the default models.
GUI
- New SPPAS logo
- Page Editor: updated the extended frame player. It can display a ruler and the currently selected tier for the period of the three frames.
- Page Editor: Added an icon to switch between information and frame view for videos in the timeline.
Development
- started a prototype of web UI for cued speech video tagging
- added classes to manage the dynamic pages of the SPPAS web site
- script sppasseg.py: corrected an inconsistency between file names and added a –json option. Modified the way to estimate the normalized RMS values.
- bin plugin.py: corrected support of -o when mode is
apply
SPPAS-4.13
(2023, 25th August)
Known bug & others
SPPAS is using a library with name "cv2" to display images. This library has a critical bug that may cause the SPPAS Graphical User Interface to crash. It happens when it is asked to cv2 to display two images at the same time. SPPAS is waiting a few delays between two frames, but it may not be enough if the OS is not properly managing events. It (obviously) occurs mainly on Windows.
This version is partially compatible with Python 2.7.x, and compatibility is guaranteed until Python 3.11.
GUI
- Do not quit when answering "no" in the dialog, and changed some colors.
- Close properly files before exit. In interactive mode, ask for confirmation when a file was modified.
- Page Editor: annotating videos. The video windows can show the videos in a single frame as usual, and they also can show a sequence of three frames, by playing forward or backward in a "frame-by-frame" way. A number of frames to skip can be defined. The window with the three frames of the video also displays a ruler to indicate the position in time of the frames and the currently selected tier. Buttons allow moving the selected boundary of its annotation(s). The play button and the frame-by-frame buttons are synchronous.
- Page Editor: two new buttons for zooming up or down the elements of the timeline.
- Page Editor: added tooltips on most of the buttons, and keyboard shortcuts
- Page Editor: debugged the search dialog, and added a "Hide" button
- Page Editor: removed restriction to create a new annotation outside its visible part and allowed use of the Escape key to cancel an annotation creation
- Page Editor: debugged the current time position information. Now it is updated properly when scrolling and when clicking on the stop button.
- Page Editor: modified some icons hopefully for better understanding
- Page Editor: added the possibility to scroll and zoom in the time ruler of the timeline, by dragging with the mouse: Scroll by dragging with no key pressed, and Zoom with CTRL key pressed (CMD on macOS). It allows defining very precisely the displayed period.
Annotations
- Text Normalization: allowed + and * in special pronunciations, like for example: [word, wo+rd]
- Alignment: yet another solution to rescue token's alignment when tokenization is not matching phonetization. More messages are also displayed both in the report and in the logs.
- FaceSights: corrected a bug when writing coordinates in a CSV file, improved robustness when input face detection/ident was of poor quality.
- HandPose: increased robustness by catching exception when scaling coordinates too much.
- CuedSpeech: modified the radius estimation of the predicted intervals, do not predict anymore a position transition from side to side, updated default vowel positions, bug correction when estimating time interval (the degenerated interval is forbidden).
Development
- anndata.tier: modified the solution to find annotations for a more robust one, added a parameter "radius_overlaps"
Resources
- French: modified "fre" pronunciation dictionary
SPPAS-4.14
(2023, 24th October)
The main purpose of this version was to update the installer.
Development
- Removed dependency to the python
distutils
library which is removed of Python 12 (PEP 632) - Migrated
htmlmaker
,httpd
andwebsite
packages into a newWhakerPy
external standalone application: https://whakerpy.sf.net - Added a 'base' feature which is pre-installed in the setup.command/setup.bat files, before launching the web UI. It's installing WhakerPy and Clamming, a package for creating documentation.
- Added a 'dist' folder into
sppas
and force pip to get wheels in 'dist' first then download if not found. - Another solution to fix the system installer is implemented. The previous solution based on the use of "uname()" was unstable.
- Migrated 'get_lang_list()' from settings to 'po', and removed the DEFAULT_LOCALE from the settings.
- Added
pyproject.toml
intosppas
folder to describe the project and eventually build a wheel file with "python -m build" - videoplayer: removed the frame size limitation that resized images to at max width=512px, except for Linux. Bug correction too to provide an infinite loop which was making the UI unresponsive.
- Removed user documentation source files.
- Updated the
setup.bat
. It is now more robust if several versions of Python are installed.
SPPAS-4.15
(2023, 24th December)
The main purpose of this version was the "CuedSpeech" automatic annotation.
Development
- Upgraded dependency to WhakerPy, from version 0.2 to 0.3.1.
- Package "config": code cleaning, tests added, refactoring and PEP-402 compliance.
- Annotated files: do not systematically set the "file_path" metadata. It allows fixing it to an empty value and sharing the file without indicating the full path (with author name, etc...).
- script
evalsegmentation.py
: added the argument -s to fix the delta step value (default is 0.005). - calculus: The UBPA scoring class prints (nb success occurrences / nb values) in the final result.
- User interface: Removed the 'website' package => migrated into WhakerPy 0.3.
- CuedSpeech.whenhand: fully verified package with code cleaned and re-organized, comments added, tests added, etc.
Annotations
- CuedSpeech.whatkey: Added a generated tier for the phoneme structures. This generated CS-PhonStructs tier does not contain the neutral information, and renamed the tier CS-PhonClass into CS-KeysClass.
- CuedSpeech.whenhand: Added a predictor model based on (Duchnowski et al., 2000).
- CuedSpeech.whenhand: Modified predictor model based on (Attina, 2005) for the code to really match this reference.
- CuedSpeech.whenhand: Completed our custom Rules-Based Model.
Others
- Contact: develop@sppas.org is no longer a valid e-mail. Use contact@sppas.org instead.
- Added support for dnf/Fedora of the automatic installer.
SPPAS-4.16
(2024, 20th January)
This is mainly a debug version: it solves a problem with the UI. Previous versions were displaying the message numbers instead of the messages themselves.
Development
- bug correction when defining the list of requested languages. English language was added into the list in a wrong way, so none of the requested languages was matching an available language in 'po' folder. There won't be message numbers anymore instead of the messages themselves.
- Updated both Clamming and WhakerPy requirements.
- Modified the SPPAS header in all files to provide Python12 message "SyntaxWarning: invalid escape sequence '\ '"
- Fixed Python12 messages "SyntaxWarning: invalid escape sequence ...", mainly in "Text Normalization" annotation.
- Refactoring of files and classes in annotations: log is becoming report, sppasLog is sppasReport, and SppasFiles is sppasFiles.
- In Text Normalization "num2text": added 'fre' for French
SPPAS-4.17
(2024, 29th January)
Annotations
- In CuedSpeech, the "When" code is stable. It's v1 of the custom model, which become the default model.
SPPAS-4.18
(2024, 13th March)
The package audiodata
is no longer a part of SPPAS.
It is now available as a standalone library, living its own life.
It is included in the "base" feature of SPPAS and is automatically
installed during setup. For your own usage, you can get it
here
Development
- Removed all dependencies to
audioop
Python standard library because it will be removed in Python 3.13, - with no proposed alternative solution. AudiooPy is used instead. - Migrated 'config' and 'preinstall' packages from 'sppas.src' to 'sppas' due to ModuleNotFoundError when launching preinstall.py. This is a consequence of replacing the local audiodata by the AudiooPy dependency.
- Removed
opencv-python-headless
of the required pip dependencies of "video" feature: it allows FaceRecognition to work properly, which is used by the "Person Face Identity" annotation. - src.videodata: debugged the object detection with a video buffer. The system was raising an exception, - and stopping the annotation, when an invalid image is read in the video. The image is now replaced by a blank one.
- src.videodata: debugged the "next" function of the videobuffer. The buffer was not flushed, so, if the last buffer was not full, it was still containing the images of the previous one.
- src.videodata: corrected bug when writing a video with a tag.
- Code cleaning and verified in scripts: facedetection.py, faceidentity.py, facesights.py.
- HandPose annotation: corrected a bug when hand image size is 0.
GUI
- sppas.ui.swapp: fully reconsidered the 'main.css' to look like the incoming 'wexa.css'.
- sppas.ui.swapp.statics: added an accessible font which is used in contrast mode.
Known bugs
The automatic annotation "Fill In IPUs" stops and there's the following message
in the report: ... [ ERROR ] Unknown format code 'd' for object of type 'float'
Quick Fix:
Edit the file \sppas\src\annotations\FillIPUs\sppasfillipus.py and change line 209 by:
m1 = _info(1290).format(int(filler.get_vol_threshold()))
A second problem comes from the re-sampling, in AudiooPy-0.2, so that SPPAS-4.18 can't perform "Alignment" on audio files of 48kHz.
SPPAS-4.19
(2024, 29th March)
Development
- Identified bugs of SPPAS-4.18 are corrected.
- The Setup uses a new package "whakerexa" in the GUI, from https://whakerexa.sf.net.
Annotations
- CuedSpeech is installed by default.
- Face Landmark is installed by default.
Known bugs
The automatic annotation "Search for IPUs" stops and there's the following message
in the report: ... [ ERROR ] Unknown format code 'd' for object of type 'float'
Quick Fix:
Edit the file \sppas\src\annotations\SearchIPUs\silences.py and change line 275 by:
threshold = int(volumes[int(median_index)])
SPPAS-4.20
(2024, 13th May)
The main change is about the terms of the license: the source code was previously under the terms of the GNU General Public License v3.
From this version, the source code of SPPAS is under the terms of the GNU Affero General Public License, version 3. Read it here
Development
- Identified bug of SPPAS-4.19 in "Search for IPUs" feature is corrected.
- Updated dependencies for 'base' feature, and for the UI:
- "WhakerPy == 0.6",
- "AudiooPy == 0.3",
- "ClammingPy >= 1.7"
- "Whakerexa" == 0.4
- plugins: corrected a bug when executing a python plugin. The plugin must use the version of python in the virtual environment.
- Added bin.makedoc.py to generate automatically the API documentation into an "api" folder. Requires Whakerexa to be installed, and a custom statics/clamming.css file.
Annotations
- CuedSpeech: added "W" as an authorized vowel category in the file with rules.
- HandPose: cast image array data from dtype('float32') to dtype('uint8'), to provide a Mediapipe TypeError on some images.
- HandPose: a more robust solution for hand detection. It makes use of a rescue detector if no hand is detected with the regular one.
- CLI usage: added '-W' argument to all annotation scripts, to give a workspace filename.
Resources
- Cued Speech: added 6 series of hands.
- added face detection models
Known bugs
Language resources can't be downloaded, so this version can only work with French/English languages because they are already available in the package.
SPPAS-4.21
Development
- Identified bug of SPPAS-4.20 in language download is corrected.
- Object detection removes the alpha channel, if any.
- 'sppas' package can be imported even if 'audioopy' is not installed and 'base' feature is False.
Annotations
- FaceDetection: can detect faces on an image, including those with an alpha channel.
- FaceSights: can also annotate an image — not only a video, with one or several faces
GUI
- Updated the app for the cued speech video tagger.
SPPAS-4.22
Recommended: Python<=3.11
The copyright is modified in headers to properly add the right holder 'CNRS'.
Development
- added file CODE_OF_CONDUCT.md
- migrated tests of `anndata`, `calculus`, `imgdata` packages and their data to the main test folder "tests"
- updated makedoc.py and added two path possibilities — for local use (default) or for the web version.
- CuedSpeech:
- whatkey: corrected problem with change of shape in long pauses;
- wherecue: properly manage the two models for vowels position prediction;
- wherecue: implemented three models for hand angle prediction;
- wherecue: migrated hand coordinates estimation into videotagger package;
- videotagger: reduced shape transparency;
- videotagger: estimate hand size from face sights, instead of from vowel positions;
- videotagger: added a "tgtline" filter;
- added a colored draw cue (drawccue) hands set in resources;
- added tests.
- UI: created new hub webapp. It can start SPPAS with a button card.
- UI: added TextCued application into the hub. TextCued application can perform cued speech from a written text.
Annotations
- Migrated search for IPUs algorithm into AudiooPy.
- CuedSpeech: this is version 1 of the AutoCuedSpeech project: https://auto-cuedspeech.org. The hand tagging is always enabled by default — not only in debug mode like before.
Known problems
This version is not compatible with 'pip>=24.x'.
Due to MediaPipe's outdated state and lack of maintenance by Google, users requiring MediaPipe functionality in this version cannot currently use Python 3.12 or newer.
Latest
SPPAS-4.23
Package
- Added the file CODE_STYLE_GUIDE.md
- Added the file CITATION.cff
Development
- Removed all 'typing' imports
- Fixed a bug in subtitle export (replaced ',' with '.' for milliseconds!).
- Added an ISO639 class to manage language names and codes
- The execution of an external command behaves differently under Windows compared to Unix-based systems (which use a more powerful solution)
- In the annotation parameters and resources, added the possibility to force the language code without verifying if a resource exists
- Escaped '\' in regex to avoid a SyntaxWarning with Python 3.12+
- In the swap settings, added "set_relative_path(new_path)" to allow any external server to launch any of the SPPAS web applications.
- Fully rewritten the sppas.__main__.py with a new class SPPASLauncher, used to launch the wx application.
- The setup (GUI) and preinstall.py (CLI) were updated in several ways:
- Ensured compatibility with pip>=24.x
- Adapted for installation with Python 13
- Fixed a bug: now, when pip installation fails, it raises an error instead of doing nothing
- Modified behavior: do not enable/disable features depending on the actual installation anymore. Only use default 'enable' values from features.ini
- Switched from PyAudio/simpleaudio. PyAudio is now the default installed audio player due to the lack of maintenance for 'simpleaudio'.
- Solved the problem of downloading annotation resources: files are now hosted by SourceForge instead of sppas.org.
- Renamed 'base' to 'core', which is more common and relevant.
Annotations
- CuedSpeech: For the "When" question, revised the rules of system 4. Now, the hand moves earlier.
- Anonymization: Added an option to fix an output tier pattern
- Renamed AutoTrs to STT and removed support for DeepSpeech, which is deprecated
- STT: Added support for OpenAI Whisper and HuggingFace models. Added SpeechToText to the GUI and a stt.py program to be used with the CLI.
Resources
- Updated French 'fre' dictionary: added missing proper names
Known Problems
Google MediaPipe has not yet been updated for compatibility with NumPy >= 2.0. Unfortunately, SPPAS must constrain its dependencies accordingly. As a result, OpenCV — which also requires NumPy — cannot be updated to its latest versions, which impacts all image and video processing features in SPPAS.
Incoming
SPPAS-4.24
Next release: 2025, March.