SPPAS Revision notes

Click here for the latest changes

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)

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 the Split 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… and Ends 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
  • 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 to documentation
  • 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 and scripts 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 and components merged in wxgui, 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
  • 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
  • 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
  • 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 replacing annotationdata.
  • 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 old annotationdata 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 of annotationdata
    • 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 of annotationdata
    • 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 into P class name
    • do not generate the tier structures tier anymore
    • generating the classes tier is optional
  • Annotations: INTSINT is based on anndata API instead of annotationdata
  • IPUScriber is based on anndata API instead of annotationdata

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 of annotationdata.

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 of annotationdata
  • dependency to markdown removed
  • new solution to work with global variables with the new package config and the new classes like sppasGlobalSettings, 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:
    1. Search for IPUs: to find silences/tracks from an audio file
    2. Fill in IPUs: to find silences/tracks from an audio file and its transcription
    3. 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 and nan 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. A manual mode and an auto 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 of ini 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 the File 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 to add/remove/delete files in the list, import from/export to/pin&save/rename workspaces, to create/edit/delete references and to check with filters/check all/associate/dissociate files and references.
  • Workspaces are saved in JSON format in the workspaces folder.

Annotations

  • New annotation Activity. This annotation was previously available as an option of Alignment.
  • 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)
  • 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 view Multi-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 to wkps. Updated classes and methods for a better support of reading and writing wjson files; a version 2.0 is then introduced. Add of a MISSING 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 named logs and trash.

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 page Files has a new button Edit checked in the top toolbar; and 2/ to view files in a time-line style, a new page Editor 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 of python3.

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:
    1. open audio, video and transcription files (no limit on the number of files);
    2. play all audio and video files really synchronously: the max delay between media players is 10ms;
    3. 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.
    4. scroll/zoom the files to change the visible part;
    5. display annotations both in a spreadsheet and in a timeline;
    6. select an annotation;
    7. edit the annotation content: a text entry allows editing the labels of an annotation either in a serialized string, in XML or in JSON.
    8. add/delete/split annotations.
    9. 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:
    1. view of the waveform of audio files
    2. the files of the timeline can be sorted
    3. 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 a rectangle
  • 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 a symlinks virtual environment on macOS because it does not support the copies 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:
    1. 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
    2. 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).
    3. 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.

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 of n j in all words containing gn

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 in etc 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 a httpd package to implement a server and a handler, and an app_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 and mediapipe. 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 type Point. Modified and extended the use of the cut tag. It generates a dummy tagged interval, or the content of the event 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 and website packages into a new WhakerPy 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 into sppas 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.