Dataset filder is prepared for each use cases. The folder has the following structure:
- /dataset_folder --+-- /data/*.csv
|
+-- /dataset.yaml
|
+-- /class_labels.yaml
|
+-- /*.h5
- Initial setup phase: You have to edit "dataset.yaml" manually
- Data acquisition phase: oscilloscope.py saves csv files in /data
- Training phase: Jupyter notebook generates "class_labels.yaml" and "*.h5"
- Inference phase: add the h5 file in "dataset.yaml" as a model
A list of windows is automatically generated by using the following info:
<--------------------- samples ----------------------->
+-----------------------------------------------------+
| |
| |
^ +-----------------+ |
Cutoff | | | |
V | | |
+-----------------------------------------------------+
<---- length ----->
- stride->
<------------------ samples (200) -------------------->
+----------------+----------------+----------------+--+
| | | | | ^
| | | | | |
^ | | | | | |
Cutoff | | | | | | | Filters(64 or 40)
(13) V | | | | | V
+----------------+----------------+----------------+--+
<---- length ---->
(64 or 96)
- stride->
(32, 64, 48 or 96)
Each index position in the list corresponds to each class identifier.
Example:
[blues_harp, classical_guitar, framenco_guitar, piano, silence, tin_whistle]
"dataset.yaml" is a config file with all the parameters for each use cases.
Example for MFSCs:
feature: mfsc
files: 100
training_files: 70
samples: 200
length: 64
filters: 40
cutoff: null
stride: 12
model: null
Example for MFCCs:
feature: mfcc
files: 100
training_files: 70
samples: 200
length: 64
filters: 40
cutoff: 13
stride: 12
model: null
"cutoff" is an upper bound of MFCC coefficients. For example, "13" means coefficients from 1st to 12th.