- [x] Exportation of contours to local `.json` (custom format).
- [x] Possibility to move points that are already placed.
- [x] Possibility to move points that are already placed.
- [x] Modification of previous annotation files. Save & return later!
- [x] Modification of previously annotated files.
## Known issues
## Known issues
-laggy when high number of contours/points per contour
-Optimisation necessary when many annotations
## Requirements
## Requirements
- Ubuntu / Windows / macOS (tested only on Ubuntu but it *should* work on any OS).
- Python 3.9.7
- Python 3.9.7
- Packages in `requirements.txt`
- Packages in `requirements.txt`
- Linux / Windows / macOS (only tested with Ubuntu & Windows10 but it *should* work on any OS).
Install packages in your python environment with `$ pip install -r requirements.txt`.
Install packages in your python environment with `$ pip install -r requirements.txt`.
...
@@ -32,14 +36,20 @@ Install packages in your python environment with `$ pip install -r requirements.
...
@@ -32,14 +36,20 @@ Install packages in your python environment with `$ pip install -r requirements.
## Usage
## Usage
### Execution
### Execution
For classic usage, download PyAVA folder, then open a terminal in the folder and run `$ python PyAVA.py -dir myWavefileFolder -out myOutputFolder` in terminal.
For classic usage:
- Download PyAVA folder
- Open a terminal in the folder
- Run `$ python PyAVA.py` in terminal.
- Select audio file to annotate.
- Make annotations (see User actions)
- Save and quit
Run `$python PyAVA.py --help` for details.
Run `$python PyAVA.py --help` for details and additional options.
The annotations are saved as [JSON](http://www.json.org/) files. Each file contains a dictionnary with the categories annotated. For each category there is a list of points, each point is defined by a list of two elements : [time (in sec), frequency (in Hz)].
The annotations are saved as [JSON](http://www.json.org/) files. Each file contains a dictionnary with keys corresponding to each annotation. For each contour there is a list of points, each point is defined by a list of two elements : [time (in sec), frequency (in Hz)].
### User actions
### User actions
- Use the toolbar to interact with the plot (same as with matplotlib.pyplot)
- Use the toolbar to interact with the plot (same as with matplotlib)
- Shortcuts "p" and "w" to activate panning, "z" to activate zoom.
- Shortcuts "p" and "w" to activate panning, "z" to activate zoom.
- Draw lines :
- Draw lines :
- User must not have any toolbar item selected in order to annotate the spectrogram.
- User must not have any toolbar item selected in order to annotate the spectrogram.
...
@@ -54,9 +64,18 @@ The annotations are saved as [JSON](http://www.json.org/) files. Each file conta
...
@@ -54,9 +64,18 @@ The annotations are saved as [JSON](http://www.json.org/) files. Each file conta
- Click on `Switch to PCEN` to switch between PCEN and spectrogram image.
- Click on `Switch to PCEN` to switch between PCEN and spectrogram image.
### Re-use data
### Re-use data
To load and display the saved annotations, use the "Results" object. It contains several infos: coordinates of the annotations, spectrogram, waveform and more.
#### Modification
To modify previous annotations using PyAVA interface:
Open a terminal window in PyAVA folder and run the following lines with Python to see an exemple of use: